zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden <li> sortieren ?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 05.11.2011, 05:15
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard <li> sortieren ?

Ich habe auf meinen Seiten Bildergalerien die aber (das merke ich jetzt erst ) "verkehrt" aufgebaut ist.
Das dazugehörige Programm (Homegallery) erstellt mir eine Liste, die deutsch chronologisch (vorgestern-gestern-heute) aufgebaut ist, bei der amerikanischen Variante werden Bildnummern arg durcheinandergeworfen und ist somit unbrauchbar, weil das älteste Bild immer die Nr. 1 sein sollte ....
die deutsch chron. nummeriert richtig, ist aber für mich verkehrt rum (das neuste Bild soll oben sein, nicht das älteste), ich müsste also die Liste umsortieren - nur weiß ich nicht genau, wie ich ansetzen soll/muss.
Das Program erzeugt mir solche Listenpunkte:
HTML-Code:
<li>
<a href="shakira-seite-0001.php">
<img src="shakira-bild-0001.jpg" alt="Tschechoslowakischer Wolfshund <?php echo ucfirst($name); ?> am 15.09.2002 Bild 1"  title="Tschechoslowakischer Wolfshund <?php echo ucfirst($name); ?> am 15.09.2002 Bild 1"  width="212" height="168" /></a>
<br /><dfn><?php echo ucfirst($name); ?> am 15.09.2002</dfn>
</li>
(wobei z.B. das Datum aus den exif geholt wird)
Meine bisherigen Überlegungen waren a.) die Thumbs aus dem Verzeichnis auslesen und die nötigen Informationen per exif dazu oder b.) die Listenpunkte in ein array holen und sortieren.
Da ich aber eine php-Nulpe bin, gar nicht so einfach.
Wäre es möglich, den gesamten listenpunkt (der ja schon durch das Programm alle nötigen "Sachen" bekommt, jeder einzelne wird durch das Programm erzeugt) in ein array einzulesen und zu sortieren? Oder lieber -wegen der Ladezeit- Finger weg (es können durchaus 150 Bilder sein)?
Ich frage, bevor ich stundenlang weiter probiere und verwerfe, weil ich hier null Ansatz habe
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 05.11.2011, 05:54
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Du solltest dort ansetzen, wo die Liste generiert wird. Die Reihenfolge nachträglich zu ändern, erscheint mir vom Ansatz her falsch.

Wie das genau bewerkstelligt werden kann, ist aus deinem Post nicht zu erkennen. Ich persönlich kenne das Programm „Homegallery“ nicht.

Zitat:
Wäre es möglich, den gesamten listenpunkt (der ja schon durch das Programm alle nötigen "Sachen" bekommt, jeder einzelne wird durch das Programm erzeugt) in ein array einzulesen und zu sortieren? Oder lieber -wegen der Ladezeit- Finger weg (es können durchaus 150 Bilder sein)?
Auch das wäre prinzipiell möglich, aber ich halte es nicht für einen günstigsten Ansatz. Die 150 Bilder stellen ebenfalls prinzipiell kein Problem dar, da du im Zweifel sicherlich eine Caching-Schicht einziehen kannst.

Interessant wäre aber in erster Linie, wie die Galerie generiert wird.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 05.11.2011, 06:33
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

Die Bilder werden im Programm zugefügt und dieses erstellt automatisch die Thumbs/großen Bilder. Dazu gibt es jeweils ein Template für die Übersichtsseite und für die einzelnen Bilder.
Für jedes einzelne Thumb kann ich z.B. mit diversen Platzhaltern den Listenpunkt erstellen.
Sortiere ich die Bilder im Programm von neu nach alt, ist immer das neuste die Nr.1 und bei weiteren neuen Bildern rutscht die ehemalige 1 auf Platz x, was dann dazu führt -wenn ein Bild verlinkt wird, die Zahlen nicht mehr stimmen. Hier sieht man, was ich meine:
das erste Bild ist Bild 1, ruft aber Seite 94 auf, das zweite ruft Seite 95 auf ...
eben so, wiviele Bilder ich zugefügt habe.
Sortiere ich in Homegallery die Bilder von alt nach neu, steht oben das älteste Bild mit der Nr.1 und ruft auch die Seite 1 auf - aber ich möche eben, das die neuen Bilder oben sind ....
Mit Zitat antworten
  #4 (permalink)  
Alt 05.11.2011, 09:33
Benutzerbild von Manfred62
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 18.09.2009
Ort: Ludwigsburg
Beiträge: 2.134
Manfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nett
Standard

