Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] Autorinformation nur für eingeloggte User sichtbar - Hilfe mit PHP/Anpassung in der Node.tpl.php

Eingetragen von alaind (42)
am 19.07.2012 - 21:54 Uhr in
  • Themes & Theming
  • Drupal 7.x oder neuer

Hallo,

ich möchte erreichen, dass die Autorinformation eines Artikels nur für die eingeloggten User sichtbar ist. Dazu habe ich folgenden Link gefunden in der der Lösungsweg erklärt ist: http://bit.ly/MMqMCd

Das funktioniert eigentlich auch. Nur habe ich ein fertiges Theme, was ich mir selbst anpasse. Dadurch sieht der PHP-Code anders aus. Hinzufügen des Lösung-Codes bewirkt nur, dass die Information (sofern ich eigeloggt bin) doppelt auftaucht. Wie muss ich also den Code richtig schreiben? Ich habe leider nicht all zu viel Ahnung von php.

Hier ist mein Code-Auszug

  <?php if ($display_submitted || !empty($content['links']['terms'])): ?>
    <div class="meta">
      <?php if ($display_submitted && isset($submitted) && $submitted): ?>
        <span class="submitted"><?php print $submitted; ?></span>
      <?php endif; ?>
?>

Und nach der Lösung muss die Ursprüngliche Stelle

<?php if ($display_submitted): ?>
  <div class="meta submitted">
    <?php print $user_picture; ?>
    <?php print $submitted; ?>
  </div>
<?php endif; ?>

dies hier stehen:

<?php if ($display_submitted): ?>
  <div class="meta submitted">
    <?php print $user_picture; ?>
    <?php if ($logged_in == TRUE): ?>
      <?php print $submitted; ?>
    <?php else: ?>
      <?php print $date; ?>
    <?php endif; ?>
  </div>
<?php endif; ?>

Vielen Dank für eure Hilfe

alaind

‹ theme mit horizontalem scrollen, statt vertikalem ... gesucht Nebeneinander, anstatt untereinander ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

In Deinem Code-Auszug ist mir

Eingetragen von Samson1964 (51)
am 20.07.2012 - 07:26 Uhr

In Deinem Code-Auszug ist mir die erste Abfrage (if ($display_submitted || !empty($content['links']['terms']))) etwas unklar: Wenn Autorinfo vorhanden ist ODER links-terms vorhanden ist, soll die Autorinfo angezeigt werden???!! Na ja...
Danach kannst Du ja den Login-Status abfragen. Das zweite if($display_submitted) finde ich dabei überflüssig.

  <?php if ($display_submitted || !empty($content['links']['terms'])): ?>
    <div class="meta submitted">
      <?php
     
if ($logged_in) {
        print
$user_picture;
        print
$submitted;
      }     
      else print
$date;
    
?>

    </div>
  <?php endif; ?>

Ich hoffe der Code ist fehlerlos und ich habe Dein Problem verstanden: Wenn eingeloggt, dann Bild und Autorinfo ausgeben, ansonsten nur das Datum.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo und vielen Dank

Eingetragen von alaind (42)
am 20.07.2012 - 09:49 Uhr

Hallo und vielen Dank erstmal. Ja, du hast mein Problem erkannt. Leider zerhackt mir dein Code die ganze Seite. Vielleicht zur vollständigen Übersicht, das Theme basiert auf Fusion und die vollständige node.tpl.php sieht so aus

?>
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
  <div class="inner node-inner">
  <?php print $user_picture; ?>

<?php print render($content['field_typ']); ?>
<?php print render($content['field_typ2']); ?>

  <?php print render($title_prefix); ?>
  <?php if (!$page): ?>
    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
  <?php endif; ?>
  <?php print render($title_suffix); ?>

  <?php if ($display_submitted || !empty($content['links']['terms'])): ?>
    <div class="meta">
      <?php if ($display_submitted && isset($submitted) && $submitted): ?>
        <span class="submitted"><?php print $submitted; ?></span>
      <?php endif; ?>

      <?php if (!empty($content['links']['terms'])): ?>
        <div class="terms terms-inline">
          <?php print render($content['links']['terms']); ?>
        </div>
      <?php endif; ?>
    </div>
  <?php endif; ?>

  <?php if (!$teaser): ?>
    <div id="node-top" class="node-top region nested">
      <?php print render($node_top); ?>
    </div>
  <?php endif; ?>

  <div class="content"<?php print $content_attributes; ?>>
    <?php
     
// We hide the comments and links now so that we can render them later.
     
hide($content['comments']);
     
hide($content['links']);
      print
render($content);
   
?>

  </div>

  <?php print render($content['links']); ?>

  <?php print render($content['comments']); ?>

  <?php if (!$teaser): ?>
    <div id="node-bottom" class="node-bottom region nested">
      <?php print render($node_bottom); ?>
    </div>
  <?php endif; ?>
  </div>
</div>

