Dynamische CONDITION

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
agellweiler

Beitragvon agellweiler » Di 21. Jun 2005, 15:38

Hallo,

was ich gepostet hatte funktioniert. Das ist nicht das Problem. Ich möchte aber folgenden Select ersetzen:
----------
<we:select name="SelectBereiche" reload="true">
<option>Bitte wählen:</option>
<option>Buchtip</option>
<option>Eigene Publikation</option>
<option>Film, Hörfunk</option>
<option>Online-Artikel</option>
</we:select>
-----------

Oben sind die Bereiche ja im Template fest codiert. Ich möchte aber, wie bei einer relationalen Datenbank auf die Werte aus einer Klasse zurückgreifen. Dazu habe ich folgenden Code im Template für das Backend eingegeben. Leider werden keine Objekte der Klasse angezeigt.


<we:select name="SelectBereiche" reload="true">
<option>Bitte wählen:</option>
<we:listview type="object" classid="24">
<we:repeat>
<option><we:field name="Bereiche"></option>
</we:repeat>
</we:listview>
</we:select>
--------------

Bei folgender Variante wird zwar alles angezeigt, aber es wird nichts abgespeichert, wohl weilder "reload" nicht klappt.

<select name="SelectBereiche" reload="true">
<option>Bitte wählen:</option>
<we:listview type="object" classid="24">
<we:repeat>
<option><we:field name="Bereiche"></option>
</we:repeat>
</we:listview>
<select>

Antje Gellweiler

Ralf Pospiech

Beitragvon Ralf Pospiech » Mi 22. Jun 2005, 10:17

Hallo Antje,

vielleicht helfen dir diese Hinweise weiter, denn ein we:select lässt sich leider nicht dynamisch füllen, weshalb man diese komplett generieren muss, Nachteil diese werden denoch nicht als we Tag erkannt!

Code: Alles auswählen

<we:ifEditmode>

<we:setVar to="global" nameto="MySelectValue" from="top" namefrom="tester" />

<select name="we_<we:var name="Name" type="property">_txt[tester]">
<option>Bitte wählen</option>
<?php
$sqlVer = mysql_query("SELECT input_Veranstaltungsname FROM tblObject_3");
$i=2;
while ($rowVer = mysql_fetch_object($sqlVer)) 
 {
$test = $rowVer->input_Veranstaltungsname;
if ($test!="")
echo '<option value="'.$test.'">'.$test.'</option>';
 }
?>
</select>
</we:ifEditmode>






http://we-devedge.de/tags/index.php?we_objectID=80

goos

Beitragvon goos » Do 23. Mär 2006, 10:57

Ist es irgenwie möglich hier nicht nur 'Key' sondern auch 'Value' des Selects zu hohlen? So weit ich sehen kann liegts nicht in tblObject_3. Aber wo liegen die Values?

Vielen Dank!
Goos

Christoph Lütjen

Beitragvon Christoph Lütjen » Di 4. Apr 2006, 20:46

Die Values liegen in der Tabelle tblObject dort DefaultValues (serialisierte PHP Arrays!)

freese
Member
Beiträge: 56
Registriert: Mi 3. Jun 2009, 19:32
Wohnort: Essen

Re: Perfekt...

Beitragvon freese » Fr 26. Mär 2010, 01:44

bolleone hat geschrieben:...so tuts das jetzt:

<we:form name="suchformular" type="object" id="self" method="post">
<select name="SelectStadt">
<option value="">Veranstaltungsort:</option>
<we:listview type="object" classid="6" name="ListeStadt">
<we:repeat>
<?php
if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('Stadt')){
$GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('Stadt');
?>
<option value="<we:field name="Stadt">"><we:field name="Stadt"></option>
<?php
}
?>
</we:repeat>
</we:listview>
</select>
<input type="submit" name="Submit" value="Suchen" class="sysbutton">
</we:form>
<!-- Ende Suchform -->

