we:conditionAdd vergleicht nicht mehr

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

we:conditionAdd vergleicht nicht mehr

Beitragvon kay » Do 5. Jul 2018, 13:39

Kann mir hiermit jemand weiterhelfen?

Folgendes PHP gibt den aktuellen Wochentag aus:

Code: Alles auswählen

<?php
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$tag = date("w");
?>
und das soll alle Termine mit dem Aktuellen Wochentag filtern:

Code: Alles auswählen

<we:conditionAdd field="Wochentag" value="$tage[$tag]" compare="=" />
Leider seit der Version 8.0.3 ohne Erfolg in der 8.0.2 ging es noch :-/

Hat jemand eine Idee wie man das mit Bordmitteln lösen könnte?
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

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

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon mokraemer » Fr 6. Jul 2018, 00:16

Es gab da einen anderen Fehler den wir bei den Conditions behoben haben, könnte jetzt natürlich sein, das dadurch dies zu einem Fehler führt.

Kannst du mal ins Fehlerlog schauen,da sollte ggf ein Fehler auftauchen.
webEdition-Kern-Entwickler

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon kay » Fr 6. Jul 2018, 11:03

Code: Alles auswählen

ID: 1
--------------------------------------------------------------------------------
Type: JS Error
--------------------------------------------------------------------------------
Function: -
--------------------------------------------------------------------------------
File: https://HOST/webEdition/lib/additional/jquery/jquery.js?1db613c4f642b2b07a16211ccafea5a1
--------------------------------------------------------------------------------
Line: 2
--------------------------------------------------------------------------------
Text: Array
(
    [msg] => TypeError: $('.newSelect').SumoSelect is not a function. (In '$('.newSelect').SumoSelect({csvDispCount: 0, selectAll: true, okCancelInMulti: false})', '$('.newSelect').SumoSelect' is undefined)
    [url] => /webEdition/webEdition.php
    [App] => Netscape
    [Ver] => 5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15
    [UA] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15
    [col] => 31047
    [detected] => Array
        (
            [Browser] => safari 11.1
            [System] => macintosh
        )

)

--------------------------------------------------------------------------------
Backtrace: https://HOST/webEdition/js/startJquery.js?1db613c4f642b2b07a16211ccafea5a1:36:29
l@https://HOST/webEdition/lib/additional/jquery/jquery.js?1db613c4f642b2b07a16211ccafea5a1:2:29380
https://HOST/webEdition/lib/additional/jquery/jquery.js?1db613c4f642b2b07a16211ccafea5a1:2:29678
--------------------------------------------------------------------------------
Date: 2018-07-06 10:59:54
--------------------------------------------------------------------------------
Source-Code: 
--------------------------------------------------------------------------------
WE-Info:
Version: 8.0.3.1
SVN: 15479 trunk nightly h0
--------------------------------------------------------------------------------
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

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

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon mokraemer » Fr 6. Jul 2018, 14:57

nee, ein JS Fehler kann das nicht sein.
Hast du denn überhaupt die Fehlerbehandlung an? Solltest du auch an lassen. Beim Aufruf der Seite dürfte der Fehler dann geloggt werden.
webEdition-Kern-Entwickler

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon WBTMagnum » Fr 6. Jul 2018, 15:09

Hallo Kay,

Folgende Ideen dazu:

1. Probier's doch mal ohne Variable:

Code: Alles auswählen

<we:conditionAdd field="Wochentag" value="Freitag" compare="=" />
Wenn es so klappt funktioniert die Condition grundsätzlich schon mal.


2. Vielleicht mag er den Array-Lookup im Attribut nicht (mehr). D.h. du könntest den Wochentag vorab auslesen

Code: Alles auswählen

<?php
$tage = array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
$wochentag = $tage(date('w'));
?>
<we:conditionAdd field="Wochentag" value="$wochentag" compare="=" />

Last bust not least, warum nicht direkt über PHP den Wochentag mit der deutschen Locale abfragen?

Code: Alles auswählen

<?php
setlocale (LC_ALL, 'de_DE');
$wochentag = date('D');
?>
Ggf. muss die Locale im Anschluss wieder auf den Ausgangswert zurück gesetzt werden.


HTH,
Sascha

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon kay » Sa 7. Jul 2018, 12:03

mokraemer hat geschrieben: Fr 6. Jul 2018, 14:57 nee, ein JS Fehler kann das nicht sein.
Hast du denn überhaupt die Fehlerbehandlung an? Solltest du auch an lassen. Beim Aufruf der Seite dürfte der Fehler dann geloggt werden.
Ja ist an.

Der meldet noch einen anderen komischen Fehler zu folgendem Code (Soll ich das in die BB Eintagen? Attribute gibt es bei ifFieldEmpty gar nicht)

Code: Alles auswählen

<we:ifFieldEmpty name="Kursfoto" type="img"><we:img name="plazhalter" id="168" thumbnail="600" />
								<we:else />
								<we:field type="img" name="Kursfoto" thumbnail="600" />
								</we:ifFieldEmpty>
Fehlermeldung.

Code: Alles auswählen

ID: 4
--------------------------------------------------------------------------------
Type: User warning
--------------------------------------------------------------------------------
Function: errorHandler
--------------------------------------------------------------------------------
File: 
--------------------------------------------------------------------------------
Line: 0
--------------------------------------------------------------------------------
Text: Das Attribut `match` im Tag <we:ifFieldEmpty> darf nicht fehlen oder leer sein!
---------------------------------------------------
Vorlage: 
---------------------------------------------------

