Titel (Überschrift), Author und Erstellungsdatum pro Node optional ausblenden
am 12.07.2011 - 22:51 Uhr in
Liebe DrupalerInnen :),
bevor ich meine Frage stelle, muss ich etwas loswerden. Also ich bin wirklich erstaunt, wie Drupal manchmal die gebräuchlichsten und einfachsten Features so kompliziert machen kann, wie es nur möglich ist. Das, was ich bei Joomla in weniger als 1 Minute mit ein paar Klicks erledigen kann, ist bei Drupal und meinen (zurzeit noch) nicht vorhandenen PHP-Kenntnissen praktisch unmöglich. Das soll dann noch heißen, Drupal ist seeehr flexibel (dass ich nicht lache).
Nun aber zur Sache. Ich habe zu meinem Anliegen schon ein bisschen die Suche bemüht aber schlau bin ich trotzdem nicht geworden. Ich weiß, dass ich in meinem Node-Typ ein Entscheidungsfeld (ja/nein) einbauen muss. Dass soll dann im node--[type].tpl.php mit einem extra Eintrag abgefragt und dementsprechend ausgegeben werden. Wie gesagt, PHP-Kenntnisse sind bei mir (noch) nicht vorhanden und ich bin mit meinem Latein am Ende. An welcher Stelle in diesem (D7)-template und was genau muss ich eintragen? Kann mir jemand mit genauen Anweisungen helfen? Bitte aber wirklich detailliert und nicht nur allgemein.
Ich bedanke mich im Voraus.
Grüße
Joe
EDIT: Hier noch der Inhalt meines node.tpl.php (ein Artisteer-Thema) :
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<div class="art-post">
<div class="art-post-body">
<div class="art-post-inner art-article">
<h2 class="art-postheader"<?php print $title_attributes; ?>><?php print render($title_prefix); ?>
<?php echo art_node_title_output($title, $node_url, $page); ?>
<?php print render($title_suffix); ?>
</h2>
<?php if ($display_submitted): ?>
<div class="art-postheadericons art-metadata-icons">
<?php echo art_submitted_worker($date, $name); ?>
</div>
<?php endif; ?>
<div class="art-postcontent">
<?php
// We hide the comments and links now so that we can render them later.
hide($content['comments']);
hide($content['links']);
$terms = get_terms_D7($content);
hide($content[$terms['#field_name']]);
print render($content);
?>
</div>
<div class="cleared"></div>
<?php print $user_picture; ?>
<?php if (isset($content['links']) || isset($content['comments'])):
$output = art_links_woker_D7($content);
if (!empty($output)): ?>
<div class="art-postfootericons art-metadata-icons">
<?php echo $output; ?>
</div>
<?php endif; endif; ?>- Anmelden oder Registrieren um Kommentare zu schreiben

