ďťż

Pomoc przy strukturze serwisu

       

Podstrony


telcocafe

Mam w planie stworzyc duzy serwis ogólnorozrywkowy, mam juz szablon i pytanie do was: każdy podserwis bedzie mial subdomene sub.domena.pl i bedzie korzystał z tego samego szablonu co strona główna. Bardzo szybko pewnie bede chcial cos zmienic w szablonie (np. rozmieszczenie reklam) wiec wymyslilem ze kazda podstrona bedzie uzywala tych samych plikow w katalogu glownym a wymieniala tylko: menu.php logo.php tresc.php (tresc pobierana z mysql) itp. Czy to dobre rozwiazanie? Problem w tym ze np. kazdy podserwis bedzie mial kilka plikow tresci np. kategorie.php, opis.php, wyslij.php itp. Co wtedy mam zrobic? Prosze o pomoc



Jeśli będzie to na prawde rozbudowany serwis,
to po pierwsze; korzystaj z tabelek ( chyba ze jestem webmaster a nie webnuber jak ja ;) )
po drugie; użyj systemu szablonow oradzam ci smarty bo jest to dosyc skomplikowane skorzystaj z tego Link
i używaj klass w php przez co nie bedziesz miał bałaganu w kodzie.
(też byłem zwolennikiem programowania proceduralnego dopuki nie poznałem zalet klas)


korzystaj z tabelek ee co za glupota?
oradzam ci smarty bo jest to dosyc skomplikowane Co? smarty to banal
i używaj klass w php przez co nie bedziesz miał bałaganu w kodzie. W koncu cos madrego

Zrób to na wzór cmsa - wtedy nie będziesz musiał w ogólwe zmieniać plików szablonów, a tylko treść za pomocą kontrolera.


ee co za glupota?Co? smarty to banalW koncu cos madrego

Zrób to na wzór cmsa - wtedy nie będziesz musiał w ogólwe zmieniać plików szablonów, a tylko treść za pomocą kontrolera.

No offence ale w takim razie dlaczego serwisy wp.pl ani onet.pl ani google ani nawet gmail
nie zostały stworzone na podstawie divów ?
Między innymi przez niezgodności przeglądarek ze specyfikacją w3c.
Nawet Firefox którego wielbie nad wszystkie inne przeglądarki nie trzyma się tej specyfikacji do końca a nie przeczytałem całości - jeszcze.
Co do smartów to czas który trzeba poświęcić na przyswojenie wiedzy na ich temat ( około tygodnia - nie 7 razy 24 godziny :P ) Można wykorzystać budując serwis o wiele prostszy system tpl'ów i niewiele ustępujący smartom. Jako że użytkownik który przyszedł tutaj z prośbą o rade nie wpadł na pomysł żeby użyć tplów nie sądze żeby był on wielce zaawansowanym webmasterem. W związku tym uważam że prostsze rozwiązanie będzie dla niego lepsze, a jak przestaną mu wystarczać proste rozwiązania to sięgnie po takie rzeczy jak smarty. Jednak nadal nie widzę większej potrzeby stosowania <div'ów>. Jako że nawet dla IE trzeba stosować 'wytrychy' żeby strona dobrze na nim wyglądała. A co w takim razie z innymi przeglądarkami których jest od czorta ?
edit>
Mathaw ja wiem że jesteś o wiele bardziej zaawansowanym webmasterem niż ja,
jednak nie spotkałem się jeszcze z przypadkiem sensownego wyjaśnienia dlaczego trzeba przechodzi przez horror stosowania div'ów.
edit>>
O rany podałem ci zły link co do tego systemu layoutów.
Wysłałem ci na PM'a kod pliku templates.php
Użytkownik orglee edytował ten post 22 październik 2006, 23:54


http://forum.php.pl/...ic=48750&st=120 - przeczytaj tą dyskusję. moze przejzysz na oczy. kilku uzytkownikow opowiada sie za tabelkami, inni za divami - IMHO dyskusja na plus divow.

Divy cechuja sie niesamowita niezlozonoscia kodu, banalna edycja - wszystklo robisz poprzez css. Jezeli umie sie tworzyc strony to bez problemu dostosuje sie je do wszystkich przegladarek.

Hmm np. interia tez robi na divach. Dlaczego 99% zaawansowanych twórców robi strony na divach? Tabele sluza prezentacji danych i nie nalezy o tym zapominac.

Apropo smarty - nie widze zadnego problemu - ma on swietna dokumentacje, a sam polecam kurs - http://www.gajdaw.pl...ony/smarty.html

Nie wiem z czym moga byc problemy w smarty - podstawy to {$zmienna} {if} no {section} moze jest inne od php ale to przeciez nie jest trudne!


http://forum.php.pl/...ic=48750&st=120 - przeczytaj tą dyskusję. moze przejzysz na oczy. kilku uzytkownikow opowiada sie za tabelkami, inni za divami - IMHO dyskusja na plus divow.