<we:ifNotVarSet name="SelectStadt" type="request">
<we:condition name="condition">
<we:conditionAdd field="Stadt" value="Düsseldorf" compare="="/>
</we:condition>
<we:else>
<we:condition name="condition">
<we:conditionAdd field="Stadt" value="$SelectStadt" compare="="/>
</we:condition>
</we:ifNotVarSet>

<we:listview type="object" desc="false" classid="6" triggerid="1341" order="Veranstaltungsdatum" condition="$condition">
<we:repeat>


P.S. Gibt's eigentlich eine "condition", die alle Datensätze anzeigt? Dann könnte ich nämlich in dem <we:condition> beim ersten Aufruf statt "Düsseldorf" alle Einträge anzeigen lassen.
--------------------------------

Hallo Ralf , Hallo bolleone: ich weiß dieser Beitrag ist Uralt aber trotzdem versuche ich mein Glück, da ich inzwischen etwas verzeifelt bin. :oops: :roll:

Ich arbete gerade an der folgenden Webseite:

http://pattery.ztc-labs.de/zt-consulting/presse.php

Genau wie bolleone, habe ich eine Klasse "News" (ID:47) in dem eines der Felder, das Feld "jahr" ist (type Textinput) (z.B. 2008). Auch wie er habe ich ein Dropdown menu, indem alle Jahre die im Objekt "jahr" enthalten sind dynamisch aufgelistet werden (das klappt schon wunderwar). Voreingestellt sollte immer das aktuelle Jahr sein. Funktioniert auch. Problematisch wird es auch bei mir, nachdem man im Dropdown ein anderes Jahr wählt. Ich möchte natürlich bei dieser Suchabfrage, dass dann z.B. alle Einträge vom Jahr 2008 aufgelistet werden, undzwar geordnet nach dem Datum. Das komplete Datum ist auch in einem anderen Objekt enthalten "releasedate" (typ : date) , was ich auch im Listview verwende. Hier der Quellcode:

Code: Alles auswählen

<div class="news">
        <div class="archiv">

            <we:form name="suchformular" type="object" id="self" method="post">
                <fieldset>
                    <label for="jahr">Sie sehen alle Publikationen vom Jahr:
                    </label>
                    <select name="Jahre">
                        <we:listview type="object" classid="47" name="ListeJahre" order="jahr" desc="true">
                            <we:repeat>
                            <?php
                                        if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('jahr')){
                                $GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('jahr');
                                ?>
                                            <option value="<we:field name="jahr">"><we:field name="jahr"></option>
                                <?php
                                            }
                            ?>
                                        </we:repeat>
                        </we:listview>
                    </select>
                    <input type="submit" name="Submit" value="Anzeigen" />
                </fieldset>
            </we:form>
        </div> <!--end archiv-->

        <we:ifNotVarSet name="Jahre" type="request">
            <we:condition name="condition">
                <we:conditionAdd field="jahr" value="2009" compare="="/>
            </we:condition>
            <we:else>
                <we:condition name="condition">
                    <we:conditionAdd field="jahr" value="$Jahre" compare="="/>
                </we:condition>
        </we:ifNotVarSet>

        <div id="inhalt">

            <we:listview type="object" classid="47" name="presse1"  order="releasedate" desc="true" condition="$condition">
                <we:repeat>
                <?php
                     $tag[$value]=$lv->f('tag');
                $monat[$value]=$lv->f('monat');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $sh_text[$value]=$lv->f('shorttext');
                if($value<2){?>
       <div class="priv spotlight">
       <?
                echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                echo "<h2>", $title[$value], "</h2>";
                echo "<p>", $sh_text[$value], "</p>";
                echo '	<a  href="#" alt="Mehr Information" class="mehr">Mehr...</a>	';
                echo "<br />";
                echo "</div>";
                }
                $value++;
                ?>
                  </we:repeat>
            </we:listview>
            <!--end output first spotlight detailed-->

        <? $value=1; ?>

            <we:listview type="object" classid="47" name="presse2"  order="releasedate" desc="true"  condition="$condition">
                <we:repeat>
                <?php
                    $iid[$value]=$lv->f('uid');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $bild[$value]=$lv->f('teaser');
                if(($jahr[$value]==2009) && ($value>2)){
                    echo ' <div class="priv">';
                    $bild1=$bild[$value];
                    if($bild1!=""){
                        echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                        print '<a href="#" class="thumbnail" > <img src="'. $bild1.'"  height="60" width="60" /></a>'; }
                    $bild1=0;
                    echo '<a href="#" class="pressetitel" > "'. $title[$value]. '" </a> ';

                    echo "<p class='mehr'>", '<a  href="#" alt="Mehr Information">Mehr...</a>	',"</p>";
                    echo "</div>";
                }
                $value++;
                ?>
                  </we:repeat>
            </we:listview>
            <!--end output 2009 short-->

        </div><!--end inhalt-->
        <div class="archiv">
            <form action="" method="post" name="archiv" id="archiv">
                <fieldset>
                    <label for="jahr">Archiv
                    </label>
                    <select name="jahr" id="jahr">
                        <option value="2009">2009</option>
                        <option value="2008" class="even">2008</option>
                        <option value="2007">2007</option>
                        <option value="2006" class="even">2006</option>
                        <option value="2005">2005</option>
                        <option value="2004" class="even">2004</option>
                        <option value="2003">2003</option>
                        <option value="2002" class="even">2002</option>
                    </select>
                </fieldset>
            </form>
        </div> <!--end archiv-->
    </div><!--end of news-->
