mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 03:08 Benutzername: Passwort: Auto-Login

Thema: [php] rekursive funktion / array umsortieren. vom 03.09.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] rekursive funktion / array umsortieren.
Seite: Zurück  1, 2
Autor Nachricht
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 04.09.2005 11:40
Titel

Antworten mit Zitat Zum Seitenanfang

XSchinkenX hat geschrieben:
Anderenfalls wärs ja ne Idee, die Inhalte in einer DB zu hinterlegen und die Hierarchie unabhängig davon meinethalben in einer XML-Datei zu hinterlegen.


Dann kannst Du ja auch die restlichen Daten in XML ablegeen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst So 04.09.2005 11:52
Titel

Antworten mit Zitat Zum Seitenanfang

Stimmt, aber das stelle ich mir ungleich aufwendiger vor... da brauchste ja u.U. ne komplette Rechteverwaltung, Eingabemasken, Sicherheitsabfragen etc... ich persönlich mach das mit ner XML UND einer DB... aus Faulheit sozusagen.
 
Anzeige
Anzeige
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 04.09.2005 12:34
Titel

Antworten mit Zitat Zum Seitenanfang

und wo is der unterschied ob ich da jetzt ne db oder n xml file hab?

ich mein, wie isn das xml dann aufgebaut?


Code:
<parent_cat_id>0</parent_cat_id>
<cat_id>1</cat_id>
<titel>Referenzen</titel>

<parent_cat_id>1</parent_cat_id>
<cat_id>2</cat_id>
<titel>Nonprint</titel>

<parent_cat_id>1</parent_cat_id>
<cat_id>3</cat_id>
<titel>Print</titel>


?

irgendwie werd ich dadurch auch nich schlauer so wirklich. ich schau mir jetzt nochmal die nested set class von pear an. den pear code find ich eigentlich immer recht verständlich. aber bei dem was ich da gestern abend gesehen hab, weiß nich.

cojote, hilfe wär nett, kannste mal hier innen mgi chat kommen im laufe des tages?
danke Lächel
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst So 04.09.2005 12:53
Titel

Antworten mit Zitat Zum Seitenanfang

Ein Beispiel für eine hierarchisch aufgebaute XML-Instanz:

Code:
<ul>
   <li>...</li>
   <li>...</li>
   <ul>
       <li>...</li>
       <li>...</li>
   </ul>
   <li>...</li>
</ul>


Welches Informationen du hinterelegst, ist Latte. Ein ganz gutes Beispiel dafür ist:

Code:
<ul>
   <li artikelid="1">...</li>
   <li artikelid="2">...</li>
   <ul>
       <li artikelid="3">...</li>
       <li artikelid="1">...</li>
   </ul>
   <li artikelid="4">...</li>
</ul>


Wie du sehen kannst, ist der Content nur lose mit der Struktur verbunden, sodass du zum Beispiel EINEN Artikel deiner Seite in MEHREREN Menus/Menupunkten auftauchen lassen kannst.


//
Zur Pear-Klasse: Da musst du weder in den Code reingehen, noch irgenwas abspecken. Es handelt sich um eine Klasse bzw. Klassenbibliothek (vergleichbar mit der Illustrator-DLL, mit der du bspw. Plugins für den Adobe Illustrator schreiben kannst, indem du auf in der DLL verpackten Objekte und Objektmethoden zurückgreifst). Du musst dir nur die API-Doku anschauen (Fränk hat oben eine Liste der zur Verfügung stehenden Methoden gepostet, das Ganze ist mit DOM vergleichbar) und dann die entsprechenden Methoden in deinem Skript verwenden.


Zuletzt bearbeitet von am So 04.09.2005 12:57, insgesamt 1-mal bearbeitet
 
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 04.09.2005 12:56
Titel

Antworten mit Zitat Zum Seitenanfang

Dein HTML ist falsch. So ist es richtig.
Code:
<ul>
    <li>...</li>
    <li>
        <ul>
            <li>...</li>
        </ul>
    </li>
</ul>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst So 04.09.2005 13:15
Titel

Antworten mit Zitat Zum Seitenanfang

ok, ok (ist ja kein html sondern xml)



///
zur Erklärung: die gewählte Struktur hast insofern Vorteile, als dass du jedes li/ul Element gleichwertig als Knoten Behandeln kannst. Die Parent/Child Struktur ist für die Abbildung unwichtig: Wir haben gelernt, dass wir Inhalt und Struktur trennen, anders als bei einer hierarchisch aufgebauten HTML/ul-Liste.

Somit musst du in der Programmierung nur unterscheiden: Trifft der Parser ein ul- oder ein li-Element. In der HTML-Struktur einer "richtigen" ul-Liste müsstest du für jedes li noch die Kindelemente abgrasen: Ein Schritt mehr, der eigentlich unnötig ist. Da du alle anderen Informationen (Text des Menueintrags bzw. Id des Artikels) nur an <li>-Elemente packst, brauchst du nur eine Fallunterscheidung:

1.) Parser trifft <ul>: Starte Rekursion, indem du die Kindknoten von Ul an deine Callback-Funktion übergibst.
2.) Parser trifft <li>: Starte Transformation, indem du den entgültigen Menueintrag zusammenstellst.


Zuletzt bearbeitet von am So 04.09.2005 15:54, insgesamt 2-mal bearbeitet
 
 
Ähnliche Themen PHP: Mehrdimensionales Array händisch umsortieren
Array außerhalb der funktion bringen...
Fieses PHP/MySQL-Skript gibt nur "Array Array Array..." aus
csv aufbereiten/umsortieren für Import
Online-Chat Funktion - mit On und Offline Funktion
PHP: Array kürzen
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.