Kamil Pietrzak
7.01.2010, 15:23:47
mam pytanie o konstrukcje strony
mam strukture folderow
public_html/ //index.php .htaccess config.php
public_html/javascript/ //po prostu potrzebne biblioteki js
public_html/css/
public_html/img/
public_html/php/includes //podstrony
public_html/php/functions //biblioteki php
public_html/admin/ //panel admina w a nim taka sama struktura
html mam w bazie danych
na poczatku szkielet html, pozniej poszczegolne elementy jak menu, czy stopka
pozniej wyglad podstron
plik index. pobiera szkieler html a pozniej przy uzyciu str_replace podstawia poszczegolne elementy strony
na ile jest to odbra konstrukcja ?
jak mozna to usprawnic ?
Pawel_W
7.01.2010, 15:27:04
Kamil Pietrzak
7.01.2010, 15:38:33
a jaka jest roznica w wykorzystaniu tej biblioteki pomiedzy str_replace
bo z tego co czytalem to smarty sie podobnie wykorzystuje tylko z htmlem w plikach
Spawnm
7.01.2010, 15:41:57
Proszę nadać sensowny tytuł.
Mephistofeles
7.01.2010, 16:02:13
Zamiast zamieniać przypisz tekst do zmiennej Smarty (chociaż jego nie polecam, lepszy OPT).
Kamil Pietrzak
7.01.2010, 18:03:19
tylko nadal nei rozumemiem za bardzo w jaki sposob mi to ulatwia pisanie
index zbudowany na moj sposob wyglada tak:
<?php
include('config.php');
$html = html('html');
$menu_links = html('menu_links');
$html = str_replace('(-menu_links-)', $menu_links, $html);
$menu_user = html('menu_login');
$html = str_replace('(-menu_user-)', $menu_user, $html);
$menu_commercial = html('menu_commercial');
$html = str_replace('(-menu_commercial-)', $menu_commercial, $html);
$ending = html('ending');
?>
+ zmienna odpowiadajaca za tresc i includujaca odpowiedni plik
np. ?action=register
includuje register.php i to co odpowiada za wyswietlenie formularza rejestracji bedzie w tym pliku, html formularza w bazie
Mephistofeles
7.01.2010, 19:25:32
W szablonie zrobisz {$ending}, zamiast wstawiać (-ending-), a w PHP $tpl->assign('ending', $ending).
Kamil Pietrzak
7.01.2010, 19:52:15
chodzi tylko o sposob zapisu ?
przeciez mozna go zawsze zmienic
roznica jest taka, ze nie musze wpisywac w wywolaniu w php '(-', czy tam '{$'
czy zle zrozumialem... ?
nie do konca widze sens korzystania z calej biblioteki, jesli moge skorzytac z funkcji wbudowanej w php
czy trzymanie html w bazie to dobre rozwiazanie? w sumie to nie wiem czemu nei pliki lub jeden plik(w bazie mam ponad 20 rekordow z roznymi elementami html)... ale zawsze moge edytowac funkcje 'html' tak aby mi wyciagala z pliku a nie z bazy
Mephistofeles
7.01.2010, 22:34:48
Zamiast str_replace nie lepiej będzie dać wstawki PHP w szablonie? Skoro już chcesz wykorzystywać natywne funkcje.
Co do HTMLa, to nie bardzo.
Kamil Pietrzak
7.01.2010, 22:50:58
ja widze tylko 2 mozliwosci
str_replace('{$ending}', $ending, $html);
lub
include('template.php';
a w template .php
<title><? echo $title; ?></title>
chyba, ze zapis {$title} oznacza tyle samo co echo $title;
co do htmla
moze dac go do jednego pliku i kazdy element przypisac do zmiennej
$ending = '
<div id="ending">all rights reserved</div>
';
if($show_ending = 'yes') {echo $ending;};
Mephistofeles
8.01.2010, 15:26:18
Klamry {} to element Smarty i kilku innych systemów szablonu, a służą najczęściej za echo.
Kamil Pietrzak
8.01.2010, 17:28:06
ale w sumie to nadal calosc zostanie przepuszczona przez str_replace i nie bedzie lzejsza dla serwera ?
Mephistofeles
8.01.2010, 18:50:11
Nie wiem, nie interesowała mnie do tej pory wewnętrzna budowa Smarty. Jeśli chcesz odciążyć serwer, to jak mówiłem użyj wstawek PHP w kodzie szablonu zamiast zamieniać tekst.
Kamil Pietrzak
8.01.2010, 18:58:44
nei napisalem poki co portalu ktory by zagial serwer... ale wiadomo... zawsze lepiej lzej

mysle o tym zeby dac wszystkie czesci htmla do jednego pliku, tylko w roznych zmiennych, z drugiej strony jak bedzie tego duzo to lepiej juz bedzie w dziesiatkach plikow(burdel) lub w mysql(dodatkowe obciazenie na drodze mysql-strona i trudniejszy dostep
co do samych smartow... nie widze sensu
sam zrobie to tak samo a nie musze uzywac biblioteki skryptow
Cytat
mysle o tym zeby dac wszystkie czesci htmla do jednego pliku, tylko w roznych zmiennych
Z lekkością naprawdę to nie ma nic wspólnego... Tylko pamięć zapychasz; przecież nie potrzebujesz wszystkich szablonów przy generowaniu jednej podstrony.
Zawsze zostaje Ci XSLT.
Kamil Pietrzak
8.01.2010, 19:32:42
mozna narobic dziesiatki plikow i jechac na str_replace
albo pozostac przy bazie...
z tego co widzialem to np. taka joomla miesci szablon w 4 plikach, ale nei widzialem zadnego skomplikowanego szablonu
wszyscy do okola uzywaja tych smartow, co w tym jest ?
Mephistofeles
8.01.2010, 19:45:31
Czemu tak kurczowo trzymasz się tego str_replace? Nie uznajesz konstrukcji jak <?php echo $ending ?> która będzie najprawdopodobniej szybsza niż twoje replace? Nie rozumiem twojego myślenia na ten temat.
Kamil Pietrzak
8.01.2010, 19:54:08
ok
moge dac tak jak piszesz
mozna chyba nawet zapisac jakos tak <?=$title?> w przypadku jednej zmiennej
no i daje rade... natomiast to nei koniec konstrukcji
zastanawiam sie tez nad samymi skryptami wykonywanymi
chyba napisze wiersz polecen a pozniej zastapie go ladna oprawa opierajaca sie na tej samej konstrukcji
ale to juz tak na marginesie... po prostu zaczne juz pisac...
Cytat
mozna narobic dziesiatki plikow i jechac na str_replace
Kurza stopa, nie widzisz, że sam pod sobą dołek kopiesz? Nawet kilka razy:
- rezultat wypluwanej strony musisz kopiować do pamięci (a jak przyjdzie Ci do głowy wypisać kilkaset tysięcy rekordów; hipotetycznie) - prędzej czy później ujrzysz komunikat o błędzie przy próbie zaalokowania więcej niż wynosi limit

- kopiujesz drugi raz w pamięci (str_replace musi na czymś operować; aczkolwiek mogę się tu mylić)
- katujesz niepotrzebnie procesor w poszukiwaniu ciągu znaków do podmiany
- wymuszasz w niektórych przypadkach wykorzystanie funkcji buforowania wyjścia
Jeszcze za mało argumentów? Jak pisałem pierwsze skrypty pod CMS-y, to też popełniałem ten sam błąd, ale zaczynając myśleć o zużywanej pamięci, puknąłem się mocno w głowę.
Cytat
zastanawiam sie tez nad samymi skryptami wykonywanymi
A po polsku?
Wykonywanymi przez kogo/co?
Kamil Pietrzak
8.01.2010, 20:42:18
chodzilo mi juz o same skrypty zarzadzania trescia, nie o budowe
ok, zastosuje echo i tez bedzie, dla mnie to niewielka roznica, a skoro serwer ma zdychac...
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.