Hmm, das ganze wäre eigentlich mit einem CMS besser zu lösen?
Ohne zusätzliches Programm (Homegallery).
Thumberstellung und Sortierung geht dann auch.

Manfred
Mit Zitat antworten
  #5 (permalink)  
Alt 05.11.2011, 10:04
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

CMS bekomm ich nicht gebacken, warum auch immer
Für die Großeltern habe ich z.B. eine Coppermine mit den Bildern der Kinder und die finde ich schlichtweg blöd...
Und ob ich das Programm dazu bringe, das zu machen was ich möchte oder mich in ein CMS reinwuschele, dürfte vom Zeitaufwand gleich sein (bei mir zumindest), aber immer noch selfmade (mehr oder weniger).

Im Moment bin ich soweit, die Daten in ein array einzulesen, quäle mich aber ganz schön rum. Zum einen weiß ich nicht, ob ich den ganzen Text in das array packen kann (da scheitere ich an den Maskierungen für " und > etc) oder ob ich besser so ein multi-teil mache....
Das Programm erstellt mir folgende Werte pro Bild:
  • den Link
  • den Bildnamen
  • width und height
  • Bildnummer
  • Datum aus exif

Mit Zitat antworten
  #6 (permalink)  
Alt 05.11.2011, 14:15
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Mir ist nicht klar, wie und was man darauf antworten soll.
Mit Zitat antworten
  #7 (permalink)  
Alt 05.11.2011, 17:52
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

mir brennen die Augen und der Schädel schwirrt

ich habe es geschafft, das die relavanten Daten über das Programm in ein Array geholt werden und das das ganze sortiert wird - nur ein Listenpunkt im Auszug:
PHP-Code:
<?php
        error_reporting
(E_ALL|E_STRICT);
        
ini_set('display_errors'1);
$listenpunkt = array();
$listenpunkt[103] = array('link' =>'shakira-seite-0104.php''bild' =>'shakira-thumb-0104.jpg''exif' =>'30.10.2011''bildnr' =>'104''width' =>'224''height' =>'149');  
        
krsort($listenpunkt);

foreach(
$listenpunkt as $li)
{
echo 
$li['bild'] .  $li['exif'] ;
echo 
"<br />";
}
und dafür hab ich den ganzen Tag gebraucht

die beiden echo-Anzeigen machen genau das was sie sollen; jetzt muss ich das ganze aber noch anpassen, damit auch Bilder da sind.
Dieses hier
HTML-Code:
<li>
<a href="$li['link']"><img src="$li['bild']" alt="Tschechoslowakischer Wolfshund <?php echo ucfirst($name); ?> am $li['exif'] Bild $li['bildnr']"  title="Tschechoslowakischer Wolfshund <?php echo ucfirst($name); ?> am $li['exif'] Bild li['bildnr']"  width="li['width']" height="li['height']" /></a>
<br /><dfn><?php echo ucfirst($name); ?> am $li['exif']</dfn>
</li
muss ich noch komplett ins echo bringen und dafür werde ich wahrscheinlich genauso lange brauchen ....
Mit Zitat antworten
  #8 (permalink)  
Alt 05.11.2011, 18:30
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Ich kann dir nur empfehlen, konkrete Fragen zu stellen. Sonst ist die Hilfe schwierig.

Hier ein Beispiel. Es ist nicht schön, aber wirkungsvoll.

Melde dich bitte wieder, wenn du meinst, das verstanden zu haben. Da müsste man nämlich noch ein, zwei weiterführende Sachen zu sagen.

PHP-Code:
<?php

function bildlisteAusgeben($liste)
{
    foreach (
$liste as $li) {
        
$name 'nicht gesetzt?';

        
$altText sprintf('Tschechoslowakischer Wolfshund %s am %s Bild %s',
                
ucfirst($name), $li['exif'], $li['bildnr']);

        
$title $altText;

        echo 
'<li>';
        
printf('<a href="%s"><img src="%s" alt="%s" title="%s"
                width="%s" height="%s" /></a>)'
,
                
$li['link'], $li['bild'], $altText$title,
                
$li['width'], $li['height']);

        
printf('<br /><dfn>%s am %s</dfn>',
                
ucfirst($name), $li['exif']);

        echo 
'</li>';
    }
}

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors'1);

$listenpunkt = array();

$listenpunkt[103] = array(
    
'link'   =>'shakira-seite-0104.php',
    
'bild'   =>'shakira-thumb-0104.jpg',
    
'exif'   =>'30.10.2011',
    
'bildnr' =>'104',
    
'width'  =>'224',
    
'height' =>'149'
);

krsort($listenpunkt);



