Piwigo::Plugins
Plugins
Piwigo is makkelijk naar uw wensen aan te passen door de vele plugins (apps).
Hieronder een overzicht van plugins die ik in mijn galerie geïnstalleerd heb.
Voor nu gewoon installeren en activeren,
verderop komen ze nog wel ter sprake als ze toegepast worden.
De geïnstalleerde plugins zijn te vinden onder Plugins > Beheer > Pluginlijst.
Op deze pagina worden zowel de geïnnstalleerde- als de geactiveerde plgins getoond, met de opties de plugins te activeren, deactiveren en verwijderen.
Voor het nader configureren van de plugins klik op 'Instellingen'
Onder de tab 'Andere plugins' volgt het overzicht van alle beschikbare plugins en de optie ze te installeren.
In deze pagina worden de door mij in 2017 geïnstalleerde plugins in Piwigo 2.7.4 met thema 'Pure_clear_blue' beschreven.
De plugins zijn op een enkele na thema onafhankelijk en zijn dus hetzelfde zowel in 'Pure_clear_blue' als in 'elegant'.
Waar dit niet het geval is wordt hiervan afzonderlijk vermelding gemaakt.
Advanced Menu Manager
Met Advanced Menu Manager kunt u het uiterlijk van het menu van uw galerie makkelijk veranderen.
Voor deze plugin is de installatie en activatie vereist van de plugin: Grum Plugins Classes.3
De 'Advance Menu Manager' plugin wordt in deze installatie gebruikt om:
- De default menublokken 'Willekeurige Foto' en 'Links' verbergen.
- Van de blokken 'Menu' en 'Specials' de volgende default opties te verwijderen:
-Labels
-Over
-Meldingen
-Meest bezocht
-Random Pictures
-Recent Categories
Verberg default menublokken
Plugins > Advanced Menu Manager > Menu Management > Zichtbaarheid & Volgorde Menu's:
Voor het verbergen van
'Willekeurige Foto' (Random Pictures) en 'Links' in de desbetreffende 'toegankelijkheids velden' alle mogelijke gebruikers verwijderen.
Zet de gewenste volgorde van de menu's door middel van 'drag and drop'.
Verberg van de blokken 'Menu' en 'Specials' de default opties
Plugins > Advanced Menu Manager > Menu Management > Inhoud voor 'Menu' & 'Specials' menu:
Voor het verbergen van
de opties van deze alle mogelijke gebruikers verwijderen.
Doe dit bij:
-Labels
-Over
-Meldingen
-Meest bezocht
-Random Pictures
-Recent Categories
Zet de gewenste volgorde van de menu's door middel van 'drag and drop'.
Batch Downloader
Sta gebruikers toe om meerdere afbeeldingen tegelijk te downloaden als ZIP.
Met de installatie van deze plugin komt er een icon beschikbaar op alle fotoalbumpagina's. Hiermee kunnen alle foto's in de huidige selectie in een zipbestand gedownload worden. De gebruiker heeft daarbij de keuze welk beschikbaar formaat gedownload wordt.
Bij grotere volumes worden er meerdere zipbestanden aangemaakt.
Huidige selectie
Een selectie kan op meerdere manieren tot stand komen:
- Een fysiek album in de Album tree. Als we bijvoorbeeld het album 2014 Wandelen bekijken dan bevat deze 171 foto's en zal de download selectie dus 171 foto's bevatten
- Virtueel album 'Recente foto's'. De hoeveelheid foto's is hier afhankelijk van hoeveel foto's de laatste keer tegelijk geladen zijn geweest.
- Virtueel album 'Aanmaakdatum' met een selectie via de 'Kalender' optie
- Virtueel album 'Zoekresultaten'. Hier kunnen we de hoeveelheid reduren door 'slim' te zoeken met de diverse filters.
- Virtueel album 'Jouw favorieten'. Voeg in de Foto Pagina met de gewenste deze foto toe aan het favorieten album. In dit geval zal de selectie alleen de gewenste foto's bevatten.
- Met plugin 'User Collections' kunnen aangemelde gebruikers afbeeldingen uit de galerie selecteren en ze opslaan in verzamelingen - een geavanceerde "favorieten"-functie.
Configuratie Batch Downloader
Maak de instellingen als in onderstaande afbeelding
Eigen Icon
De met de plugin meegeleverde icon is naar mijn mening niet duidelijk.
Heb er zelf één aangemaakt en geplaatst in ../piwigo/plugins/BatchDownloader/template/images/zip.png (Bewaar het origineel als zip.png.org)
Zie Piwigo::Wijzigingen > Hacks > Ikonen bewerken
Dynamic Recent Period
Bij het weergeven van het dynamische album 'Recente Foto's' worden de foto's verzameld uit de gehele galerie op basis van de 'upload' datum (synchronisatie). Ook foto's in de 'hidden' albums worden geselecteerd. Per default worden de foto's geselecteerd die de afgelopen 7 dagen geladen werden.
Als er de afgelopen week geen nieuwe foto's geladen zijn is dus de selectie leeg.
Met de plugin 'Dynamic Recent Period' kunnen we bepalen van hoeveel 'uploaddagen' we foto's tonen.
Plugins > Dynamic Recent Period
Met de instelling van 2 dagen worden alle foto's van de meest recente 2 'uploaddagen' geselecteerd ongeacht hoe hoelang die geleden zijn en hoever die 2 dagen uit elkaar liggen.
Als er regelmatig grote hoeveelheden foto's per uploaddag geladen worden kan het beter zijn het aantal dagen naar '1' te zetten.
Exif view
Vertaalt EXIF gegevens in lokale menselijke taal. Overeenkomstig EXIF specificatie 2.2, details in http://www.exif.org. Gemakkelijk uit te breiden.
Zie ook Piwigo::Wijzigingen sectie EXIF data human readable met de benodigde aanvullingen op de standaard configuratieinstellingen.
Extended Description
Deze plugin levert functies die in de meeste tekstvakken van Piwigo geplaatst kunnen worden:
- Meertalige beschrijvingen.
- Uitgebreide Beschrijvingen
- Voeg een album of foto toe
- Voeg een diashow toe
- Verberg elementen (albums, foto's)
- Plaats een afbeelding of een albumlink in een beschrijving
- Stuur (Redirect) een album door
- Uitgebreide Beschrijvingen kan ook gebruikt worden in het paginahoofd (banner).
Met de installatie en activatie van Extended description wordt deze opgenomen in het Plugins Menu.
Als we de Beheer > Plugins > Extended Description openen zien we onderstaand Documentatie overzicht met links naar uitgebreide voorbeelden.
In de hier beschreven Piwigo installatie maken we vooralsnog alleen gebruik van de optie 'Verberg Elementen'
Zie sectie Piwigo::Inrichten > Galerij (Home) gelinkte miniaturen en Albums verbergen van Galerij en Menu-tree
Note: Naast het plaatsen van bovenstaande speciale Extended Description code in het naamveld, kan er ook standaard html code in het Beschrijvingsveld van een foto of albumminiatuur geplaatst worden. Zie hiervoor ook Piwigo::Inrichten > Galerij (Home) gelinkte miniaturen.
Fotorama
Fotorama is een eenvoudige maar krachtige jQuery diapresentatie met de optie van weergave op volledig scherm.
Configuratie
Na de installatie en activatie voeren we de verdere configuratie uit in
Beheer > Plugins > Fotorama
Vink 'Alleen volledig scherm modus' niet aan. De hedendaagse browsers staan dit niet toe en de presentatie zal slechts openen in de volledige browserwindow.
Het openen in volledig scherm moet na het starten van de presentatie op de hand gebeuren.
Fotorama kiest in fullscreen mode de maximum in Beheer > Configuratie > Opties > Fotogroottes 'aangevinkte' geschaalde maat. Zonodig wordt deze alsnog gegenereerd. Dit zou geen vertraging op moeten leveren (binnen de ingestelde 4 seconden weergavetijd).
Met deze icon kan op album- en fotopagina's de diavoorstelling gestart worden. Alle foto's in het huidige album worden dan in de diavoorstelling getoond.
Aangepaste iconen
De bij de Fotorama-plugin meegeleverde iconen zijn door mij aangepast door het bewerken van het bestand ../piwigo/plugins/Fotorama/fotorama/fotorama@2x.png (na eerst het origineel opgeslagen te hebben als fotorama.png.org). Zie ook Piwigo:: Wijzigingen > Hacks > Ikonen bewerken
Van | Naar |
![]() |
![]() |
Grum Plugins Classes.3
Deze Classes modules worden door verschillende plugins gebruikt. Bij deze installatie voorlopig alleen maar door Advanced Menu Manager
LocalFiles Editor
Bij het modificeren/aanpassen van Piwigo is het niet de bedoeling dat we de de core bestanden 'hacken'. Er is in voorzien dat we de te wijzigen scripts opslaan als locale bestanden en hierin de wijzigingen aanbrengen. Het gewijzigde script wordt dan in plaats van het originele script uitgevoerd. Zie ook de Piwigo documentatie
Na installatie en activatie is LocalFiles Editor beschikbaar in het menu Beheer > Plugins > LocalFiles Editor
De plugin LocalFiles Editor voorziet in het vanuit het Beheer (administratie) bewerken van de volgende locale scripts:
- Defaults: ../piwigo/local/config/config.inc.php met overrides op het bestand ../piwigo/include/config_default.inc.php met de Piwigo defaults.
- CSS: ../piwigo/local/css/elegant-rules.css met overrides op alle Piwigo CSS bestanden (inclusief van plugins).
- Templates: ../piwigo/template-extension/ met eigen sjablonen ter vervanging van de originele templates in ../piwigo/themes/default/template/.
Alleen Piwigo core, niet voor plugin templates.
Vervanging van de originele sjablonen door de aangepaste sjablonen in de sjabloon-extensie submap via Beheer > Configuratie > Sjablonen
(Zie ook het Help bestand) - Taal: ../piwigo/local/language/nl_NL.lang.php met eigen toevoegingen in de vertalingen naar het Nederlands
- Persoonlijke plugin: ../piwigo/plugins/PersonalPlugin/main.inc.php met zelfgemaakte plugins of plugins van medegebruikers zoals Compilation of personal plugins
Op deze plaats worden niet verder ingegaan op de eigen modificaties die gemaakt zijn met de Local Files Editor maar in detail behandeld in de diverse secties waar de Editor gebruikt wordt.
Posted Date Changer
Verander in de batch manager de datum waarop de foto's geplaatst zijn.
Het dynamische album 'Recente foto's' selecteert foto's op basis van de de datum waarop foto's geplaatst zijn (upload datum).
Na bijvoorbeeld herladen van oude foto's worden deze foto's ten onrechte als recent aangemerkt.
Met de 'Posted Date Changer' kunnen we de uploaddatum van een selectie in de 'Foto's Bulk Beheerder' wijzigen naar een gewenste datum in het verleden.
PWG Stuffs
Voeg modules aan het album toe
Na installatie en activatie is PWG Stuffs beschikbaar in het menu Beheer > Plugins > PWG Stuffs
Beschikbare module blokken:
In deze Piwigo installatie gebruiken we PWG Stuffs om een loginblok op de Fotogalerij hoofdpagina te plaatsen als geen publieke albums beschikbaar zijn.
Configuratie
Configureer het inlog blok als in onderstaande afbeelding.
In Piwigo::Wijzigingen > Hacks > PWG-Stuffs loginblok aanpassen wordt beschreven hoe het blok aanvullend gemodificeerd wordt door middel van een 'hack' van de template.
Na toepassing van deze 'hack' ziet het inlogblok er als volgt uit:
rightClick
rightClick schakelt het rechtermuisknop-menu uit bij de foto's.
Gebruikers met het "beheerder" privacy-niveau kunnen nog wel hun rechtermuisknop gebruiken.
Note:
Houd er a.u.b. rekening mee dat rightClick geen absolute beveiliging tegen het kopiëren van afbeeldingen is. Zie ook sectie Piwigo::Beveiliging
Rotate Image
Hiermee kunnen afbeeldingen gedraaid worden (roteren) op de achtergrond (Foto's Bulk Beheer)
RV Menu Tree
Vervangt de categoriën in the menu balk door een mooiere versie (javascript).
Zie Piwigo::Wijzigingen > Hacks > RV-Menutree verborgen mappen niet tonen voor het voorkomen dat verborgen mappen toch in RV Menu Tree getoond worden
Thumbnail Tooltip
Hiermee kan de inhoud van de tooltip bij afbeeldingen in de albumpagina's gewijzigd worden. De Piwigo default is de bestandsnaam van de foto.
Selecteer alleen 'Omschrijving'
De weergave van de tooltip wijzigen wij ten eerste in de eigen lokale template 'elegant_thumbnails.tpl'. Zie hiervoor Piwigo::Wijzigingen>Templates>Tooltip CSS-methode
en ten tweede met een toevoeging in de lokale stylesheet 'elegant'. Zie hiervoor Piwigo::Wijzigingen > Tooltip CSS methode
Share Album
Share Album is een Piwigo plug-in waarmee albums gedeeld kunnen worden. Voor elk privé album kan een unieke URL gegenereerd worden, die je kunt delen met gebruikers die je genoeg vertrouwt om dat album te bekijken.
Zie
Piwigo::Albums Inrichten sectie Deel album met een link voor het gebruik van ShareAlbum
De Share Album functie is beschikbaar in privé albums middels een Share Album Icon .
Met deze functie kun je:
- Een nieuwe share aanmaken
- De share URL naar het clipboard kopiëren
- Een nieuwe unieke URL re-genereren
- De active share verwijderen
Installatie
Piwigo > Beheer > Plugins > Beheer > Andere Plugins > ShareAlbum > Installeer
Piwigo > Beheer > Plugins > Beheer > Plugin Lijst > ShareAlbum > Activeer
Configuratie
Piwigo > Beheer > Plugins > Share Album > Configuratie
Selecteer gewenste instellingen en klik 'Bewaar instellingen'.
Onder de tab 'Shared Albums' worden tzt de gedeelde mappen getoond:
Album Delen
Alleen de beheerder (Admin) kan een album delen en de unieke URL genereren.
Ingelogd als beheerder is de ShareAlbum icon beschikbaar boven aan de pagina van een privéalbum.
Door op dit icon te klikken opent er een dropdown menu met de optie 'Deel dit album'
Na dit aan te klikken verschijnt de boodschap dat het gelukt is en dat je opnieuw de icon aan moet klikken voor het tonen van de unieke publieke link (URL).
Deze link brengt een verbinding tot stand met een nieuw gegenereerde gebruiker (met een niet te raden naam en veilig wachtwoord) die toegangsrechten heeft gekregen tot het te delen album.
Het dropdown menu heeft de volgende opties:
- Kopieer de URL om het te plakken in bijvoorbeeld een e-mail bericht naar degene die het album mag delen.
- Genereer een nieuwe URL die de oude overschrijft (hetzelfde als de share verwijderen en daarna opnieuw genereren)
- Verwijder de share. Hierbij wordt de URL en de tijdelijke ShareAlbum gebruiker verwijderd en de rechten tot het album ingetrokken.
Tot zover de ShareAlbum plugin zoals deze aangeleverd wordt.
Het principe werkt maar we brengen enkele verbeteringen aan.
Privacy niveau van share-gebruikerAls de link zoals hiervoor gegenereerd is en verstuurd wordt, kan degene die de link ontvangen heeft deze in zijn browser invoeren.
Deze gebruiker zal dan toegang krijgen tot het gedeelde album.
Aan de foto's worden bij het synchroniseren (laden) verschillende 'privacy niveaus' toegekend.
De share-gebruiker moet daarna wel voldoende 'privacy niveau' toegewezen worden waarmee bepaald wordt welke foto's hij/zij al dan niet te zien zal krijgen.
![]() |
![]() |
![]() |
Wie kan deze foto zien | gebruiker privacy niveau | database level |
iedereen | iedereen | 0 |
beheerder, familie, vrienden en contacten | contacten | 1 |
beheerder, familie en vrienden | vrienden | 2 |
beheerder en familie | familie | 4 |
beheerder | beheerder | 8 |
Share-gebruiker krijgt per default een 'privacy niveau'
Bij het genereren van de share-gebruiker wordt het 'privacy niveau' gezet en wel gelijk aan het laagst voorkomende niveau van foto's in het album.
Als er foto's met een hoger 'privacy niveau' in het te delen album staan die we toch willen tonen, dan moet het record van de share-gebruiker alsnog op de hand aangepast worden.
Als we de share-gebruiker willen toestaan een originele foto te downloaden moeten we eerst de share-gebruiker toegang verlenen tot het origineel.
Piwigo > Beheer > Gebruikers > Beheer > Gebruikersnaam share-xxxxxxx > Wijzig
Vink 'Hoge kwaliteit (origineel) ingeschakeld' aan en werk de gebruiker bij.
Nu zal op de fotopagina het download icon weergegeven worden.
ShareAlbum Configuratie
De instelling van de share-gebruiker kan middels de hierna beschreven hack ook verzorgd worden via het ShareAlbum configuratiescherm.
Door de extra optie 'Allow Share Album user to download original image' toe te voegen aan het configuratiescherm.
Voor deze extra optie bewerken we het bestand ../piwigo/plugins/ShareAlbum/admin/template/config.tpl (na een kopie opgeslagen te hebben met extentie .org)
Voeg na regel 67 de regel 68 t/m 74 in:
57 <li>
58 <label>
59 <b>{'Number of displayed images per page for shared albums'|translate} : </b>
60 </label>
61 <select name="option_pics_per_page">
62 {foreach from=$nb_image_page_values key=mKey item=mItem}
63 <option value="{$mItem}" {if $sharealbum.option_pics_per_page==$mItem}selected{/if}>{$mItem}</option>
64 {/foreach}
65 </select>
66 <a class="icon-info-circled-1" title="{'Defines the number of maximum images are displayed per page for shared albums.
This setting applies to all shared albums'|translate}"></a>
67 </li>
68 {* Hack Ben Makkink 30-06-2020 Extra optie voor picture download *}
69 <li>
70 <label>
71 <input type="checkbox" name="option_download_picture" value="{$sharealbum.option_download_picture}"
{if $sharealbum.option_download_picture}checked="checked"{/if}>
72 <b>{'Allow Share Album user to download original image'|translate}</b>
73 </label>
74 <a class="icon-info-circled-1" title="{'When checked, the ShareAlbum-user is granted access to the original
(high quality) image making it available for download'|translate}"></a>
75 </li>
76 {* Einde hack Extra optie voor picture download *}
Voor het uitlezen van de op het configuratiescherm geselecteerde optie en het opslaan ervan in de array in de database bewerken we het bestand ../piwigo/plugins/ShareAlbum/admin/config.php na een kopie opgeslagen te hebben met extentie .org)
Voeg regel 17 toe:
8 // save config
9 if (isset($_POST['save_config']))
10 {
11 $conf['sharealbum'] = array(
12 'option_hide_menus' => isset($_POST['option_hide_menus']),
13 'option_replace_breadcrumbs' => isset($_POST['option_replace_breadcrumbs']),
14 'option_show_login_menu' => isset($_POST['option_show_login_menu']),
15 'option_remember_me' => isset($_POST['option_remember_me']),
16 'option_pics_per_page' => $_POST['option_pics_per_page'],
17 'option_download_picture' => isset($_POST['option_download_picture']),
18 'option_enable_powerusers'=>isset($_POST['option_enable_powerusers']),
19 'option_recursive_shares'=>isset($_POST['option_recursive_shares'])
20 );
De opgeslagen configuratieinstellingen worden nu bij het genereren van een nieuwe share-gebruiker uitgelezen voor het invoegen in het gebruikersrecord.
Bewerk hiervoor ../piwigo/plugins/ShareAlbum/main.inc.php
De code in groene highlight is de toe te voegen code.
103 /** 104 * plugin initialization 105 * - check for upgrades 106 * - unserialize configuration 107 * - load language 108 */ 109 function sharealbum_init() 110 { 111 global $conf; 112 global $user; 113 114 // load plugin language file 115 load_language('plugin.lang', SHAREALBUM_PATH); 116 117 // prepare plugin configuration 118 $conf['sharealbum'] = safe_unserialize($conf['sharealbum']); 119 120 //Hack Ben Makkink 18-12-2020 121 // Get setting of 'allow download original' from ShareAlbum config 122 $allow_original = "false"; 123 if($conf['sharealbum']['option_download_picture']) { 124 $allow_original = "true"; } 125 //Einde Hack 126 127 // Shared mode detection ... ... 176 case SHAREALBUM_URL_ACTION_CREATE: 177 if (!sharealbum_is_poweruser($user['id'])) 178 die('Hacking attempt!'); 179 sharealbum_create($sharealbum_cat,$allow_original); 180 redirect(PHPWG_ROOT_PATH.'index.php?/category/'.$sharealbum_cat.'&'.SHAREALBUM_URL_MESSAGE.'='.SHAREALBUM_URL_MESSAGE_SHARED); 181 break;
Op regel 177 in bovenstaande code wordt de functie sharealbum_create() aangeroepen met als argementen $sharealbum_cat (albumnummer) en $allow_original (true of false).
Breng in het bestand ../piwigo/plugins/ShareAlbum/include/sharealbum_functions.inc.php de volgende toevoegingen (groen) aan.
De secties met gele highlight bevatten de code voor het zetten van het share-gebruiker privacylevel.
217 /** 218 * Creates a share for an album 219 * @cat_id id of the album on which a share is applied 220 */ 221 function sharealbum_create($cat_id,$enabled_high) { ... ... 246 // Set user privacy level to lowest level of images in share album 247 // Get minimum privacy level 248 $result = pwg_query(" 249 SELECT MIN(`level`) AS min_level 250 FROM ".IMAGES_TABLE." 251 WHERE `storage_category_id` = '".$cat_id."' 252 "); 253 254 255 if (pwg_db_num_rows($result)) { 256 $row = pwg_db_fetch_assoc($result); 257 $privacy_level = $row['min_level']; 258 259 if ($privacy_level != null) { 260 // Set user level and enabled high in USER_INFOS_TABLE 261 pwg_query(" 262 UPDATE `".USER_INFOS_TABLE."` 263 SET `level` = ".$privacy_level.", 264 `enabled_high` = '".$enabled_high."' 265 WHERE `user_id` = ".$new_user_id);Map downloaden met BatchDownloader
Naast de hierboven toegevoegde optie voor het downloaden van individuele originelen kan er door de beheerder ook voor gekozen worden alle foto's in het Share Album down te laten loaden.
Dit is echter geen instelling die te maken is in Share Album.
Dit moet gebeuren in de BatchDownloader configuratie met het toevoegen van de 'sharealbum' groep
Piwigo > Beheer > Plugins > Batch Downloader > Configuratie
Voor de duidelijkheid wordt hiervoor in de Share Album Configuratie een regel toegevoegd met deze informatie.
Voor dit informatieblok bewerken we het bestand ../piwigo/plugins/ShareAlbum/admin/template/config.tpl en voegen de code toe direct na de eerder gemaakte hack voor Hoge Kwaliteit inschakelen:
77 {* Hack Ben Makkink 30-06-2020 Messageblok voor BatchDownload *} 78 <li> 79 <img src="plugins/BatchDownloader/template/images/zip.png" />Allow Batch Downloader to download a Share Album by adding the User Group <strong>'sharealbum'</strong> in the Batch Downloader Configuration.<br /> 80 <strong>Piwigo > Administration > Plugins > Batch Downloader > Configuration<strong> 81 </li> 82 {* Einde hack Messageblok voor BatchDownload *}
Piwigo-VideoJS
De Piwigo Plugin Piwigo-VideoJS is een integratie van de Open-Source VideoJS Player in Piwigo waarmee video's afgespeeld kunnen worden in de HTML5 <video> tag.
Ondersteunde formaten zijn: webm, webmv, ogv, m4v en mp4.
De Piwigo Videojs plugin heeft behalve het afspelen van video's meerdere functies zoals:
- Synchronisatie en Weergave van de EXIF metadata
- Integratie met de Piwigo Batch Manager
- Integratie met de Piwigo Foto Edit functie
- Pas de HTML VideoJS speler aan met een Configuratie Paneel
- Aanmaken van een representative/poster klikplaatje.
Voor de installatie van VideoJS in Piwigo volgen we de piwigo-videojs wiki documentatie van de auteur xbgmsharp op Github
Prepareer PiwigoGebruik de Local Files Editor: Beheer > Plugins > LocalFiles Editor > Lokale Configuratie
- Sta het laden van videobestanden toe.
Voeg toe in Lokale Configuratie: $conf['upload_form_all_types'] = true;
Als we de video's net zoals foto's laden met de FTP-methode en dus het upload formulier niet gebruiken dan is deze toevoeging niet nodig.
- Sta het gebruik van speciale leestekens zoals een spatie in de videobestandsnaam toe.
Voeg toe in Lokale Configuratie: $conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_. ]+$/';
Dit is al toegevoegd tijdens het opzetten van Piwigo in de sectie Piwigo::Aanpassen Desktop Thema: Toegestane tekens by synchronisatie
- De EXIF View plugin vertaalt EXIF gegevens naar lokale menselijke taal. De plugin gebruikt hierbij de in de Lokale Configuratie toegevoegde regels. Deze toevoegingen hebben we voor de foto's al gedaan in de sectie Piwigo::Aanpassen Desktop Thema: EXIF data menselijke taal
Voor video voegen we de items (zonder hoofdletter) toe aan de array die er vervolgens zo uit ziet:// Convert EXIF values to human readable localized values. // Corresponds to EXIF specification 2.2, details in http://www.exif.org. // Install and Activate EXIF plugin. Extend your configuration as below // Voor video voeg regels toe niet beginnend met hoofdletter: $conf['show_exif_fields'] = array( 'Make', 'Model', 'ExifVersion', 'Software', 'DateTimeOriginal', 'FNumber', 'ExposureBiasValue', 'FILE;FileSize', 'ExposureTime', 'Flash', 'ISOSpeedRatings', 'FocalLength', 'FocalLengthIn35mmFilm', 'WhiteBalance', 'ExposureMode', 'MeteringMode', 'ExposureProgram', 'LightSource', 'Contrast', 'Saturation', 'Sharpness', 'bitrate', 'channel', 'date_creation', 'display_aspect_ratio', 'duration', 'filesize', 'format', 'formatprofile', 'codecid', 'frame_rate', 'latitude', 'longitude', 'make', 'model', 'playtime_seconds', 'sampling_rate', 'type', 'resolution', 'rotation', );
Piwigo-VideoJS heeft de hierna volgende 'externe tools' niet nodig om video's af te spelen maar ze worden door Piwigo-VideoJS gebruikt voor het creëren van de posters (klikplaatjes) en thumbs (miniaturen) en het parsen (invullen) van de Metadata.
- FFMPEG voor creatie van posters en thumbs:
# yum install ffmpeg (clearos-contribs repository)
# apt install ffmpeg (ubuntu repository)
Dit installeert ook FFPROBE voor metadata parsing.
- MEDIAINFO voor leveren Metadata, extra metadata aanvullend op die van FFPROBE.
# yum install mediainfo (clearos-epel repository)
# apt install mediainfo (ubuntu repository)
- EXIFTOOL resulteert niet in aanvullende metadata en is door mij niet geïnstalleerd.
Beveiliging directe URL's
Om te verzorgen dat de originele foto's buiten Piwigo om niet via een directe URL te benaderen zijn blokkeren we de toegangs tot de map ../piwigo/galleries met de originelen.
Zie hiervoor Piwigo::Beveiliging Apache Directives voor Piwigo
De VideoJS plugin heeft echter wel directe toegang tot de video's nodig en hiervoor moeten we helaas de beveiliging voor de video's opheffen.
Omdat ik alleen video's toe zal voegen met het formaat 'mp4' maak ik daarom alleen een uitzondering voor mp4
<Directory /var/www/html/piwigo/galleries> Require all denied </Directory>
En vervang deze door:
<Directory /var/www/html/piwigo/galleries>
Order Allow,Deny
Require all denied
<FilesMatch "\.(?:mp4|m4v)$">
Order Deny,Allow
Require all granted
</FilesMatch>
</Directory>
Activeren, configuratie en synchronisatie
Na de voorbereidingen van Piwigo en de Server installeren en activeren we VideoJS:
- Piwigo > Beheer > Plugins > Beheer > Andere Plugins > VideoJS > Installeer
- Piwigo > Beheer > Plugins > Beheer > Plugin Lijst > Niet actieve Plugins > VideoJS > Activeer
Configuratie
Piwigo > Beheer > Plugins > VideoJS > Configuratie
Piwigo-VideoJS is nu bijna klaar voor het laden van mp4 video's.
BUG 1:
Bij de VideoJS synchronisatie doet zich de eerste maal echter een probleem voor. Zie Bug: Synchronisatie foutmelding
BUG2:
Na de upgrade naar PHP 8.0 ontstond er een waarschuwing bij 'RESOLUTION'. Zie Bug: Resolution switch foutmelding
Synchroniseer
Piwigo > Beheer > Plugins > VideoJS > Synchroniseer
Hieronder de instellingen zoals door mij gebruikt:
- De 'Program Dependencies' komt met onnodige waarschuwingen. Mediainfo en ffmpeg is voldoende.
(Zoals vermeld onder 'Synchroniseer metadata' vermeld is of Mediainfo of ffprobe of Exiftool vereist) - Er wordt door mij geen gebruik gemaakt van klikplaatjes (thumbs) en worden alleen de posters gecreëerd.
- Als de posters aangemaakt worden plaatst Piwigo-VideoJS deze in een submap pwg-representative met dezelfde naam als die van de video.
- Het 'Synchroniseer' scherm opent met per default aangevinkte opties. Voor het wijzigen van default selecties is een hack nodig.
Video's voegen we op de zelfde manier als Foto's toe en kunnen eveneens, net zoals de foto's, in de albumstuctuur geplaatst worden.
Net als bij de foto's worden met de Piwigo Synchronisatie de video's in de Piwigo database geladen.
Vervolgens
wordt nu een VideoJS Synchronisatie uitgevoerd:
• De Metadata van de video's worden geïmporteerd in de Piwigo database..
• In de map waar de video's staan wordt de submap 'pwg-representative' gemaakt.
• Er worden posters van de video's aangemaakt en in deze submap geplaatst.
De VideoJS Synchronisatie kan op twee manieren gestart worden:
- Met de VideoJS app: Piwigo > Beheer > Plugins > VideoJS en vervolgens tab 'Synchroniseer'
- Vanuit de Beheer > Foto > Verzamelmandje pagina
Selecteer de video('s) en kies onder 'Actie' > Videometadata en posters
In beide gevallen opent bovenstaande pagina 'Synchroniseer' met de default synchronisatieinstellingen.
Bij de initiele activatie van VideoJS wordt een tafel 'pi_image_videojs' toegevoegd in Piwigo MariaDb. Hierin worden de video Metadata opgeslagen.
Er worden ook enkele nieuwe records toegevoegd aan de tafel 'pi_config' zijnde:
- vjs-customcss (opslag eigen css)
- vjs-conf (configuratieinstellingen van de player)
- vjs-sync met in een array de Piwigo-VideoJS default synchronisatie instellingen.
Wijzig default settings
Het vjs-sync record wordt pas aangemaakt
als er voor de eerste keer gesynchroniseerd wordt. De op dat moment gekozen instellingen worden als de default opgeslagen in de database.
Als we een default setting willen wijzigen moeten we dat met phpMyAdmin in de Piwigo database doen in de tafel
'pi_config' in record 'vjs-sync'
Om bijvoorbeeld de simulatie uit te zetten wijzigen we "simulate";b:1;s:6; naar "simulate";b:0;s:6;
Autoplay werkt niet met audioBij de moderne browsers wordt autoplay van een video geblokkeerd als audio aan staat.
Als we toch autoplay wensen moeten we in de html5 <video> tag aangeven dat de video start met de audio uitgeschakeld: <video muted>
Hiervoor is een hack nodig in de piwigo-videojs template ../piwigo/plugins/piwigo-videojs/template/vjs-5-player.tpl:
- Maak een kopie van het originele bestand en sla op als ../piwigo-videojs/template/vjs-5-player.tpl.org
- Edit ../template/vjs-5-player.tpl en voeg 'muted' toe in de <video> tag:
34 {literal} 35 <video id="my_video_1" class="video-js vjs-fluid vjs-big-play-centered {/literal}{$VIDEOJS_SKIN} {literal}" {/literal}{$OPTIONS} muted {literal} poster={/literal}" {$VIDEOJS_POSTER_URL}"{literal} datasetup='{}' x-webkit-airplay="allow"> 36 {/literal}
Door deze wijziging zal autostart van de video werken, terwijl het geluid door de gebruiker handmatig aangezet kan worden.
Skin aanpassingen met lokale CSSLokale CSS
In plaats van toevoegingen/wijzigingen in de default CSS te maken geven we de voorkeur aan het maken van een nieuwe lokale CSS zoals omschreven in de Video.js Documentation: Skins Add a Custom Class to the Player
Windowhoogte Piwigo Desktop Thema
VideoJS reageert interactief op browserwindowafmetingen (lees window breedte), maar dit resulteert er bij bredere monitoren in dat de onderzijde van de VideoJS speler uit het beeld verdwijnt. Er moet naar beneden gescrold worden om bij de 'Controls' te komen.
Hiervoor heb ik een oplossing gevonden bij Stackoverflow: How to limit videojs player height waarbij gebruik gemaakt wordt van de CSS-unit 'vh' (viewport height).
De stappen zijn:
- Voeg een nieuwe class 'vjs-local' toe aan de bestaande <video> tag in ../piwigo/plugins/piwigo-videojs/template/vjs-5-player.tpl:
<video id="my_video_1" class="vjs-local video-js vjs-fluid vjs-big-play-centered {/literal}{$VIDEOJS_SKIN}{literal}" {/literal} {$OPTIONS} muted {literal} poster={/literal}"{$VIDEOJS_POSTER_URL}"{literal} datasetup='{}' x-webkit-airplay="allow"> {/literal} ......</video>
- Creëer een nieuw stylesheet 'videojs-local.css' en sla deze op in de zelfde locatie als de default VideoJS stylesheet: ../piwigo/plugins/piwigo-videojs/video-js-5/videojs-local.css (chown apache:apache chmod 644)
Gebruik de browser's developer tools voor het inspecteren van de videospeler om uit te vinden welke selectors we nodig hebben om een style bij te stellen - en we voegen onze lokale .vjs-local selector toe om te zorgen dat onze uiteindelijke selectors specifiek genoeg zijn voor een override op de default skin.
Onderstaande code verbergt de zwarte kaders links en rechts van de video en legt de maximum hoogte van de videojs speler vast :
/* Locale CSS B. Makkink 14-05-2020 voor desktop weergave*/ /* Maak achtergrond van player transparant */ .vjs-local.video-js { background-color: transparent; } /* Maak hoogte van video afhankelijk van windowhoogte (vp - view port) */ .vjs-local.my_video_1-dimensions.vjs-fluid { padding-top: 82vh; }
- Voeg het nieuwe stylesheet videojs-local.css toe aan de VideoJS html template ../piwigo-videojs/template/vjs-5-player.tpl, na het bestaande default stylesheet 'video-js.min.css'
{html_head} <link href="{$VIDEOJS_PATH}video-js-5/video-js.min.css" rel="stylesheet"> <link href="{$VIDEOJS_PATH}video-js-5/videojs-local.css" rel="stylesheet">
Corrigeren VideoJS controls in Piwigo Mobiel Thema
In het Smartpocket Mobiel Piwigo Thema worden de controls van de VideoJS speler niet goed weergegeven.
Zie ook de Github pagina van xbgmsharp:
Controls not rendered correctly under theme SmartPocket (default mobile theme)
Op bovengenoemde pagina wordt uiteengezet hoe tot een oplossing te komen. Bij mij werkt dit ook niet maar zette mij wel op het spoor voor een oplossing.
Voorgaande oplossing voor de windowhoogte voor een desktop geeft vreemde resultaten in het Smartpocket Thema en is hier trouwens geheel overbodig.
Voor het Smartpocket Thema maken we daarom een eigen lokaal stylesheet 'videojs-local-mobile.css' en slaan we op als ../piwigo/plugins/piwigo-videojs/video-js-5/videojs-local-mobile.css.
.vjs-local .ui-btn-hidden { opacity: unset; text-indent: unset; top: -6px; } .vjs-local .ui-btn-up-a { border: none; } .vjs-local .ui-btn-inner { padding: 0; display: none; }
Switch voor CSS
Hierboven onder Item 3 voegden we het stylesheet videojs-local.css toe aan de VideoJS html template vjs-5-player.tpl.
Nu hebben we echter 2 lokale stylesheets en slechts één van de twee moet toegevoegd worden aan de html code afhankelijk van in welk scherm de video weergegeven wordt.
{html_head} <link href="{$VIDEOJS_PATH}video-js-5/video-js.min.css" rel="stylesheet"> {if (mobile_theme())} <link href="{$VIDEOJS_PATH}video-js-5/videojs-local-mobile.css" rel="stylesheet"> {else} <link href="{$VIDEOJS_PATH}video-js-5/videojs-local.css" rel="stylesheet"> {/if}
VideoJS is nu klaar voor gebruik.
Zie
voor het laden (en bekijken) van de video's Piwigo::Albums Inrichten Video's Laden
Write Metadata
Wat zijn Metadata?
Metadata zijn details opgeslagen in het originele bestand en deze worden gelezen en geïntegreerd door Piwigo tijdens de import van de images.
Metadata zijn hoofdzakelijk relevant voor foto's en worden direct opgeslagen door de camera tijdens het maken van een foto.
Piwigo behandeld twee types metadata:
- EXIF: Deze tags worden typisch gebruikt om te beschrijven hoe een foto werd genomen bijvoorbeeld cameramodel, lens, belichting, zoom lengte, sluitertijd, datum/tijd, GPS coördinaten, etc.
- IPTC: IPTC headers beschrijven de inhoud van de foto.Sommige camera's hebben de mogelijkheid gegevens op te slaan zoals je naam, copyright etc.
Soms wordt edit software gebruikt om later informatie toe te voegen zoals titles, headlines, captions, descriptions, keywords etc.
The basic metadata zijn de volgende:
- bestandsnaam
- bestands grootte
- bestand afmetingen
- Auteur
- Aanmaak datum/tijd
Per default presenteert Piwigo enkele basis metadata op de fotopagina (dimensions, filesize etc.).
Als de “Show metadata” icon aangeklikt is, worden enkele extra EXIF metadata getoond: Camera Make+Model, image capture date+time, and aperature F-number.
Piwigo toont per default geen IPTC metadata.
Wat zijn properties?
Properties zijn Piwigo's in-house tags, die het mogelijk maken je bestanden te beschrijven en sorteren.
Sommige properties worden gecreëerd door Piwigo zoals de import datum/tijd.
Sommige properties kunnen toegevoegd worden met plugins.
Properties worden opgeslagen in de Piwigo database.
In alle gevallen kunnen deze properties bewerkt en getoond worden.
Met de plugin 'Write Metadata' worden de in de database opgeslagen properties toegevoegd aan de foto als metadata.
Windows Explorer kent de EXIF tag UserComment welke weergegeven wordt als 'Opmerkingen'.
EXIFTOOL
De plugin 'Write Metadata' gebruikt EXIFTOOL.ExifTool is een platformonafhankelijke Perl-bibliotheek plus een opdrachtregeltoepassing voor het lezen, schrijven en bewerken van meta-informatie in een grote verscheidenheid aan bestanden.
Het werkt vanaf de commandline, maar er zijn oplossingen van derden beschikbaar waardoor het ook met een grafische gebruikersinterface kan worden gebruikt.
Zie voor EXIFTOOL commandlijn voorbeelden: Exiftool Application Documentation
Installeer EXIFTOOL op Ubuntu Server
root@thuisserver:~# apt list *exiftool* Listing... Done libimage-exiftool-perl/noble,now 12.76+dfsg-1 all ruby-mini-exiftool/noble 2.9.0-2 all~ root@thuisserver:~# apt install libimage-exiftool-perl Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libcompress-raw-lzma-perl libio-compress-brotli-perl libmime-charset-perl libsombok3 libunicode-linebreak-perl Suggested packages: libposix-strptime-perl libencode-eucjpascii-perl libencode-hanextra-perl libpod2-base-perl The following NEW packages will be installed: libcompress-raw-lzma-perl libimage-exiftool-perl libio-compress-brotli-perl libmime-charset-perl libsombok3 libunicode-linebreak-perl 0 upgraded, 6 newly installed, 0 to remove and 9 not upgraded. Need to get 4,105 kB of archives. After this operation, 24.9 MB of additional disk space will be used. Do you want to continue? [Y/n] y
Installeer Piwigo plugin Write Metadata
Na de voorbereidingen van de Server installeren en activeren we Write Metadata:
- Piwigo > Beheer > Plugins > Beheer > Andere Plugins > Write Metadata > Installeer
- Piwigo > Beheer > Plugins > Beheer > Plugin Lijst > Niet actieve Plugins > Write Metadata > Activeer
De Plugin heeft geen configuratieopties.
Schrijf Properties naar Metadata
Het schrijven van de Metadata kan op twee plaatsen geactiveerd worden:
1. Op de edit pagina van een enkele foto. De ingevoerde properties worden naar de metadata van de image geschreven.
2. Met de Foto's Bulkbeheerder: Maak selectie van foto's en kies actie 'Schrijf metadata'
De plugin 'Write Metadata' schrijft de volgende properties uit de database naar de image Metadata:
- Titel naar -ITPC:Headline en -ITPC:ObjectName
- Fotograaf/Bron naar -ITPC:By-line en -ITPC:Writer-Editor
- Omschrijving naar -ITPC:Caption-Abstract
- Labels naar -IPTC:Keywords
Voordat de metadata geschreven worden wordt eerst een kopie van de image gemaakt.
Als de metadata geschreven zijn wordt ook de 'datum gewijzigd' bijgewerkt.
HACKS
Het configureren van de plugin Write Metadata is niet mogelijk.
Om toch een paar dingen aan te passen zullen we dit met hacks in het bestand ./piwigo/plugins/write_metadata/main.inc.php op moeten lossen.
Maak eerst een kopie en sla deze op als
/write_metadata/main.inc.php.org
Klik hier om het bestand
main.inc.php inclusief hacks down te loaden
Hacks in /var/www/html/piwigo/plugins/write_metadata/main.inc.php
Hack 1: Bij de Omschrijvingen (Hack 3) willen we als eerste de map waarin de image is opgeslagen. Uit de piwigo database gebruiken we image.path waarvan we het eerste gedeelte weghalen.
154 #Hack 1 map url Ben Makkink 24042025
155 $map = str_replace("./galleries/collectie/", "", dirname($row['path']));
156 #Hack 1 einde
Hack 2: We hebben geen behoefte aan een backup kopie van de foto: -overwrite_original_in_place en omdat het om 60.000 eerder ingevoerde foto's gaat willen we geen 'gewijzigd datum' omdat we aan de foto aan sich niets wijzigen: -P (preserve)
159 #Hack 2 Overschrijf origineel (en behoud 'gewijzigd' datum) Ben Makkink 24042025
160 $command.= ' -P -overwrite_original_in_place';
161 #Hack 2 einde
Hack 3: Windows Verkenner kent de EXIF tag UserComment welke weergegeven wordt als 'Opmerkingen'.
176 #Hack 3 weergave onder windows explorer 'Opmerkingen' Ben Makkink 24042025
177 $command.= ' -UserComment="'.$map.": ".$description.'"';
178 #Hack 3 einde
Procedure bij het toevoegen van foto's aan Piwigo
Zie hiervoor ook 'Piwigo::Foto's Omschrijven > Procedure stappen'
- Voeg nieuwe foto's toe aan /home/pwgdata/galleries/collectie/..
- Synchroniseer Piwigo: Beheer > Hulpmiddelen > Synchroniseer.
Hiermee worden de foto's opgenomen in de Piwigo Database - Start aan de commandline UTILS en exporteer de namen van foto's die nog geen omschrijving hebben (naar /var/www/html/nwe_pwg_fotos.txt.
- Voeg in een spreadsheet de omschrijvingen toe en importeer Omschrijvingen in MySQL ‘piwigo’ database.
- Ga nu naar Piwigo > Beheer > Foto's > Bulkbeheerder > Verzamelmandje
Als het goed is staan hier nog de foto's die gesynchroniseerd (geïmporteerd) werden.
Selecteer de hele set en kies als actie 'Schrijf Metedata' - De foto's zijn nu toegevoegd aan Piwigo en zijn de omschrijvingen in de database ook toegevoegd aan de foto's als metadata en daarmee geïntegreerd in de foto.