--------------------
Ich vermute, dass das Problem daran liegt, dass ich hier zwei conditions mit dem gleichen Namen habe : <we:condition name="condition">
Ich sehe vor lauter Bäume den Wald nicht mehr.

Zudem habe ich noch eine Frage die bolleone, Ralf Pospiech oder natürlich auch andere WebEdition Profis ;-) vielleicht beatworten könnten. Wie schaffe ich, dass die Links die hier zur Einzelnansicht eines News führen sollen, dynamisch sind?, so wie z.B. bei bolleone in: http://www.aknr.de/fortbildung/termine/index.php.

Klar muss ich eine andere Vorlage samt php Datei erstellen, in der die Ausgabe erfolgt, nur mit welchem Tags versehen ich das Link, so dass dann die jeweilige "New" die im Objekt enthalten ist ausgegeben wird?
Ich weiß, sorry bestimmt sehr blöde Frage, nut bei allen Beispielen der Demos, werden nicht Objekte sondern Dokumenttypen benutzt, wie z.B. hier:

http://de7.demo.webedition.de/tutorial/ ... ap_112.php

Danke vielmals!!!!!!!!!!!!!!!!!!!!!
Zuletzt geändert von freese am Fr 26. Mär 2010, 13:13, insgesamt 1-mal geändert.

bolleone
Senior Member
Beiträge: 601
Registriert: So 4. Jul 2004, 00:24
Wohnort: Düsseldorf
Kontaktdaten:

Re: Dynamische CONDITION

Beitragvon bolleone » Fr 26. Mär 2010, 08:21

Hallo,

einen kleinen Teil kann ich Dir schon mal vor dem Frühstück beantworten: Wie erstellst Du einen dynamischen Link auf ein Dokument, in dem dann Inhalte eines Objektes angezeigt werden?

Beispiel:

Code: Alles auswählen

<we:field name="Veranstaltungsthema" hyperlink="true" classid="9" tid="245" target="_top"/>
Erklärung: Das Objekt-Feld "Veranstaltungsthema" wird hier als Link ausgegeben (hyperlink=true). classid sorgt für die Zuordnung der Objektklasse (bin mir allerdings gar nicht mehr sicher, ob das noch aktuell ist) und "tid" verweist auf die ID des dynamischen WE-Dokumentes, mit dem die Daten dann angezeigt werden sollen.

Das oben genannte Beispiel sieht dann in der Ausgabe so aus:

Code: Alles auswählen

<a target="_top" href="/fortbildung/termine/detail.php?we_objectID=136325&we_objectTID=245">Frühlingsflora des Angertals</a>
Auf der Ausgabeseite werden die Felder des Objektes dann über <we:input> ausgegeben:

