Skocz do zawartości
GeoAce

Skrypt do oceny ;p

Polecane posty

mialem na mysli tworzenie różnych funkcji ułatwiających prezentację danych od prostych formatyjących tekst po grida prezentującego dane.

 

Rozumiem, że w innych systemach szablonów takie funkcje istnieją bez żadnego kodu ;)?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Rozumiem, że w innych systemach szablonów takie funkcje istnieją bez żadnego kodu ;)?

 

:) heh

cześć jest, częśc nie ma.

jak nie ma to dorabiam i mam świadomość że dorabiam to do plików bazowych o których nie muszę myśleć co w nich poprawić.

Ot zwykła oszczędność czasu....

 

Jak już chcesz uzywać szablonów w PHP to moze warto się zainteresować http://phpsavant.com/

Funkcjonalność zbliżona do smarty ale bez kompilowania. I składnia PHP.

 

Trochę zeszliśmy z tematu, OT.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Osobna wada php jako szablonu w moim wypadku to że chcialem go rozbudowywać o dodatkowe funkcje np. regexp itp i po jakimś czasie z prostego systemu stał się bardziej rozbudowany - prawie jak gotowe systemu.

Wszystko zależy od tego jak podejdziesz do struktury aplikacji. Jeśli zdecydujesz się na wzorzec typu MVC, to większość problemów zniknie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Co ma szablon do skalowalności? Szablon w php można tak samo łatwo dostosowywać (a nawet łatwiej, bo nie trzeba się uczyć dodatkowej składni).

 

 

hmm...czyli że popierasz metody autora skryptu - czyli uzupełnianie HTML przy użyciu PHP? czy chodziło Ci o to aby szablony były również z wykorzystaniem PHP?

 

jeśli pierwsze - to nie jest dobra metoda - zawsze przy zmianie czegokolwiek można popsuć "warstwę aplikacji" - bo nie jest ona oddzielona od warstwy prezentacji.

 

jeśli drugie - hmm...proponujesz aby wykonać skrypt "warstwy aplikacji" a później skrypt który pokaże te dane? ma to pewną wadę - brak zabezpieczenia w przypadku błędu w skrypcie warstwy prezentacji - wystarczy jeden błąd w składni a strona zostanie wyświetlona z błędem generowanym przez PHP albo wcale (tylko błąd PHP)...w sumie wtedy tworzysz praktycznie "własny system szablonów" więc po co wywarzać otwarte drzwi?

używając jakiegoś systemu szablonów poniekąd musisz się strzec tylko "kilku" reguł..co najwyżej jak zrobisz błąd to strona zostanie wyświetlona bez np. zawartości jakiejś zmiennej. Nie wliczając to jak wiele gotowych funkcji do "udoskonalenia" wyświetlania danych masz już w systemie szablonów.

 

no ale...w sumie każdy ma prawo do swojego zdania - moje jest takie by jak najbardziej odseparować warstwę aplikacji od warstwy prezentacji.

 

 

 

ale żeby mój post nie był tak wielkim OT - skrypt - pomysł może dobry - ale myślę że powinieneś jednak użyć albo napisać prosty system szablonów - jeśli chcesz go sprzedawać - będzie wtedy łatwiej dopasować go pod swoje potrzeby. No i jak wcześniej już mówiono - pomyśl nad PDO lub mysqli :)

Edytowano przez pietrovek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Użyj mysqli - nieważne, czy metodą proceduralną czy obiektową ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ma to pewną wadę - brak zabezpieczenia w przypadku błędu w skrypcie warstwy prezentacji - wystarczy jeden błąd w składni a strona zostanie wyświetlona z błędem generowanym przez PHP albo wcale (tylko błąd PHP)

Każdy błąd można złapać i obsłużyć, rzucanie pehapowych błędów do domena początkujących i "prawdziwych fachowców".

 

no ale...w sumie każdy ma prawo do swojego zdania - moje jest takie by jak najbardziej odseparować warstwę aplikacji od warstwy prezentacji.

Użycie php w warstwie prezentacji nie oznacza, że nie może być ona odseparowana.

