Hej!
Jag har ett egengjort CMS som jag nu ska göra om lite när det gäller URL'er. Man kan ha sidor/artiklar i hur många nivåer som helst:
[kod]Id
Parent
Namn
...[/kod]
Menyn/trädet kan t.ex. se ut såhär:
[kod]Hem
- Nyheter
- Kalender
Information
- Kontakt
- Ring!
- Skicka E-post
- Om oss[/kod]
URL'erna blir då:
[kod]/hem/
/hem/nyheter/
/hem/kalender/
/information/
/information/kontakt/
/information/kontakt/ring/
/information/kontakt/skicka-e-post/
/information/omoss/[/kod]
Nu undrar jag över det lättaste sättet att "fånga upp" vald URL. Jag har kollat på hur det fungerar i t.ex. Wordpress, där alla sidor/anrop går genom index-filen, med hjälp av följande i .htaccess[kod]RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L][/kod]
Jag är lite insatt hur resten fungerar i WP, d.v.s. att sidorna sedan hämtar dess ID utifrån preg_match(), men det jag inte vet är varifrån det hämtas. Vad jag kan göra är att skicka ut alla meny-items tillsammans med dess resp. ID som en lång sträng, och sen hämta resp ID med preg_match.
Det går ju även att spara hela "menyträdet" som en array och sedan hämta rätt ID/Key med hjälp av in_array().
$_SERVER['REQUEST_URI'] hittar ju det som finns i adressfältet, är det "bra" och "säkert" att använda sig av den servervariabeln för att hämta rätt artikel/sida, eller bör man göra på något annat sätt?
Men den stora frågan är ju - vilket sätt är bäst/snabbast?
Jag bör ju ha hela trädet som någon typ av variabel/array i en fil och läsa in filen vid varje anrop, snarare än att hämta hela trädet från databasen vid varje anrop, eller hur?
Så, hur hade ni löst det?
Tack!
Jag har ett egengjort CMS som jag nu ska göra om lite när det gäller URL'er. Man kan ha sidor/artiklar i hur många nivåer som helst:
[kod]Id
Parent
Namn
...[/kod]
Menyn/trädet kan t.ex. se ut såhär:
[kod]Hem
- Nyheter
- Kalender
Information
- Kontakt
- Ring!
- Skicka E-post
- Om oss[/kod]
URL'erna blir då:
[kod]/hem/
/hem/nyheter/
/hem/kalender/
/information/
/information/kontakt/
/information/kontakt/ring/
/information/kontakt/skicka-e-post/
/information/omoss/[/kod]
Nu undrar jag över det lättaste sättet att "fånga upp" vald URL. Jag har kollat på hur det fungerar i t.ex. Wordpress, där alla sidor/anrop går genom index-filen, med hjälp av följande i .htaccess[kod]RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L][/kod]
Jag är lite insatt hur resten fungerar i WP, d.v.s. att sidorna sedan hämtar dess ID utifrån preg_match(), men det jag inte vet är varifrån det hämtas. Vad jag kan göra är att skicka ut alla meny-items tillsammans med dess resp. ID som en lång sträng, och sen hämta resp ID med preg_match.
Det går ju även att spara hela "menyträdet" som en array och sedan hämta rätt ID/Key med hjälp av in_array().
$_SERVER['REQUEST_URI'] hittar ju det som finns i adressfältet, är det "bra" och "säkert" att använda sig av den servervariabeln för att hämta rätt artikel/sida, eller bör man göra på något annat sätt?
Men den stora frågan är ju - vilket sätt är bäst/snabbast?
Jag bör ju ha hela trädet som någon typ av variabel/array i en fil och läsa in filen vid varje anrop, snarare än att hämta hela trädet från databasen vid varje anrop, eller hur?
Så, hur hade ni löst det?
Tack!
Kommentera