--------------------------------------------------------------------------------
Backtrace: #0 we_error_handler::errorHandler called at [:]
#1 t_e called at [webEdition/we/include/we_tag.inc.php:308]
#2 parseError called at [webEdition/we/include/we_tag.inc.php:323]
#3 attributFehltError called at [webEdition/we/include/we_tags/we_tag_ifFieldEmpty.inc.php:24]
#4 we_tag_ifFieldEmpty called at [webEdition/we/include/we_tag.inc.php:146]
#5 we_tag called at [webEdition/we/templates/kurs-liste.php:95]
#6 include(DOCUMENT_ROOT/webEdition/we/templates/kurs-liste.php) called at [webEdition/we/include/we_showDocument.inc.php:46]
#7 require(DOCUMENT_ROOT/webEdition/we/include/we_showDocument.inc.php) called at [angebot/index.php:10]

--------------------------------------------------------------------------------
Date: 2018-07-06 11:05:13
--------------------------------------------------------------------------------
Source-Code: webEdition/we/include/we_tag.inc.php:
307: function parseError($text, $extra = ''){
308: 	t_e('warning', html_entity_decode($text, ENT_QUOTES, $GLOBALS['we']['Charset']['Backend']), g_l('weClass', '[template]') . ': ' . we_tag_tagParser::$curFile, $extra);
309: 	return '<b>' . g_l('parser', '[error_in_template]') . ':</b>' . $text . "<br/>\n" . g_l('weClass', '[template]') . ': ' . we_tag_tagParser::$curFile;
310: }
311: 
312: function attributFehltError($attribs, $attrs, $tag, $canBeEmpty = false){

----------------------------------------------------------
webEdition/we/include/we_tag.inc.php:
322: 		} elseif(!isset($attribs[$attr]) || $attribs[$attr] === ''){
323: 			return parseError(sprintf(g_l('parser', '[attrib_missing]'), $attr, $tag));
324: 		}
325: 	}
326: 	return '';
327: }

----------------------------------------------------------
webEdition/we/include/we_tags/we_tag_ifFieldEmpty.inc.php:
23: function we_tag_ifFieldEmpty($attribs){
24: 	if(attributFehltError($attribs, 'match', __FUNCTION__) && ($foo = attributFehltError($attribs, 'name', __FUNCTION__))){
25: 		echo $foo;
26: 		return false;
27: 	}
28: 	$type = weTag_getAttribute('type', $attribs, '', we_base_request::STRING);

----------------------------------------------------------
webEdition/we/include/we_tag.inc.php:
145: 		default:
146: 			$foo = $fn($attribs, $content, $internal);
147: 			$GLOBALS['we_editmode'] = $edMerk;
148: 			return we_tag_tag::redirectTagOutput($foo, $nameTo, $to);
149: 	}
150: }

----------------------------------------------------------
webEdition/we/templates/kurs-liste.php:
94: 							<a href="<?= we_tag('field',['type'=>'text','triggerid'=>138,'name'=>'wedoc_Path']); ?>">
95: 							<div class="kursbild"><?php if(we_tag('ifFieldEmpty',['name'=>'Kursfoto','type'=>'img'])){
96:   echo we_tag('img',['name'=>'plazhalter','id'=>168,'thumbnail'=>600]);
97:  }else{
98:   echo we_tag('field',['type'=>'img','name'=>'Kursfoto','thumbnail'=>600]);
99:  } ?>

----------------------------------------------------------
webEdition/we/include/we_showDocument.inc.php:
45: if(($GLOBALS['we']['inc'] = we_base_showDocument::prePareInc($GLOBALS['we_doc']))){
46: 	include($GLOBALS['we']['inc']);
47: 	we_base_showDocument::postInc($GLOBALS['we_doc']);
48: 
49: 	return;
50: }

----------------------------------------------------------
angebot/index.php:
9: } else {
10: 	require($_SERVER['DOCUMENT_ROOT'] .  '/webEdition/we/include/we_showDocument.inc.php');
11: }
----------------------------------------------------------

--------------------------------------------------------------------------------
WE-Info:
Version: 8.0.3.1
SVN: 15479 trunk nightly h0
--------------------------------------------------------------------------------
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon kay » Sa 7. Jul 2018, 12:15

Damit geht es:

Code: Alles auswählen

<?php
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$tag = date("w");
$wtag =$tage[$tag]
?>
Vielleicht mag value keine eckigen Klammeren?
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

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

Re: we:conditionAdd vergleicht nicht mehr

Beitragvon mokraemer » Sa 7. Jul 2018, 13:08

mag er definitiv nicht, sofern das nicht über Globals kommt, also

Code: Alles auswählen

value="\$wert[x]"
Hier wird von WE der Wert explizit rausgeparst und aus dem Globals-Array gelesen. Die Syntax

Code: Alles auswählen

value="$wert['x']"
(sofern das überhaupt geht), wird von PHP Verarbeitet. Dazu müßte das aber dann wohl auch eher als

Code: Alles auswählen

value="{$wert['x']}"
geschrieben werden damit der PHP-Parser das mag und selbst das würde ich bezweifeln.
webEdition-Kern-Entwickler


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

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 9 Gäste