Code: Alles auswählen

<we:input name="Veranstaltungsthema" type="text"/>
Falls man noch weitere Variablen in dem Link haben möchte, kann man sich den natürlich auch selber zusammenbauen, an die Objekt-ID kommt man ja ran...

So, das andere Problem schaue ich mir dann später an...
multimediadesign.net · Atelier für Kommunikation
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Dynamische CONDITION

Beitragvon we:willRockYou » Fr 26. Mär 2010, 08:40

Guten Morgen freese,

bei der verwendung von Variablen in einem we-Tag musst Du immer einen Backslash voran stellen. Also in Deiner Condition <we:conditionAdd field="jahr" value="\$Jahre" compare="="/> und auch im Listview: <we:listview type="object" classid="47" name="presse1" order="releasedate" desc="true" condition="\$condition"> und überal wo es noch fehlt. ;)

Speziell bei Deiner Condition gibt es jedoch noch ein Problem. Das hier <we:conditionAdd field="jahr" value="$Jahre" compare="="/> dürfte nur funktionieren wenn Du register_globals aktiviert hast. Das wäre nicht clever da dies bald abgeschafft wird und in Verbindung mit webEdition (so we mit vielen anderen Programmen auch) Sicherheitslücken entstehen) Sollte das aktiviert sein, sollte das dringen geändert werden.

Bei der Erzeugung Deiner Condition müsstest Du dann auf die Request-Variable zurückgreifen. Der Einfachheit halber würde ich den ganzen Block:

Code: Alles auswählen

        <we:ifNotVarSet name="Jahre" type="request">
            <we:condition name="condition">
                <we:conditionAdd field="jahr" value="2009" compare="="/>
            </we:condition>
            <we:else>
                <we:condition name="condition">
                    <we:conditionAdd field="jahr" value="$Jahre" compare="="/>
                </we:condition>
        </we:ifNotVarSet>
durch folgendes ersetzen:

Code: Alles auswählen

<?php
	$condition = 'Jahr = '.isset($_REQUEST['Jahre'])?intval($_REQUEST['Jahre']):2009;
?>
Und dran denken, das Dokument muss dynamisch sein. Also im Reiter "Eigenschaften" das Häkchen auf "Dynamisch" und als Dateiendung "php".
EOF; //totally retired

freese
Member
Beiträge: 56
Registriert: Mi 3. Jun 2009, 19:32
Wohnort: Essen

Re: Dynamische CONDITION

Beitragvon freese » Fr 26. Mär 2010, 16:23

Erstmal vielen Dank Daniel und bolleone! Wow ich war überrascht und hätte nie gedacht, dass die WE-Commmunity so hilfsbereit ist. Entwickele mich langsam zu einem WE-Fan.
Bolleone, dein Tip werde ich Morgen (Samstag) in die Tat umsetzen und lass dich wissen ob es funktioniert. Danke dir vom ganzen Herzen.

Daniel:

Ich habe zunächst überall wo eine Variable innerhalb eines WE-Tags vorhanden war, das Backslash eingetippt. also bei:

<we:conditionAdd field="jahr" value="\$Jahre" compare="="/>

und in den Listviews:

<we:listview type="object" classid="47" name="presse1" order="releasedate" desc="true" condition="\$condition">

<we:listview type="object" classid="47" name="presse2" order="releasedate" desc="true" condition="\$condition">

Das war bestimmt ein WE-Anfängerfehler :oops:

1. Nun du hattest recht, ich habe register_globals nicht aktiviert und werde es natürlich nicht machen. Daher funktioniert die Erzeugung der condition so nicht:

Code: Alles auswählen

    <we:ifNotVarSet name="Jahre" type="request">
               <we:condition name="condition">
                 <we:conditionAdd field="jahr" value="2009" compare="="/>
               </we:condition>
                <we:else>
                <we:condition name="condition">
                   <we:conditionAdd field="jahr" value="\$Jahre" compare="="/>
                </we:condition>
        </we:ifNotVarSet>