Edytowano przez maniack (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Było dobrze a teraz z tym powiększeniem zrobiłeś jeszcze gorzej. Rób tak jak wcześniej. Na jakiej rozdzielczości pracujesz ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1280x1024. Czcionkę o 2 podniosłem w hoverze.

A mam takie pytanie.

Robię drugą wersję skryptu, tak dla testu. ImgEngine

Chcę, aby wpisywało się adres obrazka, i zamieniał się w html.

Czyli wpisuję url, a to mi wyświetla w html.

 

np. www.wht.pl/krowa.png --> wyświetla mi w postaci

 

 

<img src="www.wht.pl/krowa.png" alt="Tu podaj tekst alternatywny" />

Przy wpisie.

 

Jak takie coś mogę osiągnąć?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Każdy błąd można złapać i obsłużyć, rzucanie pehapowych błędów do domena początkujących i "prawdziwych fachowców".

 

 

Użycie php w warstwie prezentacji nie oznacza, że nie może być ona odseparowana.

 

 

oczywiście że można tylko wtedy dochodzi pisanie własnego error_handler'a...

nie mówiłem że jest to nie możliwe - ba przecież smarty też kompilują "templatki" do php...

 

po prostu wydaje mi się że używanie php w warstwie prezentacji...cóż - trochę wywarzanie otwartych drzwi, bo nijako budujesz własny system templatów...

 

 

np. www.wht.pl/krowa.png --> wyświetla mi w postaci

 

 

<img src="www.wht.pl/krowa.png" alt="Tu podaj tekst alternatywny" />

Przy wpisie.

 

Jak takie coś mogę osiągnąć?

 

hmmm... jeśli dostaniesz url np. z formularza czy pobierzesz z bazy to wystarczy:

 

echo "<img src=\"".$zmienna_z_urlem."\" alt=\"".$zmienna_z_tesktem."\" />";

Edytowano przez pietrovek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

po prostu wydaje mi się że używanie php w warstwie prezentacji...cóż - trochę wywarzanie otwartych drzwi, bo nijako budujesz własny system templatów...

 

PHP jest "systemem szablonów". Dodawanie do tego jakichś bibliotek typu Smarty, to właśnie wyważanie otwartych drzwi. Pozatym jest to wtedy kolejna biblioteka do utrzymywania.

 

ma to pewną wadę - brak zabezpieczenia w przypadku błędu w skrypcie warstwy prezentacji - wystarczy jeden błąd w składni a strona zostanie wyświetlona z błędem generowanym przez PHP albo wcale (tylko błąd PHP)...

 

Dawanie nieprzetestowanej aplikacji "na produkcję" to kiepski pomysł, tak samo wyświetlanie tam błędów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

PHP jest "systemem szablonów". Dodawanie do tego jakichś bibliotek typu Smarty, to właśnie wyważanie otwartych drzwi. Pozatym jest to wtedy kolejna biblioteka do utrzymywania.

 

[/font][/color]

 

Dawanie nieprzetestowanej aplikacji "na produkcję" to kiepski pomysł, tak samo wyświetlanie tam błędów.

 

 

"nisko oceniasz ten język" :) myślę że nie ma się o co spierać - każdy ma swoje zdanie - ważne żeby wszystko było zrobione jak należy tj. oddzielona warstwa aplikacji od warstwy prezentacji - a w jaki sposób będzie to wykonane - cóż każdy dobiera sobie narzędzia sam.

 

nie mówiłem o dawaniu nieprzetestowanej aplikacji na produkcję...

