Ich wollte mal wissen, ob es möglich ist im Rexhändler bei der Ausgabe der Branchen die ganzen Händler zuerst als (sortierte)Liste auszugeben, und erst bei einem Klick auf den Namen/Link die weiteren Angaben (Adresse, Webseite, etc) anzeigen zu lassen.
Ich habe zwar das Addon an meine Wünsche angepasst bekommen, aber hier fehlt mir der nötige Durchblick oder Know-How.
Anbei das entsprechende Modul das benutzt wird:
Eingabe:
Code: Alles auswählen
<h1>REXhändler</h1>
<h2>Branchen anzeigen:</h2>
<p>(Mit STRG/Apple Taste mehrere Branchen auswählen)</p>
<input name="VALUE[3]" type="hidden" value="REX_VALUE[3]" class="inp100" id="rexvalue3" />
<select size="10" style="width:250px;" multiple="multiple" onchange="multiUpdateList(3)" id="rexvalueselect3">
<?php
$sql = new rex_sql;
$selled = explode(',',"REX_VALUE[3]");
print_r($selled);
$sql->setQuery('SELECT * FROM '.$REX['TABLE_PREFIX'].'290_branchen');
for ($i=0;$i<$sql->getRows();$i++)
{ if (in_array($sql->getValue('id'),$selled))
{ $sel=' selected="selected"';
}
else
{ $sel='';
}
echo '<option value="'.$sql->getValue('id').'"'.$sel.'>'.$sql->getValue('haendler_branche').'</option>';
$sql->next();
}
?>
</select>
<script type="text/javascript">
function multiUpdateList(id)
{
var medialist = 'rexvalue'+id;
var mediaselect = 'rexvalueselect'+id;
var source = document.getElementById(mediaselect);
var sourcelength = source.options.length;
var target = document.getElementById(medialist);
target.value = "";
for (var i=0; i < source.options.length;i++)
{ if (source.options[i].selected)
{ if (target.value!="")
{ target.value+=",";
}
target.value+=source.options[i].value;
}
}
}
</script>
Code: Alles auswählen
<?php
# REXh�ndler 0.2, Dave Holloway. GN2-Netwerk.de
######################################################
# query db
$sql = new rex_sql;
$query = 'SELECT * FROM '.$REX['TABLE_PREFIX'].'290_haendler WHERE ( haendler_status=1';
$key=0;
if (array_key_exists('r290_haendler',$_GET))
{ $key = intVal($_GET['r290_haendler']);
if ($key > 0)
{ $query .= ' && r_haendler_branche='.$key;
}
}
$branchen = explode(',',"REX_VALUE[3]");
foreach ($branchen as $k=>$v)
{ if ($v=="")
{ unset($branchen[$k]);
}
}
if (count($branchen)>0)
{ $query .= ' && r_haendler_branche IN (REX_VALUE[3])';
}
$plz = "";
if (array_key_exists('r290_plz',$_GET))
{ $plz = intVal($_GET['r290_plz']);
}
if ($plz!='')
{ $query .= ' && haendler_plz LIKE "'.$plz.'%" ';
}
if ($plz===0)
{ $plz="";
}
$query .=') ORDER BY haendler_plz,haendler_name ASC';
$sql->setQuery($query);
echo '<div class="r290">';
echo '<form action="'.rex_getUrl($this->article_id,$this->clang).'" method="get">';
echo '<input name="article_id" class="hidden" type="hidden" value="'.$this->article_id.'" />';
echo '<input name="clang" class="hidden" type="hidden" value="'.$this->clang.'" />';
if (count($branchen)==0)
{ echo '<label for="r290selector">Branche:</label>';
echo '<select id="r290selector" name="r290_haendler">';
echo '<option value="0">Alle</option>';
$csql = new rex_sql;
$cquery = 'SELECT * FROM '.$REX['TABLE_PREFIX'].'290_branchen ORDER BY haendler_branche ASC';
$csql->setQuery($cquery);
for ($i=0;$i<$csql->getRows();$i++)
{ if ($key==$csql->getValue('id'))
{ $sel=' selected="selected"';
}
else
{ $sel='';
}
echo '<option value="'.$csql->getValue('id').'"'.$sel.'>'.$csql->getValue('haendler_branche').'</option>';
echo $csql->next();
}
echo '</select><br />';
}
echo '<label for="r290plz">PLZ:</label>';
echo '<input type="text" id="r290_plz" name="r290_plz" value="'.$plz.'">';
echo '<input type="submit" class="submit" value="Anzeigen" />';
echo '<table class="r290table">';
echo '<tr>';
echo '<th class="r290Haendler">Händler</th>';
echo '<th class="r290Abteilung">Abteilung</th>';
echo '<th class="r290Adresse">Adresse</th>';
//echo '<th class="r290PLZ">PLZ</th>';
//echo '<th class="r290Stadt">Stadt</th>';
//echo '<th class="r290Land">Land</th>';
echo '<th class="r290Kontakt">Kontaktdaten</th>';
echo '<th class="r290Sonstiges">Sonstiges</th>';
echo '</tr>';
if ($sql->getRows()>0)
{ $tex = new Textile();
for ($i=0;$i<$sql->getRows();$i++)
{
echo '<tr>';
//name + zusatz
echo '<td>';
echo $sql->getValue('haendler_name');
if ($sql->getValue('haendler_name_zusatz')!="")
{ echo ' ('.$sql->getValue('haendler_name_zusatz').')';
}
echo '</td>';
// abteilung
echo '<td>'.$sql->getValue('haendler_abteilung').'</td>';
echo '<td>';
$adresse = $sql->getValue('haendler_strasse')."\n".$sql->getValue('haendler_plz')." ";
$adresse .= $sql->getValue('haendler_stadt')."\n".$sql->getValue('haendler_land');
$adresse = explode("\n",$adresse);
for ($j=0;$j<count($adresse);$j++)
{ echo trim($adresse[$j]);
if ($j<count($adresse))
{ echo '<br />';
}
}
echo '</td>';
echo '<td>';
if ($sql->getValue('haendler_telefon')!="")
{ echo '<h3>Tel:</h3>'.$sql->getValue('haendler_telefon');
}
if ($sql->getValue('haendler_fax')!="")
{ echo '<h3>Fax:</h3>'.$sql->getValue('haendler_fax');
}
if ($sql->getValue('haendler_email')!="")
{ echo '<h3>E-Mail:</h3>'.'<a href="mailto:'.$sql->getValue('haendler_email').'">'.$sql->getValue('haendler_email').'</a>';
}
if ($sql->getValue('haendler_homepage')!="")
{ echo '<h3>WWW:</h3>'.'<a href="'.$sql->getValue('haendler_homepage').'">'.$sql->getValue('haendler_homepage').'</a>';
}
echo '</td>';
// sonstiges
echo '<td>';
echo $tex->TextileThis($sql->getValue('haendler_sonstiges'));
echo '</td>';
echo '</tr>';
$sql->next();
}
}
else //no entries found
{ echo '<tr><td colspan="5">Keine Händler gefunden.</td></tr>';
}
echo '</table>';
echo '</form>';
echo '</div>';
?>