WE 9.x path_to_id()

Fragen zum Erstellen von Templates für webEdition.
mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

WE 9.x path_to_id()

Beitragvon mediavantis » So 16. Aug 2020, 10:20

Hallo Forengemeinde,

die Funktion "path_to_id()" funktioniert in WE 9.x ja nicht mehr.
Allerdings stehe ich etwas auf dem Schlauch, wie ich dies ersetzen kann. Zwar ist in der Versionshistory unter dem Punkt "Funktionen" etwas dokumentiert

path_to_id mit "path2id" zu ersetzen, scheint ja nicht korrekt zu sein. Hier mein Script, den ich anpassen müsste:
<?php
//Findet die ID des Dokumentenordners heraus
$path = "/data/customer/" . $mitgl_ID;
$folder_ID = path_to_id($path)
?>
Bin für jeden Tip dankbar.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: WE 9.x path_to_id()

Beitragvon mokraemer » So 16. Aug 2020, 11:22

wieso gibt es die Funktion nicht mehr?
An der Funktion hat sich nichts geändert.
webEdition-Kern-Entwickler

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: WE 9.x path_to_id()

Beitragvon mediavantis » So 16. Aug 2020, 11:36

Das hatte mir jemand hier im Forum geschrieben - ich hatte das mal so als gegeben zur Kenntnis genommen.

Aber nachdem es nicht so ist, habe ich mein Template nochmals genauer geprüft und festgestellt, dass i. d. F. "$mitgl_ID" gar nicht erst befüllt wird.

In einer LV habe ich folgendes stehen:

Code: Alles auswählen

					<we:field name="WE_ID" to="global" nameto="obj_ID" />
					<we:field name="MitgliedID" to="global" nameto="mitgl_ID" />
Beide global Variablen werden nicht mehr ausgegeben (WE 9.0.2.2, SVN 11969)

Ist das ein Bug?

ThomasGoebe

Re: WE 9.x path_to_id()

Beitragvon ThomasGoebe » So 16. Aug 2020, 12:57

Wie greifst Du denn auf die Variablen zu?

Mit echo $mitgl_ID sollte es nicht gehen, es ist ja eine global Variable, aber mit echo $GLOBALS['mitgl_ID'] könnte es klappen.

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: WE 9.x path_to_id()

Beitragvon mediavantis » So 16. Aug 2020, 13:24

Hallo Thomas,

ich suche in meinem Beispiel die ID eines Dokumentenverzeichnisses (siehe oben) und binde das später in eine LV

Code: Alles auswählen

<we:listview type="document" name="galerie" workspaceID="\$folderID" searchable="false" >
ein.
Habe ich seit Jahre so oder ähnlich umgesetzt. Bis in die Version 8.1.2 (Nightly) funktionierte das einwandfrei.
Aber nun erhalte ich bei "$folder_ID" gleich "0".

Zwar erhalte ich bei Umsetzung Deines Vorschlages die korrekte Kunden-ID, allerdings funktioniert dennoch "path_to_ID" nicht!

ThomasGoebe

Re: WE 9.x path_to_id()

Beitragvon ThomasGoebe » So 16. Aug 2020, 13:56

mediavantis hat geschrieben: So 16. Aug 2020, 13:24 Aber nun erhalte ich bei "$folder_ID" gleich "0".
Woher kommt denn nun $folder_ID? Das war in Deinem Code vorher nicht drin. Du solltest mehr und den jeweils passenden Code posten, sonst ist es schwer, zu verstehen, was das Problem ist.
mediavantis hat geschrieben: So 16. Aug 2020, 13:24 Zwar erhalte ich bei Umsetzung Deines Vorschlages die korrekte Kunden-ID, allerdings funktioniert dennoch "path_to_ID" nicht!
Also halten wir fest: we:field to="global" und nameto="Varname" funktionieren und liefern wie geplant eine $GLOBALS['Varname']. Dies kann mittels id="\$Varname" auch angesprochen werden.

Nun fehlt noch path_to_id, hast Du da eventull einen Schreibfehler? ID in Grossschreibung ist falsch, siehe auch hier http://documentation.webedition.org/wik ... -functions

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: WE 9.x path_to_id()

Beitragvon mediavantis » So 16. Aug 2020, 15:10

Ja sorry, das "path_to_ID" war ein temp. Schreibfehler.
Ich meinte "path_to_id"

Ganz oben in meinerm ersten Post ist das Script, in dem die "$folder_ID" steht, also das ganze hier noch einmal zusammenhängend:

Code: Alles auswählen

<we:listview type="object" classid="1" name="xx">
<we:repeat>
<we:comment>Variablen, die global gebraucht werden</we:comment>
<we:field type="text" name="WE_ID" to="global" nameto="obj_ID" />
<we:field type="text" name="MitgliedID" to="global" nameto="mitgl_ID" />
...

<?php
//Findet die ID des Dokumentenordners heraus
$path = "/data/customer/" . $mitgl_ID;
$folder_ID = path_to_id($path)
?>

...

   <we:listview type="document" name="galerie" workspaceID="\$folder_ID" searchable="false" >
   <we:ifFound>
   <we:repeat>
   ....
   </we:repeat>
   </we:listview>

...

</we:repeat>
</we:listview>
Die Ausgabe sieht wie folgt aus:

Code: Alles auswählen

$path: /data/customer/   - // hier fehlt die $mitgl_ID
$folder_ID: 0 // hier sollte eigentlich die id des Ordners erscheinen
$mitgl_ID: // wird per echo ebenfalls nicht ausgegeben
we:field name="MitgliedID": 153 // das ist die Ausgabe des originalen we-Tags
$obj_ID: // auch dies per bleibt via echo leer
Es sieht also ganz so aus, als wenn "nameto" "to=global" NICHT funktioniert.

Wie gesagt, das ganze Konstrukt habe ich schon seit Jahren im Einsatz und hat bis WE 8.1.2 bis in die aktuelle Nightly klaglos funktioniert....

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: WE 9.x path_to_id()

Beitragvon mediavantis » So 16. Aug 2020, 15:40

Habe jetzt noch ein wenig umgeschrieben:

Code: Alles auswählen

<?php
//Findet die ID des Dokumentenordners heraus
$path = "/data/customer/" . $GLOBALS['mitgl_ID'];
$GLOBALS['folder_ID'] = path_to_id($path)
?>	
So funktioniert es.

ThomasGoebe

Re: WE 9.x path_to_id()

Beitragvon ThomasGoebe » So 16. Aug 2020, 17:41

Schön, dass es jetzt klappt. to=global und nameto klappen eben doch.
Allerdings sind $GLOBALS['varname'] und $varname ein Unterschied! Es kann sein, dass es in früheren PHP und / oder webEdition Versionen gleich war, jedoch war es schon immer so gedacht, dass ein to="global" in $GLOBALS schreibt. D.h. wenn to="global" zu $varname geführt hat, war das streng genommen falsch, denn $varname ist eben nicht global.


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 23 Gäste