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

#1 24. Januar 2011 14:32

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

[gelöst] content_dump und siblings

Ich habe mal wieder eine Frage zur Verwendung von content_dump.
Vielleicht solltet man für solche Frage mal einen Sammelthread aufmachen  big_smile
1. verstehe ich die Funktion vom paramter "depth" nicht komplett.

depth is used to control the what hierarchy levels should be considered for output. It takes two integer values seperated by comma (e.g. depth="-1,3"}. The first value defines the starting hierarchy. -1 = start with content_dump, n = start with specific hierarchy level [0 and 1 both return first level].

The second value defines the number of additional levels added to the collection. 0 = no depth, siblings of page specified with first depth value are returned (if not excluded otherwise). n = number of additional level relative to the level specified with first depth value.

Both values must be used!

ich benutze ein template in der hierarchie "2.1.1.1.1.1". Also schon ziemlich verschachtelt.
Nun wollte ich nur die siblings der aktuellen seite, die sich hier befindet anzeigen lassen.
Ich hatte gehofft dass das so geht:

{content_dump exclude=$content_id depth="-1,0"}

Also -1 für die aktuelle position in der hierarchy und die 0 dass es nicht tiefer geht. Ich habe es so verstanden dass es dann sozusagen ein relativer wert ist. also egal in welchere ebene ich mich befinde, ab der aktuellen gehts los. Aber hier erscheint garnichts.
Wenn ich es so mache:

{content_dump exclude=$content_id depth="6,0"}

erscheinen alle Seiten die in der 6. ebene liegen. also 2.1.1.1.1.1 und 2.1.1.1.1.2 und 2.1.1.1.1.3 (das ist gut). Aber leider auch 2.2.1.1.1.1, 2.2.1.1.1.2 usw

Also wie schaffe ich es nun von der aktuellen Seiten die man sieht, deren siblings, also benachbarte Seiten in der selben hierarchy anzuzeigen? ich habe das mal an einem screenshot verdeutlicht.
screenshotag.jpg

Beitrag geändert von nicmare (25. Januar 2011 11:14)

Offline

#2 24. Januar 2011 20:28

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

Hi Nicmare,

depth -1 bedeutet, du startest mit der Seite der ID und den Seiten unterhalb ... Im Prinzip müsstest du content_dump mit der ID von 2.1.1.1.1 (Watchlist1) aufrufen und die ID von 2.1.1.1.1.1 per Exclude entfernen.

Also:

1) Parent ID herausfinden. Wenn das ein Einzelfall ist, kannst du die ID ja auch direkt eintragen, andernfalls einmal Content-Dump "nur" mit der aktuellen ID Auswführen und die Option "Parents" aktivieren. Dann bekommst du die ID des Parents.
2) Content_Dump diesmal mit Start-ID = Parent-ID ausführen und 2.1.1.1.1.1 (content_id) per "exclude" aus der Sammlung herausnehmen.

Das Problem ist, das CD eigentlich nicht nach Siblings sucht, sondern vom Gedanken her immer einen bestimmten Strang abgrast. Deswegen auch der notwendige Workaround.

Klappt das so?

Grüße
Nils

Offline

#3 24. Januar 2011 21:01

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

so vom prinzip her verstanden aber weiß jetzt nicht genau wie ich es umsetzen soll. denn wie du schon richtig erahnst, soll das möglichst dynamisch sein da ich mehrere "stränge" habe die so aufgebaut sind.

{content_dump assign="get1" exclude=$content_id parents=true}

{foreach from=$get1 item=get1}
        <strong>{$get1->content->title}</strong>
{/foreach}

wie soll ich das mit dem zweiten content_dump machen?

Beitrag geändert von nicmare (24. Januar 2011 21:02)

Offline

#4 24. Januar 2011 22:17

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

[== smarty ==]

{content_dump assign="dump1" this_only=$content_id parents=true}

{content_dump assign="dump2" start_id=$dump1[0]->parents->id exclude=$content_id}

{foreach from=$dump2 item=item}
        <strong>{$item->content->title}</strong>
{/foreach}

So müsste das eigentlich sein ... + depth Parameter natürlich, wenn du nur eine Ebene willst ...

Klappt das?

Grüße
Nils

edit: wenn man irgendwie direkt auf die parent_id zugreifen kann, braucht man content_dump natürlich nicht zweimal abfeuern

Beitrag geändert von nhaack (24. Januar 2011 22:19)

Offline

#5 24. Januar 2011 22:52

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

aaah, alles klar. wäre ich nie drauf gekommen. netter workaround. dankeschön! das funzt smile
und wenn ich gerade deine aufmerksamkeit habe:
kann man den parent title vom parent mit content_dump abfragen?

Beitrag geändert von nicmare (24. Januar 2011 22:52)

Offline

#6 25. Januar 2011 23:56

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

