SiteMenu-Modul: title UND teaser sowie Link ändern
Eingetragen von Anonymous (0)
am 21.06.2005 - 16:10 Uhr in
am 21.06.2005 - 16:10 Uhr in
Hallo,
es ist viel leichter, ein Problem in der Muttersprache zu beschreiben. Danke, DrupalCenter! Hier mein Anliegen (ich bin php-Neuling):
Ich benutze das SiteMenu-Modul, um Pilzfotos in einer Taxonomy darzustellen. Es soll aber außer dem $node->title zusätzlich noch der $node->teaser angezeigt werden. Mit n.teaser lässt es sich aus der Datenbank auslesen, aber es wird immer nur ein Objekt angezeigt.
Wenn das mal geht, dann möchte ich, dass der Link nicht auf den node zeigt, sondern auf die Datei unter files/images. Das liegt in files/filepath. Wie kann ich den momentanen node-Link gegen diesen ersetzen?
Danke für die Hilfe im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben
Versuch´s vorab mal
am 21.06.2005 - 16:49 Uhr
Versuch´s vorab mal folgendermaßen.
In der Datei sitemenu.module die Zeile 195 durch folgendes austauschen.
$link.= l($node->title, "node/$node->nid", array ("title" => $detail));
$link.= '<p>'.$node->teaser.'</p>';
EDIT:
Was genau möchtest du denn realisieren? Hast du schon mal das Photo Album Modul inkl. Folksonomy Modul getestet? Würde evtl. deiner Sache "von Haus aus" nahe kommen...
ich kann mir unter Pilzfotos
am 21.06.2005 - 18:54 Uhr
ich kann mir unter Pilzfotos in Taxonomy auch nicht wirklich etwas vorstellen - poste doch einmal einen Link zu der Seite damit man sich dies ansehen kann ;-)
mfg holger
Drupal Experience http://cms.stnetwork.de . . . Mein Blog http://www.ebec.net
Beste Grüße, Holger
---
IT-News und IT-Jobs auf w3Projekt.com
der Teaser funktiniert fast
am 21.06.2005 - 20:49 Uhr
Danke Björn, Danke Holger, der Teaser funktiniert fast. Ich habe den Code gleich eingebaut. Leider werden nun alle Pilzfotos in allen Taxonomy-Terms angezeigt. Das kommt einer Endlos-Schleife gleich, die Seite hört nimmermehr auf zu laden. Ich hab die anzuzeigenden nodes vorsichtshalber auf 2 gesetzt, damit die Idee sichtbar wird: http://www.pilzverein.de/pilzler/?q=galerie
Dieser Link erklärt vielleicht meine Bevorzugung von Image Gallery + Taxonomy + SiteMenu anstatt des Album-Moduls. Die einzelnen Bilder sollen auf derselben Seite wie die Links erscheinen, damit man nicht immer zurücknavigieren muss. Unter /node/35 z.B. habe ich dies schon realisiert. (Diese Website-Version ist noch nicht öffentlich, weil der Hoster mit der htaccess-Datei überfordert ist, aber das ist ein anderes Thema).
Die ursprüngliche Version in statischem HTML + Javascript ist hier sichtbar: http://www.pilzverein.de/galerie/1galerie.htm - Nicht-Drupal-Version.
Vielen Dank schon mal.
Hallo Polly,
am 21.06.2005 - 22:05 Uhr
Hallo Polly,
ok, jetzt habe ich es verstanden. Übrigens sehr gute Lösung, das mit dem Java-Script!
Die Anzahl der Terms dürfte sich jedoch durch die Codeänderung nicht verändern, ist mir im Moment ziemlich unerklärlich...
Ich werde mir das ganze morgen nochmal ansehen, evtl. komme ich ja schnell an eine Lösung.
EDIT:
Wieso machst du dir aus der Sitemap nicht einfach einen Block auf der linken Seite, so würde das Zurücknavigieren sowie das Java-Script wegfallen.
Hallo Polly,
am 22.06.2005 - 06:44 Uhr
Hallo Polly,
mir ist gerade eingefallen das gape (der u.a. den sehr guten Taxonomy Artikel geschrieben hat), vor ein paar Wochen folgende Webseite mit Drupal erstellt hat:
www.daxarchitektur.ch
Dort gibt es ein "Photoalbum", dessen Funktionalität deinen Wünschen sehr Nahe kommt. Evlt. verrät gape dir/uns wie er es umgesetzt hat...
SiteMenu als Block
am 22.06.2005 - 15:41 Uhr
Hallo Björn,
das SiteMenu als Block habe ich auch schon ausprobiert. Standardmäßig werden nur die Taxonomy-Ebenen angezeigt, keine Terms. D. h., dass auch hier Zusätze vonnöten wären.
Das Architekturbeispiel finde ich sehr gelungen, es wär eine Möglichkeit. Leider kann ich an gape keine Nachricht schicken, da das contact-Modul nicht vorhanden scheint.
Meine Javascript-Lösung ist nicht optimal, da die Bildabmessungen sowie Fotografennamen per regexp aus dem image-Dateinamen ausgelesen werden, die Dateinamen enthalten alle einen Zusatz. Das lässt sich mit php ja umgehen.
mfG
Das contact.modul ist
am 22.06.2005 - 16:06 Uhr
Hallo Polly,
das contact.modul ist aktiviert, derzeit aber noch mit englischem Text...
Grüße
Björn
Weitere Lösungsansätze
am 25.06.2005 - 09:38 Uhr
Hallo Polly,
Melde mich jetzt auch mal zum Thema :) Soweit ich gesehen habe, hast du das mit dem direkten Verlinken der Fotos geschafft (node/35), oder brauchst du da noch Hilfe?
h2. SiteMenu als Block
Das Anzeigen von einzelnen Nodes im Sitemenu-Block lässt sich durch folgende änderung im @sitemenu.module@ erreichen:
<?php
// Zeile 165 in sitemenu.module
// zum if/else-statement $mode == 'block' hinzufügen
function sitemenu_inject_nodes($tree, $type = NULL, $mode = 'page') {
$tree_node = $tree;
if ( $mode == 'page' || $mode == 'block' ) {
?>
Da es ja so viele Pilzarten gibt, wäre es wahrscheinlich unpraktisch, die ganze SiteMap als Block darstellen zu lassen, darum wäre eine Idee dann, die Liste mit CSS zu vereinfachen, wie z.B. auf "alistapart.com":http://www.alistapart.com/articles/horizdropdowns/ beschrieben.
Der Nachteil dieser Methode ist natürlich, dass man dann immer wieder durch eine längere Liste navigieren muss, um verschiedene Arten anzeigen zu lassen...
Alternativ kannst du natürlich versuchen, einen selbstgebastelten Block zu bauen -- das ist ganz einfach und es gibt auf drupal.org noch "weitere Beispiele":http://drupal.org/node/21867. Der Block auf besagter Architekturseite sieht z.B. so aus:
<?php
/**
* Zeigt einen Block mit Links zu Projekten. Sind die Projekte noch nicht
* veröffentlicht, werden nur für authorisierte Benutzer Links angezeigt,
* damit diese den Beitrag editieren können.
*/
function show_projects($type) {
// $type: Inhaltsart nach der gesucht werden soll. Hier flexinode-1,
// da es der erste eingetragene Flexinodeinhaltstyp ist.
$result = db_query("SELECT n.created, n.title, n.nid, n.status
FROM {node} n
WHERE n.type = '$type'
ORDER BY n.created
ASC");
while ($node = db_fetch_object($result)) {
// Nachfolgend wird geschaut, ob ein suchmaschinenfreundlicher Pfad
// vorhanden ist.
$path = "node/$node->nid";
$alias = drupal_get_path_alias($path);
if ($alias != $path) {
$node->path = $alias;
}
if ($node->status == 1) {
// Ist das Projekt veröffentlicht, können es alle betrachten
$output[] = l($node->title, $path);
} else {
if (user_access('administer nodes')) {
// Nur Admins können das unveröffentlichte Projekt bearbeiten
$output[] = l($node->title, $path);
} else {
// Das Projekt existiert bereits, hat aber noch keine Bilder
$output[] = $node->title;
}
}
}
// Es wird eine Liste der gefundenen Objekte zurückgegeben
return theme_item_list($output);
}
// Erst hier wird die Funktion aufgerufen und deren Output ausgegeben.
print show_projects('flexinode-1');
?>
Das dumme ist jetzt nur, dass dieser Block nur eindimensional ist - damit kriegst du keine verschachtelte Liste hin - und das ist dann eher der schwierige Teil. Aber mit etwas Fantasie kannst du vielleich etwas aus Sitemenu und selbstgebautem zusammenbasteln :)
Oder vielleicht kannst du zwei Blocks machen, einer mit der gesamten Taxonomie in verschachtelter CSS Variante und einen zweiten mit den gerade Angezeigten Arten. Ja, wahrscheinlich gäbe es noch viele oders :)
h2. CSS
Eine Idee die ich auf der Sitemap noch hatte: die ellenlange Liste mit etwas CSS klarer Darstellen. Das ginge dann vielleicht so:
@ul { font-size: 2em; font-weight: bold; }@
@ul ul { font-size: 1.4em; margin-left: 1em; }@
@ul ul ul { font-size: 1em; }@
h2. Pfade
Eine weitere Idee: das Modul "Pathauto":http://drupal.org/node/17345 installieren und anweisen, alle Nodes mit einem Pfadalias zu versehen - das geht recht schnell und führt zu schönen Links wie "pilzverein.de/pilzler/agaricales/agaricaceae/verpa_bohemica".
Ich hoffe, ich habe nicht total an deiner ursprünglichen Frage vorbeigeschwatzt und es hat etwas geholfen :) Sonst einfach wieder Fragen!
Liebe Grüsse
Peter
Hallo und Danke an alle
am 03.07.2005 - 21:25 Uhr
Hallo und Danke an alle Helfer,
beim Anpassen des SiteMenu-Moduls habe ich wohl einige Zeilen zu viel gelöscht. Daher rührte der Fehler mit der Schleifenbildung. Dies ist jetzt behoben. Entschuldigung, dass ich Euch dadurch unnötiges Nachdenken verursacht habe.
Da die Galerie scheinbar auch für echte Drupal-Cracks ein etwas komplexes Thema ist, werde ich erst mal im stillen Kämmerlein die Anregungen von gape ausprobieren. Solange wird die Seite eben mit Node-Links angeboten.
An gape: CSS ist angepasst. Pathauto ist für die Seite momentan deaktiviert, weil die gesamte htaccess-Datei beim Hoster einen 500-Error produziert, nicht nur die rewrite-Funktion. Da mache ich schon seit Wochen mit ihm rum. Wenn ich mit dem Bilder einbinden per php nicht klarkomme, melde ich mich wieder.
Danke vorerst.
polly
funktioniert denn die basis-
am 03.07.2005 - 22:56 Uhr
funktioniert denn die basis- .htaccess ?
Falls nicht schau mal ob mod_rewrite auf deinem Webspace aktiv ist, ohne dies geht es nicht.
mfg holger
http://www.ebec.net ...
http://www.stnetwork.de ...
Beste Grüße, Holger
---
IT-News und IT-Jobs auf w3Projekt.com