Weenn ich diese Block verwende und im Dropdown versuche ein anderes Jahr auszuwählen werden nur die Einträge anzeigt, bei denen im Feld jahr, nichts eingetragen war. Zumindest hat mich das auf fehlerhafte/unvollständige Einträge hingewiesen ;-) Nachdem ich diese Infos vervollständigt habe, werden gar keine Einträge angezeigt, wenn ich ein anderes Jahr als 2009 auswähle. Beim ersten Laden der Webseite werden beide Listviews aber angezeigt.

2. Dann habe ich deinen Vorschlag mal ausprobiert und den ganzen Block oben mit:

Code: Alles auswählen

<?php
   $condition = '[color=#FF0000]j[/color]ahr = '.isset($_REQUEST['Jahre'])?intval($_REQUEST['Jahre']):2009;
?>
(jahr kleingeschrieben)

ersetzt. Analog als früher gibt die Suchabfrage nicht nur z.B. alle Einträge die im Feld jahr 2008 haben (organisiert nach dem Feld releasedate) aus, sondern es werden immer nur die Einträge angezeigt die im Feld jahr 2009 haben.
Ich meine wenn ich deine Abfrage verstehe:

Code: Alles auswählen

<?php
   $condition = 'jahr = '.isset($_REQUEST['Jahre'])?intval($_REQUEST['Jahre']):2009;
?>
dann wird ja als condition gesetzt, dass nur solche Einträge dargestellt werden sollen die im Feld jahr 2009 haben. Also eine "nicht dynamische" Abfrage die nur bei 2009 funktioniert? Wie kann ich also die Funktionalität von:

Code: Alles auswählen

        <we:ifNotVarSet name="Jahre" type="request">
            <we:condition name="condition">
                <we:conditionAdd field="jahr" value="2009" compare="="/>
            </we:condition>
            <we:else>
                <we:condition name="condition">
                    <we:conditionAdd field="jahr" value="$Jahre" compare="="/>
                </we:condition>
        </we:ifNotVarSet>
mit einer reinen PHP-Abfrage ersetzen die auch die anderen Jahren ausgibt?

3. Die Listviews und Abfrage (Dropdown) sind beide in der selben Vorlage, dass sollte natürlich funktionieren oder? Das hier (auf Seite 1 dieses Threads) hat mich etwas verunsichert:
Ralf Pospiech hat geschrieben:Die Selectfelder selbst sind auch nur Listviews:

<select name="select1">

<we:listview type="object" name="liste1">

<we:repeat>

<option value="<we:field name='feld1'"><we:field name='feld1'></option>

</we:repeat>

</we:listview>

</select>

auf der 2. Seite bauen Sie dann dynamisch diese Condition:

<we:condition name="condition">
<we:addCondition field="feld1" value="$liste1" compare="=">
</we:condition>

Zu beachten ist das Sie mit mehreren Conditions arbeiten wollen, dabei sollten Sie dann immer noch abfragen ob die Variable überhaupt gefüllt ist.
DANKE!!!!!!!!!!!!!! SCHÖN!!!!!!!!!

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Dynamische CONDITION

Beitragvon we:willRockYou » Fr 26. Mär 2010, 16:58

Hi freese,
Wow ich war überrascht und hätte nie gedacht, dass die WE-Commmunity so hilfsbereit ist.
Ja so sind wir. :)

zu 2)

Die Bedingung sollte so schon richtig sein. Die 2009 ist nur der Default-Wert, wenn keine Jahrszahl übermittelt wurde.

Vermutlich ist hier auch der Variablenname nur nicht korrekt. Dein erstes Select scheint "Jahre" zu heissen, Dein zweites "Jahr".

$_REQUEST['Jahre'] ist der Wert aus dem Formular, das 'Jahre' hier muss also dem Namen des Selectfeldes entsprechen.
EOF; //totally retired

freese
Member
Beiträge: 56
Registriert: Mi 3. Jun 2009, 19:32
Wohnort: Essen

Re: Dynamische CONDITION

Beitragvon freese » Fr 26. Mär 2010, 17:42

