Page 1 of 1
[GELÖST] bestimmtes bild auf bestimmter seite
Posted: Mon Feb 11, 2008 10:24 pm
by antiheld2000
hi,
ich frage mich, wie ich jeder seite ein bestimmtes bild zu ordnen kann. ich meine, ich möchte in einem ordner 10 bilder hinterlegen und auf seite 1 soll bild 1 aus dem ordner erscheinen auf seite 2 bild 2 und so weiter. oder aber, noch besser, seite abx soll bild abx.jpg enthalten und seite hgi soll bild hgi.jpg enthalten. versteht man was ich meine?
dank und gruss
anti
Re: bestimmtes bild auf bestimmter seite
Posted: Mon Feb 11, 2008 11:57 pm
by NaN
Dürfte nicht so schwer sein.
Das Seitenalias lässt sich ganz einfach via SMARTY ansteuern.
Lass Dir mal mit {get_template_vars} die Templatevariablen anzeigen. Dort dürfte sowas wie page_alias drin stehen. (Bin mir grad nicht sicher wie es genau heißt. Könnte auch page_name sein.)
Im Inhalt (oder Template) der Seite schreibst Du dann nur .
Und die Bilder speicherst Du dann im gewünschten Ordner jeweils unter dem Namen des Seitenalias.
Re: bestimmtes bild auf bestimmter seite
Posted: Tue Feb 12, 2008 8:05 am
by LeisureLarry
Wenn Dir ein einfacher Austausch der Bilder reicht, würde ich die Lösung von NaN benutzen. Wenn Du hingegen Einfluss auf komplette Tags benötigst, kannst Du ja mal mein benutzerdefiniertes Tag ausprobieren:
Code: Select all
global $gCms;
$pageinfo =& $gCms->variables['pageinfo'];
$page_content_id = $pageinfo->content_id;
$page_content_alias = $pageinfo->content_alias;
$page_content_menutext = $pageinfo->content_menutext;
$content_id_hierarchy = $pageinfo->content_id_hierarchy;
$globalContentOperations =& $gCms->GetGlobalContentOperations();
if ($globalContentOperations->CheckExistingHtmlBlobName("bild_" . $page_content_menutext)) {
$blobName = "bild_" . $page_content_menutext;
} else {
$hm =& $gCms->GetHierarchyManager();
$hierarchy = explode('.', $content_id_hierarchy);
$parent_content_id = $hierarchy[0];
$parnode =& $hm->getNodeById($parent_content_id);
$parcontent =& $parnode->GetContent();
if ($globalContentOperations->CheckExistingHtmlBlobName("bild_" . $parcontent->mMenuText)) {
$blobName = "bild_" . $parcontent->mMenuText;
} else {
$blobName = "bild_startseite";
}
}
$globalContent =& $globalContentOperations->LoadHtmlBlobByName($blobName);
$headerContent = $globalContent->content;
$headerContent = str_replace('<p>', '', $headerContent);
$headerContent = str_replace('</p>', '', $headerContent);
print $headerContent;
Zur Benutzung halt noch dieses Tag in Deinem Template einbinden, also mittels des festgelegten Namens in geschweiften Klammern und für jeden Menüpunkt, der ein neues Bild erhalten soll, einen globalen Contentblock mit dem Namen bild_menüpunkt anlegen. Für die Startseite ist der Name bild_startseite.
Re: bestimmtes bild auf bestimmter seite
Posted: Tue Feb 12, 2008 9:09 am
by antiheld2000
erstmal vielen dank für die denkanstösse. ich bin nun noch einmal ein wenig in mich gegangen und zu folgendem schluss gekommen. es müsste immer eine css klasse umgeschrieben schrieben werden. ich bin nun recht neu im cmsms und weiss nicht genau wie ich das umsetzen müsste ich versuche mal einen ansatz zu schreiben. wäre klasse, wenn mir jemand noch helfen kann, das zu "taggen"
Code: Select all
<?
echo "<style> \n";
echo ".additional_navi { \n";
echo "background:url("
# page-alias ermitteln
$page_alias
$image_nach_alias = "images/".$page_alias.".jpg";
if (is_file($image_nach_alias)) {
echo $image_nach_alias;
} else {
# fallback bild
echo "images/fallback.jpg";
}
echo ") no-repeat; \n";
echo "} \n";
echo "</style> \n";
?>
Re: bestimmtes bild auf bestimmter seite
Posted: Tue Feb 12, 2008 12:28 pm
by LeisureLarry
So lange der Code im Head Deines Templates eingebunden wird, denke ich mal, daß der Anstoß so OK ist.
Code: Select all
global $gCms;
$pageinfo =& $gCms->variables['pageinfo'];
$page_content_alias = $pageinfo->content_alias;
Den Code am Anfang anfügen, um den Alias zu ermitteln.
Re: bestimmtes bild auf bestimmter seite
Posted: Tue Feb 12, 2008 1:15 pm
by antiheld2000
Code: Select all
global $gCms;
$pageinfo =& $gCms->variables['pageinfo'];
$page_content_alias = $pageinfo->content_alias;
$image_nach_alias = "images/visuals/".$page_content_alias.".jpg";
echo "<!-- ".$image_nach_alias." -->";
if (!is_file($image_nach_alias)) {
$image_nach_alias = "images/visuals/fallback.jpg";
}
echo '
<style type="text/css">
<!--
div#additional_navi { background:url('.$image_nach_alias.'); }
-->
</style>
';