Dynamiczne Meta Tagi ...raz jeszcze |
Dynamiczne Meta Tagi ...raz jeszcze |
17.05.2011, 00:20:40
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.05.2011 Ostrzeżenie: (0%) |
Witam serdecznie.
Przeczesałem "trochę" neta i znalazłem mnóstwo tematów na ten temat jednak nie dokopałem się jeszcze do interesującego mnie rozwiązania. Chodzi mi o prostą stronę a raczej coś w stylu mikro-templatki w ramach nauki. Otóż: Mam sobie plik meta
,który to includowany jest w wiadomym miejscu strony. następnie przychodzi część strony z nagłówkami itp. no i menu. menu opiera się na "dynamicznych" linkach: dalej mam oczywiście jak to z początkującymi bywa - waruneczki:
Treść stron wygląda tak
+ No i chciałem skorzystać w takim wypadku z buforowania (ob_start(); etc). No i mi nie idzie za bardzo :/ Jak to ugryźć by dane w zmiennych odpowiedzialne za meta tagi znajdowały się na podstronie, a wyświetlane były dobrze w index'ie ? Oczywiście wiem, że można skorzystać z bazy danych ale to rozwiązanie w tym przypadku nie wchodzi w grę Kod [deklaracje] [meta] < [header] \ [menu] | [podstrona](meta) | Pozdrawiam Serdecznie. Ten post edytował RecoNet 17.05.2011, 00:22:54 |
|
|
17.05.2011, 02:08:13
Post
#2
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 31 Dołączył: 2.04.2010 Ostrzeżenie: (0%) |
Spróbuj na początku wywalić tą deklaracje z góry bo zmienne meta tagów się powtarzają:
1. Z pliku związanego za generowanie meta tagów 2. Z podstron które includujesz -------------------- |
|
|
17.05.2011, 11:53:04
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.05.2011 Ostrzeżenie: (0%) |
Hej dziękuje za odpowiedź , jednakże powtarzają się ze względu takiego, że uznałem iż dobrym pomysłem jest przechowywanie default meta tagów. Niepotrzebna mi do tego if...else więc chce nadpisać moje default tagi tymi tagami z includowanych stron. Chodzi o to aby na "stosie" na wierzchu były zmienne z podstron a w przypadku gdyby strona ich nie określała to ładuje zmienne przykładowe. Prostota przede wszystkim
Oczywiście includowanie (nad meta) tablicy dla podstron też mi nie odpowiada ;p Zależy mi na tym żeby tytuły były załączone na pod stronach. Nie znalazłem lepszego sposobu niż buforowanie ale niestety jeszcze nie umiem go zastosować poprawnie, więc jeśli ktoś ma jeszcze jakiś pomysł czy link do artykułów byłbym wdzięczny Uważam że buforowanie to jeden z ciekawszych pomysłów z wyłączeniem baz danych. Ten post edytował RecoNet 17.05.2011, 12:07:26 |
|
|
17.05.2011, 13:05:29
Post
#4
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) |
Nie jest wazne czy buforujesz, czy nie - jezeli zmienna zostala przeslana do buforu jako fragment kodu do wyswietlenia - zostanie wyswietlona wlasnie w ten sposob. Zabierasz sie niestety do tego ze zlej strony - nie mozesz przekazywac wartosci z tresci strony, powinienes przekazywac do niej. Najprosciej - zrob sobie plik, ktory bedziesz includowal na poczatku, ze zdefiniowanym zmiennymi, ktore beda na stronie, a pozniej je wywoluj w odpowiednich miejscach.
-------------------- -wdev-
|
|
|
17.05.2011, 13:39:07
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.05.2011 Ostrzeżenie: (0%) |
A jednak sobie poradziłem
ROZWIĄZANIE - (niezbyt eleganckie jeszcze) meta
index
podstrona
zmienna page już istnieje i pobierana jest również dzięki buforowi z menu (tak mi się wydaje) PS2. przepraszam za te namolne tagi php (testowałem ;p) Plusy + Działa + Działa bez bazy danych Minusy - relatywnie dużo zmiennych jak na taką operacje - na chwilę obecną zero MVC (Model-View-Controller) ;p - (lub plus) bufor (szczerze mówiąc czytając trochę nie wiem czy to jest jeszcze najszybsze i najoszczędniejsze rozwiązanie) - używając domyślnego słowa kluczowego dla zmiennej $title = title zastępuje markup html'owy <title></title> na np. <oferta></oferta> ;O - gigantyczna zmienna - wielokrotne przeczesywanie zmiennej PS2. Mile widziane "uprofesjonalnienie" kodu Zastanawiałem się również nad rozwiązaniem obiektowym tego problemu (głównie dla celów dydaktycznych) ale na chwile obecną trochę mnie to przerasta więc jakby ktoś miał pomysł byłbym wdzięczny. Ten post edytował RecoNet 17.05.2011, 14:13:48 |
|
|
17.05.2011, 13:59:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) |
<div id="content"> <?php include("includes/content.php"); ?> <?php $site= ob_get_clean(); $site = str_replace($title_default, $title, $site); $site = str_replace($meta_desc_default, $meta_desc, $site); $site = str_replace($meta_keywords_default, $meta_keywords, $site); $site = str_replace($page_default, $page, $site); echo $site ;?> <?php ob_flush();?> (...) - (lub plus) bufor (szczerze mówiąc czytając trochę nie wiem czy to jest jeszcze najszybsze i najoszczędniejsze rozwiązanie) Okropne, okropne rozwiazanie. Tworzysz gigantyczna zmienna, ktora niepotrzebnie zalega Ci w pamieci, a pozniej jeszcze ja przeczesujesz 4 razy str_replace... Zdecydowanie powinienes zrezygnowac z tego sposobu. -------------------- -wdev-
|
|
|
17.05.2011, 14:12:11
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.05.2011 Ostrzeżenie: (0%) |
Masz racje bardzo istotne spostrzeżenie. $site jest bardzo brzydki jednak zależy mi na tym żeby dane do tytułów były na pod stronach. Próbowałem jeszcze ze zmiennymi globalnymi w linkach menu ale jest to jeszcze gorsze rozwiązanie. Google bardzo nie lubi linków z tyloma znakami
Wiem że rozwiązanie które proponujesz jest łatwe ale za każdą stroną trzeba dopisywać do tabeli kolejne wyrażenia. Co prawda na pod stronie też muszę je dopisywać ale trzymam się wtedy tematyki danego artykułu. Oczywiście jak masz jeszcze jakieś sugestie byłbym wdzięczny Mam nadzieje, że ograniczenie ilości wyszukań oraz zawężenie zmiennej pomoże tej opcji. Czy podzielenie tego na mniejsze "bufory" jest możliwe i dość dobre aby dalej z tego korzystać ? Oczywiście nie będę się ślepo upierał jak jest wydajniejszy sposób i skorzystam z tego proponowanego przez Ciebie jednak, trochę bym jeszcze po-drążył temat Ten post edytował RecoNet 17.05.2011, 14:23:47 |
|
|
Wersja Lo-Fi | Aktualny czas: 24.06.2024 - 08:14 |