Mit javascript auf eine bestimmte Kategorie triggern

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

Hallo zusammen,

Ist es generell möglich mit javascript (jquery) aus der Vorlage (Admin --> Vorlage) auf eine bestimmte Kategorie (z.B. Home) zu triggern um dort Inhalte ein- bzw. auszublenden und falls ja... wie?

Hintergund ist folgender:
Ich arbeite zur Zeit an einer Seite, sie mit pjax läuft. Hierbei handelt es sich im Hauptbereich um ein dreispaltiges Layout mit den Ersetzern

Code: Select all

{ LEFT } { CONTENT }  { RIGHT }
Pjax lädt ausschließlich den Contentbereich neu, jedoch ist es nun so, daß auf der Seite "Home" in der rechten Spalte ein anderer Inhalt erscheinen soll als auf den restlichen Unterseiten. Somit müßte auch der Bereich { RIGHT } neu geladen werden, jedoch ist das mit pjax nicht möglich da es nur einen Container neu laden kann.

Nun kam ich auf die Idee ein Javascript in den pjax Bereich einzubauen welches den Inhalt in der rechten Spalte { RIGHT } bei einem Klick auf die entsprechende Unterseite verändert, also den alten Inhalt aus- und den neuen Inhalt einblendet.
Jedoch müßte ich dazu explizit auf die entsprechende Kategorie triggern können damit das ganze nicht global über die ganze Seite abläuft.
Die Inhalte, die in der rechten Spalte ausgetauscht werden sollen kann ich mittels { SHOW_CONTENT:CP,id } aus einer versteckten Kategorie laden da dieser RT in der Vorlage gerendert wird.

In praktischer (Beispiel)Form hatte ich mir das ganze in etwa so vorgestellt:

Wenn Kategorie "Home" aktiv
rechte Spalte { SHOW_CONTENT:CP,124 }
andernfalls (alle anderen Unterseiten)
rechte Spalte { SHOW_CONTENT:CP,75 }
nameless1
Posts: 880
Joined: Sun 27. Apr 2008, 23:22

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by nameless1 »

das ist doch viel zu komplex gedacht. dann lädt pjax halt content und right jedes mal mit. du setzt es ja wegen eines gewünschten effekts ein nicht um minimal daten zu laden.
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

Da kann ich dir jetzt leider nicht ganz folgen. Laut Pjax-Doku kann Pjax nur EINEN Container neu laden, hier müßten es aber 2 sein. Es bringt auch nichts die beiden Container nochmals in einen Wrapper zu packen und pjax auf diesen Wrapper anzusetzen, habe ich schon versucht. Also wirds wohl keine andere Möglichkiet geben oder habe ich etwas übersehen?
Klar setze ich es wegen einem Effekt ein, der übrigens auch sehr gut ankam, aber ich wüßte nun nicht wie ich pjax dazu "überreden" könnte 2 Container neuzuladen.
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Old Boy »

Verwende doch für die beiden unterschiedlichen Inhalte einfach 2 zusätzliche CustomBlocks!

{RECHTS_1} und {RECHTS_2}

mit einem HTML Contentpart auf der Homepage schaltest du dann per <!--CSS: xxx --> Anweisung einfach die Sichtbarkeit der Container EIN und/oder AUS!
User avatar
santscho
Posts: 1442
Joined: Mon 2. Apr 2007, 08:56
Location: Schweiz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by santscho »

Oder mit Kategorie-CSS. Jede Kategorie kann eine CSS-Klasse zugewiesen werden. Dann mit css die Sichtbarkeit des Inhaltes steuern. Das geht 100%. Aufwand: 10 Minuten. Morgen habe ich am Abend Zeit um das hier schnell zu posten. Wenn Du interessiert bist.
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org
nameless1
Posts: 880
Joined: Sun 27. Apr 2008, 23:22

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by nameless1 »

Uwe367 wrote:Da kann ich dir jetzt leider nicht ganz folgen. Laut Pjax-Doku kann Pjax nur EINEN Container neu laden, hier müßten es aber 2 sein. Es bringt auch nichts die beiden Container nochmals in einen Wrapper zu packen und pjax auf diesen Wrapper anzusetzen, habe ich schon versucht. Also wirds wohl keine andere Möglichkiet geben oder habe ich etwas übersehen?
Klar setze ich es wegen einem Effekt ein, der übrigens auch sehr gut ankam, aber ich wüßte nun nicht wie ich pjax dazu "überreden" könnte 2 Container neuzuladen.
entscheidend ist ja letztlich was du austauschen lässt.