Ich hab das untere select zum testen "deaktiviert" (name=""), aber daran liegt das Problem offensichtlich nicht. Hier ist der ganze Quellcode von :

http://pattery.ztc-labs.de/zt-consulting/presse.php

Vielleicht ist das so besser nachvollziehbar. Jedenfalls kann ich keine Fehler entdecken. Woran könnte es denn noch liegen?

Und so sieht z.B. einer der Objekte aus:
sshot-1.png
sshot-1.png (22.3 KiB) 4157 mal betrachtet

Code: Alles auswählen

<we:include type="template" id="161" />
<!--Include Header-->

<!--Include Body-->
<we:include type="template" id="227" />


<div id="inhalt_wrap">
    <div class="liste_formatiert" style="padding-left: 15px;">
        <h2>Aktuelle ZTC-Presseinformationen
        </h2>
    </div>
    <div class="news">
        <div class="archiv">

            <we:form name="suchformular" type="object" id="self" method="post">
                <fieldset>
                    <label for="jahr">Sie sehen alle Publikationen vom Jahr:
                    </label>
                    <select name="Jahre">
                        <we:listview type="object" classid="47" name="ListeJahre" order="jahr" desc="true">
                            <we:repeat>
                            <?php
                                 if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('jahr')){
                                $GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('jahr');
                                ?>
                                     <option value="<we:field name="jahr">"><we:field name="jahr"></option>
                                <?php
                                            }
                            ?>
                             </we:repeat>
                        </we:listview>
                    </select>
                    <input type="submit" name="Submit" value="Anzeigen" />
                </fieldset>
            </we:form>
        </div> <!--end archiv-->

        <div id="inhalt">
        
        <?php
         $condition = 'Jahr = '.isset($_REQUEST['Jahre'])?intval($_REQUEST['Jahre']):2009;
         ?>

            <we:listview type="object" classid="47" name="presse1"  order="releasedate" desc="true" condition="\$condition">
                <we:repeat>
                <?php
                $tag[$value]=$lv->f('tag');
                $monat[$value]=$lv->f('monat');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $sh_text[$value]=$lv->f('shorttext');
                if($value<2){?>
       <div class="priv spotlight">
       <?
                echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                echo "<h2>", $title[$value], "</h2>";
                echo "<p>", $sh_text[$value], "</p>";
                echo '	<a  href="#" alt="Mehr Information" class="mehr">Mehr...</a>	';
                echo "<br />";
                echo "</div>";
                }
                $value++;
                ?>
                  </we:repeat>
            </we:listview>
            <!--end output first spotlight detailed-->

        <? $value=1; ?>

            <we:listview type="object" classid="47" name="presse2"  order="releasedate" desc="true"  condition="\$condition">
                <we:repeat>
                <?php
                    $iid[$value]=$lv->f('uid');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $bild[$value]=$lv->f('teaser');
                if(($jahr[$value]==2009) && ($value>2)){
                    echo ' <div class="priv">';
                    $bild1=$bild[$value];
                    if($bild1!=""){
                        echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                        print '<a href="#" class="thumbnail" > <img src="'. $bild1.'"  height="60" width="60" /></a>'; }
                    $bild1=0;
                    echo '<a href="#" class="pressetitel" > "'. $title[$value]. '" </a> ';

                    echo "<p class='mehr'>", '<a  href="#" alt="Mehr Information">Mehr...</a>	',"</p>";
                    echo "</div>";
                }
                $value++;
                ?>
                  </we:repeat>
            </we:listview>
            <!--end output 2009 short-->

        </div><!--end inhalt-->
        <div class="archiv">
            <form action="" method="post" name="archiv" id="archiv">
                <fieldset>
                    <label for="">Archiv
                    </label name="">
                    <select>
                        <option value="2009">2009</option>
                        <option value="2008" class="even">2008</option>
                        <option value="2007">2007</option>
                        <option value="2006" class="even">2006</option>
                        <option value="2005">2005</option>
                        <option value="2004" class="even">2004</option>
                        <option value="2003">2003</option>
                        <option value="2002" class="even">2002</option>
                    </select>
                </fieldset>
            </form>
        </div> <!--end archiv-->
    </div><!--end of news-->
