ďťż

[PHP] Style, jak to najlepiej zrobić?

       

Podstrony


telcocafe

CMS jest na rozwoju tworzenia grup. Jeśli ma być konfigurowalny, musi posiadać pliki styli.

Aktualnie jest tak:
Styl ogólny (całej strony) - kod HTML, w którym można wstawiać skrypty PHP (dołączany funkcją include()).
Styl menu - funkcje PHP (tutaj to tak zrobiłem, że tag ?> jest zamykany po znaku {, a potem otwierany, by zakończyć funkcję - }, co pozwoli na łatwiejszą edycję).

Co do menu, niech zostanie, lecz chciałbym się od was dowiedzieć, który sposób będzie lepszy do określenia wyglądu jednej grupy i innych elementów, które będa tworzone w przyszłości.

SPOSÓB 1. Kod PHP.
Jest to dobry sposób pod względem funkcjonalności, lecz dla nie znających PHP może być dość trudny do edycji. Zaletą jest to, że wczytuje się szybciej (include()) i można wstawiać skrypty PHP bez problemu.
a) Gdy wywoła się funkcje, znacznik ?> można zamknąć, aby kod HTML był czytelniejszy... Pliki styli będą zajmować jednak więcej miejsca, ponieważ przy każdym wstawieniu np. zmiennej, trzeba będzie pisać:
<?php echo $zmienna; ?>
b) Bez zamykania znaczników pliki zajmować będą mniej, lecz będą trudniejsze do edycji! Wtedy, aby dodać np. zmienną wystarczy:
'.$zmienna.'

SPOSÓB 2. Tylko kod HTML
Jest to sposób trochę wolniejszy (to wszystko milisekundy), lecz prawdopodobnie nie da się wstawiać łatwo kodu PHP (bo nie da się bezpośrednio wstawić w kod). Zaletą jest to, że mogą poradzić sobie z tym nawet osoby mało (lamersko) znające się na PHP. Będą znajdować się w kodzie elementy typu:
{test}
<!--TEST-->
Wadą jest także to, że w plikach odczytujących takie pliki styli trzeba stosować dodatkowe funkcje (a w niektórych przypadkach będzie ich dużo).

SPOSÓB 3. Kod PHP, prostszy, a rozwalony.
Jest to sposób podobny do 1a, lecz porozdzielany na jeszcze więcej plików (może zrobić się śmietnik, ale nie powinien). Początek tabeli grupy, wpis np. artykułu, koniec tabeli grupy - to będzie w osobnych plikach.
Sposób bardziej czytelniejszy, ale trzeba będzie otwierać dużo plików do edycji.

INNY? - napisz, jaki.

Głosujcie, a następnie wypowiedzcie się na ten temat, dlaczego tak uważacie.
Użytkownik Ferrari edytował ten post 20 marzec 2005, 13:18


Nikt się na tym nie zna? :( Nawet Riklaunim?

najpierw musze się pojawić by odpowiedzieć :) a mam co robić... materiałoznastwo, spektrofotometria UV-VIS, organy, kinetyka i wszystko to w tym tygodniu :P

co do systemu skór to ja stosuje dość prosty oparty o PHP lecz czysty - zamiast {foo} jest <?PHP echo $foo; ?> :)

