Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie <title> z samego dołu na samą górę
Forum PHP.pl > Forum > Przedszkole
Weles
Witam!

Od 8:00 męczę się ze znacznikami <title></title>, gdyż:

*Znaczniki title są na samej górze strony - wiadomo, pomiędzy <head></head>
*Include'owany plik do index.php (w którym jest title) jest na praktycznie samym dole strony

I tutaj pada moje pytanie:

Jak/co zrobić aby pobrać ten title?..

Wrzucenie znaczników title poza head jest niepoprawne.

Szukam w google, np. pod takimi frazami:
https://www.google.com/search?hl=pl&q=j...366&bih=643

I zero rezultatów..

Pozdrawiam!
CuteOne
Przenieś title do innego pliku np. konfiguracyjnego i zaincluduj na początku strony
Weles
Cytat(CuteOne @ 21.12.2012, 10:15:59 ) *
Przenieś title do innego pliku np. konfiguracyjnego i zaincluduj na początku strony


Tyle że każdy include'owany plik (a każdy include'owany plik to inna podstrona) ma inne parametry, i musi z bazy np. pobierać nazwę pliku (bo to jest uploader - hosting plików)
CuteOne
1. Zawsze odpalaj bootstrap jako plik startowy np. index.php
2. Do niego includuj potrzebne podstrony
3. Domyślny title trzymaj w pliku konfiguracyjnym i zmieniaj jego wartość w includowanych podstronach

np.
  1. $config = include 'configs/application.php';
  2.  
  3. $page = !empty($_GET['page']) ? $_GET['page'] : 'default';
  4.  
  5. if(array_key_exists($page, $config['modules'])) {
  6.  
  7. require_once 'modules/'.$config['modules'][$page]['module_name'];
  8.  
  9. if(!empty($config['modules'][$page]['module_layout'])) {
  10.  
  11. require_once 'layouts/'.$config['modules'][$page]['module_layout'];
  12. }
  13. else {
  14.  
  15. require_once 'layouts/default.php';
  16. }
  17. }
  18. else {
  19.  
  20. header('Location index.php');
  21. }
Weles
Cytat(CuteOne @ 21.12.2012, 10:25:22 ) *
1. Zawsze odpalaj bootstrap jako plik startowy np. index.php
2. Do niego includuj potrzebne podstrony
3. Domyślny title trzymaj w pliku konfiguracyjnym i zmieniaj jego wartość w includowanych podstronach

np.
  1. $config = include 'configs/application.php';
  2.  
  3. $page = !empty($_GET['page']) ? $_GET['page'] : 'default';
  4.  
  5. if(array_key_exists($page, $config['modules'])) {
  6.  
  7. require_once 'modules/'.$config['modules'][$page]['module_name'];
  8.  
  9. if(!empty($config['modules'][$page]['module_layout'])) {
  10.  
  11. require_once 'layouts/'.$config['modules'][$page]['module_layout'];
  12. }
  13. else {
  14.  
  15. require_once 'layouts/default.php';
  16. }
  17. }
  18. else {
  19.  
  20. header('Location index.php');
  21. }


No ale, co jeśli muszę w każdej podstronie wykonać inne zapytanie dające inny wynik?

Np.:
Kod
$query = mysql_fetch_array(mysql_query("SELECT * FROM pliki WHERE link='$_GET[v]'"));
$tytul = $query['nazwa_pliku'];


Bo w podstronach nie chodzi mi o tytuły np.:

"Rejestracja", "Pobieranie" itd. tylko konkretne nazwy z różnych tabel, które muszę pobierać przez zapytania, albo np. jak coś nie istnieje to "Plik xx nie istnieje" (co sprawdza się w pliku z daną podstroną)

EDIT:

Pomyślałem sobie że może przez JS bym ustawił ten tytuł.
Czy to zadziała tak jak zwykłe title czy nie?

Kod
document.title = 'jakis tam tytul';


Tzn. czy np. google zaindeksuje w wyszukiwarce ten tytuł z JS, czy ten orginalny?
CuteOne
layout.php
  1. <head>
  2. <title><?=$config['page']['title'];?></title>
  3. </head>
  4. <body>
  5. <div>
  6. <?=$content;?>
  7. </div>
  8. </body>


modules/default.php lub inny plik (includowana podstrona)
  1. <?php
  2.  
  3. $query = mysql_query("SELECT `title` FROM xxx WHERE id = 1");
  4. $row = mysql_fetch_assoc($query);
  5.  
  6. if(!empty($row['title'])) {
  7. $config['page']['title'] = $row['title'];
  8. }
  9.  
  10. $content = 'aaaaa';
  11. ?>

Weles
Cytat(CuteOne @ 21.12.2012, 11:06:51 ) *
layout.php
  1. <head>
  2. <title><?=$config['page']['title'];?></title>
  3. </head>
  4. <body>
  5. <div>
  6. <?=$content;?>
  7. </div>
  8. </body>


modules/default.php lub inny plik (includowana podstrona)
  1. <?php
  2.  
  3. $query = mysql_query("SELECT `title` FROM xxx WHERE id = 1");
  4. $row = mysql_fetch_assoc($query);
  5.  
  6. if(!empty($row['title'])) {
  7. $config['page']['title'] = $row['title'];
  8. }
  9.  
  10. $content = 'aaaaa';
  11. ?>


Trochę trudno mi wytłumaczyć dokładnie mój problem..
Chodzi o to że podstrony nie mogą się nazywać tak: ?page=costam tylko każdy ma inny GET, np.: ?v=4f34f w czym 4f34f to identyfikator pliku do pobrania, więc każdego GET'a muszę sprawdzać osobno.

Wiem tylko że to:

Cytat
Pomyślałem sobie że może przez JS bym ustawił ten tytuł.
Czy to zadziała tak jak zwykłe title czy nie?


Kod

document.title = 'jakis tam tytul';


Tzn. czy np. google zaindeksuje w wyszukiwarce ten tytuł z JS, czy ten orginalny?


wyeliminowało by mój problem na 100%, tylko czy tak jak pytałem - to zadziała tak jak normalny title? zaindeksuje TEN tytuł z JS google czy ten podstawowy w Head?
erix
Cytat
EDIT:

Pomyślałem sobie że może przez JS bym ustawił ten tytuł.
Czy to zadziała tak jak zwykłe title czy nie?

Zadziała, ale pod względem SEO jest strzałem w stopę.

Tu idealne by było zrobienie czegoś na styl fetchowania bloków w systemach szablonów, np.: (CakePHP)
  1. echo $this->fetch('title');
  2.  
  3. ...
  4.  
  5. $this->start('title');
  6. tytul
  7. $this->end();


Weles
Cytat(erix @ 21.12.2012, 13:23:48 ) *
Zadziała, ale pod względem SEO jest strzałem w stopę.

Tu idealne by było zrobienie czegoś na styl fetchowania bloków w systemach szablonów, np.: (CakePHP)
  1. echo $this->fetch('title');
  2.  
  3. ...
  4.  
  5. $this->start('title');
  6. tytul
  7. $this->end();


Do tego zapewne trzeba doinstalować to CakePHP tak? Bo normalnie nie chce zadziałać taki sposób. Jeśli doinstalowanie to odpada ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.