mboost-dp1

Global Php Function til alle ens mappe struktur/under mapper?


Gå til bund
Gravatar #1 - Yong
30. maj 2013 00:38
Hey Newz

Jeg har siddet og forsøgt at lave en global function til header & footer til mit site til alle sider og under sider, så jeg kun skal ændre et sted nemli i function.

Er det overhovedet muligt eller er det mig der ikke har forsøgt nok eller ledt grundigt nok?
Det må gerne være i Object Orientede Php da det hele er i den ende i forvejen.

Håber på positive svar som tilbagevending.
Gravatar #2 - arne_v
30. maj 2013 00:46
#1

De fleste vil vel lave en include eller require som henter den kode stump ind.

Men behøver header og footer faktisk være dynamisk (PHP)?
Gravatar #3 - Yong
30. maj 2013 01:39
#2

Ja rigtigt, men eftersom stien skal være i den fil der bliver include så kan jeg ikke bruge den fil til alle siderne. Der mit problem opstår.
Derfor det ville være en nemmere måde hvis man kunne lave en function til det.

Ja for det første at jeg ikke skal smide en .css eller .js ind i flere files, men kun et sted, gør det utroligt noget nemmere.
Og hvorfor ikke gør det så let som muligt for en selv, hvis det muligt.
Gravatar #4 - plazm
30. maj 2013 08:00
"Normalt" ville man til små sites lave noget i stil med følgende, så har man sit design et sted

<html>
<head>
</head>
<body>
<?
switch($_GET["page"]) {
case "subside":
include("subside.php");
break;
default:
include("forside.php");
break;
}
?>
</body>
</html>
Gravatar #5 - plazm
30. maj 2013 08:01
Og det kan selvfølgelig gøres så avanceret som man ønsker, men det der er essencen af de fleste løsninger.
Gravatar #6 - Yong
30. maj 2013 08:55
#4-5

Kan se hvad du mener, men hvis du så min title på topic "Global Php Function til alle ens mappe struktur/under mapper?"

Så er det mappe struktur jeg bruger.
Så bruger slet ikke switch eller GET for den sags skyld.

Men ja jeg brugte det i en lang periode i starten, så kan godt huske det.
Men ikke en form jeg vender tilbage til i hvert fald.

Derfor det kunne være rart med en enkelt function til det så jeg havde så lidt som muligt i hver mappe og sub mappe
Gravatar #7 - plazm
30. maj 2013 09:35
Men er det så ikke bare at lave noget url rewrite ? :)
Gravatar #8 - Yong
30. maj 2013 13:11
#7

Kan du uddybe dine tanker?
For kender godt rewrite hvis det er .htaccess rewrite du tænker på.
Og med det kenskab kan jeg ikke lige se hvordan det kan bruges i denne sammenhæng.

Da det ikke er selve url i adresselinjen der skal laves om i.
Gravatar #9 - arne_v
30. maj 2013 13:20
Yong (3) skrev:

Ja rigtigt, men eftersom stien skal være i den fil der bliver include så kan jeg ikke bruge den fil til alle siderne. Der mit problem opstår.
Derfor det ville være en nemmere måde hvis man kunne lave en function til det.


Hvis det inkluderede skal indeholde stien til det inluderende, så er opgaven jo uløselig som stillet.

Hvis du mener at det inkluderende skal indeholder stien til det inkluderede, så er det rigtigt. Men det bør ikke være noget problem (enten relativ sti eller DOCUMENT?ROOT based sti).

Yong (3) skrev:

Ja for det første at jeg ikke skal smide en .css eller .js ind i flere files, men kun et sted, gør det utroligt noget nemmere.
Og hvorfor ikke gør det så let som muligt for en selv, hvis det muligt.


Du kan igen sagtens referere til samme .css og .js filer fra PHP output fra scripts i flere dir.

Gravatar #10 - Yong
30. maj 2013 14:33
#9

arne_v (9) skrev:

Hvis det inkluderede skal indeholde stien til det inluderende, så er opgaven jo uløselig som stillet.

Hvis du mener at det inkluderende skal indeholder stien til det inkluderede, så er det rigtigt. Men det bør ikke være noget problem (enten relativ sti eller DOCUMENT?ROOT based sti).


Der røg jeg lige ud af kurs.
Header.php
I den fil siger vi, jeg har 3 .css files derinde.
Og eftersom de 3 skal være på alle sider og undersider. De stier skal passe fra den index.php den bliver include ind i. Kom jeg lige til at finde ud af. Så fik skrevet forkert længere oppe.

Konklusion på det er så at jeg ikke kan include den i undersiderne fordi det kræver en anden sti.

"DOCUMENT?ROOT based sti". Det skal jeg have kigget på eller andet hvis det er en mulighed jeg kan bruge. Da jeg ikke har arbejdet med det før.


#Du kan igen sagtens referere til samme .css og .js filer fra PHP output fra scripts i flere dir. [/quote]

Du mener jeg via PHP kan lave et script til at include ind i alle index.php ligegyldigt sti, som kan virke?
Gravatar #11 - arne_v
30. maj 2013 14:45
Yong (10) skrev:

Header.php
I den fil siger vi, jeg har 3 .css files derinde.
Og eftersom de 3 skal være på alle sider og undersider. De stier skal passe fra den index.php den bliver include ind i. Kom jeg lige til at finde ud af. Så fik skrevet forkert længere oppe.

Konklusion på det er så at jeg ikke kan include den i undersiderne fordi det kræver en anden sti.


Den konklusion er forkert.

Gravatar #12 - Yong
30. maj 2013 15:17
Hvordan?
Gravatar #13 - arne_v
30. maj 2013 15:27
#12

Både med hensyn til PHP include og ref til CSS/JS skal du konstruere en path som virker.

Bemærk at de to er foskellige.

For CSS/JS skal du bruge noget som starter med /.

For PHP include skal du konstruere noget udfra DOCUMENT_ROOT.
Gravatar #14 - nielsbuus
30. maj 2013 16:04
Hvis du præfikser alle dine stier med en slash, så udgår de fra roden.

Eksempel:

<a href="produkter/oversigt.php">Produkter</a>

Hvis du includer den på /profil/historie.php, så giver stien til /profil/produkter/oversigt.php, hvilket ikke duer.

Hvis du præfikser med en slash - eksempel:

<a href="/produkter/oversigt.php">Produkter</a>

så bliver stien altid /produkter/oversigt.php - uanset hvor linket er inkluderet.
Gravatar #15 - Yong
1. jun. 2013 00:10
#13

Det gav ikke meget mening i hovedet udover det med at starte med /, som jeg går ud fra du mener med det #14 skriver.
Men vil prøve og kigge på det DOCUMENT_ROOT, og se om jeg kan forstå meningen med det.

#14

Perfekt nu virker det med at have header.php includet i:
Menu/Test
Menu/Test/Test
Uden og skulle edit stien i header.php

Jeg takker mange gange for hjælpen :)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login