Die Auskommentierung nennt:
 /**
* @file
* Fusion theme implementation to display a node.
*
* Available variables:
* - $title: the (sanitized) title of the node.
* - $content: An array of node items. Use render($content) to print them all, or
* print a subset such as render($content['field_example']). Use
* hide($content['field_example']) to temporarily suppress the printing of a
* given element.
* - $user_picture: The node author's picture from user-picture.tpl.php.
* - $date: Formatted creation date. Preprocess functions can reformat it by
* calling format_date() with the desired parameters on the $created variable.
* - $name: Themed username of node author output from theme_username().
* - $node_url: Direct url of the current node.
* - $terms: the themed list of taxonomy term links output from theme_links().
* - $display_submitted: whether submission information should be displayed.
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default values can be one or more of the following:
* - node: The current template type, i.e., "theming hook".
* - node-[type]: The current node type. For example, if the node is a
* "Blog entry" it would result in "node-blog". Note that the machine
* name will often be in a short form of the human readable label.
* - node-teaser: Nodes in teaser form.
* - node-preview: Nodes in preview mode.
* The following are controlled through the node publishing options.
* - node-promoted: Nodes promoted to the front page.
* - node-sticky: Nodes ordered above other non-sticky nodes in teaser listings.
* - node-unpublished: Unpublished nodes visible only to administrators.
* - $title_prefix (array): An array containing additional output populated by
* modules, intended to be displayed in front of the main title tag that
* appears in the template.
* - $title_suffix (array): An array containing additional output populated by
* modules, intended to be displayed after the main title tag that appears in
* the template.
*
* Other variables:
* - $node: Full node object. Contains data that may not be safe.
* - $type: Node type, i.e. story, page, blog, etc.
* - $comment_count: Number of comments attached to the node.
* - $uid: User ID of the node author.
* - $created: Time the node was published formatted in Unix timestamp.
* - $classes_array: Array of html class attribute values. It is flattened
* into a string within the variable $classes.
* - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
* teaser listings.
* - $id: Position of the node. Increments each time it's output.
*
* Node status variables:
* - $view_mode: View mode, e.g. 'full', 'teaser'...
* - $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
* - $page: Flag for the full page state.
* - $promote: Flag for front page promotion state.
* - $sticky: Flags for sticky post setting.
* - $status: Flag for published status.
* - $comment: State of comment settings for the node.
* - $readmore: Flags true if the teaser content of the node cannot hold the
* main body content.
* - $is_front: Flags true when presented in the front page.
* - $logged_in: Flags true when the current user is a logged-in member.
* - $is_admin: Flags true when the current user is an administrator.
*
* Field variables: for each field instance attached to the node a corresponding
* variable is defined, e.g. $node->body becomes $body. When needing to access
* a field's raw values, developers/themers are strongly encouraged to use these
* variables. Otherwise they will have to explicitly specify the desired field
* language, e.g. $node->body['en'], thus overriding any language negotiation
* rule that was previously applied.
*
* @see template_preprocess()
* @see template_preprocess_node()
* @see template_process()
*/ 

Bisher habe ich nur field_typ und field_typ2 im Code verändert.

Vielen Dank im voraus für jede Mühe

Gruß alaind

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh sorry. Das PHP sah für

Eingetragen von Samson1964 (51)
am 20.07.2012 - 11:18 Uhr

Oh sorry. Das PHP sah für mich syntaktisch korrekt aus.

Da ich gerade auf Arbeit bin und ständig "gestört" werde, will ich mir Fusion und Deine node.tpl.php mal bei einer Testinstallation nachher daheim anschauen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also bei mir (fusion_starter)

Eingetragen von Samson1964 (51)
am 20.07.2012 - 16:58 Uhr

Also bei mir (fusion_starter) hat mein Code funktioniert. Ich habe

  <?php if ($display_submitted || !empty($content['links']['terms'])): ?>
    <div class="meta">
      <?php if ($display_submitted && isset($submitted) && $submitted): ?>
        <span class="submitted"><?php print $submitted; ?></span>
      <?php endif; ?>

      <?php if (!empty($content['links']['terms'])): ?>
        <div class="terms terms-inline">
          <?php print render($content['links']['terms']); ?>
        </div>
      <?php endif; ?>
    </div>
  <?php endif; ?>

rausgeworfen und stattdessen meine Codezeilen eingebaut. Keine Fehlermeldungen. Ist man eingeloggt erscheint der Autor ggfs. mit Bild, nicht eingeloggt erscheint das Datum.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Frank, wunderbar, es

Eingetragen von alaind (42)
am 20.07.2012 - 19:55 Uhr

Hallo Frank,

wunderbar, es klappt, vielen vielen Dank. Ich hatte nur einen Absatz ersetzt, nicht zwei Absätze. Jetzt funktioniert es. Nur noch eine kleine Frage. Was muss man noch hinzufügen, wenn man auch ein "erstellt am" lesen möchte?

Gruß alaind

  • Anmelden oder Registrieren um Kommentare zu schreiben

Erweitertes Beispiel aus

Eingetragen von Samson1964 (51)
am 21.07.2012 - 05:25 Uhr

Erweitertes Beispiel aus meinem Code:

      else print "erstellt am " . $date;

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Frank, wunderbar,

Eingetragen von alaind (42)
am 21.07.2012 - 11:58 Uhr

Hallo Frank,

wunderbar, vielen Dank für deine Mühe und schönes Wochenende. Ich setze den Thread jetzt auf "gelöst".

Gruß alaind

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 2 Tagen
  • Hey danke
    vor 1 Woche 2 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 23 Stunden
  • Da scheint die Terminologie
    vor 2 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 2 Wochen 5 Tagen
  • In der entsprechenden View
    vor 2 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 5 Tagen
  • gelöst
    vor 5 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 24 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association