Drupal ist extrem flexibel.
am 13.07.2011 - 08:32 Uhr
Drupal ist extrem flexibel. Aber man muss natürlich die entsprechenden Kenntnisse mitbringen, um die Möglichkeiten voll auszuschöpfen. Ein Porsche ist auch ein geiles Auto, bringt dir aber gar nichts, wenn du nicht fahren kannst ;)
Du musst erst das Feld auslesen und auswerten und dann die Infos einblenden. Feld auslesen dürfte mit
$fields['mein_feld']->rawoder$fields['mein_feld']->contentklappen.Also dürfte sowas gehen:
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<div class="art-post">
<div class="art-post-body">
<div class="art-post-inner art-article">
<h2 class="art-postheader"<?php print $title_attributes; ?>><?php print render($title_prefix); ?>
<?php echo art_node_title_output($title, $node_url, $page); ?>
<?php print render($title_suffix); ?>
</h2>
<?php if ($display_submitted): ?>
<?php if ($fields['info_ausblenden']->content == 'nein'): ?>
<div class="art-postheadericons art-metadata-icons">
<?php echo art_submitted_worker($date, $name); ?>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="art-postcontent">
<?php
// We hide the comments and links now so that we can render them later.
hide($content['comments']);
hide($content['links']);
$terms = get_terms_D7($content);
hide($content[$terms['#field_name']]);
print render($content);
?>
</div>
<div class="cleared"></div>
<?php print $user_picture; ?>
<?php if (isset($content['links']) || isset($content['comments'])):
$output = art_links_woker_D7($content);
if (!empty($output)): ?>
<div class="art-postfootericons art-metadata-icons">
<?php echo $output; ?>
</div>
<?php endif; endif; ?>
Edit:
Den Node-Titel in der Seiten-Ansicht blendet man meistens in der page.tpl.php aus. Dort musst du das gleiche IF-Konstrukt (bei dem man das Feld abfragt) um die Titel-Ausgabe legen.
Welches Theme verwendest du denn?
Drupal 7 als ein Porsche? Da
am 13.07.2011 - 18:31 Uhr
Drupal 7 als ein Porsche? Da kann ich nur lachen. :))) Drupal 7 ist zum jetzigen Zeitpunkt noch alles andere als ein Porsche. :)
Exterior, ich danke dir für Deine Lösung. Ich hatte bisher noch keine Zeit, sie zu testen aber ich hoffe, das wird schon funktionieren. Wenn ja, dann markiere ich später den Thread als gelöst, sonst melde ich mich noch bei Problemen.
Für den Anfang habe ich mir ein Artisteer-Theme erstellt. Artisteer ist ein Theme-Generator, u.a. auch für Drupal. Später werde ich mich mit den Themen Theming :) und Drupal-Theming noch ausführlicher beschäftigen und ein anderes Theme finden/anpassen. Ich wollte einfach, dass die erste Version meines Projekts (die dann noch weiter um- und ausgebaut wird) möglichst schnell online gehen kann.
Ja, ich wollte...Mit Drupal 7 wollte ich... :)))
Nochmals vielen Dank, Exterior. :)
Hallo Exterior,es gibt doch
am 14.07.2011 - 17:33 Uhr
Hallo Exterior,
es gibt doch Probleme. Also bei mit sieht der Eintrag in meinem node-article_full.tpl.php konkret so aus:
<?php if ($fields['field_hidden_info']->content == 'no'); ?>So will das nicht funktionieren und ich bekomme folgende Fehlermeldung angezeigt:
Obwohl ich verstehe, was diese Meldung mir sagt, kann ich trotzdem mangels PHP-Kenntnisse nichts damit anfangen.
Die Lösung steckt wahrscheinlich in diesem Artikel: node.tpl.php
P.S.
EDIT: Ich weiß, dass es so auf Entfernung schwierig ist, eine auf Anhieb funktionierende Lösung zu liefern, wenn man nichts testen kann.
Hm, anscheinend weiß es
am 18.07.2011 - 17:27 Uhr
Hm, anscheinend weiß es niemand in diesem Forum, wie man richtig Porsche fährt. :)
Wenn Du mal die
am 18.07.2011 - 18:48 Uhr
Wenn Du mal die Kommentarzeilen im node.tpl.php gelesen hättest, dann hättest Du festgestellt, daß da keine Variable $fields zur Verfügung steht. Du hast aber die $node Variable. Von da kommst Du auf die Felder über $node->feld_name. Das ist aber wiederum eine Struktur. Also solltest Du Dir mit drupal_set_message(print_r($node->feld_name, true)); in dem Templatefile die Struktur anzeigen lassen. Dann kannst Du auch sehen, wie Du den gewünschten Inhalt ansprechen kannst.
Beste Grüße
Werner
Und noch ein Hinweis: Hinter
am 18.07.2011 - 19:17 Uhr
Und noch ein Hinweis: Hinter das IF-Konstrukt gehört ein Doppelpunkt ( ":" ) und kein Semikolon ( ";" )
Exterior schriebUnd noch ein
am 18.07.2011 - 20:00 Uhr
Und noch ein Hinweis: Hinter das IF-Konstrukt gehört ein Doppelpunkt ( ":" ) und kein Semikolon ( ";" )
Ja, das hab ich natürlich sofort gesehen und dementsprechend auch geändert.
EDIT: Ich hatte zwei Versionen in meinem Editor geöffnet, eine vor und eine nach dieser Änderung und die hier gepostete Zeile muss ich wohl noch aus der nicht geänderten Version kopiert haben.
wla schrieb Wenn Du mal die
am 18.07.2011 - 19:32 Uhr
Wenn Du mal die Kommentarzeilen im node.tpl.php gelesen hättest, dann hättest Du festgestellt, daß da keine Variable $fields zur Verfügung steht. Du hast aber die $node Variable. Von da kommst Du auf die Felder über $node->feld_name. Das ist aber wiederum eine Struktur. Also solltest Du Dir mit drupal_set_message(print_r($node->feld_name, true)); in dem Templatefile die Struktur anzeigen lassen. Dann kannst Du auch sehen, wie Du den gewünschten Inhalt ansprechen kannst.
Beste Grüße
Werner
Hast Du auch meinen ersten Beitrag genau gelesen? Meine PHP-Kentnisse sind gleich null und ich kann mit dem was Du eben geschrieben hast nicht wirklich etwas anfangen.
Du solltest dir evtl. mal ein
am 18.07.2011 - 20:00 Uhr
Du solltest dir evtl. mal ein paar Grundkenntnisse in PHP aneignen, das schadet nie, wenn man mit Drupal arbeiten will. Denn so bist du im Grunde drauf angewiesen, dass andere deine Arbeit machen, das wird aber nicht immer klappen. Ich habe jetzt z. B. keine Ahnung, wie die Object-Struktur in $node ist und kann dir da kaum helfen.
Ja, das habe ich auf jeden
am 18.07.2011 - 20:13 Uhr
Ja, das habe ich auf jeden Fall vor aber ich kann nicht alles auf einmal lernen. Wenn ich schon etwas lerne, dann versuche ich das entweder so gründlich wie möglich oder eben gar nicht zu machen. Denkst Du aber nicht, dass an dieser Stelle etwas mit diesem "sehr flexiblen" CMS nicht stimmt, wenn man für so eine Kleinigkeit, die man bei Jommla mit einem Klick erledigen kann, bei Drupal extra PHP lernen muss?
Zitat: Denkst Du aber nicht,
am 18.07.2011 - 20:38 Uhr
Denkst Du aber nicht, dass an dieser Stelle etwas mit diesem "sehr flexiblen" CMS nicht stimmt, wenn man für so eine Kleinigkeit, die man bei Jommla mit einem Klick erledigen kann, bei Drupal extra PHP lernen muss?
Nein, denke ich nicht. "Sehr flexibel" und "einfach zu verwenden" sind zwei sehr verschiedene Dinge. Drupal ist eben sehr flexibel, weil man mit ein wenig Programmierung so gut wie alles umsetzen kann, ohne den Core anzufassen. Und es gibt viele Dinge, die du mit Drupal machen kannst, die du mit Joomla nicht umsetzen wirst, zumindest nicht ohne Core-Hacks. Aber diese Flexibilität kommt eben auch mit einer gewissen Komplexität einher. Komplexe Dinge sind eben meistens nicht ganz so einfach zu bedienen. Im Core sind nur die nötigsten Sachen, den Rest kann man nach Lust und Laune selbst erstellen.
Na gut, Du hast mich
am 18.07.2011 - 21:20 Uhr
Na gut, Du hast mich übergezeugt. ;) Ich kämpfe nämlich immer noch ab und zu mit dem Gedanken, zu Joomla zurückzukehren. Die neueste Entwicklung bei Joomla, bei der jetzt alle 6 Monate eine neue Version erscheinen soll, macht mir das Ganze auch nicht leichter.
Nun, vielen Dank an alle, die sich an diesem Thread beteiligt haben. Zurzeit kann ich noch auf eine detaillierte Lösung bei dieser Angelegenheit verzichten, weil ich das, was ich bei meinem Projekt erreichen wollte, ein bisschen anders umgesetzt habe. Später, wenn ich etwas PHP gelernt habe, werde ich solche Sachen wohl selber bewältigen können.
Man muss ja kein totaler
am 18.07.2011 - 21:45 Uhr
Man muss ja kein totaler PHP-Crack sein (bin ich auch noch lange nicht), für die meisten Dinge reichen ein paar Grundkenntnisse aus, der Rest kommt dann von alleine ;)
Ein totaler PHP-Crack werde
am 18.07.2011 - 21:57 Uhr
Ein totaler PHP-Crack werde ich nach einem Selbstunterricht sowieso nicht so schnell sein. Eben die Grundkenntnisse möchte ich aber gründlich und nicht nur oberflächlich lernen, dh. aus einem dicken Buch. Dafür brauche ich aber Zeit und zuerst möchte ich die erste Version meiner Website (die dann später noch weiter ausgebaut wird) möglichst schnell online stellen.