ich habe nun lange im forum gewühlt und doch keine Antwort für meine Frage gefunden. Es geht um diese Pressemitteilungesliste:
http://web45.vditz.netbuild.net/zt-cons ... presse.php
Ziel ist das Folgende:
Ist der Nutzer auf der Startseite soll er die letzten zwei Meldungen von 2010 unter "Aktuelle Meldungen" sehen, sowie die von 2009. Das funktioniert wie man sieht, nur leider sind die aktuellen Meldungen auch zu sehen, wenn der Nutzer ein ällteres Jahr auswählt. Wählt der Nutzer ältere Jahre, sollen nur die Meldungen des entsprechenden Jahres angezeigt werden und nicht die aktuellen. D.h.: ist das Jahr 2010 zeige das listview mit den zwei aktuellesten Meldungen, ansonsten zeige keine aktuelle Meldungen.
Der relevante Teil des Quellcodes ist der folgende:
Code: Alles auswählen
<?php
$condition = 'jahr '.(isset($_REQUEST['Jahre'])? '=' . intval($_REQUEST['Jahre']):' BETWEEN 2009 AND 2010');
// $condition2 = 'jahr = 2010';
?>
<we:form name="suchformular" type="object" id="self" method="post">
<fieldset>
<label for="Jahre">Sie sehen alle Pressemeldungen vom Jahr:</label>
<select name="Jahre" class="jahre">
<we:listview type="object" classid="47" order="jahr" desc="true">
<we:ifFound>
<we:repeat>
<?php
if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('jahr')){
$GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('jahr');
?>
<option value="<we:field name="jahr">" <?php if(isset($_REQUEST['Jahre'])) {if($GLOBALS['my']['lastvalue'] == $_REQUEST['Jahre']) echo "selected";} ?>><we:field name="jahr"></option>
<?php
}
?>
</we:repeat>
</we:ifFound>
</we:listview>
</select>
<input class="submit" type="submit" name="Submit" value="Anzeigen" />
</fieldset>
</we:form><!--end we:form-->
</div> <!--end archiv-->
<div class="archiv">
<p class="top">
Aktuelle Meldungen:
</p>
</div>
<div id="inhalt">
<we:condition name="condition2">
<we:conditionAdd field="jahr" value="2010" compare="=" type="global" />
</we:condition>
<? echo $condition2 ?>
<we:listview type="object" classid="47" order="releasedate" triggerid="1373" desc="true" rows="2" condition="\$condition2">
<we:repeat>
<div class="priv spotlight">
<p class="datum"><we:field name="tag" type="int"/>.<we:field name="monat" type="text"/>.<we:field name="jahr" type="text"/> </p>
<h2><we:field name="title" type="text" hyperlink="true" classid="47" triggerid="1373" target="_self" /></h2>
<p><we:field name="shorttext" type="text" /></p>
<br />
<p class="mehr">
<span>Mehr: <we:field name="title" hyperlink="true" classid="47" triggerid="1373" target="_self" max="25"/></span>
</p>
<br />
</div><!-- end priv spotlight -->
</we:repeat>
</we:listview>
<!--end output first spotlight detailed-->
<div class="archiv_inhalt">
<p class="top">
Weitere Meldungen:
</p>
</div>
<we:listview type="object" classid="47" order="releasedate" triggerid="1976" desc="true" condition="\$condition">
<we:ifFound>
<we:repeat>
<div class="priv">
<p class="datum"><we:field name="tag" type="int"/>.<we:field name="monat" type="text"/>.<we:field name="jahr" type="text"/> </p>
<we:ifFieldNotEmpty match="teaser" type="text">
<img alt="Cover" width="80" height="80" class="thumbnail" src="<?echo HTTP_ROOT;?>/<we:field name="teaser" type="text" />"/>
<we:else />
<img alt="Platzhalter" width="80" height="80" class="thumbnail" src="<?echo HTTP_ROOT;?>/images/platzhalter_80_80.jpg"/>
</we:ifFieldNotEmpty>
<we:field name="title" hyperlink="true" classid="47" target="_self"/>
</div><!---ende priv-->
</we:repeat>
</we:ifFound>
</we:listview>
<!--end output selected short-->
1- )
Code: Alles auswählen
<we:condition name="condition2">
<we:conditionAdd field="jahr" value="2010" compare="=" type="global" />
</we:condition>
<? echo $condition2 ?> <!--zur Kontrolle-->
<we:listview type="object" classid="47" order="releasedate" triggerid="1373" desc="true" rows="2" condition="\$condition2">
Code: Alles auswählen
$condition2 = 'jahr = 2010';
Also keine Variable sondern ein statischer Wert. Ich möchte aber, dass der Wert vom Feld jahr mit der Condition verglichen wird. Ist der Wert 2010 soll die Listview angezeigt werden, ist der Wert ein anderer soll die Listiview nicht angezeigt werden.
2-) Ich habe mich an einem Beispiel in der Dokumentation vom Tag <we:ifEqual> orientiert und folgendes versucht:
Code: Alles auswählen
<we:listview type="object" classid="47" order="releasedate" triggerid="1373" desc="true" rows="2" >
<we:repeat>
<?php if($GLOBALS['we_doc']->getElement("jahr") == $GLOBALS['lv']->f("2010")): ?>
<div class="priv spotlight">
<p class="datum"><we:field name="tag" type="int"/>.<we:field name="monat" type="text"/>.<we:field name="jahr" type="text"/> </p>
<h2><we:field name="title" type="text" hyperlink="true" classid="47" triggerid="1373" target="_self" /></h2>
<p><we:field name="shorttext" type="text" /></p>
<br />
<p class="mehr">
<span>Mehr: <we:field name="title" hyperlink="true" classid="47" triggerid="1373" target="_self" max="25"/></span>
</p>
<br />
</div><!-- end priv spotlight -->
<?php endif; ?>