Divy cechuja sie niesamowita niezlozonoscia kodu, banalna edycja - wszystklo robisz poprzez css. Jezeli umie sie tworzyc strony to bez problemu dostosuje sie je do wszystkich przegladarek.

Hmm np. interia tez robi na divach. Dlaczego 99% zaawansowanych twórców robi strony na divach? Tabele sluza prezentacji danych i nie nalezy o tym zapominac.

Apropo smarty - nie widze zadnego problemu - ma on swietna dokumentacje, a sam polecam kurs - http://www.gajdaw.pl...ony/smarty.html

Nie wiem z czym moga byc problemy w smarty - podstawy to {$zmienna} {if} no {section} moze jest inne od php ale to przeciez nie jest trudne!

Dobra smarty ok chociaż jak dla mnie to troche za duzo plikow jak na takie wspomozenie jak dodanie if'a w kodzie tpl, ale jestem no nie swierzo ale nie dawno skonczylem czytac CSS wedlug erica meyera i autor jasno udowadnia ze nie sposob korzystac z div'ow i css nie uzywajac 'wytrychow' a dla mnie to zadna frajda.
Nie wiem moze zmienie zdanie po przeczytaniu tej rozmowy najwyzej wtedy zrobie edit> =]


Jednak nadal nie widzę większej potrzeby stosowania <div'ów>. Jako że nawet dla IE trzeba stosować 'wytrychy' żeby strona dobrze na nim wyglądała. A co w takim razie z innymi przeglądarkami których jest od czorta ?
[..]
horror stosowania div'ów.

Jaki znów horror? Toż to prostrze i logiczniejsze niż w wypadku tabelek - jakby wszyscy przestali się oglądać na niedorobioną przeglądarkę to by wszyscy wiedzieli:
<div style="display: table"> <div style="display: table-cell">Tresc</div> <div style="display: table-cell">Tresc</div> <div style="display: table-cell">Tresc</div> </div>
I w tym momencie mamy trzy kolumny tej samej wysokości które się nie psują (rozłażą) i zawsze dobrze wyglądają. Co prawda nie działa to na IE, ale dlaczego się ograniczać do tabelek? Skoro user chce używać IE to niech używa, jego sprawa. Jak nie chce dobrej przeglądarki to niech się nie dziwi że strony się źle wyświetlają. Jest wiele innych, o niebo lepszych przeglądarek. Wiem, że wielu powie, że to webmaster powinien zadbać, ale dlaczego? Przez IE i oglądanie się za siebie webmasterzy muszą używać brzydkich hacków, trików i innych takich, przez co strasznie trzeba się namęczyć by strona wyglądała dobrze nawet w tych normalnych, nowoczesnych przeglądarkach. Kto wie, może jak IE będzie miał lepszy silnik ..
Dlatego też polecam robić na DIVach - mniej kodu, ładniejszy, czystrzy. A jak jednak się chce by jako-tako strona wyglądała w IE to można też używać div+float i innych takich...

Osobiście też nie przepadam za SMARTY, wolę jednak coś prostrzego (nie chodzi o trudność tylko o .. no, regułę KISS)
Przy budowie dużego systemu (jak to opisałeś) aż się prosi o użycie frameworka. Wiele osób zachwala django czy ror, ale jest też dużo systemów pod php - cake php, symfony, code igniter ... ten ostatni (nie wiem jak reszta) ma bardzo wygodny, czysty system szablonów. I najlepsze - $this->uri->segment(x); co pozwala na tworzenie linków w stylu http://jakas.strona....o-ciekawym.html - wspaniałe danie dla googlebota.
Użytkownik Einzeinbleth edytował ten post 23 październik 2006, 12:48
Serwis bedzie dosc duzy, mam nadzieje ze po pol roku bedzie sie skladal z 15-20 podserwisów-działow tematycznych.

Wiec wybiore sposob ktory zaproponowal orglee w swoim pierwszym poscie, tylko nie wiem po co mam korzystać z klas? Z divow nie zrezygnuje bo sa przejrzyste i mile dla googla.

Jesli wszystko dobrze zrozumialem to mam kazda podstrone miec w osobnym pliku (np. dowcipy.php, sennik.php itp) i wlasnie tylko uzywac szablonu w/w sposob.


kazda podstrone miec w osobnym pliku O niebo lepiej do tego użyć MySQL