Naja, den hast du ja eigentlich in deiner Collection schon drin (wenn du mit depth -1 startest) wink.

Also der direkte Parent der aufrufenden Seite ist ja mit dem zweiten Aufruf der Startpunkt und damit vollständig verfügbar.

Bei normaler Seitensortierung, müsste das erste Arrayelement das in der ID-Hierarchie höchste sein (soweit ich mich erinnere) - das wäre dann ja der Parent. Das kann man im Schleifendurchlauf gut abgreifen.

[== smarty ==]

{content_dump assign="dump1" this_only=$content_id parents=true}

{content_dump assign="dump2" start_id=$dump1[0]->parents->id exclude=$content_id}

{foreach from=$dump2 item=item name=dump_item}
        {if $smarty.foreach.dump_item.first}
            <h1>Kategorie: {$item->content->title}</h1>        
        {else}
            <strong>{$item->content->title}</strong>
        {/if}
{/foreach}

Ach ... was red' ich denn da ...

Schonmal folgendes probiert..

[== smarty ==]

{$dump1[0]->parents->title}

Grüße
Nils

Offline

#7 25. Januar 2011 23:58

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

ja, das funzt ja aber ich will sozusagen zwei ebenen "Zurück" bzw "hoch". also den parent vom parent halt. also in meinem screenshot soll der alias von 2.1.1.1 auf 2.1.1.1.1.1 verfügbar sein. das müsste doch mit dem selben prinzip gehen oder?

Offline

#8 25. Januar 2011 00:21

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

Ach so ... ja dann kannst du den zweiten Aufruf mit dem parents-parameter machen und dann aber depth weg und im ersten Durchlauf auf {$item->parents->titel} zugreifen.

Offline

#9 25. Januar 2011 10:56

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

jo, dachte das ginge so:

{content_dump assign="dump1" this_only=$content_id parents=true}
{content_dump assign="dump2" this_only=$dump1[0]->parents->id parents=true}
{$dump2[0]->parents->title}

aber da kommt nix und bei {$dump2|print_r} kriege ich nur "Array" angezeigt. auch wenn ich die id im zweiten dump manuell zu testzwecken einfüge. selbe ausgabe

EDIT: aaah, das war eine ganz gemeine stolperfalle. ich habs mit  show_in_menu="force" geschafft

Beitrag geändert von nicmare (25. Januar 2011 11:09)

Offline

#10 27. Januar 2011 17:30

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

ich frage jetzt hier einfach mal was neues da es ein wenig in die selbe richtung geht. entweder ich habe einen bug gefunden im plugin oder ich hab die funktionsweise von "depth" immernoch nicht gerafft.
auf der seite http://beta.guide-sites-rencontres.ch/l … contre.htm
wird auch die sitemap "plan du site" (unter P) aufgelistet obwohl sie eine hierarchie "2.3.4" hat und ich im content_dump depth="4,2" benutze. Da dürfte die sitemap doch garnicht gedumped werden?!
so sieht der dump im detail aus:

{content_dump start_id=$testlist exclude=$testlist extensions="testvalue1rating,image2,slogan,detailbutton" first_sort="title" depth="4,2" }

(testlist ist ein content block dem man die seiten id geben kann)

Offline

#11 27. Januar 2011 22:35

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

Mhh...

ist die Sitemap die einzige Seite der dritten Ebene die angezeigt wird?
Wie lautet die ID Hierarchy der Sitemap, die irrtümlich gezogen wird (also 2.3.4 aber statt der Nummern die IDs der jeweiligen Seiten).
Wie lautet die ID Hierarchy der Seite mit dem Plugin?

Kannst du das einmal zusammenstellen?

Ich habe da eine Vermutung.

Was passiert, wenn du die Sitemap kopierst und die jetzige löscht (damit die falsch gezogene Seite eine neue ID bekommt)? Ist das Fehlverhalten dann korrigiert?

Grüße
Nils

Offline

#12 27. Januar 2011 22:56

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] content_dump und siblings

alle seiten von "Nous proposons" werden angezeigt (was falsch ist). also die start_id ist 17. also die oberste ebene von der navi links. damit fällt theoretisch auch der "Nous proposons" bereich. aber den dachte ausschließen zu können indem ich die depth als "filter" verwende.

Offline

#13 28. Januar 2011 23:21

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: [gelöst] content_dump und siblings

Kniffeliger Fall ... also es ist nicht nur die Sitemap, sondern generell alle Seiten der dritten Ebene?

Was passiert, wenn du depth auf {5,2} stellst ... funktioniert es dann? Könnte tatsächlich ein Bug sein ...  neutral

Kannst du mal in Zeile 696 bzw. nach: $dbresult = $db->Execute( $sql_the_full_query ); folgendes Einfügen:

echo $sql_the_full_query;

Und mir das mysql Statement per Mail schicken?

Mhh... welches Datenbank System verwendest du?

Grüße
Nils

Offline