Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]OPT -> użycie "nieznanej" funkcji
Forum PHP.pl > Forum > Przedszkole
Ruio
W kodzie uzywam funkcji js : zmien() . Jak uruchomić parser opt aby używać $projects_all.screen questionmark.gif Sorki że tak pokręcone ale nie mam pomysłu jak to wytłumaczyć winksmiley.jpg Liczę na pomoc. Z góry dzięki

  1. <img parse:src="'./www/works/mini/'~$projects_all.screen~'.jpg'" onclick="zmien('~$projects_all.screen~'.jpg');"/>
cojack
Wal z tym do Zyx'a tylko on wie jak tego używać bo sam to napisał. A manualem OPT to się można podetrzeć.
Crozin
Nie wiem, z OPT nie korzystam, ale zapewne skorzystanie z przestrzeni "parse" dla atrybutu onclick rozwiąże problem.

btw: wrzucanie JS-u w HTML (onclick) to paskudna praktyka.
Zyx
Po pierwsze, przestrzeń nazw parse, jak już słusznie Crozin zauważył (chyba jasno jest napisane, że jest to warunek KONIECZNY przeparsowania atrybutu), a po drugie użyte w atrybucie wyrażenie jest niepoprawne. Cały kod JS powinien być zapisany jako ciąg tekstowy, do którego doklejamy jakąś zmienną OPT na identycznej zasadzie, jak się zapisuje kod SQL w PHP, np.

Kod
atrybut="'funkcjaJS(\''~$zmienna~'\')'"
Ruio
crozin parse wyrzuca błąd że uzywam nieznanej funkcji ;/ . Jak inaczej zrobić coś tego typu bez łaczenia js z html'em questionmark.gif nie jestem specem od js więc może robie coś źle smile.gif

cojack racja manual jest do kitu ale lepsze coś niż nic ;p

Edit: Zyx dzięki nie wiedziałem jak to poukładać. Niby coś próbowałem z parse ale zawsze wywalało błędy.

Zyx
Jeśli masz jakieś uwagi dotyczące manuala, to proszę o konstruktywną krytykę, co powinienem poprawić. Pamiętaj, że w dokumentacji wiadomości muszą być podane w sposób w miarę usystematyzowany, a jako autor też nie mogę, mimo wielu starań, do końca wczuć się w osobę, która daną bibliotekę dopiero poznaje. Przyjąłem zasadę, że przy czytaniu dokumentacji trzeba trochę myśleć, umieć kojarzyć fakty. Jeśli np. masz przykład osadzania atrybutów:

Kod
<!-- good -->
<p parse:class="$variable">Expression as an attribute value.</p>


To wiesz już, że bezwzględnie musi być przestrzeń nazw parse. Teraz idziemy dalej - w środku jest wyrażenie i czytamy:

Cytat
If you are familiar with PHP expression system, you should have no problems with understanding the OPT one. We did not reinvent the wheel, but simply used the existing conventions and patterns in order to make it more readable.


Czyli składnia nie odkrywa koła na nowo, lecz zasady budowania wyrażeń są bardzo podobne, jak w czystym PHP. To już jest wskazówka, że powinniśmy podchodzić do problemu tak, jakbyśmy próbowali tu funkcję z PHP wywołać i jej wynik połączyć np. z kodem SQL. Teraz patrzymy do rozdziału "Values" i widzimy, że ciągi tekstowe zapisywane są w apostrofach. Teraz łączymy te trzy informacje i mamy rozwiązanie.
Ruio
Źle się wyraziłem manual nie jest aż taki zły winksmiley.jpg tylko w tym miejscu z parse polecam go rozwinąć nawet o przykład który podałeś.
Nie każdy tak połapie informacje jak mówisz ;] ja często skacze po rozdziałach także jak piszę trochę wiecej przykładów do parse i większych zastrzeżeń nie mam tongue.gif

Jeszcze raz dzięki za pomoc
cojack
Po 1 dlaczego manual się pauke? Ponieważ są same przykłady z opt, nie ma jak tego zaimplementować w php, po 2? Jest po angielsku. A Ci powytykam publicznie Zyx. Po 3 jesteś Polakiem, Twój odruch w pierwszej kolejności powinien być przekonać chłopaków od siebie by używali OPT. Po drugie nie ma ani jednej zasranej notki jak użyć opt wraz z ajaxem by zwrócić tylko VIEW a nie cały html. W ogóle jest taka możliwość?

