Feste Position von ausgewähltem Teaser auf frontseite oder Views-Liste
am 19.04.2010 - 19:59 Uhr in
Hallo,
vielleicht hat hier jemand einen Tipp für mich:
ich möchte gerne eine Listenansicht eines bestimmten Inhaltstyps erstellen. Ich bin noch frei halbwegs frei in der Entscheidung, ob ich die als Views oder frontpage erstelle.
Nun kommt jeden Tag minestens ein neuer Beitrag zu der Liste dazu (oben, da die Liste nach Datum sortiert absteigend erstellt werden soll).
Nun möchte ich, dass ein ausgewählter Beitrag immer an dritter Stelle steht (ein anderer u.U. an 7 Stelle). Dieser Beitrag könnte aus einem eingenen Inhaltstyp kommen (Tipp). Hat jemand eine Idee wie ich das Lösen kann, ohne ältere Beiträge noch mal anfassen zu müssen.
Eine Möglichkeit wäre ja die Sortierung nach Datum und dann das setzen von "sticky" für die jeweils 2 neuesten Nachrichten und den Info-Beitrag. Dann müsste ich aber jedesmal den "sticky" für die jeweils nach unten rutschenden Beiträge wieder zu Fuß entfernen, ...
Hat da jemand eine bessere Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Bei dieser sehr speziellen
am 19.04.2010 - 21:50 Uhr
Bei dieser sehr speziellen Konstellation fällt mir nur Programmieren ein. Nimm Views und füge in der template.php-Datei Deines Themes eine Preprocess-Function für den View ein. Da kannst Du den Resultat-Array modifizieren bis es passt.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
erledigt
am 20.04.2010 - 13:30 Uhr
Hallo Werner,
Danke für den Tipp - der hat mir bei derr Suche deutlich weitergeholfen.
Ich habe jetzt die Lösung, zwar nicht über die template.php aber über einen node.tpl.php-Eintrag.
Ich habe einen Block angelegt, der die gewünscht Info enthält (ist bei mir der erste Block mit der ID 1).
Zusätzlich habe ich einen Views mit node-Teaser-Auflistung erstellt, der den Pfad /news besitzt.
Und folgendes kommt ganz an den Anfang der node.tpl.php
<?php if ((arg(0) == 'news') && ($id == 2)): ?>
<?php $block = module_invoke('block', 'block', 'view', '1'); ?>
<?php print $block['content']; ?>
<?php endif;?>
Dies fügt den Block vor dem zweiten Teaser ein.