Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Funkcija za html tags <head>

[es] :: PHP :: Funkcija za html tags <head>

[ Pregleda: 2760 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Funkcija za html tags <head>18.11.2009. u 21:41 - pre 174 meseci
Napravio sam funkciju za dodavanja koda u html tag <head>, recimo da zelim da dodajem neki javascript code ili style.css.
Ali na localhost dobjem sledecu gresku: Warning: stristr() [function.stristr]: Empty delimiter in C:\xampp\htdocs\site\header_includes.php on line 8

header_includes.php
Code:
<?php
$page_head_tags = "";

function add_to_head($tag=""){
   global $page_head_tags;
   
   if(!stristr($page_head_tags, $tag)){
      $page_head_tags .= $tag."\n";
   }
}?>


header.php
Code:
<?php
include("header_includes.php");
?>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test Site</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link rel="stylesheet" href="stil.css" type="text/css" media="screen" />
<?php if (function_exists("add_to_head")) { echo add_to_head(); } ?>
</head>

<body>


index.php
Code:
<?php
include_once("header.php");
add_to_head("<link rel='stylesheet' href='blue.css' type='text/css' media='screen' />");?>
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Funkcija za html tags <head>18.11.2009. u 21:56 - pre 174 meseci
Zeza te ovo: echo add_to_head();

Tu si verovatno hteo da napišeš: echo $page_head_tags;
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>18.11.2009. u 22:11 - pre 174 meseci
Da da vidim da me zeza: echo add_to_head();
Prosto nemogu se snaci, ima li neko resenje za ovo ?
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Funkcija za html tags <head>18.11.2009. u 22:36 - pre 174 meseci
Napisao sam ti rešenje.
:)
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>18.11.2009. u 22:41 - pre 174 meseci
Hvala ti na pomoc ali nije bio to resenije, morao sam da napravim jos jednu funkciju za output i dodati u footer-a

Code:
$output = ob_get_contents();
ob_end_clean();
echo handle_output($output);


Resio sam problemcic :)
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Funkcija za html tags <head>18.11.2009. u 23:05 - pre 174 meseci
Nisi ti resio problem, nego si samo "sakrio" gresku koja se prikazivala :-)) Mislim da bi ovo trebalo da ti odradi posao:

Code:

function add_to_head($tag=""){
   global $page_head_tags;
   
   if(!empty($tag) && !stristr($page_head_tags, $tag)){
      $page_head_tags .= $tag."\n";
   }
}


I posle samo:

Code:

echo $page_head_tags;

 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 13:50 - pre 174 meseci
Mozda si u pravo ali sinoc kad sam proverio kod bio sam iznenadjen, na index-u mogao sam dodat javascript code a i menjat <title>, ali kad sam proverio contact.php i ostali fajlova nista nisam mogao dodati ili menjati.
Neznam sta nije uredu sa ovim kodom...

header_includes.php
Code:
$page_head_tags = "";
$page_title = "Test - ";

function set_title($title=""){
    global $page_title;
    
    $page_title = $title;
}

function add_to_title($addition=""){
    global $page_title;
    
    $page_title .= $addition;
}

function add_to_head($tag=""){
    global $page_head_tags;
    
    if(!stristr($page_head_tags, $tag)){
        $page_head_tags .= $tag."\n";
    }
}

function handle_output($output){
    global $page_head_tags, $page_title;

    if(!empty($page_head_tags)){
        $output = preg_replace("#</head>#", $page_head_tags."</head>", $output, 1);
    }
    if($page_title != "Test - "){
        $output = preg_replace("#<title>.*</title>#i", "<title>".$page_title."</title>", $output, 1);
    }
    
    return $output;
}


header.php
Code:
include("header_includes.php");
function get_head_tags(){
    echo "<!--[if lte IE 7]><style type='text/css'>.clearfix {display:inline-block;} * html .clearfix{height: 1px;}</style><![endif]-->";
}
?>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<?php if (function_exists("get_head_tags")) { echo get_head_tags(); }?>
</head>


footer.php
Code:

$output = ob_get_contents();
ob_end_clean();
echo handle_output($output);


index.php
Code:
include_once("header.php");
add_to_head("<link rel='stylesheet' href='blue.css' type='text/css' media='screen' />");
add_to_title("Bla Bla Bla");

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 14:51 - pre 174 meseci
Pa ti si zakomplikovao ovo iz sve snage, majkemi :p :p

Za pocetak, ne stigoh da ti kazem sinoc (a iskreno mrzelo me posle da pisem ponovo :P):

Ova tvoja funkcija:

Code:

function add_to_head($tag=""){
    global $page_head_tags;
    
    if(!stristr($page_head_tags, $tag)){
        $page_head_tags .= $tag."\n";
    }
}


Ima za ideju da proveri da li je vec inkludovana neka skripta/link/sta vec i ako jeste, nece je inkludovati opet ... I ok, to ce da radi u slucaju da ti probas:

