Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 22. Mai 2012 16:55

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Hintergrundbild auf Basis des Seiten-Alias ändern?

hallo allerseits,

ist es möglich eine hintergrundgrafik im css auf basis des seiten-alias zu ändern.
zb für "home" ein anderes bild als für "profil" usw. (ohne dafür diverse templates und geänderte css anzulegen)
geht ja vermutlich mit smarty, ich weiss nur nicht wie.
so in der art:

if page-alias="home" {background-image: url(home.jpg)}
if page-alias="profil" {background-image: url(profil.jpg)}

stelle ich mir das vor.

ein kleines snippet wäre grossartig.

vielen dank schon im vorraus.
bd0

Offline

#2 22. Mai 2012 17:21

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 880

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

Ja.


http://www.cmsmadesimple.de/forum/viewtopic.php?id=2029

{if $page_alias == 'home'}

<div id="header" style="background: url(images/home.jpg) no-repeat;"></div>

{elseif $page_alias == 'profil'}

<div id="header" style="background: url(images/profil.jpg) no-repeat;"></div>
{/if}

Wenn jede Seite ein anderes Bild haben soll, wäre es so einfacher:

<div id="header" style="background: url(images/{$page_alias}.jpg) no-repeat;"></div>

Die Bildnamen müssten natürlich dem alias entsprechen.

Wenn es doch etwas komplexer werden sollte, empfehle ich das Modul CGSimpleSmarty, damit lassen sehr gut flexible Templates erzuegen..

Beitrag geändert von antibart (22. Mai 2012 17:40)

Offline

#3 22. Mai 2012 17:54

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

Warum nicht gleich sectionimage verwenden?

http://dev.cmsmadesimple.org/projects/sectionimage

und dann die Zeile

[== php ==]
echo "<img src=\"${imSpec}${extension}\" alt=\"${imText}\" title=\"${imText}\"${imDimensions} />";

durch

[== php ==]
echo "<style type='text/css'>div#header {background-image: url(${imSpec}${extension});}</style>";

o.ä. ersetzen.

Dann einfach im HEAD Bereich NACH dem stylesheet-aufruf ein  {sectionimage} reinschreiben.

Voila!

Zur Verwendung unbedingt mal in die Help-Sektion gucken, damit kann man einiges machen ... zb. ein default-image aufrufen wenn noch kein Bild vorhanden ist, verschiedene Level einstellen etc.

Servus,
Alex

Offline

#4 22. Mai 2012 19:10

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

super! vielen dank für eure beiträge ich denke damit komme ich jetzt weiter! sectionimage klingt als wäre das ne sehr gute sache.

1000 dank!

Offline

#5 22. Mai 2012 20:03

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

hallo,

da es sich im moment nur um drei sonderseiten dreht wollte ich vorerst mal nicht in den templates werkeln. daher hab ich mir folgendes überlegt.

ich habe ein udt erstellt "bgbildchanger" und rufe das dann direkt im css auf:

background: url([[root_url]]/pics/[[bgbildchanger]]) no-repeat scroll 50px 320px transparent;

das udt sieht so aus:

if ($page_alias == 'seiteA') {
$bgbild="irgendeinbild.jpg";
}
elseif ($page_alias == 'seiteB') {
$bgbild="einanderesbild.jpg";
}
elseif ($page_alias == 'seiteC') {
$bgbild="nocheinbild.jpg";
}

echo $bgbild;
echo "test";

im moment kommt im css nur background: url("http://www.domain.de/cmsms/pics/test") no-repeat scroll 50px 320px transparent; an. also test wird über echo ausgegeben, sprich das udt wird schon irgendwie aufgerufen, der gewünschte dateiname wird aber nicht ausgegeben.

kann man es prinzipiell auch so lösen? wo ist bei mir der fehler?

Offline

#6 22. Mai 2012 20:31

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

Dass du mit einem UDT eine zusätzliche (performance-lastige) Datenbank-Abfrage erzeugst, ist dir aber bewusst?!

Offline

#7 22. Mai 2012 21:43

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

naja, nicht so recht bewusst. wie ist das mit sectionimage. geht das weniger auf die performance? wieviel macht das denn aus? ist das spürbar?
was mich auch interessiert wie ist das eigentlich mit globalen inhaltssblöcken. kann man die bedenkenlos nutzen oder geht das auch stark auf die performance? bzw wie stark im vergleich zu direkt im template eingebetten elementen. GCB sind halt recht praktisch um in mehreren templates ein identisches element zu platziern, bzw. muss man es nur einmal bearbeiten. ist das so gedacht oder geht das unnötig auf die leistung?

Beitrag geändert von bd0 (22. Mai 2012 21:44)

Offline

#8 23. Mai 2012 22:36

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

Ich wollte nur deinen Blick dafür schärfen, auch ein bißchen auf die Performance zu achten wink - und der UDT ist nicht wirklich erforderlich, da die bereits angebotenen Smarty-Lösungen genau diesen Zweck erfüllen. Ist halt einfach der geradere Weg ...

GCB werden auch aus der Datenbank abgerufen, aber die sind ja genau für den von dir geplanten Zweck gemacht.

