Flexinode-Felder als Variablengeber
am 24.04.2006 - 22:24 Uhr in
Hallo ihr lieben,
ich experimentiere dieser Tage mit PHP-Snippets, Flexinode bzw. Fleximax und Templates für die PHPTemplate-Engine herum. Dabei bin ich auf die Idee gekommen, in ein Template-File für einen Flexinode ein PHP-Script einzubauen und dort Felder freizulassen, die von den Autoren eines jeden neuen Nodes dieses Typus ergänzt werden können. Allerdings stoße ich im Detail auf ein Problem, bei dem ich euren Rat gebrauchen könnte. Ich verwende Drupal 4.6 .
Ich hole ein Stück aus und konkretisiere das mal an einem Beispiel. Ich habe in meinem flexinode-1.tpl.php - File ein PHP-Script eingebaut, das folgendermaßen aussieht:
<?php
unset ($output);
$listlength="20";
$charlength="0";
$taxo_id = 411;
$content_type = 'flexinode-5';
unset ($output);
$result1 = pager_query("SELECT n.title, n.nid, n.teaser, n.uid, n.created, u.name FROM {node} n INNER JOIN {users} u ON n.uid = u.uid INNER JOIN frightening_term_node ON n.nid = frightening_term_node.nid WHERE n.type = '$content_type' AND frightening_term_node.tid = $taxo_id AND n.status = 1 ORDER BY n.created DESC", $listlength);
while ($node = db_fetch_object($result1)) {
$output .= '<span class=capitalchenverdana>' . l($node->title, "node/$node->nid") . "</span><br>" . substr(strip_tags($node->teaser), 0, $charlength) ;
}
print $output;
?>
Dieses Snippet gibt mir eine Liste an 20 Beiträgen auf der Seite aus, die zu dem Term #411 gehören und mit dem Flexinode-5 erstellt wurden. Für sich gesehen klappt dieses Script nach meinen Wünschen, nun möchte ich aber gerne, dass bei jeder Neuerstellung eines Flexinode-1 der Wert für $taxo_id inviduell vom Autor angepasst werden kann. Soll also das neue flexinode-1 statt der ID 411 beispielsweise die ID 500 abrufen, so kann er das in einem Feld eingeben. Ich habe zu diesem zweck ein neues Feld für flexinode-1 erstellt, sagen wir mal, es ist Feld nummero 2 ($node->flexinode_2).
Soweit so gut. Rufe ich nun den invuellen Wert einzeln über print($node->flexinode_2) ab, so erscheint er auch ohne weiteres auf der Bildfläche. Nun stellt sich mir allerdings die Frage, die ich als PHP-Neuling nicht richtig beantworten kann: Wie schaffe ich es, dieses variable Flexinode-Feld in das obrige Script einzubauen?
Probiert habe ich beispielsweise einfach
$taxo_id = 411;
mit
$taxo_id = print($node->flexinode_2);
auszutauschen, aber dies hat mir leider keinen Erfolg gebracht. Da ich wahrscheinlich sehr viel Zeit damit verbringen würde, rumzuknobeln, wie es richtig eingebaut werden müsste, möchte ich diese (für manche sicher einfache Frage) gerne an Euch weiterleiten.
Eine Idee, vielleicht sogar eine Alternative in petto? Ich würde mich sehr freuen und warte gespannt auf eine Rückantwort :D
greetings
2shy
- Anmelden oder Registrieren um Kommentare zu schreiben
Bist Du damit inzwischen
am 26.09.2006 - 12:24 Uhr
Bist Du damit inzwischen weitergekommen?
--
sanduhrs - drupalcenter
-----------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Nur bedingt. Funktionieren
am 01.10.2006 - 13:23 Uhr
Nur bedingt. Funktionieren tut das obere Verfahren nur mit Dropdownmenüs, deren Auswahlwerten du eine konkrete Variable zuordnest. Also etwa:
du wählst im Dropdown die Ziffer 2 aus -> Ziffer 2 wird gesetzt -> das Script überprüft, welche Zahl gewählt wurde, findet die 2 -> die 2 wird als Variable geschrieben
Davon habe ich jeweils 4 hintereinander gestellt, um vierstellige Variablen über ein Formular definieren zu können. Diese Methode ist sicherlich relativ ungeschickt, aber sie hat zumindest für meinen Verwendungsbereich Sinn gemacht und erleichtert mir das Erstellen bestimmter Inhalte. (Ich verwende sie auf meiner Seite für sog. "Spieleübersichten" - > http://www.frightening.de/?q=content_videospieluebersichten_condemned_cr...)
Fragst du nach, weil du ähnliche Möglichkeiten gesucht hast?
------
remember the wh[!]spering
remember the wh[!]spering