Code:

add_to_head('<script type="text/javascript" src="javaskripta.js"></script>');
add_to_head('<script type="text/javascript" src="javaskripta.js"></script>'); // Ovo nece ubaciti (nece duplirati)


Ali, ti napisi:

Code:

add_to_head('<script src="javaskripta.js" type="text/javascript"></script>'); // Ovo ce ubaciti, i dobices dupliran include skripte ... 


Dalje ... Kad si se vec uhvatio proceduralnog stila pisanja, zar nije bilo lakse da napises ovako nesto:

header_functions.php:

Code:


$page_title = "Test - ";
$header_includes = "";

function add_to_title($title = '')
{
  global $page_title;

  $page_title .= $title;
}

function add_to_head($tag = '')
{
  global $header_includes;

  // Sad mozes da napravis onu tvoju proveru, iako nije najsrecnija (kao sto sam vec pomenuo ...)
  if(!empty($tag) && !stristr($header_includes, $tag)){
        $header_includes .= $tag."\n";
  }
}

function print_headers()
{
  global $page_title;
  global $header_includes;

  // Stampaj TITLE
  echo "<title>$page_title</title>";

  // Stampaj include-ove
  echo $header_includes;
}


I sad lepo u index.php:

Code:

include_once("header_functions.php");
add_to_head("<link rel='stylesheet' href='blue.css' type='text/css' media='screen' />");
add_to_title("Bla Bla Bla");


header.php:

Code:

<head>
<?php print_headers() ?>
</head>


I to bi trebalo da sljaka lepo :-)

Btw, pogledaj ovu klasu koju je radio Nikola Poša:

http://www.nikolaposa.in.rs/moj-rad/php-klase/head-section (klasa za rad sa Header-ima)

Pozz!

 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 15:12 - pre 174 meseci
Hvala ti postavio sam tvoj code ali oped isto sta god da ubacim u add_to_head nista ne includuje, a kod add_to_title dobijem default vrednost $page_title = "Test - ";

Neznam ocemu je rec ...
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 16:00 - pre 174 meseci
Probao sam klasu od Nikola. Sad je drugacije recimo imam u header.php
Code:
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php include_once("HeadSection.php");?>

<body>

    <div align="center">      
    <table class="table" cellspacing="0" cellpadding="0">
        <tr>
            <td>
            <img border="0" src="img/header.jpg" width="400" height="200"></td>

da nepisem ostali kod e sad kod indexa postavio sam kod za head section
Code:
require_once("header.php");

$headSectionParams = array(
    'title'   => 'My site',
    'meta'    => array('name'=>'keywords', 'content'=>'test, generate, head'), 
    'css'     => array('stil.css', 'menu.css'), 
    'js'      => array('functions.js', 'js/test.js'),
);

$headSection = new HeadSection(array('contentType'=>null, 'indent'=>8), $headSectionParams);

$headSection->addJs('test.js');
$headSection->addTitle(" | Test");

echo $headSection;


e sad kad idem u izvorni kod prikazuje se
Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<body>

    <div align="center">      
    <table class="table" cellspacing="0" cellpadding="0">
        <tr>
            <td>
            <img border="0" src="img/header.jpg" width="400" height="200"></td>
 TEK OVDE IDU HEAD TAGOVI

Kako da postavim tagove da idu posle
Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 17:42 - pre 174 meseci
Man-Wolf probao sam tvoje dvije opcije ali vracam se na prvu, ako u header dodam samo:

header.php
Code:
<head>
<?php echo print_headers(); ?>
</head>


dobijam sledecu gresku: Fatal error: Call to undefined function print_headers() in C:\xampp\htdocs\site\header.php on line 11

dok u index-u includujem
Code:
include_once("header_functions.php");


a ako postavim include_once("header_functions.php"); u header.php i obrisem sa index-a onda sve sto napises u funkciju add_to_head nista se neprikazuje, prikazuje kao prazna...
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 18:25 - pre 174 meseci
Cek, nisam imao vremena da gledam sve, al ja rekoh da napises:

Code:


<?php print_headers(); ?>



A ne:

Code:


<?php echo print_headers(); ?>



:-)

I naravno, treba da inkludujes tu skriptu sa ovim f-jama ... :-)

 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 18:35 - pre 174 meseci
Sve sam uradio kako sta si napisao ali oped ista greska, postavio sam i sa
Code:
<head>
<?php print_headers(); ?>
</head>
ali nece.

Fatal error: Call to undefined function print_headers() in C:\xampp\htdocs\site\header.php on line 11
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 18:59 - pre 174 meseci
Citat:
Man-Wolf:
I naravno, treba da inkludujes tu skriptu sa ovim f-jama ... :-)


header.php:
Code:

<head>
<?php include('header_functions.php'); // Il kako se vec zove .... ?>