Offline

#9 24. Mai 2012 09:34

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

kam nun endlich dazu sectionimage auszuprobieren, leider bricht cmsms dann an der stelle mit dem erstellen des html ab an der das {sectionimage} tag gesetzt wurde. es wird kein weiter code erzeugt, noch nichtmal etwas das von sectionimage kommen könnte.
habe an sectionimage nichts verändert. runtergeladen in den ordner "plugins" kopiert. es ist in der liste erweiterungen/tags zu finden. bei mir läuft cmsms 1.10.3.
ich probiere jetzt mal die version von antibart, das ist auch vollkommen ausreichend, wenns läuft wink

Offline

#10 24. Mai 2012 09:55

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

mit antibarts snippet lies es sich einfach umsetzen.
danke nochmals für diesen lösungsvorschlag!

Offline

#11 24. Mai 2012 13:31

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

sectionimage ist zu alt und funktioniert aufgrund der Änderungen in der CMSMS-API nicht mehr - müsste angepasst werden ...

Offline

#12 24. Mai 2012 14:41

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

cyberman schrieb:

sectionimage ist zu alt und funktioniert aufgrund der Änderungen in der CMSMS-API nicht mehr - müsste angepasst werden ...

kurze frage:

durch was ersetzt man
$gCms->variables['pageinfo']->content_hierarchy
und
$gCms->config['root_path'];

Ansonsten hätte ich ne angepasste Version ...

Alex

Beitrag geändert von faglork (24. Mai 2012 14:44)

Offline

#13 24. Mai 2012 15:20

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

$gCms->variables['pageinfo']->content_hierarchy

Wird zu

cms_utils::get_current_content()->Hierarchy()

oder

cmsms()->get_variable('content_obj')->Hierarchy()

$gCms->config['root_path'];

wird zu

$config = cmsms()->GetConfig();
 ... $config['root_path'] ...

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#14 25. Mai 2012 22:29

serialpark
probiert CMS/ms aus
Ort: Berlin
Registriert: 24. Januar 2012
Beiträge: 52

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

alternativ noch:

und dann im css

[== css ==]
#page_alias #header{
background: ... ;
}

Offline

#15 25. Mai 2012 09:08

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

serialpark schrieb:

alternativ noch:

und dann im css

[== css ==]
#page_alias #header{
background: ... ;
}

DAS ist es was ich an CMSMS so liebe. Diese oft genial einfachen Lösungen.

Servus,
Alex

Offline

#16 09. Juli 2012 18:38

sabsimplex
hat von CMS/ms gehört
Registriert: 09. Juli 2012
Beiträge: 6

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

moin,
ich versuche grad das Ganze nachzuvollziehen. Bin neu bei CMS, habe vorher etwas mehr mit Contao gewerkelt.

Also ich füge im Template dem body-tag id="{page_alias}" hinzu.
Ich habe  eine Seite erstellt mit dem Alias "start".
Im CSS spreche ich nun die Seite mit #page_alias.start {background-color:black;}
Das klappt allerdings nicht bei mir, die Seite über CSS anzusprechen. Wie lautet die Durchwahl im CSS zu der Seite mit dem Alias start?

Ich würde mich über Hilfe freuen.

Offline

#17 09. Juli 2012 19:29

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

sabsimplex schrieb:

Also ich füge im Template dem body-tag id="{page_alias}" hinzu.
Ich habe  eine Seite erstellt mit dem Alias "start".
Im CSS spreche ich nun die Seite mit #page_alias.start {background-color:black;}
Das klappt allerdings nicht bei mir, die Seite über CSS anzusprechen. Wie lautet die Durchwahl im CSS zu der Seite mit dem Alias start?

Na was gibt dir das HTML aus?

Damit ist die CSS Deklaration


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#18 10. Juli 2012 22:53

sabsimplex
hat von CMS/ms gehört
Registriert: 09. Juli 2012
Beiträge: 6

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

habs gelöst.
das problem war, ich habe mehrere seiten mit verschiedenen hintergründen.
habs nun im css durch body#namederseite gelöst.

Offline

#19 10. Juli 2012 00:35

mike-r
arbeitet mit CMS/ms
Registriert: 21. Dezember 2010
Beiträge: 898
Webseite

Re: Hintergrundbild auf Basis des Seiten-Alias ändern?

#namederseite ist nicht optimal, da da so Konstrukte bei rumkommen wie "impressum & kontakt". (falls ich richtig verstehe, dass Du nicht $page-alias verwendest)

Dein Fehler beim Page-alias ist/war, dass Dein Selektor nicht derselbe ist, wie das was Dein Smarty ausgibt. Siehe was nockenfell meint.
#page_alias.start matcht auf ein Element mit der Klasse "start", welches Kind des gleichzeitig* die ID und die Klasse "$page-alias" hat (falls ich dein start als page-alias richtig verstehe).
Das willst Du aber nicht. Du willst #start stylen und nix anderes.

*Was nebenbei - soweit ich weiss - nichtmal alle aktuellen Browser beherrschen würden.

Beitrag geändert von mike-r (10. Juli 2012 00:42)


Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz

Offline