gehen wir mal vom folgenden fall aus
<wrapper>
- <header></header>
- <content></content>
- <right></right>
</wrapper>

du tauschst doch im moment mE nur den inhalt von content aus. also konkret
<wrapper>
- <header></header>
- <!--pjax_start-->
-- <content></content>
- <!--pjax_end-->
- <right></right>
</wrapper>

in dem moment wo wir aber einfach mehr von der seite austauschen lassen, also
<wrapper>
- <header></header>
- <!--pjax_start-->
-- <content></content>
-- <right></right>
- <!--pjax_end-->
</wrapper>
ist das problem doch gelöst.

nochmal anders aufgerollt. Warum setzt du pjax ein? um nur den header nicht neu laden zu lassen. das heißt theroetisch könnte alles andere onmouseclick neu geladen werden, nur der header nicht.

oder
Uwe367 wrote:jedoch ist das mit pjax nicht möglich da es nur einen Container neu laden kann.
entscheidend ist doch wie groß oder klein du diesen container definierst.
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

Erstmal danke für eure Lösungsvorschläge.

Das hier

Code: Select all

<wrapper>
- <header></header>
- <!--pjax_start-->
-- <content></content>
-- <right></right>
- <!--pjax_end-->
</wrapper>
habe ich bereits versucht und das funktioniert nicht. Warum?
Genau deswegen kann das nicht funktionieren:

Code: Select all

$(document).ready(function() {
	$(document).pjax('a', '#content'); // bind on a
});
Hier wird der Container definiert, in dem pjax den Content austauscht und davon kann man nur EINEN setzen. Setze ich hier 2 Container ein, z.B.

Code: Select all

$(document).ready(function() {
	$(document).pjax('a', '#content', '#right'); // bind on a
});
läuft die Seite so als wäre pjax nicht implementiert.
Von daher werden mir Customblocks und auch die CSS Klasse, die ich in der Kategorie angeben kann, nicht viel nutzen.

Und so wie ich das hier verstehe
https://github.com/defunkt/jquery-pjax/issues/124
ist das auch nur über Umwege möglich.

Könnte ich aber hier

Code: Select all

- <!--pjax_start-->
-- <content></content>
<!-- JS: ..... -->
<!--pjax_end-->
ein Script platzieren wie ich mir das, s.o., vorstelle, so sollte das kein Problem sein aber dafür müsste ich eben wissen wie ich auf die Kategorie triggern kann.

Das hier funktioniert ja auch einwandfrei damit der Seitentitel neu geladen wird.

Code: Select all

<!--pjax_start-->
<script>
$(document).ready(function () {
    $(document).attr("title", "pjax-test | {CATEGORY}");
	});
</script>
<!--PJAX_END//-->
Na ich probier mal weiter.
Trotzdem danke euch :)
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Oliver Georgi »

Off topic: Macht endlich Schluß mit

Code: Select all

$(document).ready(function(){
}); 
=
$(function(){
});
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
nameless1
Posts: 880
Joined: Sun 27. Apr 2008, 23:22

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by nameless1 »

Uwe367 wrote: Hier wird der Container definiert, in dem pjax den Content austauscht und davon kann man nur EINEN setzen. Setze ich hier 2 Container ein, z.B.
dann wrappst du halt deine beiden container. es hat einen grund das die von dir angestrebte lösung nicht existiert. logik löst alles.
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

nameless1 wrote: dann wrappst du halt deine beiden container.....
Okok.. ich hatte einen kleinen Denkfehler bei dem ganzen aber nun scheints zu klappen.
Ich hatte beim setzen des Wrappers vollkommen vergessen daß ich mit Bootstrap arbeite und den Wrapper entsprechend falsch positioniert.
Merci.
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

Allerdings würde es mit trotzdem interessieren obs einen solchen TAG, z.B. etwas wie { CATEGORYID,0 } wie in meinem Eingangsposting beschrieben, gibt.
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Oliver Georgi »

den gibt es immer — über frontend_render.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Mit javascript auf eine bestimmte Kategorie triggern

Post by Uwe367 »

Oliver Georgi wrote:den gibt es immer — über frontend_render.
Ok danke.
Wäre ja möglich gewesen daß es sowas in der Art schon geben würde.
Post Reply