Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2] Pluginy/Helpery/Partiale/Routing
Forum PHP.pl > Forum > PHP > Frameworki
basso
Uwaga do Admina
Gdy zaczynam nowy temat, nie mogę dać samego tagu [SF2] tylko muszę dać [SF][SF2] bo wyskakuje mi jak dam samo [SF2], że tytuł powinien być opatrzony tagami. Bardzo proszę o poprawkę tego, bo [SF][SF2] bardziej mi się kojarzy z Symfony 1 i Symfony2. Będzie to wszystko ładniejsze i bardziej czytelne. Z góry ślicznie dziękuję.


Teraz seria pytań do SF2.


1. W Zendzie miałem typowe wywołanie /:Controler/:Akcja. Routowanie następowało "z buta" dla :controler/:akcja. W Symfony2 z tego co widzę, to każda akcja = nowy wpis w routingu (nowa trasa). Czy można zrobić, tak w routingu, abym podawał tylko nazwę kontrolera, a kolejny argument będzie akcją? Bo ja mam 20 akcji i nie chce mi się zaśmiecać routingu ;/

Zend:
Routing defaultowy wygląda tak => :module/:controller/:action
Cms/Blog/nowy
Cms/Blog/edytu
Cms/Blog/najnowsze
Cms/Blog/komentarz

Co bym nie robił, to każda struktura Cms/Blog/X powoduje, że mam 0 wpisów do ROUTINGU i wszystko śmiga.


W Symfony 2 ja widzę natomiast: KATASTROFĘ (aż mnie ręce bolą):
Cms/Blog/nowy => nowy wpis do routingu
Cms/Blog/edytuj=> nowy wpis do routingu
Cms/Blog/najnowsze => nowy wpis do routingu
Cms/Blog/komentarz=>nowy wpis do routingu
.... /......./.............. => N-TY wpis do routingu

Nie neguje tego, po prostu chciałbym się dowiedzieć jak to działa. Przeczytałem i książkę pana Gajdy i COOCKBOOK i polską stronę Symfonii 2 i nigdzie nie mogę znaleźć tego typu ogólnego routingu. Boje się, a chyba na to wygląda, że każda akcja to nowy wpis do routingu. Bardzo proszę o wytłumaczenie czy tak to wygląda czy nie.

2. Czy istnieje tutaj coś takiego jak dołączanie swoich klas np. pluginów, helperów bądź partiali?
Partiale rozumiem jako cząstkowe pliki .twig więc z tym nie ma problemu, chodź z podpięciem modelu nie poszlaje, po prostu jakąś powtarzająca się struktura html. Chyba, że można zwrotkę jakąś z Entity do widoku twiga zaciągnąć, którą będzie ten partial wykorzystywał ? Hmm nie wiem.
Helpery: Ja w Symfony 2 widzę helpery jedynie jako : Wywoływanie kontrolerów w widoku przez {% render 'IbmCmsBundle:Helpers:menu' %}. Renderowany jest wtedy widok danego kontrolera. Jest to fajne, ale nie do końca... każdy może wpisać przecież taki adres do przeglądarki i zobaczy jakąś część kodu, ale rozumiem, że tak to wygląda.
Pluginy.A co z pluginami? Chodzi mi o jakieś swoje klasy abym mógł dołączać z moimi ulubionymi funkcjami abym sobie je ładował do projektu (czy pakietu) i mógł z niego korzystać. Bo nie uśmiecha mi się wykorzystanie wszystkich funkcji jako wywołanie akcji danego kontrolera (kontroler/akcja) w widoku bądź gdzieś indziej ;/

3. Dołączanie zewnętrznych zasobów, ze struktury danego pakietu (Przy generowaniu bundla w momencie "Do you want to generate the whole directiory strukture[no]? dajemy YES.
Tworzy nam się wtedy w danym Bundlu (pakiecie) struktura public/css , public/image , public/js

Pytanie moje brzmi: Jeśli katalogi struktury:
[pakiet]/Resources/public/css/style.css /
[pakiet]/Resources/public/images/cos.jpg ,
[pakiet]/Resources/public/js/skrypcik.js

nie są dostępne za pomocą HTTP TO: Ja budując stronę muszę budować ją korzystając wyłącznie z plików:

[projekt]/web/bundles/[pakiet]/css/
[projekt]/web/bundles/[pakiet]/images/
[projekt]/web/bundles/[pakiet]/js/

i później sobie je przekopiować do struktury [pakiet]/Resources/public/css/style.css tylko po to , żeby ktoś mógł sobie to zainstalować?

Troszkę to moim zdaniem jest "od tyłu robione". Ale chciałem się upewnić, bo na początku wrzuciłem pliki styli do [pakiet]/Resources/public/css/style.css / patrzę => NIC SIĘ NIE ŁADUJE .
Dopiero po przekopiowaniu bądź instalacji php app/console assets:install web mogłem pracować na plikach z publicznego katalogu [projekt]/web/bundles/[pakiet]/images/.

Podsumowując: Buduje wszystko na plikach z katalogu web
[projekt]/web/bundles/[pakiet]/css/
[projekt]/web/bundles/[pakiet]/images/
[projekt]/web/bundles/[pakiet]/js/

i jak już sobie cały BUNDEL zbuduje, to wrzucam to do Resources, tylko po to, aby ktoś mógł sobie to zainstlować/przekopiować do WEB?
Fajne to jest, że jest wszystko w 1 paczce, po prostu chciałem się dopytać, czy może można jakoś podpiąć się i pracować na plikach z katalogów pakietu tj.
[pakiet]/Resources/public/css/style.css /
[pakiet]/Resources/public/images/cos.jpg ,
[pakiet]/Resources/public/js/skrypcik.js


4. Czy w akcjach kontrolerów mogę korzystać raz z annotation, a raz BEZ smile.gif czyli po przez render w akcji ?

5. Czy ktoś korzystał z generowania Entity na podstawie YML? Ja korzystam z Entity w php. Pytanie brzmi: czy przy korzystaniu z .yml też generują się metody w ENTITY?


Na razie tyle pytań co mam, jeśli ktoś coś wie to byłbym wdzięczny za odpowiedzi. Z góry serdecznie dziękuję.
destroyerr
Ad 1.
Tak jest i tego nie zmienisz, nie widzę sensu żeby tłumaczyć dlaczego. Możesz wykorzystać jakiegoś bundla, który rozwiązuje ten problem. Możesz stworzyć kontroler który będzie rozpoznawał adres i robił przekierowanie. Osobiście jestem zwolennikiem wpisywania każdej trasy osobno.

Ad. 2
Partiale - w Twigu masz {{ include( ... ) }} a w PHP <?php $view->render(...) ?>
Helpery - w Twigu masz tagi, a w PHP (dostępne jako ArrayAccess obiektu $view) np.: <?php $view['router']->generate(...) ?>
Pluginy - w Twigu {{ render() }}, a w PHP <?php $view['actions']->render() ?>
Oczywiście to wszystko jest w dokumentacji opisane szerzej.

Ad. 3
Nie wiem czy nie za bardzo namieszałeś ale niewiele zrozumiałem. W bundlu trzymasz wszystkie pliki z nim związane. Jeśli jeden z szablonów w nim zawartych potrzebuje plik np. jquery.pluginX.js to wrzucasz go do folderu [pakiet]/Resources/public/js/, a w szablonie: {{ asset('bundles/[pakiet]/js/jquery.pluginX.js') }}. Wykonujesz komendę instalującą wszystkie te pliki i działa.

Ad. 4 Wydaje mi się, że tak, ale nie jestem pewien i nie dam rady teraz tego sprawdzić. Myślę, że możesz sprawdzić sam.
skowron-line
Ad1 Sam ostatnio tego szukałem
https://github.com/hidenorigoto/DefaultRouteBundle
z tematu http://stackoverflow.com/questions/4945630...ing-in-symfony2
basso
Cytat(destroyerr @ 25.04.2013, 13:33:31 ) *
Ad. 3
Nie wiem czy nie za bardzo namieszałeś ale niewiele zrozumiałem. W bundlu trzymasz wszystkie pliki z nim związane. Jeśli jeden z szablonów w nim zawartych potrzebuje plik np. jquery.pluginX.js to wrzucasz go do folderu [pakiet]/Resources/public/js/, a w szablonie: {{ asset('bundles/[pakiet]/js/jquery.pluginX.js') }}. Wykonujesz komendę instalującą wszystkie te pliki i działa.


Hej, dzięki za odpowiedzi.

Chodzi mi to, że jak coś robię w .css czy .js no to muszę wszystko wrzucać do: [projekt]/web/bundles/[pakiet]/js/ . Potem jak zrobię zmiany, no to pasuje aby też pliki w [pakiet]/Resources/public/js/skrypcik.js były zakutalizowane, to znów trzeba brać i kopiować [projekt]/web/bundles/[pakiet]/js/ do Resources ;/ i taka zabawa w macieju.

Chyba, że logika jest taka, że trzeba wszystko robić non stop w web/bundles/[pakiet]/js (czy css) a na końcu jak już pakiet będzie skończony, no to dorzucamy do niego wszytkie te pliki (kopiujemy do [pakiet]/Resources/public/js/) aby osoba instalująca Bundla miała wszystko w jednej paczce.


Cytat(destroyerr @ 25.04.2013, 13:33:31 ) *
Ad. 2
Partiale - w Twigu masz {{ include( ... ) }} a w PHP <?php $view->render(...) ?>
Helpery - w Twigu masz tagi, a w PHP (dostępne jako ArrayAccess obiektu $view) np.: <?php $view['router']->generate(...) ?>
Pluginy - w Twigu {{ render() }}, a w PHP <?php $view['actions']->render() ?>
Oczywiście to wszystko jest w dokumentacji opisane szerzej.


Rozumiem, ale wszystko mam brać z Controler/Akcja? Chodzi mi bardziej gdzie mogę umieścić i jak korzystać z swojej prywatnej klasy która nie będzie Kontrolerem. Bo jak jest kontrolerem to może się do niej dostać każdy przez url.

Załóżmy stworzyłem sobie taką klasę jak jest poniżej. I mam w niej funkcje. Pytanie gdzie mogę sobie umieścić tą klasę i jak ją załadować i jak z niej korzystać w Kontrolerze czy Entity (modelu) a nawet w TWIG?
Po prostu nie chcę aby moja klasa z funkcjami była kontrolerem.
  1. My_Funstion_Class
  2. {
  3. public function trarektoria_lotu()
  4. {
  5. retrun $dane;
  6. }
  7.  
  8. }


Jeszcze raz ślicznie dziękuje za pomoc smile.gif
Crozin
Ad. 1. O ile dobrze pamiętam takie coś nie jest możliwe do uzyskania OOTB. Jednakże, Sf2 umożliwia Ci podmianę niemal dowolnego elementu samego frameworka, stąd mógłbyś utworzyć sobie obiekt, który na podstawie Twoich parametrów _bundle, _controller, _action utworzyłby parametr _controller w formie "{_budnle}Bundle:{_controller}:{_action}Action".

Ad. 2. Jeżeli korzystasz z Twiga masz dostęp do wbudowanych w niego samego mechanizmów pozwalających na odseparowanie części kodu w postaci dołączeń (include), makr oraz bloków - więcej w dokumentacji. Dodatkowo Symfony rozszerza Twiga o składnię "render", która pozwala Ci na uruchomienie dowolnej innej akcji. Jeżeli zaś chodzi o pluginy, to możesz musisz tu być bardziej precyzyjny. Chodzi Ci o własne funkcje/obiekty w szablonach?

Ad. 3. Zasoby (pliku CSS/JS/obrazy itp.) powinieneś przechowywać w {BUNDLE}/Resources/public/... Następnie, korzystając z konsoli uruchom polecenie assets:install --symlink*. Utworzy ono linki symboliczne (zamiast tzw. twardych kopii) do w/w katalogu. Od tego momentu zawartość katalogu .../web/bundles w ogóle Cię nie interesuje, operujesz wyłącznie na {BUNDLE}/Resources/public/... Co więcej nie powinieneś raczej korzystać z {{ asset('...') }} przy dołączaniu skryptów JS czy arkuszy stylów, tylko z Asseticsa.

Ad. 4. Nie widzę przeszkód ku temu, jednak dobrą praktyką jest ujednolicona konfiguracja. Jeżeli jednak tworzysz jakiegoś bundla, który może być wykorzystywany w innych projektach niemal zawsze powinieneś korzystać z konfiguracji w XML/YAML.

Ad. 5. Chodzi Ci o gettery/settery? Nie pamiętam, ale niemal na pewno tak.

Cytat
Rozumiem, ale wszystko mam brać z Controler/Akcja? Chodzi mi bardziej gdzie mogę umieścić i jak korzystać z swojej prywatnej klasy która nie będzie Kontrolerem. Bo jak jest kontrolerem to może się do niej dostać każdy przez url.
Między innymi z tego powodu Sf2 nie ma wbudowanego routingu na zasadzie /{_controller}/{_action} i wymusza na Tobie ręczną konfigurację każdego adresu. Tak na prawdę nie zdecydowana większość serwisów nie ma aż tak dużej liczby akcji by stanowiło to jakiś poważny problem/utrudnienie.

Cytat
Załóżmy stworzyłem sobie taką klasę jak jest poniżej. I mam w niej funkcje. Pytanie gdzie mogę sobie umieścić tą klasę i jak ją załadować i jak z niej korzystać w Kontrolerze czy Entity (modelu) a nawet w TWIG?
1. Samą klasę wrzucasz sobie w odpowiednią przestrzeń nazw w swoim bundlu, np. Me\TestBundle\FlightSimulator\AbcClass. Zresztą jej lokalizacja czy nazwa nie ma absolutnie żadnego znaczenia tak długo jak class loader jest wstanie ją odnaleźć.
2. Jeżeli chcesz wykorzystać w niej jakieś zależności powinieneś z niej utworzyć usługę w kontekście DICa: http://symfony.com/doc/master/book/service_container.html Wtedy też w kontrolerze będziesz mógł odwołać się do tej usługi poprzez proste $this->get('my_service_name').
3. Encje to jedynie obiekty-domeny (domain objects), które powinny przede wszystkim ograniczyć się do reprezentowania danych. Nie są one synonimem Modelu w kontekście MVC, są jedynie jego częścią - najbardziej prymitywną/podstawową. Nie powinny one raczej korzystać z innych usług - to inne obiekty (usługi) powinny pracować na nich.
4. Odnośnie używania własnych obiektów w Twigu: http://symfony.com/doc/master/cookbook/tem..._extension.html


* Pod Windowsem będziesz musiał uruchomić wiersz poleceń jako administrator, bądź nadać swojemu użytkownikowi systemowemu prawa do tworzenia linków symbolicznych: http://superuser.com/questions/104845/perm...ks-in-windows-7
basso
Na początku dzięki za odpowiedź/pomoc.

Cytat(Crozin @ 25.04.2013, 17:20:14 ) *
Ad. 2. Jeżeli korzystasz z Twiga masz dostęp do wbudowanych w niego samego mechanizmów pozwalających na odseparowanie części kodu w postaci dołączeń (include), makr oraz bloków - więcej w dokumentacji. Dodatkowo Symfony rozszerza Twiga o składnię "render", która pozwala Ci na uruchomienie dowolnej innej akcji. Jeżeli zaś chodzi o pluginy, to możesz musisz tu być bardziej precyzyjny. Chodzi Ci o własne funkcje/obiekty w szablonach?


O include i render to wiem i zaczęłąłem używać render nawet , do zaciągania menu w layout, jest ono wszędzie takie same, więc utworzyłem kontroler/akcję i zaciągam wynik tego przez { % render

Może wytłumaczę jak tego używam Plugin w Zend.
1. Tworzę w Library sobie klasę np. CMS_MY_METOD_PLUGIN. Mam w niej różnego rodzaju funkcje... np. setSzyfrowanie, getDeszyfrowanie.
2. Teraz, czy to w kontrolerze czy w modelu (jeśli potrzebuje, ale rzadko) czy w widoku (najczęściej w widoku) używam, mojej metody CMS_MY_METOD_PLUGIN::getDeszyfrowanie($v['imie'])

Jak widzimy bezproblemowo mogę używać wszędzie mojego zbioru metod. O coś takiego mi chodzi, żebym mógł to czy w widoku wywołać czy w kontrolerze.

Cytat(Crozin @ 25.04.2013, 17:20:14 ) *
Ad. 3. Zasoby (pliku CSS/JS/obrazy itp.) powinieneś przechowywać w {BUNDLE}/Resources/public/... Następnie, korzystając z konsoli uruchom polecenie assets:install --symlink*. Utworzy ono linki symboliczne (zamiast tzw. twardych kopii) do w/w katalogu. Od tego momentu zawartość katalogu .../web/bundles w ogóle Cię nie interesuje, operujesz wyłącznie na {BUNDLE}/Resources/public/... Co więcej nie powinieneś raczej korzystać z {{ asset('...') }} przy dołączaniu skryptów JS czy arkuszy stylów, tylko z Asseticsa.


Jak sytuacja zatem będzie wyglądała na serwerze? Bez problemu będę mógł przegrać cały projekt i będzie działać. Kojarzysz może?

Rozumiem też, że konstrukcja: app/console assets:install web tylko przekopiowuje mi pliki do web i potem korzysta z tych z web... więc w tym przypadku muszę programować w plikach z web/css a potem przekopiować na końcu do {BUNLDE}/Resource/public ?
Crozin
Mając zapisaną gdzieś klasę CMS_MY_METOD_PLUGIN możesz sobie w dowolnym miejscu zrobić $obj = new CMS_MY_METOD_PLUGIN() i oczywiście będzie to działać, ale domyślam się, że nie o to Ci chodzi. Podlinkowałem już stronę w dokumentacji Service Containera - zapoznaj się z nią bardzo dogłębnie, poczytaj (Google) więcej n/t Inversion of Control (IoC) oraz Dependency Injection [Container]. Nie koniecznie muszą to być materiały bezpośrednio związane z Symfony, gdyż tematy te nie są dla niego specyficzne. Prawdopodobnie większość wartościowych materiałów, będzie omawianych na przykładzie Javy. Jednakże zrozumienie tych na dobrą sprawę bardzo prostych rzeczy jest niezbędne jeżeli chcesz poprawnie korzystać z Symfony, czy w ogóle OOP jako takiego.

Jest to potrzebne, ponieważ obiekty z warstwy modelu Twojej aplikacji powinny być zarejestrowane jako usługi w DICu. Teraz, jeżeli któryś z tych modeli potrzebuje dostępu do CMS_MY_METOD_PLUGIN, powinien dostać obiekt tej klasy w postaci zależności (dokumentacja wszystko bardzo przejrzyście tłumaczy). Podesłałem już też link n/t tworzenia rozszerzeń dla Twiga, oczywiście możesz przekazać dowolny obiekt jako zwykłą zmienną szablonu (albo nawet jako globalną zmienną dla wszystkich szablonów, ale jak z wszystkim co globalne jest to raczej złe rozwiązanie).

Cytat
Jak sytuacja zatem będzie wyglądała na serwerze? Bez problemu będę mógł przegrać cały projekt i będzie działać. Kojarzysz może?
Nawet jeżeli nie będziesz miał możliwości utworzenia symlinków, zawsze możesz utworzyć zwykłą, twardą kopię zasobów wykorzystując assets:install (bez argumentu --symlinks).
basso
Cytat(Crozin @ 25.04.2013, 19:55:34 ) *
Nawet jeżeli nie będziesz miał możliwości utworzenia symlinków, zawsze możesz utworzyć zwykłą, twardą kopię zasobów wykorzystując assets:install (bez argumentu --symlinks).


Ale już wtedy będę musiał pracować na plikach [projekt]/web/bundles/[pakiet]/js/ ? Wiem jak głuchy z niemym smile.gif, ale wole 100x zapytać niż robić coś źle smile.gif

Po prostu zacząłem robić projekt i nie wiem, czy wrzucać to do [projekt]/web/bundles/[pakiet]/js/ i pracować na tym (bo działa) a na końcu wrzuci do Bundle/Resources/public/js czy są właśnie tak jak opisjesz zdrowsze => prawidłowe metody smile.gif
Crozin
Jeżeli zamiast linków symbolicznych będziesz miał zwykłą kopię, wtedy po każdej zmianie w .../{BUNDLE}/Resources/public musisz odpalić assets:install. Ale z racji na to, że niemal wszystkie serwery korzystają z *nixów, dostęp do symlinków masz niemal pewny.
basso
A kojarzysz może jak te Assetic podłączyć bo ja wrzuciłem w layout:

  1. {% stylesheets '@BackendCmsBundle/Resources/public/css/*' filter='cssrewrite' %}
  2. <link rel="stylesheet" href="{{ asset_url }}" />
  3. {% endstylesheets %}


w konfigu zaś dałem:

  1.  
  2. templating:
  3. {engines: ['twig'], assets_version: v2}
  4. #assets_version: SomeVersionScheme


tylko podejrzewam, że chyba brakuje gdzieś jakiejś ścieżki url brakuje. Bo wyskakuje mi błąd:

  1. An exception has been thrown during the compilation of a template ("You must add BackendCmsBundle to the assetic.bundle config to use the {% stylesheets %} tag in BackendCmsBundle::layout.html.twig.") in "BackendCmsBundle::layout.html.twig".
  2.  
Crozin
W głównym pliku konfiguracyjnym, powinieneś mieć:
Kod
assetic:
    debug:          %kernel.debug%
    use_controller: true
    bundles:        [ BackendCmsBundle ]
    java:           java
    ...
basso
Dzięki zaraz obadam... jeszcze jedno pytanko odnośnie renderu (twig).

Wcześniej w 2.1 miałem {% render 'BackendIndexBundle:Default:menu' %}

Tutaj zgodnie z tym : http://symfony.com/doc/current/book/templating.html robię tak :

{{ render(controller('BackendCmsBundle:Default:sz')) }}

I dostąję masę błedów:

  1.  
  2. FatalErrorException: Error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\zatrzymajwspomnienia\vendor\monolog\monolog\src\Monolog\Formatter\Norm
    alizerFormatter.php line 55
  3. in C:\wamp\www\twojejedzenie\vendor\monolog\monolog\src\Monolog\Formatter\NormalizerF
    ormatter.php line 55
  4. at ErrorHandler->handleFatal() in



I jeszcze jedno pytanie: Czy do kontrolera i akcji który jest wołany z rendera muszę mieć routing? W 2.1 nie muszę mieć i śmiga.
To chyba tyle, serdeczne dzięki...

Dziwne, w layoutcie nie mogę dać bo mi się zapętla, w widokach działa ;/
Bardzo dziwne: W 2.1 mam napisane to samo w layoucie mam załadowany {% render 'BackendIndexBundle:Default:menu' %} śmiga
W 2.2 {{ render(controller('BackendCmsBundle:Default:sz')) }} , zapętla się , no to jak ja do layoutu włożę różne rzeczy ;/

Nie da się w 2.2 => mam identyczny kod w 2.1 śmiga pięknie, 2.2 nie mogę mieć swoich rzeczy w layoucie zaciąganych z rendera ;/ no szkoda sad.gif


Okej , w dokumentacji piszą:
1. {% render controller('BlogBundle:Post:list', { 'limit': 2 }), { 'alt': 'BlogBundle:Post:error' } %}
{# Or: #}
2. {{ render(controller('BlogBundle:Post:list', { 'limit': 2 }), { 'alt': 'BlogBundle:Post:error'}) }}

FUNKCJA NR 1 ZAPĘTLA JEŚLI WRZUCIMY JĄ DO LAYOUTU, FUNKCJA NR 2 działa. Może ktoś oprócz mnie przypadać u mnie tak się dzieje
Crozin
Cytat
[...] I dostąję masę błedów: [...]
Wygląda na to, że masz jakoś rekurencyjne wywoływane w kółko te same szablony.
Cytat
Czy do kontrolera i akcji który jest wołany z rendera muszę mieć routing?
Nie, nie musisz.
basso
Dzięki, działają obydwa => wyczyściłem cache i śmiga... coś mu się poplątało smile.gif

Apropo assetic, to wrzucam do layoutu dane jak proponowałeś (patrz niżej)i śmiga, bez konieczności instalowania czy robienia linków symbolicznych. Nie wiem co się będzie działo z obrazkami, podejrzewam, że trzeba będzie je instalować, bo na razie nie używam linków sybmolicznych.

A i jeszcze jedno, assetic rozumiem jako zasysanie css/js przez system , filtrowanie i wypluwanie na wyjściu. Zaś Asset zwykły no to udostępnienie zwykłego źródła.

  1.  
  2. {% javascripts '@BackendCmsBundle/Resources/public/js/*'%}
  3. <script src="{{ asset_url }}"></script>
  4. {% endjavascripts %}
  5.  
  6. {% stylesheets '@BackendCmsBundle/Resources/public/css/*' filter='cssrewrite' %}
  7. <link rel="stylesheet" href="{{ asset_url }}" />
  8. {% endstylesheets %}



Jeszcze jedno pytanie co z ckeditorem który troszkę waży :
<script type="text/javascript" src="/zatrzymajwspomnienia/web/ckeditor3/ckeditor.js"></script>
Musiałem go wrzucić do web/ bo jak był w Bundlu to przy assets:install wyskakiwał błąd , że nie może wysłać... no bo to sporo tego jest i za każdym razem wykonywanie install byłoby problematyczne czekać i czekać.


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.