Gå til innhold

Stilsettadressen blir feil ved inkludering [LØST]


Anbefalte innlegg

Vanskelig å forklare dette, men har skrevet det kort og enkelt, utelatt en del informasjon som faktisk ikke er så nødvendig.

 

Filer:

/system/index.php

/system/templates/temp.html

/system/templates/stilark.css

 

I index.php inkluderer jeg temp.html.

temp.html har fått angitt et CSS-stilark (stilark.css) i <head></head>.

Men siden temp.html blir inkludert i en fil en mappe tilbake, letes det etter stilarket i denne mappen (system-mappen).

 

Det er ikke aktuelt å endre temp.html, til og f.eks. gi en mer spesifikk sti til stilarket. Eneste akseptable løsning er at PHP løser dette på kjøretid. Men hvordan bør jeg gjøre dette?

Endret av DevN
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-df17e

Hvorfor ikke bare prøve det istden for og bruke 2min på og poste problemet her, forså og vente enda felre minutter, kanskje timer før noen kommer med ett patetisk svar til deg ? Tar deg ikke lange tia og prøve!

 

Uansett... temp.html "får" samme "path" som php fila du includer html fila inn i :)

Lenke til kommentar

Joda, jeg vet det.

 

Men jeg vet ikke hvordan jeg skal løse dette under kjøretid? Leser jeg f.eks. filen inn i en variabel kan jeg jo enkelt føye til "templates/" foran stilarknavnet.

Problemer her er at jeg ikke vet hvordan jeg lar dette kun skje på <link ... /> og ikke på f.eks. <a ...>, hvis du skjønner.

 

Systemet må være vennlig mot uansett hvilken rekkefølge attributtene står i, f.eks:

<link href="stilark.css" type="text/css" rel="stylesheet" />

<link rel="stylesheet" href="stilark.css" type="text/css" />

osv.

Lenke til kommentar

Har ikke lagt det ut noen plass, kjører det bare lokalt.

 

Siden systemet skal være brukervennlig mot å lage nye templates - har jeg valgt å gjøre det på denne måten:

Et template består av et HTML-dokument og et CSS-stilark.

PHP returnerer all output til variabelen $output, som kalles i HTML-dokumentet vha "<?echo($output)?>" på den bestemte plassen. Skal jeg endre noe oppsett her, regner jeg med at systemet ikke blir like brukervennlig.

 

Så det jeg ønsker er at stien til stilarket endres av PHP på kjøretid og KUN på kjøretid. I og med at det skal være brukervennlig mot flere stilark i et dokument, kan jeg ikke sette en limit på hvor mange "replace" jeg kjører.

 

Vet ikke helt hvordan jeg skal få dette til ...

 

Jeg har en siste løsning hvis ikke noen kan gi meg en bedre løsning. Dette reduserer da brukervennligheten.

 

Jeg krever at det settes en kommentar ("<!--split-->") inn under det siste stilarket det henvises til i HTML-dokumentet. Da kan jeg kjøre en split og dele dataen opp i to variabler - for så å erstatte i "href="" med "href="templates/" i variabelen som inneholder toppen av dokumentet.

 

Hvor vidt forståelig dette er vet jeg ikke, men har forklart så godt jeg kunne (er også trøtt). Denne løsningen prioriterer jeg sist, siden jeg er avhengig av at et hvert template må ha denne kommentaren.

Lenke til kommentar

siden stilarkene befinner seg i <head> kan du jo hente ut alle tags i headeren, selv om det ikke er nødvendig å dele opp data, men det kan være en fordel. Du trenger jo bare å hente ut alle stylesheets, og det er bare å ta for seg href-atributten i <link rel="stylesheet" href="...." type="text*css">.

Lenke til kommentar

Har ikke anledning til å teste akkurat nå, skal prøve i kveld.

 

Men kom til å tenke på at problemet kanskje ikke bare er stilark. Hvis man bruker bilder i templatene, vil vel heller ikke disse vises?

 

Hmm, ender vel straks opp med 100 linjer kode bare pga dette.

Skal prøve og tenke litt å se om jeg kanskje kommer opp med en bedre løsning, uten å redusere brukervennligheten.

 

Altså, saken er den at jeg vil at URL-en er den samme, bare at det er noen parametere med som bestemmer hvilken side som skal vises da og da. F.eks:

http://domene.no/index.php?page=home

 

Men å være brukervennlig mot templates i en undermappe, ser jo ut til å være et forferdelig arbeid.

Lenke til kommentar

Siden dette hindret noe framgang i arbeidet, endret jeg oppsettet for å kunne fortsette. Løsningen jeg bruker nå er akseptabel:

 

Et template består av:

- head.html (alle stylesheet-inkluderingene)

- body_over.html (alt under <body>-taggen og over output PHP returnerer)

- body_under.html (alt over </body>-taggen og under output PHP returnerer)

 

head.html leses inn i en variabel - jeg kjører replace på alle href's, slik at jeg kan føye til "templates/" foran stilarknavnene. De andre dokumentene kjører jeg vanlig include på over og under all data PHP returnerer.

 

PHP-dokumentet føyer til <html>, <head>, </head>, <body>, </body> og </html> på de riktige plassene.

 

Takker for hjelpen likevel.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...