Annonce

  •  » Plugins
  •  » [Plugin] Faire son plugin personnel pour y intégrer ses modifications

#16 2007-06-11 13:54:27

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Eric a écrit:

C'est quand même super pratique ces plugins perso. Notamment pour le mail obligatoire (qui me concerne), je ne pensais pas pouvoir le faire sans mod du source de PWG.

Et c'est super rigolo à faire (enfin en ce qui me concerne) car il faut trouver l'astuce qui va bien pour faire au plus simple sans modifier le code.
On part dans une direction et une autre... bref...
Pour la 1.7.1, je vais rajouter 2/3 triggers qui facileteront un peu la mise en place de "personal plugin".

Hors ligne

#17 2007-06-11 14:17:31

leroucou
Membre
St Cyr-sur-Menthon (01)
2005-10-16
126

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Bonjour,
J'ai essayé et je n'y arrive pas. Je voudrai que l'Idendification qui est actuellement en bas de la colonne de gauche soit en haut. Donc je supprime ce qui est en bas et je le mets en haut dans 'menubar.tpl'.
Dans le fichier plugins/personal/main.inc.php j'ai rajouté les fonctions 'personal_remove_tpl_code' et 'personal_add_before_tpl_code' et ceci :

add_event_handler('menubar', 'personal_deplacer_identification');

function personal_deplacer_identification()
{
  // enleve et Recupere le bout de code Identification
  $s = personal_remove_tpl_code('menubar', '<dl id="mbIdentification">', '<!-- END quickconnect -->
  </dd>
  </dl>');

  // Ajout le bout de code Identification avant <!-- BEGIN links -->
personal_add_before_tpl_code('menubar', '<!-- BEGIN links -->', '.$s.');
}

Où est le problème ?
Salutations


https://leroucou.net propulsé par Piwigo dernière version
  PHP: 7.3.13
  MySQL: 10.3.21-MariaDB [2020-01-06 07:51:29]
  Bibliothèque graphique: External ImageMagick 6.7.8-9

Hors ligne

#18 2007-06-11 14:40:17

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

personal_add_before_tpl_code('menubar', '<!-- BEGIN links -->', $s);


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#19 2007-06-11 15:05:15

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

VDigital a écrit:

personal_add_before_tpl_code('menubar', '<!-- BEGIN links -->', $s);

Ca doit être ca ;-)

Fait gaffe aussi aux espaces devant </dd> et </dl> (2 espaces pour </dd> et et 0 pour </dl>).

Chouette, il y aura bientôt une nouvelle astuce! ;-)

Hors ligne

#20 2007-06-11 16:15:22

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

add_event_handler('loc_begin_menubar', 'personal_deplacer_identification');


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#21 2007-06-11 16:27:26

leroucou
Membre
St Cyr-sur-Menthon (01)
2005-10-16
126

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Merci, cela fonctionne. Il faut faire très attention, en effet, aux espaces et interlignes. J'ai alimenté 'trucs et astuces'.


https://leroucou.net propulsé par Piwigo dernière version
  PHP: 7.3.13
  MySQL: 10.3.21-MariaDB [2020-01-06 07:51:29]
  Bibliothèque graphique: External ImageMagick 6.7.8-9

Hors ligne

#22 2007-06-11 16:33:33

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Cool, ca c'est super.

En fait, moi, je l'aurais plus mis dans http://phpwebgallery.net/doc/doku.php/f … nal_plugin pour regrouper toutes les astuces "personal plugin" dans la même page.

Je ne sais pas ce que vous en pensez? Le titre de la page n'est pas bonne?

Hors ligne

#23 2007-06-11 16:39:37

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Je pense que Trucs et Astuces est une bonne place.
Et j'ai mis une référence vers celle-ci en fin du Plugin perso.

Il ne faudrait pas que Plugin perso devienne illisible avec trop d'astuces.
Regarde ce que j'ai fait pour Gommer...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#24 2007-06-11 16:51:50

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Oui, j'ai vu gommer...

Je voyais ca dans l'autre sens.

Ok pas de soucis.

Je vais déplacer ASAP mes trucs dans la page qui va bien.

Dans la page plugin perso, je ne laisserai que les liens vers la page des astuces (uniquement des exemples qui peuvent servir à la compréhension)? Ou il faut mieux laisser du code?

Hors ligne

#25 2007-06-11 17:00:19

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Tu laisses deux exemples... par exemple et pour l'exemple.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#26 2007-06-11 17:04:03

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Passée la plaisanterie, je voudrais en venir au fond...
Tous les .TPL ne sont pas modifiables facilement.
Le bon trigger n'est pas évident à trouver (sur upload.tpl par exemple).
Ne devrions-nous pas modifier: function set_filename($handle, $filename)
Afin d'offrir à tout template un éventuel trigger avec un nom normalisé?

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#27 2007-06-11 17:56:43

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

VDigital a écrit:

Passée la plaisanterie, je voudrais en venir au fond...
Tous les .TPL ne sont pas modifiables facilement.
Le bon trigger n'est pas évident à trouver (sur upload.tpl par exemple).
Ne devrions-nous pas modifier: function set_filename($handle, $filename)
Afin d'offrir à tout template un éventuel trigger avec un nom normalisé?

8-)

C'est ce que je pensais faire ASAP.

rub a écrit:

Pour la 1.7.1, je vais rajouter 2/3 triggers qui facileteront un peu la mise en place de "personal plugin".

Il manque 1 ou 2  trigger dans template pour savoir si template initialisé et juste avant l'eval.

Il manque un trigger pour le bas de page (comme faire comme le haut de page).

Hors ligne

#28 2007-06-11 17:57:43

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

rub a écrit:

VDigital a écrit:

