We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19513
    • 16 Posts
    Szanowni forumowicze, na początku moich zmagań z MODx utknąłem w dość niepozornej wydawałoby się sprawie. Zdołałem rozpracować bardziej skomplikowane rzecz tymczasem zaskoczył mnie brak wykonania dla @EVAL. Super narzędzie bo mogę wstawić drobiazg w PHP-ach w dowolnym miejscu i nie potrzebuję tworzyć całego snippets [moduliku]. Tymczasem gdy wkładam do templejtki lub osadzam w kodzie strony zapis:
    @EVAL return "The time stamp is now ".time();

    Wyświetla mi sie na ekranie dokładnie taki komunikat - tak jakby parser nie przetwarzał tego.

    Czy ktoś może mi to wyjaśnić? Może trzeba cos uruchomić albo inaczej osadzić?
      Marketing WWW i takie tam: http://www.graphicsite.pl
      • 17723
      • 221 Posts
      Witaj,
      jeśli chcesz wstawić php w treści dokumentu używasz do tego snippedów [[TwójSnipped]].
      @EVAL natomiast jest używana w TV [*TwojaZmienna*].
      Powodzenia,
      luke
        Lucas from AroundCyprus.net
        • 19513
        • 16 Posts
        Quote from: lx at Dec 08, 2008, 10:44 PM

        jeśli chcesz wstawić php w treści dokumentu używasz do tego snippedów [[TwójSnipped]].
        @EVAL natomiast jest używana w TV [*TwojaZmienna*].

        Ale w manualu jest wyraźnie przykład  w którym z pomocą tego powinienem móc wyświetlić aktualny czas. Ten przykład z manualna zacytowałem i moje pytanie dotyczyło stricte @EVALA i jego funkcjonalności bo Snippety to ja potrafię sobie użytkować (co tez w poście zaznaczyłem).

        Stosowanie Snipedów do takich przypadków nie jest efektywne ponieważ rośnie mi wtedy biblioteka takich „wkądek” a czasem chcę zwyczajnie coś błahego od PHP-a: podanie daty, zamiana stringa czy też wyświetlenie nazwy pliku. Robienie mnóstwa dwulinijkowych Smipetów mija się chyba z celem

        P.S.
        hm... cos słabe to polskie wsparcie... nikt nie podpowie nawet wskazówki?
        Jak mamy rozwijać i popularyzować dane rozwiązanie skoro jako społeczność nie pomagamy sobie wzajemnie? Logika podpowiada, że jeśli osoba ’newbie’ nie przekona się do jakiejś idei i zrazi się brakiem informacji na jej temat, to poszuka innych bardziej przystępnych rozwiązań - przez to projekt i jego społeczność ucierpi, bowiem potencjalna osoba mogąca przyczyniać się do rozwoju odejdzie gdzie indziej.
          Marketing WWW i takie tam: http://www.graphicsite.pl
          • 31800
          • 10 Posts
          In the context to Template Variables, a Data Source is the location of the information to be displayed.
          (...)
          These Data Sources can be tied (or “bound”) to a Template Variable for formatting and displaying in document.

          Cóż... Niestety wygląda na to, że @EVAL wcale nie jest taki "powerfull", jak sugerują jego twórcy i rzeczywiście można go używać jedynie w zmiennych szablonu (TV). Osobiście do tego typu małych pierdół użyłbym zapewne phx.

          Jest to jedna z tych rzeczy, które mnie nieco irytują w MODx-ie i powodują, że co jakiś czas zadaję sobie pytanie, czy naprawdę chcę go używać undecided
            • 19513
            • 16 Posts
            Zainteresuje się phx bo narzazie nie miałem z tym styczności - pewnie znowu zejdzie kilka dni. Aktualnie sam rozkimałem jak użyć tej @EVAL by w końcu się coś pojawiło. Pracuje właśni nad sensem jej wykorzystania i eksperymentuje jak nad nią panować. Jeśli posiądę już zadawalający tego poziom to z pewnością to opiszę.
              Marketing WWW i takie tam: http://www.graphicsite.pl
              • 19513
              • 16 Posts
              Mam głupie wrażenie że piszę do siebie. No ale cóż obiecałem to muszę się wywiązać,
              otóż rozpracowałem sposób przekazywania zmiennych i opiszę go tu tak jak ja to widzę. Zaznaczam, że nie jest to pełny i kompetentny opis ale taki jaki udało mi się złożyć po
              wielu godzinach eksperymentów. Zatem wprowadzenie to ma charakter wskazówki dla innych newbe, a nie instruktarz dla zaawansowanych.

              Dla tych co jeszcze nie wiedzą w dużym ogóle to:
              A. snippets służą do zamieszczania skryptów
              B. chunk do zamieszczania bloków kodu HTML
              C. zmienne przekazywane między stronami to tak zwane TV (Template Variable)


              Jeśli chcemy przekazać do strony lub pobrać jakąś zmienną - w tradycyjny sposób, zrobilibyśmy to za pomocą GET-a lub POST-a, natomiast w MODx musimy się posłużyć TV. Template Variable edytuje się w panelu MODx w zakładce "Zarządzanie zasobami". Zatem
              wybieramy pod-zakładkę "Zmienne szablonu" i tworzymy nową TV.

              1. Wprowadzamy nazwę zmiennej - to coś co jest w polu objętym takimi dziwnymi znaczkami: [* *] .Najlepiej by był to jeden ciąg znaków bez spacji i polskich znaków.
              Dla potrzeb przykładu ja wpisuję w to pole "IloscKotow" i od chwili zapisania zmiany będę mógł posługiwać się placeholderem (cos jakby nowym znacznikiem przechowującym moją zmienną) w kształcie [*IloscKotow*].

              2. Teraz pora ustalić wartość tej zmiennej. Wybieramy z listy rozwijalnej ’Typ’ opcję z napisem ’Text’ ponieważ będzie to zmienna tekstowa, a w polu ’Wartość domyślna’ wpisujemy jedynkę (ot taką: 1), ponieważ chcemy by taką liczbę kotów miała Ala z naszego przykładu.

              3. Czas ustawić gdzie zmienna ma być widoczna. Poniżej pól, które wypełniamy znajduje
              się sekcja ’Dostęp do szablonu’, a w niej widoczne wszystkie aktualnie użyte szablony. Zaznaczamy checkbox-y dla szablonów, w którym będzie przetwarzana zmienna.
              Nie zajmujemy się pozostałymi parametrami (o nich opowiem innym razem), alezapisujemy naszą nową zmienną TV.

              5. W dowolnym miejscu szablonu wprowadzamy napis: Ala ma kotów [*IloscKotow*]
              W przyszłości możemy osadzić paceholder naszej TV w jakimś chunk, lub bezpośrednio w treści strony. W snippetach zmienną wywołujesz tradycyjnie jak wPHP: $ile.

              6. Odpalamy stronę i widzimy "Ala ma kotów 1". I dobrze, zamienna jest zatem przetwarzana i działa poprawnie.

              7. Teraz skupimy się na wykorzystaniu @EVAL i zobaczymy co on nam oferuje.
              Wracamy do edycji TV w naszym panelu MODx-a. w polu ’Wartość domyślna’ zamiast naszej jedynki wpisujemy tym razem:
              @EVAL return 1+1;

              Jest to wartość którą ma zwrócić interpreter PHP i przypisać naszej zmiennej.

              8. Zapisujemy zamienną. Na wszelki wypadek możemy jeszcze sprawdzić czy została ona odnowiona na naszej stronie: wchodzimy w edycję wybranej strony w panelu MODx-a, klikamy "zmień" i na dole pod edytorem graficznym strony widzimy ’Zmienne Szablonów’ - tam też powinniśmy dostrzec naszą zmianę czyli napis: @EVAL return 1+1.
              (Mnie się zdarzyło jakimś cudem, że zmienna była niezaktualizowana – czyścimy wtedy pole i zapisujemy dokument, a zmienna zostanie dopisana. Nie wierzycie? Ponownie wykonajcie edycje zastaniecie na 100% aktualny wpis)

              9. Teraz odświeżamy stronę WWW i widzimy piękny napis "Ala ma kotów 2".

              To chyba wszystko. Może i proste ale niemało się ogłowiłem co z czym się je zanim uruchomiłem pierwszy raz rzekazywanie zmiennych, zatem mam nadzieję, że i komuś się przyda ta mała instrukcja. Osoby owiększym doświadczneiu zapraszam do weryfikacji poprawnosci i uwag.
              Podziękowania poniżej tongue
                Marketing WWW i takie tam: http://www.graphicsite.pl
                • 17723
                • 221 Posts
                Dzięki za ten polski instruktarz.
                Brakuje bardzo polskiego wsparcie.
                Pozdrawiam,
                luke
                  Lucas from AroundCyprus.net