tez tak myslalem ale u mnie (aktualnie 1000gp, ale ten serwis postawie juz w az.pl) cos nie chca sie wykonywac skrypty z bazy za pomoca eval(), nawet po wstawieniu takiego samego przyklady jak w manualu i tak baza wyswiela tylko tekst :(

Na miecz Zygmunta! Przecież w bazie danych nie trzyma się kodu skryptu tylko treść! Pomyśl co by było jakby coś się stało z bazą danych (podobno ma być baardzo rozbudowany serwis..) ? Co by się wyświetliło, hmm? Albo ogólnie, jak sobie to wyobrażasz?
Dobry serwis musi mieć oddzielone warstwy:
- Treść i nic więcej - baza danych
- Szablon (szkielet) i nic więcej - html
- Wygląd - css
- Skrypt by to wszystko połączyć, np. w php, ruby, perl czy czymkolwiek, w czym się najlepiej czujesz.
Użytkownik Einzeinbleth edytował ten post 23 październik 2006, 15:52
To nie byl moj pomysl tylko Mathew, ja tylko wiem ze w innej stronie chcialem zrobic dzial kontakt bez tworzenia nowego pliku i tyle.

trzymaj kod HTML w bazie, i go odpowiednio przetwarzaj na kazdej podstronie - wtedy latwo bedziesz mogl go stamtad edytowac :>

tak robi np VB i ipb ale do ipb ie jestem pewien...

template.php:<?php class Template { var $tmpl; var $dane; // Ponizsza metoda jest wykonywana w momencie utworzenia obiektu Template // Wywolujesz to za pomoca Template("adres do pliku tpl") function Template($name) { $this->tmpl = implode('', file($name)); $this->dane = Array(); } // Funkcja dodajaca zmienne. Wartoscia moze byc tabela asocjacyjna czyli $table['nazwapola'] = wartosc; // W pliku .tpl zeby zostal zamieniony tekst na wartosc zmiennej musisz dac {tozostaniezmienione} function add($name, $value = '') { if (is_array($name)) { $this->dane = array_merge($this->dane, $name); } else if (!empty($value)) { $this->dane[$name] = $value; } } // Wykonujesz zmiane wartosci {tozostaniezmienione} z pliku tpl na to co dodasz metoda / funckja add() // mozesz wykonac to wyswietlic od razu za pomoca echo $tpl->execute(); albo przypisac do zmiennej i poddac dalszej obrobce. function execute() { return preg_replace('/{([^}]+)}/e', '$this->dane["\\1"]', $this->tmpl); } } ?>index.php:<?php $tmpl = new Template('templates/mojszablon/index.tpl'); $tmpl->add($PageContent); // tabela asocjacyjna nazwy rekordow robia za parametr pierwszy metody add() $tmpl->add('tytul','Tytul strony'); $tmpl->add('menujeden','Menu 1'); $tmpl->add('menudwa','Menu 2'); $tmpl->add('tresc','Tresc Strony'); echo $tmpl->execute(); ?>index.tpl:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <title>{tytul}</title> </head> <body bgcolor="#CCCCCC"> <table width="750" border="1" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"> </td> </tr> <tr> <td width="170">{menujeden}</td> <td>{tresc}</td> <td width="170">{menudwa}</td> </tr> </table> </body> </html>
Jasne ? =]
Edit>
Nie zapomnij w index.php zainkludować ( require_once('template.php'); ) klasy obslugujacej tepeEle
Einzeinbleth:
Bardzo mi się podoba Code Igniter chyba sie na niego przerzuce. =]
Użytkownik orglee edytował ten post 23 październik 2006, 18:48

To nie byl moj pomysl tylko Mathew Bredzisz. Zle Cie zrouzmialem - dla mnie podstrona to tresc (sama tresc) strony.

Jednak wybralem sposob pokazany w 2 poscie tego tematu, mam problem chce losowo pokazywac reklamy na stronie, robie tak:
<? $losowo3=mt_rand(1, 3); $losowo4=mt_rand(1, 4); if ($losowo3='1'){ $ad_left_top = '<script type="text/javascript"> var zm_border="0"; var zm_title_size="0"; var zm_desc_size=""; var zm_link_size="9"; var zm_padding="0"; var zm_width="150"; var zm_height="135"; var zm_num="1"; var zm_cat="0"; var zm_new_window=1; var zm_border_color="black"; var zm_border_style="solid"; var zm_title_color="black"; var zm_desc_color="black"; var zm_link_color="#86C32A"; var zm_partner_link="ebook24"; </script> <script type="text/javascript" src="http://partnertools.zlotemysli.pl/?c=ads&cv=ISO-8859-2&adtype=6&num=1&cat=0" > </script>'; } elseif ($losowo3='2'){ $ad_left_top = '<A href="http://www.szablon.pl/affiliate.php?id=275">Szablony WWW</A><br /><IMG src="http://www.template-help.com/screenshots/12500/12552-m.jpg" border="0px" />'; } else { $ad_left_top = '<A href="http://www.szablon.pl/affiliate.php?id=275">Szablony WWW</A><br /><IMG src="http://www.template-help.com/screenshots/12500/12553-m.jpg" border="0px" />'; } ?>
...ale nie działa i zawsze pokazuje mi to co jest w pierwszym $ad_left_top czyli w tym wypadku reklamy ZM :(

<?php $banery = array('obrazki/baner1.gif', 'obrazki/baner2.gif', 'obrazki/baner3.gif', 'obrazki/baner4.gif' ); $banerLosowy = array_rand($banery, 1); echo $banery[$banerLosowy]; ?>

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.