<?php print_headers(); ?>
</head>
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>19.11.2009. u 19:09 - pre 174 meseci
Fatal error: Call to undefined function add_to_title() in C:\xampp\htdocs\site\index.php on line 18

morao sam da postavim header.php ispod add_to_head i title i sad radi :)
a kako mogu umesto echo "<title>$page_title</title>"; u headers_functions.php da stavim kod za replace na <title> recimo kao ovo?

Code:
if($page_title != $page_title){
        $output = preg_replace("#<title>.*</title>#i", "<title>".$page_title."</title>", $output, 1);
    }
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Funkcija za html tags <head>20.11.2009. u 01:26 - pre 174 meseci
Cekaj, meni nije jasno uopste sta ti radis/pokusavas da uradis ? :-) Ti na tim stranicama vec imas neki <title> tag koji hoces da zamenis sa ovim tvojim ?? Pojasni malo bolje sta tacno pokusavas ;)
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>20.11.2009. u 12:42 - pre 174 meseci
:) E ovako po sto ti nije jasno, kako sto vec imam header.php u njega sam stavio head tagove, e sad recimo da neki CSS ili Javascript code koristim samo u jedan FILE, umesto taj file da se ucitava u sve te stranice zato sam trazio tu fukciju da se ucitava samo u file koju dodam ja, sta se tice title onu fukciju koju si napisao nije bila losa ali to koristim recimo kao na CMS skripte primer, add_to_title("Kontakt"); a prije toga imam Site Title -, a to za title sta sam te pitao mislim da ti je jasno samo sam htio znat dali mogu koristiti metodu sa preg_replace, ali i ovako je Ok :)
Jel sad jasno ili oped nije :-) heheh
Pozzzzzzzzzzz
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
91.148.87.*



+13 Profil

icon Re: Funkcija za html tags <head>20.11.2009. u 14:00 - pre 174 meseci
Pa iskren da budem i dalje mi nije bas najjasnije

Sto se tice <title></title> to je ok, ako sam dobro skapirao ?

E sad, sto se tice ovog sa include-ovanjem, aj da probam da vidim da li sam dobro razumeo:

Znaci, imas neke JavaScript-e/CSS-ove koje hoces da ucitas samo na odredjenim stranicama? Ako je to slucaj, onda ne znam sta ti ne odgovara u mom kodu ?

Znaci, ti ces u skripti za koju zelis da ima neke dodatne Header Include-ove, da dodas:

Code:

add_to_head(Prvi dodatni tag);
add_to_head(Drugi dodatni tag);
add_to_title(Definisi nastavak Title-a);


I onda u header.php:

Code:

<head>
<script src=....></src> <!-- Prvi tag koji treba da bude na svim stranicama ... -->
<script src=....></src> <!-- Drugi tag koji treba da bude na svim stranicama ... -->
<?php print_headers() ?>
<!-- I pozivom ove funkcije ces da dobijes: 
    <title>Site Title - (naslov koji si dodao u definisi nastavak title-a u add_to_title() funkciji)</title>
    --- Dodatne skripte (ukoliko postoje ....)
-->


Ako je nesto drugo u pitanju, onda bih te zamolio da se malo bolje potrudis i da razdvojis pitanja u vise redova (tipa - jedno pitanje -> jedan red), posto sam malo priglup, pa ne mogu bas najbolje da se snadjem

Pozdrav!


 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.88.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Funkcija za html tags <head>20.11.2009. u 14:23 - pre 174 meseci
Aj sad, reci ce neki da solim pamet, ali posto vidim da vec radis neke 'naprednije' stvari sa php-om, tj, barem razmisljas naprednije, o slobodi pozivanja funkcija i izmene sadrzaja, probaj da koristis smarty ili bilo koji drugi template engine, videces da su ovakvi problemi, a i gomila drugih, jednostavno nepotrebni. Samo mi deluje da imas potrebno znanje i nacin razmisljanja da predjes na neki template engine i da samo picis pravu stvar.
Nevezano za temu, izvinjavam se.
 
Odgovor na temu

balkan7

Član broj: 119255
Poruke: 82
88.85.101.*



Profil

icon Re: Funkcija za html tags <head>20.11.2009. u 15:27 - pre 174 meseci
Man-Wolf - bilo je rec o <title></title>, ali napisao sam ti da i tvoj kod radi (nebitno sad to), sta se tice prvi kod koji sam ti pastirao po sto sam kopirao od CMS i mrzeo me je da pisem funkciju a i mozda ne bi se snaso tako nabolje zato sam jednostavno kopirao.
Na taj CMS sta koristim kod radi ali kad sam proverio na localhost-u samo na jedan file je radio na ostalih ne (cudno).
Hvala na podrsku !

dakipro - hvala ti, mozda cu poceti sa smarty.

 
Odgovor na temu

[es] :: PHP :: Funkcija za html tags <head>

[ Pregleda: 2760 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.