</div><!--end inhalt_wrap-->

<!--Include Footer-->
<we:include type="template" id="163" />

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: Dynamische CONDITION

Beitragvon we:willRockYou » Fr 26. Mär 2010, 17:48

Und dynamisch ist das Dokumnet, ja? Die .php-Endung reicht hier nicht, das Häkchen bei "Dynamisch" muss im Dokument auch gesetzt sein.
EOF; //totally retired

e_herrmann
Senior Member
Beiträge: 1319
Registriert: Do 22. Mai 2003, 23:25

Re: Dynamische CONDITION

Beitragvon e_herrmann » Fr 26. Mär 2010, 17:57

Hi,
in der Condition prüfst du das Feld "Jahr", laut deines Screenshots heißt es aber "jahr".
Du solltest in deinem select, wenn die Seite funktioniert unbedingt noch eine Abfrage für "selected" unterbringen, damit man weiß was man ausgewählt hat.
Elko Herrmann
komplexx | internet.fotografie
web: http://www.komplexx.de

freese
Member
Beiträge: 56
Registriert: Mi 3. Jun 2009, 19:32
Wohnort: Essen

Re: Dynamische CONDITION

Beitragvon freese » Fr 26. Mär 2010, 18:37

we:willRockYou hat geschrieben:Und dynamisch ist das Dokumnet, ja? Die .php-Endung reicht hier nicht, das Häkchen bei "Dynamisch" muss im Dokument auch gesetzt sein.
Das Häckchen bei "Seite dynamisch generieren" ist gesetzt (bei presse.php). Danke auch e_herrmann für den Hinweis. In der condition esteht nun Jahr klein:

Code: Alles auswählen

        <?php
         $condition = 'jahr = '.isset($_REQUEST['Jahre'])?intval($_REQUEST['Jahre']):2009;
         ?>
hilft aber auch nicht. Die Abfrage für selected werde ich da noch unterbringen. Zuerst aber muss ich irgendwie hinbekommen, dass die Einträge des Objekts für das jeweilige Jahr angezeigt werden.

Hier noch die Headers von Firebug beim Versuch Einträge von 2007 abzufragen:
sshot-2.png
sshot-2.png (13.93 KiB) 4154 mal betrachtet
Danke!

e_herrmann
Senior Member
Beiträge: 1319
Registriert: Do 22. Mai 2003, 23:25

Re: Dynamische CONDITION

Beitragvon e_herrmann » Fr 26. Mär 2010, 18:45

Hast du dir schon einmal $condition mit php ausgeben lassen?
Elko Herrmann
komplexx | internet.fotografie
web: http://www.komplexx.de

freese
Member
Beiträge: 56
Registriert: Mi 3. Jun 2009, 19:32
Wohnort: Essen

Re: Dynamische CONDITION

Beitragvon freese » Fr 26. Mär 2010, 19:10

bolleone hat geschrieben:Hallo,

einen kleinen Teil kann ich Dir schon mal vor dem Frühstück beantworten: Wie erstellst Du einen dynamischen Link auf ein Dokument, in dem dann Inhalte eines Objektes angezeigt werden?

Beispiel:

Code: Alles auswählen

<we:field name="Veranstaltungsthema" hyperlink="true" classid="9" tid="245" target="_top"/>
Erklärung: Das Objekt-Feld "Veranstaltungsthema" wird hier als Link ausgegeben (hyperlink=true). classid sorgt für die Zuordnung der Objektklasse (bin mir allerdings gar nicht mehr sicher, ob das noch aktuell ist) und "tid" verweist auf die ID des dynamischen WE-Dokumentes, mit dem die Daten dann angezeigt werden sollen.

Das oben genannte Beispiel sieht dann in der Ausgabe so aus:

Code: Alles auswählen

<a target="_top" href="/fortbildung/termine/detail.php?we_objectID=136325&we_objectTID=245">Frühlingsflora des Angertals</a>
Auf der Ausgabeseite werden die Felder des Objektes dann über <we:input> ausgegeben:

