VDigital a écrit:
En haut de cette page... Il y a écrit Extensions et c'est : http://phpwebgallery.net/ext
Se connecter avec son user du forum pour pouvoir poster.
8-)
Ok :-)
ben c'est fait, j'ai posté ma petite contribution :)
En haut de cette page... Il y a écrit Extensions et c'est : http://phpwebgallery.net/ext
Se connecter avec son user du forum pour pouvoir poster.
8-)
Bonjour,
Je ne suis pas un habitué des forums et des wiki, et je suis un peu paumé ici ^^;
Bref, j'ai fait un premier plugin (tant bien que mal mais j'y suis arrivé) qui permet tout simplement de modifier la mise en forme via feuille de style des deux informations affichées sur les vignettes de catégories (le nombre d'images dans la catégorie, et le commentaire).
C'est un plugin tout simple, mais je me dit que çà peut intéresser (pour la fonction, ainsi que pour l'apprentissage).
Je doit poster quoi, ou ?
Voilà.
En tout cas bravo pour la v1.7, la gestion des plugins est une grande avancée et avec un peu de temps, je risque d'en faire quelques uns :)
Clap-Clap!!!
8-)
VDigital a écrit:
[PLUGIN] Changement de place du bouton filtre
...
...
Le bouton est déplacé mais les balises autour de $s ( <li>'.$s.'</li> ), elles se sont envolées???
Cui-cui...
Bug du template me semble-t-il!
$s doit être mis à la ligne car le code sur les même lignes que les délimiteurs de blocs d'un template ne sont pas pris en compte par le moteur du template.
J'ai remis à jour le WIKI.
8-( -> 8-) ?
[PLUGIN] Changement de place du bouton filtre
Attention ça bugue!!!
J'ai eu mal à le croire.
Le généré:
<b>Affichage</b>
<a href="index.php?&filter=start-recent...
Rappel:
personal_add_before_tpl_code('index', '<!-- BEGIN preferred_image_order -->', '
<b>{lang:Display}</b>
<li>'.$s.'</li>
');
Où est passé le <li> ???
Je ne comprends pas pourquoi.
Le bouton est déplacé mais les balises autour de $s ( <li>'.$s.'</li> ), elles se sont envolées???
Manque de bol, je les veux.
8-(
EX-FTB a écrit:
Rub,
Tes exemples sont super pour la compréhension.
la fonction ci dessous est très utile pour enlever dans un tpl ce qui perturbe la présentation désirée.
function personal_remove_tpl_code($tlp_handle, $str_begin, $str_end)
Pour un plugin tout simple qui enlève la bannière en fonction de la page affichée,
dans header.tpl, il manque
<!-- BEGIN header_banner --> <!-- END header_banner --> ou quelque chose de ce genre.
Personnellement, je ferais plus un truc du style:
$template->assign_block_vars( 'head_element', array( 'CONTENT' => '' ) );
Par contre, pour les délimiteurs, il doit en avoir qui correspondent à ton besoin.
Tu peux utiliser <!-- BEGIN head_element --> et <!-- END head_element --> par exemple.
Rub,
Tes exemples sont super pour la compréhension.
la fonction ci dessous est très utile pour enlever dans un tpl ce qui perturbe la présentation désirée.
function personal_remove_tpl_code($tlp_handle, $str_begin, $str_end)
Pour un plugin tout simple qui enlève la bannière en fonction de la page affichée,
dans header.tpl, il manque
<!-- BEGIN header_banner --> <!-- END header_banner --> ou quelque chose de ce genre.
Une astuce de la 1.6 en personal plugin mail invisible des bots
Merci rub, c'était la bonne décision.
8-)
Eric a écrit:
...
Pas si simple, finalement...
Pour garder ce fil générique, j'en ai fait un nouveau http://forum.phpwebgallery.net/viewtopi … 08#p62508!
VDigital a écrit:
Un assez simple (mais pas évident à imaginer):
[PLUGIN] Plus d'upload de la miniature
J'adore celui-la... par sur le fond ... mais sur la forme...
Ce soir, je vous propose encore d'alléger votre galerie via votre plugin personnel...
Un assez simple (mais pas évident à imaginer):
[PLUGIN] Plus d'upload de la miniature
Un autre, un peu plus tordu (mais plus simple à concevoir que le précédent):
[PLUGIN] Un upload public général
8-)
Ci-après, mes réflexions sur le sujet qui nous intéresse. Déjà pour voir si j'ai vraiment pigé et aussi car çà m'aide à faire le point.
Je pense avoir compris la substitution de template et j'ai reconnu une partie du code de user_list.php. Le pb est de pouvoir "surcharger" la requète initiale :
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 FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id LEFT JOIN '.USER_GROUP_TABLE.' AS ug ON u.'.$conf['user_fields']['id'].' = ug.user_id WHERE u.'.$conf['user_fields']['id'].' > 0';
par celle remontant l'info supplémentaire (ici la langue) :
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 FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id LEFT JOIN '.USER_GROUP_TABLE.' AS ug ON u.'.$conf['user_fields']['id'].' = ug.user_id WHERE u.'.$conf['user_fields']['id'].' > 0';
Comme tu l'as dit, $page['filtered_users'] remonte les users. Il est issu de la requête initiale retournée par get_filtered_user_list(). Mon raisonnement était de refaire une requête complète un peu dans ce style :
(...) /*$v = $template->_tpldata['user' . '.'][]; $template->_tpldata[$blockname . '.'][] = array_merge($v, arr);*/ global $page, $lang, $conf, $start, $groups, $profile_url, $perm_url; $query = ' 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 FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id LEFT JOIN '.USER_GROUP_TABLE.' AS ug ON u.'.$conf['user_fields']['id'].' = ug.user_id WHERE u.'.$conf['user_fields']['id'].' > 0'; if (isset($filter['username'])) { $query.= ' AND u.'.$conf['user_fields']['username'].' LIKE \''.$filter['username'].'\''; } if (isset($filter['group'])) { $query.= ' AND ug.group_id = '.$filter['group']; } if (isset($filter['status'])) { $query.= ' AND ui.status = \''.$filter['status']."';"; } ; $result = pwg_query($query); while ($row = mysql_fetch_array($result)) { $user = $row; } return $user; foreach ($page['filtered_users'] as $num => $local_user) { // simulate LIMIT $start, $conf['users_page'] if ($num < $start) { continue; } if ($num >= $start + $conf['users_page']) { break; } $v = $template->_tpldata['user'.'.'][$num]; $template->_tpldata['user'.'.'][$num] = array_merge($v, array('LANG' => $local_user['language'])); } $template->assign_var_from_handle('ADMIN_CONTENT', 'user_list'); $template->parse('admin'); } }
Mais tu t'en doute, çà ne fonctionne pas. :
Notice: Undefined index: language in d:\web\developpement\easyphp1-8\www\infernoweb\phpwebgallery\plugins\Plugin_perso2\main.inc.php on line 120
Pas si simple, finalement...
Waouh ! Cà déchire !
Faut déjà que j'épluche ton code pour comprendre les rudiments du pourquoi et du comment (pas envie de mourir idiot :-) ).
J'essaye çà pour voir ;-)