Nie mam zasranej cierpliwości do czytania takiego manuala i nikt nie ma dopóki się komuś nie przedstawi czegoś jak to się używa po stronie php i Twojego systemu OPT, jak myślisz dlaczego Smarty zyskały na popularności? Uwierz mi jak tylko zaczniesz pisać w swoim manualu tak jak należy to i ja zacznę promować OPT na swoim blogu. Nawet zakichany manual php ma przykłady jak użyć tego czy tamtego, Zyx OPT nie jest popularne, i nigdzy nie będzie jak będziesz podchodził do sprawy: "No przecież to jest oczywiste, jak można tego nie rozumieć". Słuchaj to jest Twój pkt widzenia, nie każdemu musi on pasować i nie każdy musi go rozumieć, więc albo zaczniesz prowadzić to tak jak powinieneś albo nie licz na nic. Już nie raz Ci pisałem o tym prywatnie, w końcu trzeba wyciągnąć śmieci na publikę.
Zyx
A wytykaj. Za śmiecenie najwyżej śmieciarze będą Cię ścigać, a reszta co najwyżej nosem pokręci na bałagan. Ja czekam na konstruktywną krytykę i najwyraźniej chyba nigdy się nie doczekam. A żeby pokazać Ci, że w tym co piszesz, jest zero konkretów, za to mnóstwo pieniactwa i wzajemnej sprzeczności, nawet skomentuję wypowiedź:

Cytat
Ponieważ są same przykłady z opt, nie ma jak tego zaimplementować w php


Prawdę mówiąc nie rozumiem w tym miejscu kompletnie, o co Ci chodzi. Czy brakuje Ci tego, by prowadzić niekompetentnego programistę PHP, któremu brakuje podstaw, za rączkę, czy o wytłumaczenie, jak po stronie PHP zrobić interakcję z niektórymi instrukcjami? Jeśli to pierwsze, to zapomnij. Nie jestem niańką, jak ktoś jest niepełnosprytny, to już to jest jego problem, nie mój i nie zamierzam go uczyć w manualu OPT np. podstaw obiektówki czy niuansów działania interpretera PHP, które są wyjaśnione... w manualu PHP. Jeśli to drugie, to chyba rozmawiamy o innych dokumentacjach. Pierwszy z brzegu przykład - sekcje. Masz pięknie opisane w rozdziale 3.9.1. że sekcje nie mają jednego przełożenia na PHP, lecz zależy to od tego, jaki sobie format danych wybierzesz. Dlatego idziemy do rozdziału o formatach danych i tam masz czarno na białym przykłady Ctrl+C, Ctrl+V, jak takie sekcje wypełnić danymi zależnie od formatu. A jeśli o jeszcze coś innego chodzi, to o tym dalej.

Cytat
Jest po angielsku.


To się go naucz, jak nie umiesz. Stawiany przez Ciebie za wzór manual Smarty'ego też jest po angielsku, jakbyś nie zauważył.

Cytat
Po 3 jesteś Polakiem, Twój odruch w pierwszej kolejności powinien być przekonać chłopaków od siebie by używali OPT.


Po pierwsze, gratuluję spostrzegawczości. Tak, jestem Polakiem i jest to niezaprzeczalna prawda. Cała reszta to przysłowiowe bredzenie kogoś, kto nie ma pojęcia o tym, co mówi smile.gif. Bo wiesz, jaki jest w tym paradoks? Dokładnie tak, jak mówisz, zrobiłem przy okazji OPT 1.x i to był jeden, potężny błąd. A wiesz, czemu?

- Zdecydowana większość osób, do których adresuję OPT, zna angielski na tyle dobrze, że nie robi im to absolutnie żadnej różnicy czy manual przeczytają po polsku czy po angielsku.
- Zdecydowanej większości ludzi niepełnosprytnych nie pomoże nawet transfer manuala strumieniem świadomości do mózgu.
- Zdecydowana większość programistów w Polsce już kojarzy OPT przynajmniej z nazwy.
- Zdecydowana większość programistów poza Polską z niewiadomych przyczyn nie zna polskiego, za to zna angielski. Pisząc po polsku, do nich nie dotrę.

A na koniec... weź ty sobie najpierw zrób coś wielkości OPT, udokumentuj to i zobacz, ile czasu pochłania napisanie tak obszernej dokumentacji nawet w jednym języku, a potem wypowiadaj się o tłumaczeniach. Nie jestem w stanie fizycznie napisać tego w dwóch językach i guzik mnie obchodzi czy Ci się to podoba czy nie. Może zamiast biadolić, weź się sam do roboty i przetłumacz to.

Cytat
Po drugie nie ma ani jednej zasranej notki jak użyć opt wraz z ajaxem by zwrócić tylko VIEW a nie cały html. W ogóle jest taka możliwość?


