Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 31. Oktober 2013 11:50
- rednose
- probiert CMS/ms aus
- Registriert: 28. März 2011
- Beiträge: 63
[GELÖST] section image
ich brauche für eine Seite bei jeder Parent im menu ein eigenes Bild, welche die zugehörige Unterseiten dann auch automatisch haben.
Ich weiss, ich kann dass auch in ein global block erreichen mit eine if abfrage. ( wäre mein notfall lösung)
Einfacher für der Kunde wäre allerdings das gebrauch vom plugin sectionimage, wo mann nur ein Bild in ein Verzeichnis muss hochladen, mit der gleiche Name als der alias vom Parent.
Nun bekomme ich das plugin aber leider nicht ganz zum laufen. Es steht allerdings bei der letzte Version, es war für 1.10.x optimiert und ich habe 1.11.9
hier folgt erst mal der code vom plugin
function smarty_cms_function_sectionimage($params, &$smarty)
{
$db = cmsms()->GetDb();
$levels = isset($params["levels"]) ? $params["levels"] : 1 ;
$imgpath = isset($params["image_path"]) ? $params["image_path"] : '/uploads/images' ;
$extension = isset($params["extension"]) ? $params["extension"] : 'jpg' ;
$byname = isset($params["byname"]) ? $params["byname"] : 1 ;
$lowercase = isset($params["lowercase"]) ? $params["lowercase"] : 1 ;
$getdim = isset($params["get_dimensions"]) ? $params["get_dimensions"] : 0 ;
$default_image = isset($params["default_image"]) ? $params["default_image"] : '' ;
$url_only = isset($params["url_only"]) ? true : false ;
// figure out the details of the current page and where it fits in
// the content hierarchy
$curHierarchy = cmsms()->variables['pageinfo']->content_hierarchy.'.';
$theLevels = explode (".",$curHierarchy);
$imSpec = $imgpath . "/";
$depth = substr_count($curHierarchy,'.');
if ($levels < $depth) {
$depth = $levels;
}
if ($byname) {
$hierCode = "";
for ($j=0;$j<$depth;$j++) {
$hierCode .= substr("00000",0,5-strlen($theLevels[$j])) . $theLevels[$j] . ".";
}
$hierCode = rtrim($hierCode,".");
$query = "SELECT content_alias, content_name FROM " . cms_db_prefix(). "content WHERE hierarchy=?";
$row = $db->GetRow($query, array($hierCode));
if ($row) {
if ($lowercase) {
$imSpec .= strtolower($row["content_alias"]). ".";
} else {
$imSpec .= $row["content_alias"]. ".";
$imText = $row["content_name"];
}
}
} else {
for ($j=0;$j<$depth;$j++) {
$imSpec .= $theLevels[$j] . ".";
}
}
if(!file_exists($imSpec.$extension)) {
$default_image = explode('.',$default_image);
$imSpec = $imgpath . "/" . $default_image[0] . ".";
}
if($getdim) {
list($imWidth,$imHeight) = getimagesize($imSpec.$extension);
$imDimensions = " width=\"$imWidth\" height=\"$imHeight\"";
}
if($url_only) {
return $imSpec.$extension;
}
return "<img src=\"${imSpec}${extension}\" alt=\"${imText}\" title=\"${imText}\"${imDimensions} />";
}Im Template: {sectionimage default_image="header.jpg" image_path="/uploads/images/layout"}
Mein default image stellt er da, aber ein image im gleichen Verzeichnis mit genau der name als ein alias funktioniert nicht.
Meine leise Hoffung ist, dass einer vielleicht auf Anhieb sieht, wieso der Code hieroben vielleicht nicht mehr ganz wirkt.
es liabes gruesli aus der schweiz
Offline
#2 31. Oktober 2013 12:36
- RafaelCzernek
- probiert CMS/ms aus
- Registriert: 20. November 2012
- Beiträge: 47
Re: [GELÖST] section image
Mal eine andere Idee!? Das ist doch viel zu kompliziert für den Kunden.
So wie ich das verstehe, willst du im Menü, sofern diese "parent" ist ein Bild ausgeben, richtig? Dazu habe ich folgenden Ansatz für dich. Erstell doch einfach in deinem Template einen neuen Inhalts-Block: {content_image block="menu-parent" label="Menü Aktiv" urlonly="true" [...]}. Wenn du das dann noch mit dem Modul GBFilePicker machst, ist das noch einfacher für den Kunden mit dem hochladen.
Dann holst du dir noch das Modul ToolBox und gibst folgendes in deinem Menü-Template ein z. B.:
[...]
{elseif $node->children_exist == true and $node->depth < $number_of_levels and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent">
<a class="parent" href="{$node->url}">
<img src="{tbtools::getPageContent('{$node->alias}','menu-parent','bild')}{eval var=$bild}" />
{$node->menutext}
</a>
[...]
Ich hoffe das ist soweit verständlich, ansonsten Helfe ich dir gerne innerhalb deines System.
Gruß Rafi
Offline
#3 31. Oktober 2013 14:05
- rednose
- probiert CMS/ms aus
- Registriert: 28. März 2011
- Beiträge: 63
Re: [GELÖST] section image
ich habe mich leider nicht genug klar ausgedruckt. Es geht nicht um ein Bild im menu selber. Aber alle siblings sollen das gleiche headerbild haben wie der parent.
Nun finde ich aber der Ansazt mit der smarty und toolbox sehr sympatisch und habe schon angefangen damit weiter zu arbeiten.
ich hadere allerdings noch ein wenig mit der Syntax:
{content_image block="menu-parent" label="Bild Menü Aktiv" dir='images/layout' assign="bild"}
{$bild}
{tbtools::getParentAlias("","getParent")}
{if !empty($getParent)}{tbtools::getPageContent('{$getParent}','menu-parent','bild2')}{$bild2}{/if}
teil 1 ist ja io, der parent zeigt ein Bild
Teil 2, wäre mein Idee, wenn ich ein Parent habe, dann hole mir der inhalt von block menu-parent.
Meine Syntax funktioniert noch nicht, ich vermute es hat mir der $alias zu tun {$getParent}?
Offline
#4 31. Oktober 2013 14:23
- nockenfell
- Moderator

- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.935
- Webseite
Re: [GELÖST] section image
Leider habe ich gerade keine Zeit eine schlaue Demo zu machen. Mit GBFilepicker und ToolBox müsste sich sowas sehr gut umsetzen lassen. So kann auch das Bild einfach gewählt werden.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#5 31. Oktober 2013 21:24
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: [GELÖST] section image
Moinsen!
Hab grad leider keine Zeit deinen Code zu analysieren, aber ich kann dir meinen geben, der funzt mit 1.11.9:
[== php ==]
function smarty_cms_function_sectionimage2($params, &$smarty)
{
global $gCms;
$depth = isset($params["depth"]) ? $params["depth"] : 3 ;
$url = isset($params["url"]) ? $params["url"] : false ;
$divid = isset($params["divid"]) ? $params["divid"] : 'header' ;
$dir = isset($params["dir"]) ? $params["dir"] : '/uploads/images/design/bg/' ;
$filename = $dir.'default.jpg';
$servpath = $gCms->config['root_path'];
$classes = array();
$manager =& cmsms()->GetHierarchyManager();
$thisPage = cmsms()->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
while( isset($currentNode) && $currentNode->getLevel() >= 0 )
{
$currentContent =& $currentNode->getContent();
array_unshift($classes, $currentContent->Alias());
$currentNode =& $currentNode->getParentNode();
}
for ($i = $depth; $i >= 0; $i--) {
if ($classes[$i]){
if (file_exists($servpath.$dir.$classes[$i].'.jpg')) {
$filename = $dir.$classes[$i].'.jpg';
break;
}
}
}
if (!$url) {
echo "<style type='text/css'>div#$divid {background-image: url($filename);}</style>";
}
else
{
echo $filename;
}
}Ich hab das etwas umgebaut - gibt auf wunsch das .jpg aus, ansonsten einen style den man per parameter an ein div binden kann.
_______________________________________
What does this plugin do?
It lets you change background images per page/level.
How do you use it?
Put following code into a template/gcb/page: {sectionimage2}
Optional Parameters
(otional) dir - This is the directory where the images are located. default is /uploads/images/design/bg/
(optional) depth - how many levels should be included. default is 3
(optional) url - output only the image URL
(optional) divid - the div ID where to change the background. default is "header"
___________________________________________________________
Aber das sollte für deine Fehlersuche unerheblich sein ...
hth,
Alex
Beitrag geändert von faglork (31. Oktober 2013 21:30)
Offline
#6 31. Oktober 2013 21:35
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: [GELÖST] section image
Mal eine andere Idee!? Das ist doch viel zu kompliziert für den Kunden.
Na, wieviel einfacher solls denn noch werden? Er braucht doch nur ein Bild mit dem Alias der Seite als Dateinamen in ein Verzeichnis hochladen. Und ein default Bild gibts auch.
Das haben bei mir bisher *alle* Kunden kapiert, ohne Ausnahme ...
Servus,
Alex
Offline
#7 04. November 2013 08:46
- RafaelCzernek
- probiert CMS/ms aus
- Registriert: 20. November 2012
- Beiträge: 47
Re: [GELÖST] section image
Moinsen,
meine Kunden haben das irgendwie nicht verstanden und deswegen habe ich das so gelöst. 
Offline
#8 04. November 2013 09:26
- rednose
- probiert CMS/ms aus
- Registriert: 28. März 2011
- Beiträge: 63
Re: [GELÖST] section image
Vielen Dank Alex, dass ich deine Code haben durfte. Es funktioniert wunderbar.
Vor allem mit viele Unterseiten, ist das wirklich ein praktisches plugin.
Habe es sogar etwas anpassen können, so dass ich ein Bild ausgebe, statt ein background.
Tolle Wochenstart 
Grüesli
Gabrielle
Offline
#9 04. November 2013 10:18
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: [GELÖST] section image
Habe es sogar etwas anpassen können, so dass ich ein Bild ausgebe, statt ein background.
url=true hätte auch gereicht ...
BTW, sehe grade dass das ne quick&dirty Version ist ... mit kleinen Änderungen kann man ja ein beliebiges Element angeben, dessen Hintergrund dann ausgetauscht wird ... zb. h2 etc. etc.
Servus,
Alex
Beitrag geändert von faglork (04. November 2013 10:25)
Offline
Seiten: 1