bildlisteAusgeben($listenpunkt);
Mit Zitat antworten
  #9 (permalink)  
Alt 05.11.2011, 19:20
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

ooch, Du bist ein Schatz!
Das hätte ich wahrscheinlich nur noch unschöner in mühseliger Arbeit hinbekommen!

Die function musste ich nach den listenpunkten packen, da diese erst alle vom Programm erzeugt werden. Der name ist eigentlich schon als Variable im Header definiert, aber den wollte er nicht (egal, dann doppelt).

Eine Klammer war zuviel (hinter </a>)', ) aber das ist mir im Browser aufgefallen.

Das mit printf oder echo verstehe ich nicht wirklich, die ' oder " sind für mich auch schwör, ich hätte versucht alles ins echo zu packen (hab aber auch schon x-Versuche durch, die es nicht gemacht haben).

Grob verstehe ich das Prinzip; aber ich google mich immer dumm und dämlich.
Ich werde mich bemühen, meine Fragen nächstes Mal ordentlicher zu stellen
Vielen, vielen Dank nochmals !
Die weiterführenden Sachen aus Deinem Post dazu wären ?
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 06.11.2011, 22:32
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Zitat:
Der name ist eigentlich schon als Variable im Header definiert, aber den wollte er nicht (egal, dann doppelt).
Ja, da wusste ich nicht, woher der Wert kommt. Würde ich dann einfach auch noch als Parameter an die Funktion übergeben.

Zitat:
Das mit printf oder echo verstehe ich nicht wirklich, die ' oder " sind für mich auch schwör, ich hätte versucht alles ins echo zu packen (hab aber auch schon x-Versuche durch, die es nicht gemacht haben).
Das steht aber alles im Handbuch. Wo du die Funktionen findest, dürfte klar sein. Speziell zu den Stringbegrenzern:

- PHP: Strings - Manual

Zitat:
Grob verstehe ich das Prinzip; aber ich google mich immer dumm und dämlich.
Wie gesagt, offizielles Handbuch unter php.net.

Zitat:
Die weiterführenden Sachen aus Deinem Post dazu wären ?
Hauptsächlich ging es mir um das „Escaping“ von Ausgaben.

Außerdem finde ich es schöner, wenn Funktionen selbst keine Ausgaben generieren, sondern lediglich Werte zurückgeben. Da kann man sich hier zwar drüber streiten, aber na ja.

PHP-Code:
<?php

function escape($s)
{
    return 
htmlspecialchars($sENT_QUOTES'UTF-8');
}

function 
bildlisteGenerieren($name$liste)
{
    
$output '';

    foreach (
$liste as $li) {
        
$altText sprintf('Tschechoslowakischer Wolfshund %s am %s Bild %s',
                
ucfirst($name), $li['exif'], $li['bildnr']);

        
$title $altText;

        
$output .= '<li>';
        
$output .= sprintf('<a href="%s"><img src="%s" alt="%s" title="%s"
                width="%s" height="%s" /></a>'
,
                
escape($li['link']), escape($li['bild']), escape($altText), escape($title),
                
escape($li['width']), escape($li['height']));

        
$output .= sprintf('<br /><dfn>%s am %s</dfn>',
                
escape(ucfirst($name)), escape($li['exif']));

        
$output .= '</li>';
    }

    return 
$output;
}

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors'1);

$listenpunkt = array();

$listenpunkt[103] = array(
    
'link'   =>'shakira-seite-0104.php',
    
'bild'   =>'shakira-thumb-0104.jpg',
    
'exif'   =>'30.10.2011',
    
'bildnr' =>'104',
    
'width'  =>'224',
    
'height' =>'149'
);

krsort($listenpunkt);



echo 
bildlisteGenerieren('Lassie'$listenpunkt);
Der Code enthält noch immer hardgecodete Elemente (etwa den String „Tschechoslowakischer Wolfshund“). Das würde ich ebenfalls noch auslagern.
Mit Zitat antworten
Sponsored Links
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML-Tabelle sortieren Rico Javascript & Ajax 11 12.03.2010 20:41
Tabelle sortieren Rico Javascript & Ajax 2 13.08.2009 18:19
Array sortieren meGa Serveradministration und serverseitige Scripte 12 09.09.2008 23:44
Lässt sich eine Hintergrundgrafik auf <li> anwenden, die größer ist als <li> selbst? dforce (X)HTML 13 22.02.2008 11:52
Einträge sortieren / Anzeigen lassen TimGT Serveradministration und serverseitige Scripte 6 31.10.2006 17:35


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:48 Uhr.