Code: Alles auswählen

<we:input name="Veranstaltungsthema" type="text"/>
Falls man noch weitere Variablen in dem Link haben möchte, kann man sich den natürlich auch selber zusammenbauen, an die Objekt-ID kommt man ja ran...

So, das andere Problem schaue ich mir dann später an...
Hallo bolleone:

In den beiden listviews die ich nutze um die Einträge wiederzugeben , benutze ich momentan nur ein statisches Link wie:
echo ' <a href="#" alt="Mehr Information" class="mehr">Mehr...</a> ';
D.h. was ich eigentlich wollte ist, dass bei jedem Link nur ein Mehr... zu sehen ist: ( http://pattery.ztc-labs.de/zt-consulting/presse.php)
aber, dass das Link natürlich dynamisch ist. Bei deinem Vorschlag wird der Linktext direkt aus dem Feld Veranstaltungsthema des Objektes gezogen.

Angepasst an meinem Fall bräuchte ich also ungefähr so etwas:

Code: Alles auswählen

<we:field name="feld-in-dem-mehr-steht" hyperlink="true" classid="47" tid="1373" target="_blank"/>
Nur nicht mit einem dynamischen Text aus dem "feld-in-dem-mehr-steht" , sonst müsste ich bei jedem Objekt den Text "Mehr..." eingeben was natürlich nicht geht.
Zudem kann ich nicht ein <we:field /> innerhalb von php eingeben. Meine Listviews sehen jetzt so aus:

Code: Alles auswählen

 <we:listview type="object" classid="47" name="presse1"  order="releasedate" desc="true" condition="\$condition">
                <we:repeat>
                <?php
                $tag[$value]=$lv->f('tag');
                $monat[$value]=$lv->f('monat');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $sh_text[$value]=$lv->f('shorttext');
                if($value<2){?>

                <div class="priv spotlight">
       <?
                echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                echo "<h2>", $title[$value], "</h2>";
                echo "<p>", $sh_text[$value], "</p>";
                echo '	<a  href="#" alt="Mehr Information" class="mehr">Mehr...</a>	';
                echo "<br />";
                echo "</div>";
                }
                $value++;
                ?>
                </we:repeat>
            </we:listview>
            <!--end output first spotlight detailed-->

        <? $value=1; ?>

            <we:listview type="object" classid="47" name="presse2"  order="releasedate" desc="true"  condition="\$condition">
                <we:repeat>
                <?php
                    $iid[$value]=$lv->f('uid');
                $jahr[$value]=$lv->f('jahr');
                $title[$value]=$lv->f('title');
                $bild[$value]=$lv->f('teaser');
                if(($jahr[$value]==2009) && ($value>2)){
                    echo ' <div class="priv">';
                    $bild1=$bild[$value];
                    if($bild1!=""){
                        echo  "<p class='datum'>", $tag[$value], ".", $monat[$value], ".", $jahr[$value], "</p>";
                        print '<a href="#" class="thumbnail" > <img src="'. $bild1.'"  height="60" width="60" /></a>'; }
                    $bild1=0;
                    echo '<a href="#" class="pressetitel" > "'. $title[$value]. '" </a> ';

                    echo "<p class='mehr'>", '<a  href="#" alt="Mehr Information">Mehr...</a>	',"</p>";
                    echo "</div>";
                }
                $value++;
                ?>
                  </we:repeat>
            </we:listview>
            <!--end output selected short-->

Wie könnte ich also dieses: echo "<p class='mehr'>", '<a href="#" alt="Mehr Information">Mehr...</a> ',"</p>";
ersetzen? Ich glaube ich werdet mich hier rauskicken...so viele dumme Fragen....
Die Umsetzung dieser Funktionalität mit Blog-Software wie Wordpress, etc. wäre ziemlich banal, hier scheint es etwas schwieriger, obwohl klar, wordpress z.B. niemals so flexibel ist wie WE (es ja auch kein CMS).


Zurück zu „DB-/Objektmodul“

Wer ist online?

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