[gelöst]Titel der Node Option Premium mit Icon markieren
am 26.01.2014 - 16:25 Uhr in
Hallo und einen schönen Sonntagabend,
mit dem Modul Node Option Premium kann ich sämtliche Inhaltstypen über die Rolle Premium so schützen, dass man nur den Teaser lesen kann, wenn man diese Rolle nicht inne hat. Das funktioniert prima.
Doch ich möchte die User natürlich nicht ägern, indem Sie immer erst beim Aufruf aus einer Liste merken, dass sie keinen Zugriff bekommen.
Offenbar gab es für Drupal 6 noch eine Ausgabe unterhalb des jeweiligen betroffenen Teasers für die Listenansicht.
Ein Icon hätten mir da besser gefallen. Ähnlich wie ich es eben bei akademie.de sah. (offene und geschlossen Vorhängeschlösser)
Sehe ich das wirklich richtig, dass ich dazu das Flag-Modul brauche?
Mir erscheint das so mächtig. In den vergangenen Monaten habe ich mehrere Versuche unternommen, aber ich bin nicht richtig durchgestiegen und hatte es dann doch wieder deinstalliert.
Freundliche Grüße
Kurbelursel
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich denke nicht, daß Du das
am 26.01.2014 - 16:42 Uhr
Ich denke nicht, daß Du das Flag-Modul dazu brauchst. Da ist eigentlich nur dann nötig, wenn der User irgend etwas selbst markieren können soll.
Du könntest einfach ein Boolean-Feld im Datentyp unterbringen und anhaken, wenn dieser Datensatz Premium Kontent ist. Sonst ist es von der Anzeige ausgeschlossen. In der View, über die Du die Liste generierst, gibst Du dieses Feld dann als Icon aus. Arbeitet die View aber nicht mit Feldern, mußt Du in der entsprechenden node--typ.tpl.php beim Teaser das Feld abfragen und dann Dein gewünschtes Icon ausgeben.
Besser wäre es, das in der template.php im Theme in einer Preprozess-Funktion vorzubereiten, denn dort kommst Du einfacher an den Node-Inhalt. Dort könntest Du Dir eine Flag (= true/false Variable) setzen, die Du in der node--typ.tpl.php einfach abfragen kannst.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Zwischenmeldung zum Wert
am 27.01.2014 - 14:08 Uhr
Hallo Werner,
danke für die superschnelle Antwort. Ist viele Jahre her, dass ich mich mit Codes befasst habe.
Du könntest einfach ein Boolean-Feld im Datentyp unterbringen und anhaken, wenn dieser Datensatz Premium Kontent ist.
Der Wert existiert bereits als Status. Er müßte nur noch automatisiert abgefragt und ausgegeben werden.
Ähnlich dem Modul external Link, nur mit einem anderen Symbol und einer anderen Abfrage. Und genau die, gelingt es mir nicht, zu fassen - auch in der PHP-Datenbank suche ich noch ...
Viele Grüße
Kurbelursel
Hallo,das Modul stellt Dir
am 27.01.2014 - 14:47 Uhr
Hallo,
das Modul stellt Dir eine zusätzliche Eigenschaft $node->premium zur Verfügung, damit ist eigentlich schon 'geflagt'.
Mir ist jetzt leider nicht ganz klar, was letztendlich ausgegeben werden soll. Aber vielleicht reicht es Dir den Nodes eihne zusätzliche css-Klasse mitzugeben, um das Icon dann per CSS einzubinden.
Die Lösung dafür wäre, in Deiner template.php folgenden Code miteinzubeziehen:
function YOURTHEME_preprocess_node(&$vars) {
$node = $vars['node'];
if ($node->premium == true){
$vars['classes_array'][] = 'node-premium';
}
}
Andere Lösungen kann man davon ableiten.
Gruß
Christian
Don't code today what you can't debug tomorrow
Ariya Hidayat
die dev-Version ist diesbezüglich nachgebessert für Drupal 7
am 27.01.2014 - 15:02 Uhr
Hallo Christian,
Inzwischen habe ich nach Backup-Sicherung etc. gewagt, die reguläre Version des Moduls Node Option Premium gegen die dev-Version auszutauschen.
Nun habe ich eine Ausgabe im Teaser und damit kann ich arbeiten.
Nochmals vielen Dank allerseits
und einen lieben Gruß
Kurbelursel