Tato komponenta je součástí základního modelu pro práci s post type. Jedná se o komponentu, která nám usnadňuje běžnou práci se soubory, které uživatel nahrál k post type. Komponentu rozdělujeme na dvě části a to pro práci s obrázky a následně se soubory aplikačního typu.
Pokud potřebujete získat všechny obrázky a následně s nimi dále pracovat, můžete využít výchozí vzhled galerie nebo si snadno připravit vzhled HTML vlastní. Důležité je, že Vám komponenta nabízí obrázky již připravené.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$presenter = new KT_WP_Post_Base_Presenter( $post ); // $imgGallery je nyní objekt KT_WP_Post_Gallery $imgGallery = $presenter->getModel()->getGallery(); // Pokud nechceme pracovat s presenterem $imgGallery = new KT_WP_Post_Gallery( $post ); // $id - html id containeru // $class - html class containeru // $imgClass - class pro img tag // $attr - případný html attributy pro každý obrázek // $withSelfLink - mají mít obrázky odkaz sami na sebe pro large velikost? Default true echo $imgGallery->getImageGallery($id, $class, $imgClass, $attr, $withSelfLink); // Pokud potřebujeme kontrolovat přesně HTML výsledek, můžeme přistoupit přímo ke kolekci if($imgGallery->hasFiles()){ foreach($imgGallery->getFiles() as $image){ // $image je nyní obrázky WP_Post typu attachment, s kterým již pracujeme // dle potřeby v rámci WordPressu $thumbnail = wp_get_attachment_image_src($image->ID, KT_WP_IMAGE_SIZE_THUBNAIL); $large = wp_get_attachment_image_src($image->ID, KT_WP_IMAGE_SIZE_LARGE); echo '<a href="{$large[0]}">'; echo '<img src="{$thumbnail[0]}" alt="{$image->post_title}" />'; echo '</a>'; } } |
Tato část nabízí snadný a rychlý přístup ke všem obrázkům, které jsou přiřazeny jednomu post type. Použití je například pro vytvoření automatické galerie nějaké nové entity (např. vozidlo)
Komponenta má také své nastavení, které lze použít při zobrazení.
|
1 2 3 4 5 |
$imgGallery->setLargeSize(KT_WP_IMAGE_SIZE_LARGE); // Nastaví, jaká velikost bude zobrazena při kliku na odkaz $imgGallery->setThumbnailSize(KT_WP_IMAGE_SIZE_THUBNAIL); // Nastaví, jakou velikost bude mít náhled $imgGallery->setExcludeThumbnail(true); // Má být z kolekce vyřazen náhledový obrázek příspěvku |
V případě, že potřebujete pracovat s vlastní kolekcí obrázků a ne s těmi, které jsou nahrány u příspěvku, je možné využít funkci: setCustomImagesIds();
|
1 2 3 4 |
$imagesCollection = array(5, 29, 32, 45, 58); $imgGallery->setCustomImageIdes($imagesCollection); // Galerie bude nyní sestaven z obrázků s ID: 5, 29, 32, 45, 58 |
Stejně jako výpis obrázků, je potřeba dát návštěvníkům možnost stáhnout některé soubory (například manuály, produktové listy, atd).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
$presenter = new KT_WP_Post_Base_Presenter( $post ); // $filesList je nyní objekt KT_WP_Post_File_List $filesList = $presenter->getModel()->getFiles(); // Pokud nechceme používat presenter $filesList = new KT_WP_Post_File_List( $post ); // Vytvoří UL list s odkazy na soubory ke stažení // $id - CSS ID pro UL // $class - CSS class pro UL $filesList->getFileList($id, $class); // pokud potřebujete kontrolovat HTML výsledek, můžete přistoupit k vlastní kolekci if($filesList->hasFiles()){ foreach($filesList->getFiles() as $file){ // $file je nyní soubor WP_Post typu attachment, s kterým již pracujeme // dle potřeby v rámci WordPressu $fileUrl = wp_get_attachment_url($file->ID); $fileName = $file->post_title; // Zde bude již HTML del Vaší potřeby. } } |
Tato část nabízí snadný a rychlý přístup ke všem souborům aplikačního typu, které jsou nahrány u post type. Použití je například pro přehled souborů ke stažení.
|
1 2 3 4 5 |
$filesList->setCustomIcon(kt_get_image_theme("file-icon.png")); // URL adresa k ikoně, která bude zobrazena před soubory $filesList->setDashIcons("dashicons-media-text"); // název daschicons, která bude použita před souborem - nezajišťuje vložení CSS s ikonama do fronteendu. $filesList->setPrintIcon(false); // vypne vykreslování ikonek |
Protože část s obrázky i soubory aplikačního typu mají stejného objektového rodiče, lze na oba dva aplikovat určitou část společného nastavení.
|
1 2 3 4 5 6 7 8 |
$AttachmentList->setContainerTitle("Nadpis výpisu"); // Nastaví titulek automaticky zobrazené kolekce $AttachmentList->setContainerTitleHtmlTag("h2"); // Nastaví, jaký HTML element obalí titulek $AttachmentList->setOrder("ASC"); // ASC nebo DESC řazení $AttachmentList->setOrderby("menu_order"); // nastaví řazení obrázku dle WP_Query $AttachmentList->setLinkClass("attachment-link"); // Nastaví CSS třídu každému odkazu, který směřuje na attachment $AttachmentList->setNumberFiles("10"); // Nastaví, kolik attachmentů se má maximálně zobrazit |
Nezapomeňte, že celá komponenta je automaticky dostupná na základním modelu pro Post, který je součástí základního presenteru pro Post! Stačí si data pouze na modelu vyžádat.
Odebírejte novinky z FW
Sledujte nás!
Follow @BriloTeam!