Edytowano przez Gość (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

nie mówiłem o dawaniu nieprzetestowanej aplikacji na produkcję...

 

ma to pewną wadę - brak zabezpieczenia w przypadku błędu w skrypcie warstwy prezentacji - wystarczy jeden błąd w składni a strona zostanie wyświetlona z błędem generowanym przez PHP albo wcale (tylko błąd PHP)...

 

Ten tekst to sugeruje

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm. Mam tak kawałek kodu, który wyświetla treść itp z mysqla.

 


<?
while($row = mysql_fetch_array($result))
{
echo ' <div id="wrapper">';
echo '<img src="images/good.png" alt="Tekst alternatywny" /> ';
echo '<a href="tekst.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a> ('.date("d.m.Y, H:i", $row['data']).')<br />';
echo stripslashes($row['tresc']).'<br /><br />';

Jak mam to wbić do tego:echo "<img src=\"".$zmienna_z_urlem."\" alt=\"".$zmienna_z_tesktem."\" />";[/code]

 

Ten kod wyświetla tekst:

echo stripslashes($row['tresc']).'<br /><br />';

Edytowano przez GeoAce (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

[/size][/font][/color]

 

Ten tekst to sugeruje

 

 

fakt...może źle to ująłem - przepraszam.

 

 

Hmm. Mam tak kawałek kodu, który wyświetla treść itp z mysqla.

 

 

<?

while($row = mysql_fetch_array($result))

{

echo ' <div id="wrapper">';

echo '<img src="images/good.png" alt="Tekst alternatywny" /> ';

echo '<a href="tekst.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a> ('.date("d.m.Y, H:i", $row['data']).')<br />';

echo stripslashes($row['tresc']).'<br /><br />';

Jak mam to wbić do tego:echo "<img src=\"".$zmienna_z_urlem."\" alt=\"".$zmienna_z_tesktem."\" />";[/code]

 

Ten kod wyświetla tekst:

echo stripslashes($row['tresc']).'<br /><br />';

 

zakładam że w bazie masz również zapisane URL w polu 'url' do obrazków wtedy zamień

echo '<img src="images/good.png" alt="Tekst alternatywny" /> ';

 

na

echo "<img src=\"".stripslashes($row['url'])."\" alt=\"".stripslashes($row['tresc'])."\" /> ";

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a wiesz po co usuwa? szkoda, ze kopiujesz bezmyslnie z gotowcow z czasow gdzie modne bylo safe mode i magic quotes. ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a wiesz po co usuwa? szkoda, ze kopiujesz bezmyslnie z gotowcow z czasow gdzie modne bylo safe mode i magic quotes. ;)

 

może w takim środowisku pracuje...

 

ogólnie jeden fakt niezaprzeczalny w tym temacie do autora - powinien przeczytać jakiś kurs php dla początkujących...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pare rad bez patrzenia w kod - wnioskujac po tych kawalkach ktore tutaj wklejasz :)

 

 

<br />
Skoro jako doctype podales HTML, to nie powinienes uzywac struktury xHTML.

 

mysql_fetch_array($result)

 

A dalej w kodzie uzywasz tylko kluczy asocjacyjnych z tablic, wiec warto oszczedzic troche pamieci i nie duplikowac wpisow w tablicy robiac np. tak ->

 

mysql_fetch_array($result, MYSQL_ASSOC)

 

Warto poczytac tez o stringach, aby escape'owanie nie bylo w cale trudne. Np. to mozna zapisac na wiele sposob, chyba najlatwiejszy to

 

echo '<img src="{$row['url']}" alt="{$row['tresc']}">';

 

Wiecej pozytecznego info znajdziesz tu -> http://php.net/manual/en/language.types.string.php

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm. Nie mam pojęcia czemu na dole takie coś jest

echo "";

 

Tzn pod obrazkiem.

 

Nie widzę tu błędu echo "<img src=\"".stripslashes($row['tresc'])."\" alt=\"".stripslashes($row['tresc'])."\" /> "; hmm.

 

Próbuje też go zeskalować automatycznie, dodając:

 

$i = explode('.', tresc);

$rozszerzenie = end($i);

Ale nie idzie.

Edytowano przez GeoAce (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm. Nie mam pojęcia czemu na dole takie coś jest

echo "";

 

Tzn pod obrazkiem.

 

Nie widzę tu błędu echo "<img src=\"".stripslashes($row['tresc'])."\" alt=\"".stripslashes($row['tresc'])."\" /> "; hmm.

 

Próbuje też go zeskalować automatycznie, dodając:

 

$i = explode('.', tresc);

$rozszerzenie = end($i);

Ale nie idzie.

 

 

być może

echo ""

gdzieś poza znacznikami <?php ?> się znajduje?

 

zeskalować automatycznie? nie rozumiem w ogóle o co Ci chodzi...

 

$i = explode('.', tresc);

 

tu masz błąd - 'tresc' ani nie jest zmienną ani tekstem... więc co chcesz "wyexplodować"?

 

$rozszerzenie = end($i);

 

a tu pobierasz z tablicy $i wartość ostatniego elementu do $rozszerzenie.

 

nie wiem jak to miało działać w założeniu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

echo "";

To nie robi nic.

 

Próbuje też go zeskalować automatycznie, dodając:

 

$i = explode('.', tresc);

$rozszerzenie = end($i);

Chcesz pobrać rozszerzenie ? Ja to robię zazwyczaj na dwa sposoby:
// za pomoca explode + count
$ext = explode( '.', $string );
$ext = $ext[ count( $ext ) - 1 ];

// za pomoca substr + strrpos
$ext = substr( $string, strrpos( $string, '.' ) + 1 );

ew w przypadku obrazków warto sprawdzać jeszcze MIME type.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.

×