Index of /m/plugins/esFormInputFileManyPlugin/

NameLast ModifiedSize
UpParent Directory
Directorylib2020-02-26 13:15-
Directoryweb2020-02-26 13:15-
1. Instalacja 1.1 W config/ProjectConfiguration.class.php należy włączyć plugin. 1.2 Wykonać 'php symfony plugin:publish-assets' 1.3 W apps/backend/config/view.yml dodajemy pliki js /esFormInputFileManyPlugin/js/jquery-ui-i18n.min.js, /esFormInputFileManyPlugin/js/jquery-ui.min.js, /esFormInputFileManyPlugin/js/jquery.bgiframe-2.1.2.js, /esFormInputFileManyPlugin/js/sortable.js i jeżeli nie jest jeszcze załadowany jQuery /esFormInputFileManyPlugin/js/jquery.min.js Jeżeli mamy w do projektu dodany colorbox [http://www.jacklmoore.com/colorbox] możemy również udostępnić funkcjonalność galerii: /esFormInputFileManyPlugin/js/jquery.colorbox-min.js /esFormInputFileManyPlugin/js/gallery.js 1.4. oraz pliki css '/esFormInputFileManyPlugin/css/style.css' 1.5. Aby umożliwić pobieranie sprawne pobieranie plików kopiujemy do /web/ plik esGetFile.php 1.6 wykonujemy php symfony cc 2. Zastosowanie Plugin zawiera widget i validator. Dla poprawnego działania widget i validator muszą być zdefiniowane dla pola o definicji longvarchar [albo text] 2.1. esWidgetFormInputFileMany Używa się go dokładnie jak sfWidgetFormInputFile z tym że: 2.1.1. Opcje wymagane uploaded - której wartością musi być zawartość pola typu longvarchar (albo text) z bazy, w którym to polu przechowywane są informacje o plikach. 2.1.2. Opcje dodatkowe: is_image - wpływa na sposób wyświetlania widgetu [dodaje preview obrazków]. path - cieżka do folderu z obrazkami [domyślnie sfConfig::get('sf_upload_dir')] sortable - czy lista ma być sortowalna [domyślnie true] Możemy zdeciniować opcje miniaturek thumb_width - szerokość miniaturki [domyślnie 'auto'] thumb_height - wysokość miniaturki [domyślnie 'auto'] thumb_type - typ miniaturki [domyślnie null] - pomoga utrzymać porządek na dysku, ale utrudnia zmianę rozmiarów miniaturki dla zdjęc dla których już została wygenerowana miniaturka tego typu. [thumb_type nie musi występować jako klucz tablicy thumbsToGen przekazywanej do validatora] thumb_dest - ścieżka docelowa miniaturki [domyślnie null - zostanie wygenerowana z pozostałych parametrów] 2.2. esValidatorFileMany Używa się go podobnie jak sfValidatorFile Do walidatora dodana została cała logika. Odpowiada on za usuwanie plików i dodawanie plików (i oczywiście za walidację) + miniaturki. 2.2.1. Opcje wymagane fieldName = nazwa pola na którym zakładany jest walidator NameFormat = zawsze powinien mieć wartość: $this->widgetSchema->getNameFormat() 2.2.2. Opcje dodatkowe: thumbsToGen = tablica z danymi o miniaturkach do wygenerowania. Tablica ma strukturę array ( 'Typ_miniaturki_1' => array ($szerokosc_1, $wysokosc_1), 'Typ_miniaturki_2' => array ($szerokosc_2, $wysokosc_2), ) [domyślnie array()] max_size - maksymalny rozmiar jednego pliku [domyślnie NULL] mime_types - typ / typy dodawanych plików [domyślnie NULL] validated_file_class - klasa validująca [domyślnie 'esValidatedFile'] - odpowiada za nadawanie nazw i walidację plików path - ścieżka do folderu z obrazkami [domyślnie sfConfig::get('sf_upload_dir')] max - maksymalna liczba plików do dodania za jednym razem [domyślnie 100] 3. Przykład użycia Mamy klasę Shop z polem image_slider zawierającym galerię. W ShopForm dodajemy: 3.1. Widget $this->setWidget( 'image_slider', new esWidgetFormInputFileMany( array( 'path' => sfConfig::get('sf_upload_dir').'/image_slider/' ,'uploaded' => $this -> getObject() -> getImageSlider() ,'is_image' => true , 'thumb_height' => 120 , 'thumb_type' => 'sortable_list_thumb' ) ) ); Miniaturka o typie medium powinna być zdefiniowana w tablicy thumbsToGen przekazanej do validatora 3.2. Validator: $this->setValidator( 'image_slider', new esValidatorFileMany ( array( 'required' => false ,'max_size' => 500000000 ,'mime_types' => 'web_images' ,'fieldName' => 'image_slider' ,'NameFormat' => $this->widgetSchema->getNameFormat() ,'thumbsToGen' => array ( 'medium' => array (200, 'auto') ,'small' => array (50, 'auto') ) ,'max' => 50 ,'path' => sfConfig::get('sf_upload_dir').'/image_slider/' ) ) ); 4. Na koniec - sprzątanie po sobie Zaznaczenie checkboxa przy zdjęciu na liście spowoduje fizyczne usunięcie pliku zdjęcia i wszystkich jego miniaturek. Należy jeszcze pamiętać, aby dodać obsługę usuwania zdjęć do modelu. Aby ułatwić to maksymalnie zostało to dodane do klasy thumbController. Dzięki niej jedyne co trzeba zrobić to nadpisać metodę delete w modelu, w naszym przykładzie Shop::delete public function delete(PropelPDO $con = null){ return thumbController::removeAllThumbs($this -> getImageSlider(), true, 'image_slider') && parent::delete($con); } 5. Klasy techniczne Klasy thumbController i thumb są bardzo dobrze okomontowane - po informacje dewelopoerskie zajrzyj do nich.
Proudly Served by LiteSpeed Web Server at www.alvowebd.webd.pro Port 443