Ich bin in PHP so gut wie Du in einem Jahr nachdem Du regelmäßig modx nutzt ;-)
Snippet "portfolio":
<?php
/***
* Portfolio Snippet 0.1.
* Usage Copy this code in a new snippet "portfolio" and put [!portfolio!] in your document
* more explanation to come....
*
***/
$ordner_id = $modx->documentIdentifier;
$dir = 'assets/snippets/portfolio'; //Directory for galleries
$first=true;
$output.='<ul id="portfolio">';
$gallerydir=opendir($dir.'/'.$ordner_id);
while (true == ($file = readdir($gallerydir)))
{
if ((substr(strtolower($file), -3)=="jpg") or (substr(strtolower($file), -3)=="gif") or (substr(strtolower($file), -3)=="png")) //look for correct image types
{
$output.='<li>'; // listenstart
$output_link_anfang='';
$output_link_ende='';
if (strpos($file,'_')) //wenn _ vorkommt soll verlinkt werden
{
$bild_id_start = strpos($file,'_')+1;
$link_id = substr(strtolower($file),$bild_id_start,-4);
$output_link_anfang = '<a href="[~'.$link_id.'~]">';
$output_link_ende = '</a>';
}
$output.=$output_link_anfang.'<img src="'.$dir.'/'.$ordner_id.'/'.$file.'" alt="portfoliobild'.$file.'" />'.$output_link_ende.'</li>';
}
$output.="\n";
}
$output.='</ul>';
return $output;
?>
Nutzung: Lege einen Ordner /assets/snippets/portfolio an. Dort hinein kommt für jede Dokumenten-ID, in der ein Portfolio angezeigt werden soll, ein Ordner mit Bildern, die angezeigt werden sollen mit dem Namen der ID:
snippets/
portfolio/
/23
/BILDeins.jpg
/haus.jpg
/katze_13.jpg <- verlinkt auf Doc 13
/34
/BILDeins.jpg
/haus.jpg
/katze_13.jpg <- verlinkt auf Doc 13
/45
/BILDeins.jpg
/haus.jpg
/katze_13.jpg <- verlinkt auf Doc 13
wäre zum Beispiel ein Portfolio für die Seiten 23,34,45. Also in den jeweiligen Dokumenten ein [!portfolio!] rein und fertig.
Da Du zwei verschiedene Galerien brauchst (mit und ohne Verlinkung), habe ich das gleich mal universell gebaut ;-) Das heißt, soll ein Bild verlinkt werden muss es folgendermaßen benamt werden: BILDBEISPIEL_33.jpg, wobei 33 dann die Link-ID ist. Habe es jetzt mal nur für interne DOCs gemacht, könnte man auch mit externen Links machen, aber alles zu seiner Zeit. Sollen einfach nur Bilder angezeigt werden, einfach den Dateinamen ohne "_" vergeben (wichtig: "_" darf nur vorkommen wenn verlinkt werden soll).
Soweit mein Teil. Jetzt müsstest Du zur Vollendung des Snippets mir das fertige Ding präsentieren wenn es geht und mal hier die Scripts anhängen (JS was auch immer), die dafür nötig sind. Dann könnte man das Ding universell als Paket zum Download anbieten ;-)