1.0.d postée. Du checking en plus et le paramètre "action" renommé en "action_comment".
Hors ligne
Pourquoi redéclarer la fonction update_user_comment() ? En plus je ne comprends pas pourquoi je n'ai pas un avertissement me signalant qu'elle existe déjà.
Hors ligne
nicolas a écrit:
Pourquoi redéclarer la fonction update_user_comment() ? En plus je ne comprends pas pourquoi je n'ai pas un avertissement me signalant qu'elle existe déjà.
Je ne la redéclare pas, je l'ai rajoutée dès la version 1.0.a dans ce_functions.inc.php car elle n'existait pas en native dans piwigo (seule insert_user_comment() existait).
Ne l'aurais-tu point rajoutée dans le core ?
si non, alors je vois pas qui l'a fait, sauf un autre plugin...
Hors ligne
Criss a écrit:
Ne l'aurais-tu point rajoutée dans le core ?
si non, alors je vois pas qui l'a fait, sauf un autre plugin...
Si. Quel boulet. Bon la mienne ne fait que 10 lignes ! Cela va poser des problèmes !!! Comment on règle ? Tu modifies ou moi ?
Hors ligne
nicolas a écrit:
Criss a écrit:
Ne l'aurais-tu point rajoutée dans le core ?
si non, alors je vois pas qui l'a fait, sauf un autre plugin...Si. Quel boulet. Bon la mienne ne fait que 10 lignes ! Cela va poser des problèmes !!! Comment on règle ? Tu modifies ou moi ?
J'avais prévu de rajouter une vérification comme celle-ci :
if (!function_exists('update_user_comment')) { /** * Changed from Piwigo core function insert_user_comment */ /** * Tries to update a user comment in the database and returns one of : * validate, moderate, reject * @param array comm contains author, content, image_id * @param string key secret key sent back to the browser * @param array infos out array of messages */ function update_user_comment( &$comm, $key, &$infos ) { [...] } } // function_exists
pour garder une compatibilité ascendante. J'avais prévu à terme de supprimer la fonction si elle existe dans le core.
Si la mienne est si longue (la fonction hein :-O) c'est qu'elle reprend quasi tout de sa soeur insert, ne comprenant ni n'ayant cherché à comprendre tous les tenants et aboutissants de ce qu'elle fait.
(les flood check, trigger, etc.)
Hors ligne
Ah de plus il faudrait qu'elles aient les même signatures. :D
Hors ligne
nicolas a écrit:
Sans maintain.inc.php, on ne peut pas désactiver le plugin sans le supprimer par exemple. Je dis ça sans tester; ni regarder le code.
Evidemment, le fichier maintain.inc.php n'est absolument pas obligatoire!
D'ailleurs, j'ai quelques plugins qui n'en ont pas (Extended description, Most commented, Has high, etc...)
Ce fichier est inclus uniquement s'il existe... et il est utile uniquement si on a une action à faire lors de l'install ou de l'activation. S'il n'existe pas, le plugin se désactive et se désinstalle tout à fait normalement.
Criss a écrit:
Je sais bien que l'auteur "semble ne pas pouvoir" éditer son commentaire, en fait juste il n'a pas le lien ;)
C'est ce que j'ai mis dans le premier post de ce topic : si l'utilisateur connait l'adresse du lien il peut éditer son commentaire tout de même.
C'est une limitation du moment et je ne sais pas comment la contourner...
Qu'est-ce que tu n'arrives pas à contourner? Il suffit de mettre le lien "Edit" pour tous les commentaires de l'utilisateur, non?
Criss a écrit:
Pourquoi ramené sur l'index ? Parce que c'était le plus simple à gérer. :P
Je rappelle que je ne sais pas utiliser jQuery donc le faire directement sur le commentaire c'est pas pour de suite.
Quant à garder la page je vais voir si c'est facile. Je vois déjà pointer un conflit sur le paramètre "action" :P
Hum... en effet, c'est dommage, il faudrait mieux rester sur la page picture...
Je ne vois pas trop en quoi c'est plus simple de le faire sur l'index ;-)
Dernière modification par P@t (2009-06-19 01:01:04)
Hors ligne
P@t a écrit:
Qu'est-ce que tu n'arrives pas à contourner? Il suffit de mettre le lien "Edit" pour tous les commentaires de l'utilisateur, non?
J'en ai parlé sur l'autre topic : je n'ai pas moyen d'avoir l'id du commentaire, donc je ne peux mettre le lien... :/
P@t a écrit:
Hum... en effet, c'est dommage, il faudrait mieux rester sur la page picture...
Je ne vois pas trop en quoi c'est plus simple de le faire sur l'index ;-)
Bah tout simplement pour le lien, mettre en dur index.php?.... c'est simple. :D
Hors ligne
Criss a écrit:
P@t a écrit:
Qu'est-ce que tu n'arrives pas à contourner? Il suffit de mettre le lien "Edit" pour tous les commentaires de l'utilisateur, non?
J'en ai parlé sur l'autre topic : je n'ai pas moyen d'avoir l'id du commentaire, donc je ne peux mettre le lien... :/
Et il n'y a pas de moyen sans modifier le core de piwigo ! :-(
Criss a écrit:
P@t a écrit:
Hum... en effet, c'est dommage, il faudrait mieux rester sur la page picture...
Je ne vois pas trop en quoi c'est plus simple de le faire sur l'index ;-)Bah tout simplement pour le lien, mettre en dur index.php?.... c'est simple. :D
C'est certes plus simple pour toi mais l'utilisateur perd le fil de sa navigation.
Hors ligne
nicolas a écrit:
Et il n'y a pas de moyen sans modifier le core de piwigo ! :-(
C'est certes plus simple pour toi mais l'utilisateur perd le fil de sa navigation.
J'ai jamais dit que ça allait rester comme ceci ;)
Hors ligne
Criss a écrit:
nicolas a écrit:
Et il n'y a pas de moyen sans modifier le core de piwigo ! :-(
C'est certes plus simple pour toi mais l'utilisateur perd le fil de sa navigation.J'ai jamais dit que ça allait rester comme ceci ;)
Hé, hé. Tiens tu peux t'inspirer du code dans comments.php. Cela ressemble à ça :
$url = get_root_url().script_basename().'.php' .get_query_string_diff(array(CE_ACTION, CE_ID)); $comment['U_ID'] = $this->getCommentId($comment['U_DELETE']); $comment['DATE'] .= ' - <a href="'; $comment['DATE'] .= add_url_params($url, array(CE_ACTION => CE_ACTION_EDIT, CE_ID=>$comment['U_ID']) ); $comment['DATE'] .= '">'; $comment['DATE'] .= 'Edit'; $comment['DATE'] .= '</a>';
Hors ligne
nicolas a écrit:
Criss a écrit:
P@t a écrit:
Qu'est-ce que tu n'arrives pas à contourner? Il suffit de mettre le lien "Edit" pour tous les commentaires de l'utilisateur, non?
J'en ai parlé sur l'autre topic : je n'ai pas moyen d'avoir l'id du commentaire, donc je ne peux mettre le lien... :/
Et il n'y a pas de moyen sans modifier le core de piwigo ! :-(
Il y a TOUJOURS un moyen!
Allez, par exemple:
add_event_handler('render_comment_content', 'get_comment_ids');
function get_comment_ids($content)
{
global $template, $row, $user, $comments_ids;
if ((!is_a_guest() and $user['username'] == $row['author'])
or is_admin())
{
$key = count($template->get_template_vars('comments'));
$comments_ids[$key] = $row['id'];
}
return $content;
}
Ensuite, la fonction loc_begin_page_header de la classe CE_Plugin nous donnera:
function loc_begin_page_header() {
global $template, $comments_ids;
$all_comments = &$template->get_template_vars('comments');
for ($i=0; $i < count($all_comments) ; $i++) {
if (isset($all_comments[$i]) and is_array($all_comments[$i])) {
$comment = &$all_comments[$i];
if (isset($comments_ids[$i])) {
$comment['U_ID'] = $comments_ids[$i];
$comment['DATE'] .= ' - <a href="' . $this->getEditUrlPrefix();
$comment['DATE'] .= $comment['U_ID'] . '">';
$comment['DATE'] .= 'Edit';
$comment['DATE'] .= '</a>';
}
}
}
}
Et voila, le tour est joué...
PS: c'est pas terrible de mettre les fichiers directement à la racine de l'archive zip....
Il vaut mieux avoir un sous-dossier, car sinon, le plugins manager utilise "extension_296" comme nom de dossier.
Tu peux le faire pour tes prochaines versions, cela ne perturbera pas les mises à jour automatiques...
Dernière modification par P@t (2009-06-19 20:36:55)
Hors ligne
P@t a écrit:
..., la fonction loc_begin_page_header de la classe CE_Plugin nous donnera:
function loc_begin_page_header() {
global $template, $comments_ids;
$all_comments = &$template->get_template_vars('comments');
for ($i=0; $i < count($all_comments) ; $i++) {
if (isset($all_comments[$i]) and is_array($all_comments[$i])) {
$comment = &$all_comments[$i];
if (isset($comments_ids[$i])) {
$comment['U_ID'] = $comments_ids[$i];
$comment['DATE'] .= ' - <a href="' . $this->getEditUrlPrefix();
$comment['DATE'] .= $comment['U_ID'] . '">';
$comment['DATE'] .= 'Edit';
$comment['DATE'] .= '</a>';
}
}
}
}Et voila, le tour est joué...
C'est parfait. Mais... il me faut 10 minutes pour piger (je reconnais que c'est excellent quand même).
Référence de référence, tu nous en fais à mon avis un peu trop. Il faut qu'on statue dans les normes de coding.
http://www.php.net/manual/fr/language.references.php
Hors ligne
P@t a écrit:
[...]
Et voila, le tour est joué...
Joli :P
Je testerai ça la semaine prochaine (pas le temps avant)
PS: c'est pas terrible de mettre les fichiers directement à la racine de l'archive zip....
Il vaut mieux avoir un sous-dossier, car sinon, le plugins manager utilise "extension_296" comme nom de dossier.
Tu peux le faire pour tes prochaines versions, cela ne perturbera pas les mises à jour automatiques...
Je ne savais pas comment faire, j'ai pris exemple sur une extension au pif (tag2file, le premier dans la liste)...
En plus c'est plus facile de générer avec le nom de l'extension en répertoire ;)
Hors ligne