Możliwość na pewno jest, nawet mimo tego, że nie bardzo rozumiem, co masz na myśli, domagając się "zwracania VIEW zamiast cały HTML" smile.gif. Widzisz, sam nawet nie potrafisz składnie napisać tego tak, by druga osoba zrozumiała, co w ogóle zrobiłeś i jak, a mnie się czepiasz smile.gif. Na myśl przychodzi mi tylko jedna odpowiedź:

Kod
return $view;


ew.

Kod
$output->render($widokZTymKawalkiemKoduKtoryChceszWyslac);


I cóż, pomijam już fakt, że zarówno w manualu masz pokaźny rozdział o technikach komponowania wyjścia skryptu z mniejszych widoków, jak i jest o tym równie pokaźny artykuł (i to po polsku). Jeśli i jednego, i drugiego nie zauważyłeś, to wybacz, ale nie mamy o czym nawet rozmawiać.

Cytat
Nie mam zasranej cierpliwości do czytania takiego manuala i nikt nie ma dopóki się komuś nie przedstawi czegoś jak to się używa po stronie php i Twojego systemu OPT


Nie mów za innych - jak dotąd trafiłem tylko na jednego pieniacza i jesteś nim Ty. I mimo iż prosiłem Cię już o to kilka razy, dalej nie doczekałem się ani jednego numeru rozdziału, ani jednego wyjaśnienia, co to jest to coś, co się używa po stronie PHP i po stronie OPT i nie jest udokumentowane/przedstawione/cokolwiek.

Cytat
jak myślisz dlaczego Smarty zyskały na popularności?


Bo nie było nic innego. Uwierz, że na pewno nie przez to, że napisali manual, którego nawiasem mówiąc nie oceniam zbyt pozytywnie. I w przeciwieństwie do Ciebie, potrafię składnie powiedzieć, jakie informacje podali zbyt lakonicznie, jakie źle ułożyli itd. I na koniec, czemu w przypadku Smarty'ego nie narzekasz, że manual jest po angielsku?

Cytat
Uwierz mi jak tylko zaczniesz pisać w swoim manualu tak jak należy to i ja zacznę promować OPT na swoim blogu.


Uwierz mi, jak mi tylko podasz, co jest źle, to i ja to poprawię.

Cytat
Zyx OPT nie jest popularne, i nigdzy nie będzie jak będziesz podchodził do sprawy: "No przecież to jest oczywiste, jak można tego nie rozumieć".


Buehehehe, "No przecież to jest oczywiste, co jest źle w tym manualu, jak ten debil może tego nie widzieć? Zbluzgam go za to jeszcze raz, by go zmobilizować." Nie widzisz pewnej sprzeczności między tym, co piszesz, a tym, co robisz?

Cytat
Słuchaj to jest Twój pkt widzenia, nie każdemu musi on pasować i nie każdy musi go rozumieć, więc albo zaczniesz prowadzić to tak jak powinieneś albo nie licz na nic.


Bo co? Bo zaszkodzi mi gość, który już któryś z kolei raz truje mi cztery litery bluzgami, k... ami, i fakami na to, że nie napisałem w manualu, że do jakiejś funkcji PHP trzeba podać false jako drugi argument, by autoloadera nie wołała, a na każdą prośbę o konkrety przysyła jeszcze więcej bluzgów?

Cytat
Już nie raz Ci pisałem o tym prywatnie, w końcu trzeba wyciągnąć śmieci na publikę.


Wiesz co? Powiem Ci jedno. Jak masz dalej takie rzeczy pisać, to wręcz się ucieszę, jeśli przestaniesz być użytkownikiem OPT. Poza kupą tychże śmieci dotąd nie wniosłeś absolutnie nic w rozwój OPT, a śmieci to raczej domena śmieciarzy i ew. artystów awangardowych. Ja artystą awangardowym nie jestem - jestem programistą i jak ktoś nie potrafi kulturalnie i konkretnie napisać, o co mu właściwie chodzi (nie wspominając już o ortografii i interpunkcji), to go razem z tymi śmieciami odsyłam tam, gdzie jego miejsce.

