elcct 159 Zgłoś post Napisano Lipiec 30, 2012 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
ednet 136 Zgłoś post Napisano Lipiec 30, 2012 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
maniack 403 Zgłoś post Napisano Lipiec 30, 2012 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
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez pietrovek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 No zrobiłem coś na require. Na PDO chyba będzie ciężko podpiąć. Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 31, 2012 Użyj mysqli - nieważne, czy metodą proceduralną czy obiektową Udostępnij ten post Link to postu Udostępnij na innych stronach
maniack 403 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez maniack (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
SaVaGe123 21 Zgłoś post Napisano Lipiec 31, 2012 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
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 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
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez pietrovek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
elcct 159 Zgłoś post Napisano Lipiec 31, 2012 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
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez Gość (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
elcct 159 Zgłoś post Napisano Lipiec 31, 2012 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
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez GeoAce (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 31, 2012 Z ciekawosci: wiesz po co uzywasz strip slashes? Udostępnij ten post Link to postu Udostępnij na innych stronach
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 Usuwa znak / Ale ponawiam pytanie. Udostępnij ten post Link to postu Udostępnij na innych stronach
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 [/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
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 Działa! Wielkie dzięki. Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 31, 2012 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
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 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
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 Przeczytałem. Pisałem w 1 poście, że zrobiłem to na systemie newsów. Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 31, 2012 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
GeoAce 67 Zgłoś post Napisano Lipiec 31, 2012 (edytowany) 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 Lipiec 31, 2012 przez GeoAce (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
pietrovek 19 Zgłoś post Napisano Lipiec 31, 2012 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
xorg 693 Zgłoś post Napisano Lipiec 31, 2012 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