Einzelne Seiten einer Listview gezielt ansteuern?
Einzelne Seiten einer Listview gezielt ansteuern?
Hallo, allerseits,
ist es möglich, die einzelnen Seiten (mit z. B. 20 Treffern pro Seite) einer sehr langen Listview type=object (> 600 Objekte) einzeln anzusteuern?
Ich stelle mir etwas in der Art vor:
< zurück - Seite 1, 2, 3, 4, ... - weiter >
bin aber bisher nicht fündig geworden.
Ich freue mich über jeden Tipp!
Ein schönes Wochenende wünscht
Andrea Arndt
ist es möglich, die einzelnen Seiten (mit z. B. 20 Treffern pro Seite) einer sehr langen Listview type=object (> 600 Objekte) einzeln anzusteuern?
Ich stelle mir etwas in der Art vor:
< zurück - Seite 1, 2, 3, 4, ... - weiter >
bin aber bisher nicht fündig geworden.
Ich freue mich über jeden Tipp!
Ein schönes Wochenende wünscht
Andrea Arndt
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Danke,
Interesse hätte ich schon, allein, mir fehlt die PHP-Kenntnis.![Confused :-?](./images/smilies/icon_e_confused.gif)
Gibt's eine Chance, Ihre Lösung in eine der kommenden we-Versionen zu integrieren?
Wenn nicht, dann hätte ich doch gern den Code, damit ich mich in Musestunden mal hineinknien kann. Bin nämlich ziemlich sicher, dass diese Anforderung bei uns kommen wird ...
Viele Grüße aus Frankfurt,
Andrea Arndt
Interesse hätte ich schon, allein, mir fehlt die PHP-Kenntnis.
![Confused :-?](./images/smilies/icon_e_confused.gif)
Gibt's eine Chance, Ihre Lösung in eine der kommenden we-Versionen zu integrieren?
Wenn nicht, dann hätte ich doch gern den Code, damit ich mich in Musestunden mal hineinknien kann. Bin nämlich ziemlich sicher, dass diese Anforderung bei uns kommen wird ...
Viele Grüße aus Frankfurt,
Andrea Arndt
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Hi.
Dolch ein Tag wird auf jeden Fall kommen. Wann? Kann man nicht sagen. Ich habe das Tag bei mir in der allgemeinen Datei drin, wo alle anderen tags sin. Wenn ein Update gemacht wird, ist das natürlich wieder weg. Wenn es sehr dringend ist und unbedingt sein muss kann ich das auch als einzelne we:Tag-Datei basteln. Nun ja - wie auch immer - hier mal der Code von dem Tag:
Und eingebunden wird es so in der Vorlage:
Ein Beispiel wie es aussehen könnte:
http://www.session-destroy.de/we_demo_2/news/index.php
Dolch ein Tag wird auf jeden Fall kommen. Wann? Kann man nicht sagen. Ich habe das Tag bei mir in der allgemeinen Datei drin, wo alle anderen tags sin. Wenn ein Update gemacht wird, ist das natürlich wieder weg. Wenn es sehr dringend ist und unbedingt sein muss kann ich das auch als einzelne we:Tag-Datei basteln. Nun ja - wie auch immer - hier mal der Code von dem Tag:
Code: Alles auswählen
function we_tag_listviewNumbers($attribs,$content)
{
$we_anz_all = abs($GLOBALS["we_anz_all"]);
$we_start = abs($GLOBALS["we_start"]);
$we_rows = (isset($GLOBALS["we_rows"]) << $GLOBALS["we_rows"] != 0) ? abs($GLOBALS["we_rows"]) : $we_anz_all;
$target = $attribs["target"] ? ' target="'.$attribs["target"].'"' : '';
$sep = !$attribs["separator"] ? " - " : $attribs["separator"];
$highlight = ($attribs["highlight"] == "true") ? true : false;
$hyperlink = ($attribs["hyperlink"] == "true") ? true : false;
$class = $attribs["class"] ? ' class="'.$attribs["class"].'"' : '';
$style = $attribs["style"] ? ' style="'.$attribs["style"].'"' : '';
$selectedclass = $highlight ? ($attribs["selectedclass"] ? ' class="'.$attribs["selectedclass"].'"' : '') : $class;
$selectedstyle = $highlight ? ($attribs["selectedstyle"] ? ' style="'.$attribs["selectedstyle"].'"' : '') : $style;
$out = "";
$page = 0;
for($i = 1; $i <= ceil($we_anz_all/$we_rows); $i++)
{
$out .= ($we_start != $page || $hyperlink) ? ('<a href="'.($GLOBALS["WE_ACTION"] ? $GLOBALS["WE_ACTION"] : $GLOBALS["PHP_SELF"]).'?'.we_makeQueryString("we_start=$page").'"'.($attr ? " $attr" : '').(($we_start == $page << $highlight) ? $selectedclass.$selectedstyle : $class.$style).$target.'>') : ""; /* Link tag start */
$out .= ($we_start == $page << !$hyperlink << $highlight) ? '<span'.$selectedclass.$selectedstyle.'>' : ''; /* No link highlight format start */
$out .= $i; /* The number */
$out .= ($we_start == $page << !$hyperlink << $highlight) ? '</span>' : ''; /* No link highlight format end */
$out .= ($we_start != $page || $hyperlink) ? '</a>' : ''; /* Link tag end */
$out .= ($we_rows * $i < $we_anz_all) ? $sep : ""; /* Add seperator after number - but not after the last number */
$page += $we_rows;
}
return $out;
}
Code: Alles auswählen
<we:listviewNumbers class="t5" style="background-color: #99CC66;" selectedclass="t5s" selectedstyle="background-color: #FF00FF;" separator=" - " highlight="true" hyperlink="true" target="_self" />
http://www.session-destroy.de/we_demo_2/news/index.php
Moin, Herr Einecke,
klasse, danke für das Tag. Hab es als php-Datei (we_tag_listviewNumbers.php) ins Verzeichnis webEdition/we/include/we_tags gespeichert (war doch richtig, oder?)
Jedenfalls funktioniert's wunderbar![Smile :-)](./images/smilies/icon_e_smile.gif)
Bin begeistert - und meine Anwender auch!
Liebe Grüße,
Andrea Arndt
ps: Anzusehen unter dem URL
http://smirnoff.rz.uni-frankfurt.de/bib ... ategorien/ (einfach einen Link aus der Liste mit den Pfeilen auswählen)
klasse, danke für das Tag. Hab es als php-Datei (we_tag_listviewNumbers.php) ins Verzeichnis webEdition/we/include/we_tags gespeichert (war doch richtig, oder?)
Jedenfalls funktioniert's wunderbar
![Smile :-)](./images/smilies/icon_e_smile.gif)
Bin begeistert - und meine Anwender auch!
Liebe Grüße,
Andrea Arndt
ps: Anzusehen unter dem URL
http://smirnoff.rz.uni-frankfurt.de/bib ... ategorien/ (einfach einen Link aus der Liste mit den Pfeilen auswählen)
Guten Tag!
Ich habe ebenfalls diesen Tag im Einsatz, nur meine PHP Kenntnisse sind leider bescheiden, daher meine Frage:
Was muss in dem Code verändert werden, damit die Nummern zb in Klammern ausgegeben werden?
Das kann ich nicht mit einem Seperator machen, da die ausgewählte Nummer inkl. Klammern anders formatiert sein soll als die anderen.
mfg
Ich habe ebenfalls diesen Tag im Einsatz, nur meine PHP Kenntnisse sind leider bescheiden, daher meine Frage:
Was muss in dem Code verändert werden, damit die Nummern zb in Klammern ausgegeben werden?
Das kann ich nicht mit einem Seperator machen, da die ausgewählte Nummer inkl. Klammern anders formatiert sein soll als die anderen.
mfg
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Hi.
Sorry - aber ich kann leider aus Zeitgründen sowas jetzt nicht machen da es ja nicht wirklich ein Tag von webEdition ist. Aber eventuell finde ich ja mal irgendwann mal die Zeit um das anzupassen oder jemand aus dem Forum hier kömmert sich darum.marhoe hat geschrieben:Ich habe ebenfalls diesen Tag im Einsatz, nur meine PHP Kenntnisse sind leider bescheiden, daher meine Frage:
Was muss in dem Code verändert werden, damit die Nummern zb in Klammern ausgegeben werden?
Das kann ich nicht mit einem Seperator machen, da die ausgewählte Nummer inkl. Klammern anders formatiert sein soll als die anderen.
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
-
- Senior Member
- Beiträge: 250
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Berlin
- Kontaktdaten:
Version für we3
Hallo,
ich habe mal eine Version der listviewNumbers gemacht, die für we3 funktioniert.
Allerdings ohne die Nutzung von we_makeQueryString() im Link, da ich den Sinn nicht ganz verstanden habe. Vielleicht kann einer der we-Leute mich ja mal aufklären.
Diese Version hat als zusätzliche Attribute "beforelink" und "afterlink" um z.B. "[" und "]" um die Linkzahlen zu platzieren. Das Attribut "maxpages" beschränkt die Zahl der dargestellten Links auf maxpages vor und nach der dargestellten Seite, damit nicht ein Layout durch zu viele Links zerstört wird.
Um für den Fall vorzusorgen, dass es mal ein offizielles Tag mit dem gleichen Namen, aber anderen Attributen gibt, stelle ich jeweils ein MY vor den Tag-Namen.
Hier nun die Funktion:
Wenn man das Obige in webEdition/we/include/we_tags/we_tag_MYlistviewNumbers.inc.php abspeichert, sollte es sogar im Tag-Wizard auftauchen.
Zwei weitere Tags zum selben Thema:
Um Ringlisten zu erstellen fehlt ein we:first und we:last, also Tags die immer auf die erste und letzte Seite einer Listview zeigen. Also z.B. für Konstruktionen wie:
Hier die beiden Dateien:
und
Auch hier gilt es, die beiden in webEdition/we/include/we_tags/we_tagMY*.inc.php abzuspeichern.
Natürlich kein Support, aber ich bin für Fehlerhinweise, Verbesserungsvorschläge usw. dankbar.
Viel Spass damit
Armin Schulz
ich habe mal eine Version der listviewNumbers gemacht, die für we3 funktioniert.
Allerdings ohne die Nutzung von we_makeQueryString() im Link, da ich den Sinn nicht ganz verstanden habe. Vielleicht kann einer der we-Leute mich ja mal aufklären.
Diese Version hat als zusätzliche Attribute "beforelink" und "afterlink" um z.B. "[" und "]" um die Linkzahlen zu platzieren. Das Attribut "maxpages" beschränkt die Zahl der dargestellten Links auf maxpages vor und nach der dargestellten Seite, damit nicht ein Layout durch zu viele Links zerstört wird.
Um für den Fall vorzusorgen, dass es mal ein offizielles Tag mit dem gleichen Namen, aber anderen Attributen gibt, stelle ich jeweils ein MY vor den Tag-Namen.
Hier nun die Funktion:
Code: Alles auswählen
<?php
if($GLOBALS["WE_TAG_WIZZARD"]){
$GLOBALS["we_tag"]["description"] = "Erzeugt durchnummerierte Liste der Seiten einer Listview";
$GLOBALS["we_tag"]["attribs"]["class"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["style"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["hyperlink"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["hyperlink"]["predefined"] = "true,false";
$GLOBALS["we_tag"]["attribs"]["highlight"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["highlight"]["predefined"] = "true,false";
$GLOBALS["we_tag"]["attribs"]["selectedclass"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["selectedstyle"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["separator"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["beforelink"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["afterlink"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["maxpages"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["target"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["name"] = $l_we_tag["default"];
$GLOBALS["needs_endtag"] = 0;
}
function we_tag_MYlistviewNumbers($attribs,$content)
{
$we_anz_all = abs($GLOBALS["lv"]->anz_all);
$we_start = abs($GLOBALS["lv"]->start);
$we_rows = (isset($GLOBALS["lv"]->rows) << $GLOBALS["lv"]->rows != 0) ? abs($GLOBALS["lv"]->rows) : $we_anz_all;
$target = $attribs["target"] ? ' target="'.$attribs["target"].'"' : '';
$maxpages = !$attribs["maxpages"] ? "0": $attribs["maxpages"]; //max. Anzahl der dargestellten Zahlen um die zu sehende Seite
$beforelink = !$attribs["beforelink"] ? "" : $attribs["beforelink"]; //wird vor jeder Zahl dargestellt, z.B. [
$afterlink = !$attribs["afterlink"] ? "" : $attribs["afterlink"]; //wird nach jeder Zahl dargestellt, z.B. ]
$sep = !$attribs["separator"] ? "" : $attribs["separator"]; // Separator zwischen den Links, z.B. " - "
$highlight = ($attribs["highlight"] == "true") ? true : false; // Bei true wird die gerade zu sehende Seite mit selectedclass bzw. selectedstyle dargestellt
$hyperlink = ($attribs["hyperlink"] == "true") ? true : false; // Bei true erhält die gerade zu sehende Seite auch einen Link auf sich selbst
$class = $attribs["class"] ? ' class="'.$attribs["class"].'"' : '';
$style = $attribs["style"] ? ' style="'.$attribs["style"].'"' : '';
$selectedclass = $highlight ? ($attribs["selectedclass"] ? ' class="'.$attribs["selectedclass"].'"' : '') : $class;
$selectedstyle = $highlight ? ($attribs["selectedstyle"] ? ' style="'.$attribs["selectedstyle"].'"' : '') : $style;
if (!$maxpages) {$end =ceil($we_anz_all/$we_rows);$start = 1;$page=0;} else {
if ( ceil(($we_start+(($maxpages+1)*$we_rows))/$we_rows) <= ceil($we_anz_all/$we_rows) )
{$end = ceil( ($we_start+(($maxpages+1)*$we_rows))/ $we_rows);} else {$end = ceil($we_anz_all/$we_rows);}
if (ceil(($we_start-($maxpages*$we_rows))/$we_rows)+1 >=1) {$start = ceil(($we_start-($maxpages*$we_rows))/$we_rows)+1; $page= $we_start-($maxpages*$we_rows); } else {$start = 1;$page=0;}
}
$out = "";
for($i = $start; $i <= $end; $i++)
{
//im href wurde we_makeQueryString() entfernt, da Funktion scheinbar unnötig bzw Sinn nicht verstanden
$out .= $beforelink; // vor dem Link
$out .= ($we_start != $page || $hyperlink) ? ('<a href="'.($GLOBALS["WE_ACTION"] ? $GLOBALS["WE_ACTION"] : $GLOBALS["PHP_SELF"]).'?'.'we_lv_start_'.$GLOBALS["lv"]->name."=$page".'"'.($attr ? " $attr" : '').(($we_start == $page << $highlight) ? $selectedclass.$selectedstyle : $class.$style).$target.'>') : "";
$out .= ($we_start == $page << !$hyperlink << $highlight) ? '<span'.$selectedclass.$selectedstyle.'>' : ''; /* No link highlight format start */
$out .= $i; /* The number */
$out .= ($we_start == $page << !$hyperlink << $highlight) ? '</span>' : ''; /* No link highlight format end */
$out .= ($we_start != $page || $hyperlink) ? '</a>' : ''; /* Link tag end */
$out .= $afterlink; // nach dem Link
$out .= ($we_rows * $i < $we_anz_all) ? $sep : ""; /* Add seperator after number - but not after the last number */
$page += $we_rows;
}
return $out;
}
?>
Zwei weitere Tags zum selben Thema:
Um Ringlisten zu erstellen fehlt ein we:first und we:last, also Tags die immer auf die erste und letzte Seite einer Listview zeigen. Also z.B. für Konstruktionen wie:
Code: Alles auswählen
<we:ifNext><we:next>weiter</we:next><we:else/><we:MYfirst>weiter zum Ersten</we:MYfirst></we:ifNext>
Code: Alles auswählen
<?php
if($GLOBALS["WE_TAG_WIZZARD"]){
$GLOBALS["we_tag"]["description"] = "Link auf den ersten Listview Eintrag";
$GLOBALS["we_tag"]["attribs"]["class"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["style"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["target"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["name"] = $l_we_tag["default"];
$GLOBALS["needs_endtag"] = 1;
}
function we_tag_MYfirst($attribs,$content){
$target = $attribs["target"] ? ' target="'.$attribs["target"].'"' : '';
$class = $attribs["class"] ? ' class="'.$attribs["class"].'"' : '';
$style = $attribs["style"] ? ' style="'.$attribs["style"].'"' : '';
$page = 0;
$out = "";
$out .= '<a href="'.($GLOBALS["WE_ACTION"] ? $GLOBALS["WE_ACTION"] : $GLOBALS["PHP_SELF"]).'?'.'we_lv_start_'.$GLOBALS["lv"]->name."=$page".'"'.($attr ? " $attr" : '').$class.$style.$target.'>';
$out .= $content;
$out .= '</a>';
return $out;
}
?>
Code: Alles auswählen
<?php
if($GLOBALS["WE_TAG_WIZZARD"]){
$GLOBALS["we_tag"]["description"] = "Link auf den letzten Listview Eintrag";
$GLOBALS["we_tag"]["attribs"]["class"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["style"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["target"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["required"] = 0;
$GLOBALS["we_tag"]["attribs"]["default"]["name"] = $l_we_tag["default"];
$GLOBALS["needs_endtag"] = 1;
}
function we_tag_MYlast($attribs,$content){
$target = $attribs["target"] ? ' target="'.$attribs["target"].'"' : '';
$class = $attribs["class"] ? ' class="'.$attribs["class"].'"' : '';
$style = $attribs["style"] ? ' style="'.$attribs["style"].'"' : '';
$we_anz_all = abs($GLOBALS["lv"]->anz_all);
$we_rows = (isset($GLOBALS["lv"]->rows) << $GLOBALS["lv"]->rows != 0) ? abs($GLOBALS["lv"]->rows) : $we_anz_all;
$page = floor($we_anz_all/$we_rows)*$we_rows;
$out = "";
$out .= '<a href="'.($GLOBALS["WE_ACTION"] ? $GLOBALS["WE_ACTION"] : $GLOBALS["PHP_SELF"]).'?'.'we_lv_start_'.$GLOBALS["lv"]->name."=$page".'"'.($attr ? " $attr" : '').$class.$style.$target.'>';
$out .= $content;
$out .= '</a>';
return $out;
}
?>
Natürlich kein Support, aber ich bin für Fehlerhinweise, Verbesserungsvorschläge usw. dankbar.
Viel Spass damit
Armin Schulz
im ersten Code zum Tag we_tag_MYlistviewNumbers
ich habe diesen Code eingebunden und der funktionierte auch. Wenn ich allerdings die Kategorie bzw. den DocType dynamisch übergebe, werden die Variablen bei Klick auf eine Seitenzahl verworfen. Daraufhin wird einfach alles, eben ohne Berücksichtigung der Spezifizierung Kategorie/DocType angezeigt.
Sind diese Angaben fest in den listview-Tag eingetragen funktioniert es aber einwandfrei.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
ich habe diesen Code eingebunden und der funktionierte auch. Wenn ich allerdings die Kategorie bzw. den DocType dynamisch übergebe, werden die Variablen bei Klick auf eine Seitenzahl verworfen. Daraufhin wird einfach alles, eben ohne Berücksichtigung der Spezifizierung Kategorie/DocType angezeigt.
Sind diese Angaben fest in den listview-Tag eingetragen funktioniert es aber einwandfrei.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
piXel relations GmbH | Agentur für Online-Kommunikation
Luxemburger Str. 93 | 50354 Hürth
Telefon 0 22 33 / 99 66 81
www.pixelrelations.de | info@pixelrelations.de
Kann mir jemand erklären, wofür in Zeile 54
steht? Diese Variable ist im Code sonst nirgends zu finden. Geh ich also recht in der Annahme, dass dieser Teil einfach gelöscht werden kann?
Code: Alles auswählen
($attr ? " $attr" : '')
Wer ist online?
Mitglieder in diesem Forum: Ahrefs [Bot], Google [Bot] und 4 Gäste