I widzisz, Ty się rozpisałeś, ja się rozpisałem i dalej nie wiem, co mam poprawić w manualu, by Cię zadowolić, a taki Ruio napisał dwa zdania i jutro można spodziewać się małej aktualizacji. Sam widzisz, że dyskusja z Tobą nie ma zbyt dużego sensu w takiej formule. Masz dwie opcje do wyboru: będziesz sobie dalej bluzgać, a ja będę Cię traktować, jako szum kosmiczny, czyli stały element każdego przedsięwzięcia, o którym wie ktoś więcej niż tylko autor (ewentualnie skopiuję dyskusję na bloga i po prostu będę do niej sobie linkował, gdy będziesz sobie szczególnie bezsensownie jeździł), albo wreszcie zajrzysz sobie do słownika pod hasłem konkrety i postarasz się zrozumieć, o co Cię JA z kolei proszę. Z kolei wspomnianemu użytkownikowi Ruio dziękuję za zrozumienie i uwagi, poprawka zostanie uwzględniona.
phpion
<ot>
@Zyx:
Ale puściłeś petardę, nokaut z miejsca smile.gif
</ot>
cojack
Zyx nie chce mi się, na prawdę nie chce mi się. Napisałem raz, to jest Twój pkt widzenia, to iż jesteś totalnie zadufany w swój poziom wiedzy, który nie jest jakoś masakrycznie wielki, to tylko i wyłącznie Twój problem, zacznij jeszcze używać zwrotów w manualu stricte technicznych po ang których nawet nie znasz, bo używasz translatora to wszyscy będziemy rozumieć manuala. Przykład Ci kiedyś podałem chociażby z Backticks, ale widzę że już to poprawiłeś. I na podstawie tego właśnie przykładu powinieneś zrozumieć o co mi chodzi.


Teraz to Cię zaboli, Ty widziałeś wyciąg z profillera z xdebuga przy użyciu OPT? Wiesz w ogóle ile razy, jakie funkcję się wywołują? Masz tutaj linka, zobacz sobie: http://www.cojack.pl/wp-content/cachegrind.out.14332

Może w ogóle nie ma sensu stosować systemu szablonów tylko po prostu normalnie po ludzku kod html mieszany z php + cache? Jeżeli coś ma mi się tysiąc razy wywoływać, tylko po to by wyrenderować kod html w takiej postaci:

  1. <?xml version="1.0" standalone="yes" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3.  
  4.  
  5.  
  6.  
  7. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  8. <head>
  9. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  10. <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen" />
  11. <link rel="stylesheet" href="css/main.css" type="text/css" media="screen" />
  12. <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
  13.  
  14. <script src="js/bdt.js" language="javascript" type="text/javascript"></script>
  15. <script src="js/test.js" language="javascript" type="text/javascript"></script>
  16. </head>
  17. <body>
  18. <div id="header">
  19. Domyślny nagłówek.
  20. </div>
  21.  
  22. <div id="menu">
  23.  
  24. </div>
  25.  
  26. <div id="content">
  27.  
  28.  
  29.  
  30. <h2>Module B</h2>
  31. <p>I am module B</p>aaaaaa
  32. </div>
  33.  
  34. <div id="footer">
  35. <p>Š Moja Firma 2010</p>
  36. </div>
  37.  
  38. </body>
  39. </html>


To nie jestem pewien czy to jest mądry wybór. Może czas Zyx na refaktoring kodu?

W bardzo prostym układzie strony, użyłem Twojego ostatniego artykułu o tworzeniu szkieletu dla OPT, o tego:

http://www.invenzzia.org/pl/zasoby/artykul...aplikacji-z-opt

Ruio
Cojack a smarty wyglądają lepiej ? Wg. mnie system szablonów pomaga rozdzielic treść strony od silnika natomiast optymalność kodu to już inna sprawa. Wszystko musi mieć swoje zalety i wady, a kłótnia tego nie zmienii winksmiley.jpg
phpion
No ale powiedz czy warto pakować kolejną bibliotekę dla:
  1. <p>{$zmienna}</p>

zamiast:
  1. <p><?= $zmienna ?></p>

Moim zdaniem nie, dlatego stosuję drugie rozwiązanie.

PS: Tak tak wiem, <?= nie jest zalecane.
Ruio
Niby racja jednak większe serwisy pisane są albo na własnym systemie templatek albo właśnie na OPT czy Smartach więc musi być coś co przyciąga do nich a nie zniechęca winksmiley.jpg Ogólnie teraz każda firma zajmująca się tworzeniem stron wymaga znajomości albo smartów albo opt (dlatego też uczę się opt ).

phpion
Cytat(Ruio @ 6.07.2010, 12:22:46 ) *
Ogólnie teraz każda firma zajmująca się tworzeniem stron wymaga znajomości albo smartów albo opt (dlatego też uczę się opt ).

Nie każda. Poza tym zdecydowana większość wymaga znajomości jakiegoś frameworka, a zauważ, że w popularnych frameworkach nie korzysta się z mechanizmów typu Smarty czy OPT. Są oczywiście pluginy, ale są to dodatki. Zamiast uczyć się zbędnych (moim zdaniem) dupereli weź się za frameworki.
Ruio
hmmm znowu chyba masz rację. Na frameworkach nie lubię jakoś pracować. Próbowałem kiedyś ale nie szło mi zbytnio. Dobra bo zbaczamy z tematu ;p
cojack
Czas zająć się tym problemem, gdyż jest on niesamowicie ważny.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.