Passée la plaisanterie, je voudrais en venir au fond...
Tous les .TPL ne sont pas modifiables facilement.
Le bon trigger n'est pas évident à trouver (sur upload.tpl par exemple).
Ne devrions-nous pas modifier: function set_filename($handle, $filename)
Afin d'offrir à tout template un éventuel trigger avec un nom normalisé?

8-)

C'est ce que je pensais faire ASAP.

rub a écrit:

Pour la 1.7.1, je vais rajouter 2/3 triggers qui facileteront un peu la mise en place de "personal plugin".

Il manque 1 ou 2  trigger dans template pour savoir si template initialisé et juste avant l'eval.

Il manque un trigger pour le bas de page (comme faire comme le haut de page).

Par exemple pour décocher simuler, je n'ai pas réussi à modifier le tpl mais finalement c'était encore plus simple de le faire en javascript!

Hors ligne

#29 2007-06-11 19:26:08

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Pour le moment, je n'ai fait que le transfert vers la page personnaliser, j'ai rajouter devant les titres des "[PLUGIN], [MOD], [CSS], ..." à vous de me dire si ca ne fait pas trop. (Mon besoin étant de distinguer rapidement les personnalisations par CSS ou PLUGIN ou CONF).

Ce soir, j'allège la page personal plugin si c'est n'est pas déjà fait.

Hors ligne

#30 2007-06-11 22:10:59

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Bonsoir !

Je suis un assidu des cours du soir du professeur rub ;-) Mais j'ai quelques soucis pour faire mes devoirs. [mode fayot = On]Je ne pense pourtant pas être le cancre de la classe et "je_ne_dors_pas_au_fond_près_de_la_fenêtre_où_il_y_a_le_radiateur".[mode fayot = Off].

Voila ce que je souhaite réussir à obtenir : Ajouter une colonne "Langue" et remonter les paramètres de langue pour chaque visiteur dans la page de gestion des utilisateurs du panneau d'admin (user_list.php et user_list.tpl).

Alors, fort des recommandations très claires de rub sur le wiki, j'ai pondu çà :

Code:

/* Remplace une partie du code par une autre dans un template */
function personal_replace_tpl_code($tlp_handle, $old, $new)
{
  global $template;
 
  $template->loadfile($tlp_handle);
  $template->uncompiled_code[$tlp_handle] = str_replace($old, $new, $template->uncompiled_code[$tlp_handle]);
}

add_event_handler('loc_begin_page_tail', 'personal_user_manager');
 
function personal_user_manager()
{
  global $page, $template;
 
  if
  (
    is_admin() and 
    (script_basename() == 'admin') and
    ($page['page'] == 'user_list')
  )
  {
    personal_replace_tpl_code('tail','
  SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
                u.'.$conf['user_fields']['username'].' AS username,
                u.'.$conf['user_fields']['email'].' AS email,
                ui.status,
                ui.adviser,
                ui.enabled_high','
  SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
                u.'.$conf['user_fields']['username'].' AS username,
                u.'.$conf['user_fields']['email'].' AS email,
                ui.status,
        ui.language,
                ui.adviser,
                ui.enabled_high'
    );
    
    personal_replace_tpl_code('tail',"
  $template->assign_block_vars(
    'user',
    array(
      'CLASS' => ($num % 2 == 1) ? 'row2' : 'row1',
      'ID' => $local_user['id'],
      'CHECKED' => $checked,
      'U_PROFILE' => $profile_url.$local_user['id'],
      'U_PERM' => $perm_url.$local_user['id'],
      'USERNAME' => $local_user['username']
        .($local_user['id'] == $conf['guest_id']
          ? '<BR />['.l10n('is_the_guest').']' : '')
        .($local_user['id'] == $conf['default_user_id']
          ? '<BR />['.l10n('is_the_default').']' : ''),
      'STATUS' => $lang['user_status_'.
        $local_user['status']].(($local_user['adviser'] == 'true')
        ? '<BR />['.l10n('adviser').']' : ''),
      'EMAIL' => get_email_address_as_display_text($local_user['email']),
      'GROUPS' => $groups_string,
      'PROPERTIES' => 
        (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
        ? $lang['is_high_enabled'] : $lang['is_high_disabled']
      )
    );","
  $template->assign_block_vars(
    'user',
    array(
      'CLASS' => ($num % 2 == 1) ? 'row2' : 'row1',
      'ID' => $local_user['id'],
      'CHECKED' => $checked,
      'U_PROFILE' => $profile_url.$local_user['id'],
      'U_PERM' => $perm_url.$local_user['id'],
      'USERNAME' => $local_user['username']
        .($local_user['id'] == $conf['guest_id']
          ? '<BR />['.l10n('is_the_guest').']' : '')
        .($local_user['id'] == $conf['default_user_id']
          ? '<BR />['.l10n('is_the_default').']' : ''),
      'STATUS' => $lang['user_status_'.
        $local_user['status']].(($local_user['adviser'] == 'true')
        ? '<BR />['.l10n('adviser').']' : ''),
      'LANGUAGE' => $local_user['language'],
      'EMAIL' => get_email_address_as_display_text($local_user['email']),
      'GROUPS' => $groups_string,
      'PROPERTIES' => 
        (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
        ? $lang['is_high_enabled'] : $lang['is_high_disabled']
      )
    );"
    );
  }
}

Mais c'est tout pourri :-(
Surtout la première partie personal_replace_tpl_code qui attaque un code non tpl ! Je sais : je suis mauvais... Mais je ne demande qu'à m'améliorer.

Dans mon cas, comment peut-on modifier un code php par le biais d'un plugin perso ? Un peu comme pour l'email obligatoire mais en plus complexe ?

Hors ligne

  •  » Plugins
  •  » [Plugin] Faire son plugin personnel pour y intégrer ses modifications

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact