Filemanger - co dalej ... Symfony

Autor: admin@ignaszewski.pl | Opublikowany: 2 września 2014

Witam wszystkich moich czytelników po krótkiej przerwie. W moim dość napiętym harmonogramie pracy pojawiła się właśnie chwila przerwy i postanowiłem podzielić się z Wami kolejnymi informacjami związanymi z projektem - Filemanager. 

Tak jak pewnie pamietacie zakończyłem opisywanie projektu na etapie zarządzania folderami. Do zakończenia projektu pozostało wyłącznie (albo jak kto woli aż) dodanie uploadu plików i podstawowa funkjconalność projektu byłaby zakończona. Niestety przyszły zlecenia, pojawiła się konieczność użycia modułu już w istniejącym projekcie CMSa i wszystko się pozmieniało. Stworzyłem bundla dla Symfony2, który zawiera opisywany moduł Angularowy z beckendem napisanym w PHPie. Wszystko działa dość sprawnie, spełnia podstawowe założenia modułu i posiada komplet podstawowych funkcjonalności.

Bundle posiada dwa zastosowania:

może działać jako wersja standalone - fragment strony pozwalający zarządzać wszelkimi mediami wgranymi na serwer

Zaznaczenie_025.png

 

lub jako plugin TinyMCE - otwiera się jako okno modalne. 

Okno modalne

Od frontu do uploadu plików posłużył Angularowy moduł ng-flow oparty na bibliotece flow.js, dzięki któremu możemy stworzyć mechanizm postępu uploadu plików i dowolnie skonfigurować sobie sposób wgrywania plików (szczegóły znajdziecie na stronie modułu https://github.com/flowjs/ng-flow).

Cały mechanizm od razu dostał dodatkową funkcjonalność - kadrowania wgranych zdjęć. Do tego celu wykorzystałem bibliotekę jQuery - cropper. W chwili obecnej przygotowane są dwa z góry określone wymiary ułatwiające kadrowanie zdjęć na potrzeby dwóch modułów CMS (artykuł i slidera). Od strony serwerowej mechanizm kadrowania wykonywany jest przy użyciu biblioteki Imagic na podstawie danych pobranych z cropper'a.

Kadrowanie zdjęć

Niestety w chwili obecnej kod źródłowy bundla nie nadaje się jeszcze do publikacji. Niemniej jednak mam nadzieję, że w najbliższym czasie uda mi się nieco zrefaktoryzować kod JS, dopisać niezbędne testy jednostkowe i funkcjonalne (nie tylko w JS, ale także w PHPie) i udostępnić kod na githubie. 

Plany na przyszłość:

  • dalszy rozwój narzędzia
  • przekazanie konfiguracji do JS z konfiguracji PHP'a (ustawiane w Symfony config.yml)
  • uproszczenie komunikacji między modułem, a zewnętrznymi aplikacjami i bibliotekami JS

Jeśli ktoś miałby jakieś pytania co do tego projektu to proszę śmiało pisać na mojego maila: blog@ignaszewski.pl. Na każdą wiadomość postaram się odpowiedzieć w miarę w najkrótszym czasie.