Nach Update nach 8.1.1: Templatefehler
Nach Update nach 8.1.1: Templatefehler
Hallo liebe WE-Gemeinde,
nach eigentlich erfolgrichem Update von 6.4.1 über 7.0.4 nach 8.1.1 produzieren einige Templates Errors im Protokoll.
Dies bezieht sich auf Listviewdarstellungen, bei denen weTags mit PHP angereichert sind.
Hier mal ein Fehler aus dem LOG:
Error type: Error
Error message:
Cannot access protected property we_listview_document::$anz_all
Array
(
[type] => 1
[message] => Cannot access protected property we_listview_document::$anz_all
[file] => SECURITY_REPL_DOC_ROOT//webEdition/we/templates/15_layouts/17_produkte_tt_absperrarmaturen-eck.php
[line] => 273
)
Da ich das seinerzeit nicht selbst gescriptet habe, bin ich n büschen ratlos ..
Kann mir jemand mit PHP-Erfahrung helfen?
Danke und LG
diballa
nach eigentlich erfolgrichem Update von 6.4.1 über 7.0.4 nach 8.1.1 produzieren einige Templates Errors im Protokoll.
Dies bezieht sich auf Listviewdarstellungen, bei denen weTags mit PHP angereichert sind.
Hier mal ein Fehler aus dem LOG:
Error type: Error
Error message:
Cannot access protected property we_listview_document::$anz_all
Array
(
[type] => 1
[message] => Cannot access protected property we_listview_document::$anz_all
[file] => SECURITY_REPL_DOC_ROOT//webEdition/we/templates/15_layouts/17_produkte_tt_absperrarmaturen-eck.php
[line] => 273
)
Da ich das seinerzeit nicht selbst gescriptet habe, bin ich n büschen ratlos ..
Kann mir jemand mit PHP-Erfahrung helfen?
Danke und LG
diballa
Re: Nach Update nach 8.1.1: Templatefehler
darauf kannst du nicht mehr zugreifen.
Entweder kannst du getMaxPages() für die Gesamtzahl Seiten, getPageNo() für die akt. Seite oder getRows() für das was hier mal (falsch) abgefragt wurde nutzen
Entweder kannst du getMaxPages() für die Gesamtzahl Seiten, getPageNo() für die akt. Seite oder getRows() für das was hier mal (falsch) abgefragt wurde nutzen
webEdition-Kern-Entwickler
Re: Nach Update nach 8.1.1: Templatefehler
Hi mokraemer,
habe jetzt in der Paginierung die Anzahl der Gesamteinträge durch
wieder drin:-)
Ich habe jetzt an einer anderen Stelle nochmal dieses "anz_all":
Man kann sich nach Auswahl verschiedener Kategorien die zutreffenden Produkte in einer listview anzeigen lassen. Wenn eine Kombination keine Treffer hat, wurde bisher ein Text ausgegeben mit:
Wie muss ich das hier unter Einsatz von z.B. getRows() genau schreiben? Wie muss die Alternative aussehen?
Kannst du mir n Tipp geben?
Danke und LG diballa
habe jetzt in der Paginierung die Anzahl der Gesamteinträge durch
Code: Alles auswählen
<?php echo " $translationOf " . $GLOBALS['lv']->getRows();?>
Ich habe jetzt an einer anderen Stelle nochmal dieses "anz_all":
Man kann sich nach Auswahl verschiedener Kategorien die zutreffenden Produkte in einer listview anzeigen lassen. Wenn eine Kombination keine Treffer hat, wurde bisher ein Text ausgegeben mit:
Code: Alles auswählen
<?php
if(!$lv->anz_all){
echo "<div><br><br><b>Leider ergab Ihre Auswahl keine Treffer. Bitte versuchen Sie eine andere Kombination.</b></div>";
}
?>
Kannst du mir n Tipp geben?
Danke und LG diballa
Re: Nach Update nach 8.1.1: Templatefehler
$lv und $GLOBALS['lv'] ist beides deprecated.
Aber du bekommst das eigentlich ganz normal per we-tag:
Also in deinem Fall
und das andere ist eigentlich ein
Und so kommst du da eigentlich ganz ohne php aus.
Aber du bekommst das eigentlich ganz normal per we-tag:
Code: Alles auswählen
<we:listviewRows/>
Code: Alles auswählen
<?=$translationOf;?> <we:listviewRows/>
Code: Alles auswählen
<we:ifNotFound>Leider...</we:ifNotFound>
webEdition-Kern-Entwickler
Re: Nach Update nach 8.1.1: Templatefehler
Hallo mokraemer,
das Leben kann manchmal so schön sein:-)
Danke.
Habe noch ein anderes Problem in dem Template, muss ich aber noch fürs Forum aufbereiten;-)
Erstmal Danke und LG, diballa
das Leben kann manchmal so schön sein:-)
Danke.
Habe noch ein anderes Problem in dem Template, muss ich aber noch fürs Forum aufbereiten;-)
Erstmal Danke und LG, diballa
Re: Nach Update nach 8.1.1: Templatefehler Listview
Hallo,
es geht um ein Template, welches im Frontend eine Listview über Dokumente einer bestimmten Oberkategorie auswirft.
Auf der Seite hat der User dann Filtermöglichkeiten nach Unterkategorien obiger Kategorie und kann sich so Listviews mit weniger Treffern anzeigen lassen.
Zuerst werden Selectboxen mit den Filtermöglichkeiten erzeugt:
Dann werden Variablen gesetzt, abhängig davon, wieviele Selectboxen es gibt:
Und dann wird, abhängig davon, ob die Variable leer ist oder nicht, die Trefferliste angezeigt:
Wenn leer, soll die Listview über die Oberkategorie angezeigt werden, also, wenn man auf die Seite kommt ...
Wenn nicht leer wird die Listview gemäß der ausgewählten Kategorien in den Selectboxen angezeigt:
Wenn man nun auf die Seite kommt, wird zwar eine Listview angezeigt, allerdings über sämtliche Kategorien (Paginierung zeigt: Seite: 1 von 77 | Einträge: 1 bis 20 von 1524 | weiter) und ohne Inhalt. Wählt man nun eine Filtermöglichkeit, erscheint die korrekte Listview.
Der Teil mit leerer Variable funzt in 8.1.1 leider nicht mehr. Wahrscheinlich hat das auch mit den globalen Variablen zu tun?
Kann mir jemand helfen? Danke und LG, diballa
es geht um ein Template, welches im Frontend eine Listview über Dokumente einer bestimmten Oberkategorie auswirft.
Auf der Seite hat der User dann Filtermöglichkeiten nach Unterkategorien obiger Kategorie und kann sich so Listviews mit weniger Treffern anzeigen lassen.
Zuerst werden Selectboxen mit den Filtermöglichkeiten erzeugt:
Code: Alles auswählen
<we:form action="$translationListAnker" style="padding:0; margin:0;">
<fieldset>
<we:listview type="category" name="katlist" parentid="$translationParentId">
<?php
$catcount = 0;
?>
<we:repeat>
<?php
$katpath = we_tag("field", array("type"=>"text","name"=>"WE_PATH"), "") . '/';
$kattop = we_tag("field", array("type"=>"text","name"=>"WE_PATH"), "");
$katname = "category[]";
$catcount++;
$katfirstentry = substr($kattop,strrpos($kattop,"/")+1).":";
?>
<we:categorySelect name="\$katname" type="request" showpath="true" rootdir="\$katpath" firstentry="\$katfirstentry" style="width:178px; margin-bottom:10px;"></we:categorySelect>
</we:repeat>
</we:listview>
<input type="submit" value="<we:var type="global" name="translationSearchSubmit" />" class="send" />
</fieldset>
</we:form>
Code: Alles auswählen
<we:setVar from="request" to="global" namefrom="category[0]" nameto="category[0]"/>
<we:setVar from="request" to="global" namefrom="category[1]" nameto="category[1]"/>
<we:setVar from="request" to="global" namefrom="category[2]" nameto="category[2]"/>
Wenn leer, soll die Listview über die Oberkategorie angezeigt werden, also, wenn man auf die Seite kommt ...
Code: Alles auswählen
<we:ifVarEmpty name="category" match="category" type="global">
<we:listview name="$translationListName" type="document" categories="$translationListCategories" rows="20" order="Title">
<we:repeat>
...
</we:repeat>
</we:listview>
</we:ifVarEmpty>
Code: Alles auswählen
<we:ifVarNotEmpty name="category" match="category" type="global">
<?php
$selectedcats = "";
$selectedcats_info = "";
foreach($_REQUEST['category'] as $catval) {
if($catval!=""){
$selectedcats .= $selectedcats=="" ? $catval : ",".$catval;
$catval_info = preg_replace("/.*\//", "", $catval);
$selectedcats_info .= $selectedcats_info =='' ? $catval_info : ", $catval_info";
}
}
echo "<h3>$translationSearchfilter: $selectedcats_info</h3>\n";
?>
<we:listview categories="\$selectedcats" rows="20" order="Title" catOr="false">
<we:ifNotFound><div><br><br><b>Leider ergab Ihre Auswahl keine Treffer. Bitte versuchen Sie eine andere Kombination.</b></div></we:ifNotFound>
<we:repeat>
...
</we:repeat>
</we:listview>
</we:ifVarNotEmpty>
Der Teil mit leerer Variable funzt in 8.1.1 leider nicht mehr. Wahrscheinlich hat das auch mit den globalen Variablen zu tun?
Kann mir jemand helfen? Danke und LG, diballa
Re: Nach Update nach 8.1.1: Templatefehler
kann es sein das hier etwas vermischt ist?
Entweder global oder request, ich vermute du meinst
es ist eher ungewöhnlich das man Request-Variablen in Global schreibt und AFAIK seit PHP 5.4 deprecated.
Btw. das Tag we:listview kennt den Parameter categoryids, dann mußt du hier keine seltsamen escapes von den Namen mehr machen!
Code: Alles auswählen
<we:ifVarNotEmpty name="category" match="category" type="global">
[...]
foreach($_REQUEST['category'] as $catval) {
Code: Alles auswählen
<we:ifVarNotEmpty name="category" match="category" type="request">
Btw. das Tag we:listview kennt den Parameter categoryids, dann mußt du hier keine seltsamen escapes von den Namen mehr machen!
webEdition-Kern-Entwickler
Re: Nach Update nach 8.1.1: Templatefehler
Hi mokraemer,
danke für das schnelle Feedback:-)
Deine Vermutung war goldrichtig.
Jetzt klappts.
Noch ne Bitte um eine Expertenmeinung:
Wenn du dir den Code so generell anschaust, ist das eher veraltet und deprecated oder ok?
Kleines Feedback würd' mich freuen;-)
LG, diballa
danke für das schnelle Feedback:-)
Deine Vermutung war goldrichtig.
Jetzt klappts.
Noch ne Bitte um eine Expertenmeinung:
Wenn du dir den Code so generell anschaust, ist das eher veraltet und deprecated oder ok?
Kleines Feedback würd' mich freuen;-)
LG, diballa
Re: Nach Update nach 8.1.1: Templatefehler
Moinsen,
ne Kleinigkeit klappt doch noch nicht:
Wenn die Seite das erste Mal geladen wird, tritt der Teil mit ifVarEmpty in Kraft. Super:-)
Wenn ich dann eine Auswahl über die erzeugten Selectboxen treffe, werden die Trefferlisten richtig gefiltert (ifVarNotEmpty-Fall). Super:-)
Wenn ich das Formular aber absende, ohne eine Auswahl in den Selectboxen zu treffen, tritt wieder der ifvarNotEmpty-Fall ein und ich bekomme eine Listview allerdings über sämtliche Kategorien (Paginierung zeigt: Seite: 1 von 77 | Einträge: 1 bis 20 von 1524 | weiter) aber ohne Inhalt.
Wie kann ich erreichen, dass bei Absenden des Formulars ohne Auswahl in den Selectboxen der ifVarEmpty-Fall eintritt und ich die Situation erreiche, als die Seite aufgerufen wurde?
Bin wirklich für jede Hilfe dankbar.
LG, diballa
ne Kleinigkeit klappt doch noch nicht:
Wenn die Seite das erste Mal geladen wird, tritt der Teil mit ifVarEmpty in Kraft. Super:-)
Wenn ich dann eine Auswahl über die erzeugten Selectboxen treffe, werden die Trefferlisten richtig gefiltert (ifVarNotEmpty-Fall). Super:-)
Wenn ich das Formular aber absende, ohne eine Auswahl in den Selectboxen zu treffen, tritt wieder der ifvarNotEmpty-Fall ein und ich bekomme eine Listview allerdings über sämtliche Kategorien (Paginierung zeigt: Seite: 1 von 77 | Einträge: 1 bis 20 von 1524 | weiter) aber ohne Inhalt.
Wie kann ich erreichen, dass bei Absenden des Formulars ohne Auswahl in den Selectboxen der ifVarEmpty-Fall eintritt und ich die Situation erreiche, als die Seite aufgerufen wurde?
Bin wirklich für jede Hilfe dankbar.
LG, diballa
Re: Nach Update nach 8.1.1: Templatefehler
Naja, was ist denn der "Default-Fall" in der Selectbox?
Mir fehlt grad ein Beispiel um mir das anschauen zu können.
Mir fehlt grad ein Beispiel um mir das anschauen zu können.
webEdition-Kern-Entwickler
Re: Nach Update nach 8.1.1: Templatefehler
Hi mokraemer,
sorry für die späte Rückmeldung, lag n paar Tage flach ...
Hier mal ein Shortlink zu einer Beispielseite, die noch unter webEdition 6.4.1 läuft und wo das funktioniert:
https://bit.ly/32rkpnz
1. Wenn du auf die Seite kommst, wird eine default listview gezeigt.
2. Wenn du über die Pullies filterst, bekommst du die entsprechende Auswahl.
3. Wenn du auf Armaturen zeigen, ohne etwas in den Pullies auszuwählen, klickst, bekommst du wieder die Ausgangsliste (default listview)
Auf dem Testserver, auf dem die Seite unter webEdition 8.1.1 läuft, funktioniert Schritt 3 nicht (leere Listview aber über alle Kategorien lt. Paginierung)
LG, diballa
sorry für die späte Rückmeldung, lag n paar Tage flach ...
Hier mal ein Shortlink zu einer Beispielseite, die noch unter webEdition 6.4.1 läuft und wo das funktioniert:
https://bit.ly/32rkpnz
1. Wenn du auf die Seite kommst, wird eine default listview gezeigt.
2. Wenn du über die Pullies filterst, bekommst du die entsprechende Auswahl.
3. Wenn du auf Armaturen zeigen, ohne etwas in den Pullies auszuwählen, klickst, bekommst du wieder die Ausgangsliste (default listview)
Auf dem Testserver, auf dem die Seite unter webEdition 8.1.1 läuft, funktioniert Schritt 3 nicht (leere Listview aber über alle Kategorien lt. Paginierung)
LG, diballa
Re: Nach Update nach 8.1.1: Templatefehler
hmm, kann ich hier so einfach nicht nachvollziehen.
Die Auswahl ist ja Leer, also wird auch ifVarEmpty zutreffen.
Die Auswahl ist ja Leer, also wird auch ifVarEmpty zutreffen.
webEdition-Kern-Entwickler
Re: Nach Update nach 8.1.1: Templatefehler
Hi mokraemer,
ja sollte man meinen und unter PHP 5.5.9 und webEdition 6.4.1 funktioniert das wie man sieht ja auch.
Ich hab mal n Screenshot drangehängt vom Ergebnis wenn man keine Auswahl in den Pullies macht und das Formular abschickt (PHP 7.3.14 und webEdition 8.1.1. Auffällig ist, dass hier der Bereich "Suchfilter:" angezeigt wird, eigentlich kommt der nur im ifVarNotEmpty-Fall ...
LG, diballa
ja sollte man meinen und unter PHP 5.5.9 und webEdition 6.4.1 funktioniert das wie man sieht ja auch.
Ich hab mal n Screenshot drangehängt vom Ergebnis wenn man keine Auswahl in den Pullies macht und das Formular abschickt (PHP 7.3.14 und webEdition 8.1.1. Auffällig ist, dass hier der Bereich "Suchfilter:" angezeigt wird, eigentlich kommt der nur im ifVarNotEmpty-Fall ...
LG, diballa
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 65 Gäste