<?PHP // to jest skrypt PHP $tytul = 'tytuł czegość'; ob_start(); // tutaj moduł/skrypt się wykonuje a jego działanie echuje $modul = ob_get_contents(); ob_end_clean(); // wszystko z modułu zostało przypisane do zmiennej include 'skora/index.php'; ?>
gdzie index.php skórki to np.:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title><?PHP echo $config[sitename]; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="description" content="<?PHP echo $config[sitedesc]; ?>"> <meta name="keywords" content="<?PHP echo $config[keywords]; ?>"> <META name="robots" content="index, follow"> <META name="Author" content="Riklaunim"> <link rel="stylesheet" href="<?PHP echo $themedir; ?>/styles.css" type="text/css"> </head> <BODY BGCOLOR="#DDDDDD" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0"> <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr background="<?PHP echo $themedir; ?>/images/cell.gif"> <td><B><?PHP echo $config[sitename]; ?></B></td> <td width="80" align="right"><center><B><a href="index.php"><img src="<?PHP echo $themedir; ?>/images/0home.png" border="0"><BR>Strona Główna</a></B></center></td> <td width="80" align="right"><center><B><a href="admin.php"><img src="<?PHP echo $themedir; ?>/images/0adm.png" border="0"><BR>Admin</a></B></center></td> </tr></table> <img src="<?PHP echo $themedir; ?>/images/frame_foot_mid.gif" width="100%" height="5"><BR><BR> <table width="100%" border="0" cellspacing="2" cellpadding="0"><tr> <td valign="top"><?PHP echo $left; ?><?PHP echo $right; ?></td> <td valign="top" width="100%"><?PHP echo $module; ?></td></tr></table>
Użytkownik Riklaunim edytował ten post 20 marzec 2005, 23:09
szczerze mowiac nie wiem nad czym Ty sie zastanawiasz. wiadomo że najprofesjonalniejszym wyjsciem są szablony.



Ja jestem jednak za sposobem 1. Wczytujesz plik PHP (w ich większości będą to gotowe funkcje, które będą wywoływane przy generowaniu strony) i nie kombinujesz.
Niestety, wadą jest to, że dla początkujących może być trudny do edycji.
W przypadku A zmienne możnaby było wstawiać tak, jak pisał azwel.

W przypadku opcji 2 możnaby może zrobić coś takiego, że dane w klamrach { i } byłyby przechowywane w tablicach (jak w PHPBB), lecz zajmowałoby to trochę miejsca, a generowanie wolniejsze! Uważam, że nie ma sensu ograniczać dostępu do PHP.

Co o tym myślicie? Jakie jest wasze zdanie na ten temat?

Może inni także się wypowiedzą?

Różne są odpowiedzi... Co jest ważniejsze? Szybkość generowania czy prostota edycji szablonów?
Użytkownik Ferrari edytował ten post 21 marzec 2005, 16:56

Może inni także się wypowiedzą?

Jednak chyba rację mają ci, co wybrali sposób 1a. W większych elementach będę może stosował sp. 3. Dla początkujących (np. nie znających PHP, przyzwyczajonych tylko do HTML i JS) edytowanie tych plików rzeczywiście może być trudne, lecz może im pomóc poradnik, który zostanie napisany.
Dla ułatwienia ustawię już od razu ważne zmienne (np. data), które będzie można tylko wstawić.

Sp. 2. jest lepszy pod względem czytelności i przejrzystości, lecz wolniejszy.
Użytkownik Ferrari edytował ten post 21 marzec 2005, 17:24
jak zrobisz HTML w funkcjach PHP to wyjdzie ci masakra jak w PHP-Fusion :P lepiej zrób tak jak napisame - przypisanie danych do zmiennych i includowanie po tym plików szablonów


jak zrobisz HTML w funkcjach PHP to wyjdzie ci masakra jak w PHP-Fusion :P lepiej zrób tak jak napisame - przypisanie danych do zmiennych i includowanie po tym plików szablonów

czy wy naprawdę robiliście testy że tak mówicie o szybkości?? różnica jest w praktyce minimalna. Zacząć się zastanawiać warto przy naprawdę ogromnych serwisach ale wtedy wchodzi cache i znowu szablony (np. Smarty ma wbudowane mechanizmy)

jedynie przy malutkich stronkach nie warto się bawić po prostu


Zacząć się zastanawiać warto przy naprawdę ogromnych serwisach ale wtedy wchodzi cache i znowu szablony (np. Smarty ma wbudowane mechanizmy)
smarty itp. cachuje wynik kodu co jest dość często bezużyteczne - nie można cachować formularzy i modułów takich jak logowanie :P


smarty itp. cachuje wynik kodu co jest dość często bezużyteczne - nie można cachować formularzy i modułów takich jak logowanie :P

a ja mam abstrakcyjną bazę danych z cachowaniem do czasu wykonania zapytania nie-Select na danej tabeli... smarty tak nie potrafi :P

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

  • Sitedesign by AltusUmbrae.