Adsense zwischen zwei Feldern einfügen
am 14.12.2012 - 13:43 Uhr in
Hallo, wie der Titel schon sagt, würde ich gerne zwischen zwei Feldern auf den Artikelseiten Google AdSense einbauen. Wie mache ich das am praktischsten? Mit der node-story.tpl.php scheint es nicht zu klappen, dort nur vor oder nach dem Artikel.
Wäre nett wenn jemand weiter helfen kann.
MFG
- Anmelden oder Registrieren um Kommentare zu schreiben

Was für Felder hast du denn?
am 14.12.2012 - 13:58 Uhr
Was für Felder hast du denn? In der Story gibt es, man korrigiere mich, nur Title und Body. Willst du die Werbung dann zwischen Titel und Body anzeigen?
Ansonsten, wenn du mehrere Felder hast, also eigene, dann wäre eine Möglichkeit die entsprechenden Felder direkt in der Node auszugeben. Nehmen wir an du hast zwei Felder - Text 1 und Text 2, dann gibst du diese in der entsprechenden TPL so aus:
<?php print $content['field_text1']['#items']['0']['value']; ?>Adsense-Code
<?php print $content['field_text2']['#items']['0']['value']; ?>
bzw.
<?php if (!empty($field_text1)): ?><?php print $content['field_text1']['#items']['0']['value']; ?>
<?php else: ?>
<?php endif; ?>
Adsense-Code
<?php if (!empty($field_text2)): ?>
<?php print $content['field_text2']['#items']['0']['value']; ?>
<?php else: ?>
<?php endif; ?>
Du kannst alle Felder einzeln in einer Node ausgeben, bzw. einem Node-Template, wobei du zur Sicherheit den Body ausgeben kannst, falls dort noch Daten sind die du brauchst.
Ansonsten wären ein paar Details hilfreich. :)
Edit: Sehe grade, dass es für D6 ist. Allerdings funktioniert es dort ganz ähnlich.
Hallo,danke schonmal für die
am 14.12.2012 - 14:25 Uhr
Hallo,
danke schonmal für die erste Hilfe. Also ich habe eine Seite wo User Artikel schreiben können. Nach dem Artikel sollen User zusätzlich zwei Felder ausfüllen, die ich selbst angelegt habe. Ich möchte also, zwischen diesen beiden Feldern Adsense einbauen.
ich habe eine node-story.tpl.php. Die Stelle wo der Artikel ausgespckt wird, sieht so aus:
<?php if ($page == 0): ?>
<h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<?php if ($submitted): ?>
<span class="submitted"><?php print $date; ?></span>
<?php endif; ?>
<div class="content clear-block">
<?php print $content;
if((arg(0) == 'node') && (is_numeric(arg(1))))
{
profile_load_profile($node);
if ($node->profile_name != '')
{
print '<br/><br/><i>Autor: ' . $node->profile_name . '</i><br/>';
}
}
?>
<?php if ($page == 1): ?>
Was muss ich nun wo einbauen? :-)
Mal davon ausgehend, dass es
am 14.12.2012 - 15:01 Uhr
Mal davon ausgehend, dass es stinknormale Textfelder sind, dann müsste es so aussehen:
<?php if ($page == 0): ?>
<h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<?php if ($submitted): ?>
<span class="submitted"><?php print $date; ?></span>
<?php endif; ?>
<div class="content clear-block">
<?php print $content;?>
<?php
echo $node->field_DEINFELDNAME[0]['view'];
?>
<?php
echo $node->field_DEINFELDNAME[0]['view'];
?>
<?php if((arg(0) == 'node') && (is_numeric(arg(1))))
{
profile_load_profile($node);
if ($node->profile_name != '')
{
print '<br/><br/><i>Autor: ' . $node->profile_name . '</i><br/>';
}
}
?>
<?php if ($page == 1): ?>
Die beiden Felder würden so direkt nach dem Inhalt ausgegeben, wobei sie noch vor dem Autor ausgegeben werden. Ansonsten einfach entsprechend verschieben. Den Adsense-Code musst du dann dort platzieren wo er hin soll.
Angemerkt sei - Ich habe lange nicht mit D6 gearbeitet, daher alles ohne Gewähr. :)
Es hat leider nicht geklappt,
am 14.12.2012 - 15:17 Uhr
Es hat leider nicht geklappt, aber einen Schritt bin ich weiter: Die beiden Felder werden nun doppelt angezeigt und mein gewünschter Adsense Code erscheint in etwa so:
field_kontakt
field_persona
field_kontakt
MEIN NEUER ADSENSE
field_persona
Ich muss also nun die ersten beiden Felder entfernen. Doch wie stell ich das nun an?
<?php print $content ?> gibt
am 14.12.2012 - 16:16 Uhr
<?phpprint $content
?>
Ersetze mal den print content part durch:
<?php print $node->content['body']['#value']; ?>Das gibt den Body, also meist das Haupt-Textfeld, aus.
Das klappt leider noch
am 14.12.2012 - 16:26 Uhr
Das klappt leider noch weniger. Dann werden viele Sachen nicht mehr angezeigt, einige Module wie FiveStar Bewertung, Share Button, und aber auch die beiden Felder unterhalb des Textes.
Kann man es vielleicht anders durch eine unkomplizierter Lösung regeln, evtl gibt es ein Modul für sowas. Oder kann man einen neuen Block zwischen den Feldern einfügen um dann darin Adsense einzufügen?
Naja, wenn du das
am 14.12.2012 - 16:34 Uhr
Naja, wenn du das Content-Feld entfernst, dann musst du natürlich auch alles andere, was sonst via Content ausgegeben wird händisch in das Node-Template eintragen. Das ist durchaus möglich.
Ob es dafür Module gibt kann ich dir nicht sagen, aber die werden wahrscheinlich kaum darauf abzielen zwischen zwei Feldern zu interagieren. Wobei es eventuell eine CCK-Lösung gibt. Da kenne ich mich aber nicht aus.
Ein Block, bzw. eine Region zur Darstellung des Blocks, müsstest du auch zwischen die Felder packen. Das ist das gleich Pferd, nur hinten rum.
Alternativ kann man es noch via CSS versuchen, das könnte aber unsauber werden.
Da muss ich dann leider passen. Ich hätte jetzt via Devel geschaut wie ich die fehlenden Sachen ausgebe, oder eben in den Dokumentationen und Issues. Da muss man aber etwas suchen und sich rein fuchsen. Nichts für mal eben so. Fivestar z.B. kann man auch direkt ausgeben, die ShareButton zu 99% auch.
Anyhow - Wünsche dir trotzdem noch viel Glück. :)
Was Genesis sagt, ist
am 14.12.2012 - 23:11 Uhr
Was Genesis sagt, ist natürlich richtig. Wenn man mal die Content-Variable destrukturiert hat, muss man deren Inhalte einzeln ausgeben. Das Devel-Modul http://drupal.org/project/devel ist dabei sehr hilfreich, weil Du damit die Variable inspizieren kannst.
Ein gute Nachricht habe ich auch noch - und zwar eine kleine Anleitung, wie man unter Drupal 6 eine Blockregion in einer node.tpl einbindet http://highrockmedia.com/blog/how-add-block-region-node-page-drupal-6
Das muss doch mit Display
am 26.12.2012 - 11:43 Uhr
Das muss doch mit Display Suite gehen in dem ein code Feld eingefügt wird... gibt es auch ein gutes Tutorial auf Youtube.com (11 Teilig oder so etwas).
Display Suite
am 28.12.2012 - 15:50 Uhr
Genau, wie fa-cup schon schrieb, funktioniert das wunderbar mit dem Modul [do:ds Display Suite]. Damit kannst Du dann ein neues Code-Feld erstellen (in das Du dann Deinen adsense-Code einfügst) und dieses Feld dann so wie alle anderen Felder auch in der Ausgabe positionieren.