Vous n'êtes pas identifié(e).
Damned: y'a des collections avec des id dupliqués ??
Oui j'ai aussi été surpris. Mais après envoi d'un mail à Tian développeur de GCstar il m'a confirmé que c'était possible et que ces ids n'était là qu'a titre indicatif (GCstar ne s'en sert pas, d'ou cette rev161 ... à améliorer). Pour ton cas en cas de problème tu peux toujours éditer l'xml à la main pour corriger le tire.
Veux-tu que je te mette au propre un plugin pour les favoris et alertes ?
Très très volontier, je l'ajouterai au site de démonstration .
Peux tu remplir la petit fiche : http://forum.jonas.tuxfamily.org/forum/ … php?id=140 la petite image réprésentative peux être par exemple une capture du lien permettant de mettre en favoris ou un logo (voir site demo pour des exemples).
Si il y a besoin je peux héberger le plugin chez mon hébergeur (si ce dernier est sous une licence libre, condition d'utilisation de mon hébergeur préféré : tuxfamily !)
Damned: y'a des collections avec des id dupliqués ??
Vu mes modifs, c'est des coups à perdre des infos ça .. j'vais ajouter un gros warning.
En tout cas j'ai presque fini. Juste la démo du wordpress qui a planté (!). Tout le monde apprécie ton soft, vraiment. Merci pour le support.
Veux-tu que je te mette au propre un plugin pour les favoris et alertes ?
La partie gestion des emprunts et moins réutilisable à mon avis, j'ai mis trop de trucs spécifiques à notre asso (importation des adhérents depuis un fichier csv, gestion d'une info sur les cotisation pas payées, envoi d'un mail de rappel, login etc etc)
Bon si quelque heure c'est pour demain : ce n'est pas trop grave car c'est un changement introduit dans la rev161 (donc récupère bdd.php d'une version précédente qui reprend l'id de l'xml gcstar) et j'ai recement remarqué que cella introduisait un autre bug.
Bref des changements à ce niveau sont à prévoir mais pour l'instant je ne sais pas comment je vais procédé avec les collections ayant de id dupliqué )
Arg, j'ai un gros bug ...
Pour les favoris, et les emprunts, je mémorise item['id'] pour identifier le DVD favorisé, ou emprunté ..
Et j'ai l'impression que ce 'id' change quand je modifie le gcs ...
ARG !!
Pourtant dans le gcs le champ 'id' n'est pas modifié ..
Edit: d'après ce que je comprends de bdd.php, l''id' de item est en fait un compteur propre à gcweb. Pourtant le gcs contient un champ id (unique et assez stable) dans l'item ..
J'ai l'impression qu'il suffirait de supprimer les lignes 59, 61 et 110 pour que ça roule ..
(évidemment je me rends compte de ça qques heures avant la démo officielle ... et le transfert du blog wordpress se passe mal aussi, et la salle de formation n'est pas installée MDR )
(la routine quoi)
Pour le fichier render.php : je vais faire la modif.
Pour le configurateur : En l'état le configurateur ne peut pas écrire lui même les options du plugin dans un fichier. Ce serait donc au plugin lui même de gérer ça. L'intégration n'est pas compliqué, en plus de "l'include" il faudrait que je définisse un valeur "$authentification = True" pour que l'écriture du plugin soit un peu plus simple (mais elle reste compliqué). Toujours pour ?
Par contre la modif dans le thème elle ne serra pas apportée car je pense qu'elle est très spécifique à l'utilisation que tu fais de GCweb.
En tout cas félicitation pour les modifs! elle ne sont pas négligeable.
Ok, j'ai mis un touch sur le fichier gcs. Ca marche, merci.
Au passage:
Dans le fichier render.php: j'ai déplacé l'appel aux plugins 4render sous les lignes d'initialisation de la collection active, comme ça mon plugin a accès à cette information.
Dans le configurateur: ce serait pas mal d'inclure un point pour la config des plugins .. un truc comme plugins4config .. ou alors faire appel à une fonction de chaque plugin .. mais là on ne pourrait plus déclarer de variable globale depuis un plugin ... (je parle là du script php qui génère le fichier conf/config.php)
Dans le thème: j'ai ajouté une champ de recherche rapide dans le champ emprunteur; et un tri sur date d'emprunt (pour voir les DVD qui tardent à revenir)
A venir: un model pour afficher les adhérents de l'association, un bouton pour afficher tous les DVD empruntés, un envoi de mail de relance aux indélicats qui gardent trop longtemps les DVDs, optimisation des model favoris et alertes (là c'est franchement bourrin).
?purge ne recréer que le cache de la page courante (à la dokuwiki).
Question: comment faire pour forcer un raz de tout le cache bdd ?
À chaque affichage ou juste pour faire un peu de nettoyage ?
Pour le nettoyage : * il faut supprimer les fichiers dans /cache/bdd (via un client ftp par ex ou plus simplement via la page de config une des coches en bas de page ou un unlink pas si bourrin que ça).
Sinon on peut faire un "touch" sur la fichier de sauvegarde de GCstar (qui serra alors plus récent que les fichiers cache d'ou regénération du cache).
Pour ne pas utilisé le fonction de cache lors de l'affichage de certaine page : le plus pratique est ce court-circuté la variable de configuration ("$conf['noCacheBDD'] = True" je crois)
Bon dimanche ...
Heureusement il pleut
J'ai résolu mon bug: propriété position, tout simplement.
Presque tout marche, c'est cool.
J'ai juste du désactiver le cache à cause de certaines recherches ..
Question: comment faire pour forcer un raz de tout le cache bdd ?
J'ajoute ?purge à l'url mais ça n'efface pas les recherches mises en cache.
(au pire je vais faire un gros unlink bien bourrin ..)
Pas trouvé .. Pourtant ça doit exister.
Il me semble avoir vu quelque chose sur framasoft dernièrement → retourvé ! (pas très compliquer, 2ème élément dans le flux RSS , ajouter lundi dernier sur le site framasoft) http://www.framasoft.net/article4826.html
[edit]
CollectionLibre est davantage adapté aux collections dobjets et duvres. Il ne sera donc pas adapté aux collections de DVD, de livres ou de bouteilles de vin. Il sera par contre très pratique pour répertorier du mobilier, des uvres dart, des objets anciens ou contemporains.
[/edit]
J'ai finalement déplacé le code des favoris et alertes dans un plugin, mais il faut adapter le thème bien sûr.
En faite, depuis un moment (bien avant tes premier message sur le forum) je me demandais si je n'ajoutais pas dans les fichiers de thème à un endroit arbitraire des "[c]echo $item['str_plugin4item'][/c]" dans item*.php "[c]echo $item['str_plugin4list'][/c]" dans list*.php.
J'ai réutilisé ton code js pour faire un popup sur un lien qui se trouve dans la div .scroll
Par "popup" tu veux dire une div qui apparait/disparait comme les description en page d'acceuil ?
Si oui, essaie peut-être avec un z-index (auteur de la div) pour qu'elle passe au-dessus de la div scroll (mais z-index et asser mal supporter par les navigateur ... et pas seulement IE ...
Si non, petit capture ou lien.
Je dois montrer le système mardi soir .. hum.
Bon dimanche ...
J'utilise GCstar pour une utilisation perso et je pense qu'il a plutôt été prévu pour ce genre d'utilisation. Donc honnêtement (je suis content que quelqu'un fouille de la code, le comprenne, et me fasse de remarque) n'existe t'il pas des applications de gestion de collection dédiée au type d'utilisation de ton association ?
Pas trouvé .. Pourtant ça doit exister.
J'ai finalement déplacé le code des favoris et alertes dans un plugin, mais il faut adapter le thème bien sûr.
Pour les emprunts j'ai fait un autre plugin, ça marche presque.
En fait j'ai juste un pb de html/css à résoudre !!
J'ai réutilisé ton code js pour faire un popup sur un lien qui se trouve dans la div .scroll (model list)!; or cette div a une propriété overflow hidden, et si on l'enlève c'est moche. Mais avec ce hidden mon popup est tronqué, parce qu'il est plus gros que la div scroll ..
Je galère là, je suis nul en css ..
Je dois montrer le système mardi soir .. hum.
Je pense que le mieuc c'est que je créer un autre niveau ou les plugins peuvent agire. Mais j'hésite ou :
* Juste avant les filtres et le tri
* Ou juste apres ?
... le résultat des actions de filtre et tri est mis en cache ... donc juste après (préfix "aftercache")
[edit] oups ! pas très claire, les modifs sont présentes sur la dernière révison
La gestion du cache à beaucoup évolué dans les phase de développement.
* Au début c'est le code html de chaque page qui était mise en cache, mais le volume de fichier cache était trèèèèèèèèèèèèès énorme
* Ensuite les fichiers cache avais un durée de vie d'une semaine, mais la ausi le volume de fichier était important
* Finalement certain avec une durée de vie de quelques minutes (ceux qui filtre les élément et tri en non standard, le temps d'une visite pour que quand on change de page le travail de tri et filtre ne soit pas refait) et certain on une durée de vie illimitée (préciser dans le fichier de configuration).
Donc que chaque visiteur écrive un cache propre à ces favoris n'est pas un problème. Quelque minute après sont déparre il serra effacer. C'est le même problème que le visteur qui surf sur le site et qui créer de "filtre" très particulier.
Concernant les "hooks", effectivement : complexe
(au fait, le président de mon association trouve que gcstar est trop complexe pour gérer les emprunts de DVD, donc je vais sûrement modifier gcweb pour qu'il gère ça aussi ... sad )
J'utilise GCstar pour une utilisation perso et je pense qu'il a plutôt été prévu pour ce genre d'utilisation. Donc honnêtement (je suis content que quelqu'un fouille de la code, le comprenne, et me fasse de remarque) n'existe t'il pas des applications de gestion de collection dédiée au type d'utilisation de ton association ? (Je n'en connais pas mais je n'ai jamais chercher). En plus actuellement GCweb n'écrit rien dans la BDD (et pour écrire dans cette dernière je pense qu'un base SQL serait tout de même bien pratique).
(je viens de réaliser qu'on charge la bdd sérialisée à chaque affichage de page, même pour une page avec un seul film affiché ... wow)
Oui, un peu pour les raisons cité au début de ce message. Et de toute façon quand on affiche un élément, il y a le nombre de page, et 4 autres éléments afficher donc on ne pourrait pas stocker uniquement l'id courant.
Bon bon bon
J'ai bien réfléchi, en gros l'idée du plugin pour les favoris c'est de peindre l'item en favori dans la bdd lors du chargement de celle ci par le visiteur, en fonction d'une info stockée dans un cookie. Le gag c'est que du coup le cache doit être propre à ce visiteur, en session par exemple; du coup on perd beaucoup de l'interêt du cache !
Chaque visiteur en crée un à chaque visite !
Donc soit ces fonctions sont insérées dans le coeur de gcweb, soit il faut modifier la gestion des plugins pour en faire des vrais plugins, avec une fonction d'initialisation et des "hooks" pour les branchements. Ce qui me paraît complexe ...
(au fait, le président de mon association trouve que gcstar est trop complexe pour gérer les emprunts de DVD, donc je vais sûrement modifier gcweb pour qu'il gère ça aussi ... )
(je viens de réaliser qu'on charge la bdd sérialisée à chaque affichage de page, même pour une page avec un seul film affiché ... wow)
Par contre ce qui est dommage c'est qu'il faut quand même modifier le template
Je dirais qu'il faut fournir des explications sur "comment modifier le template" et fournir les fichiers du template par défaut modifié.
Voire tout simplement stocker le fichier cache dans une variable session
Les plugins "bdd_..." agissent juste après la lecture complête de l'xml mais juste avant l'écriture en cache (ligne 118 inc/bdd.php) donc si on sauve à ce moment dans une variable session la cache "fichier" serra quand même écrit avec la bdd du visiteur.
Je pense que le mieuc c'est que je créer un autre niveau ou les plugins peuvent agire. Mais j'hésite ou :
* Juste avant les filtres et le tri
* Ou juste apres ?
Tu as raison pour la transformation en plugin, je regarderai. Surtout sur la simplification du code du template (virer le if isAlerte() supprimer alerte else ajouteralerte etc etc ..)
Par contre ce qui est dommage c'est qu'il faut quand même modifier le template ...
Pour le filtre ce serait pas mal quand même, parce que là y'a un bug: le compteur d'éléments affichés est faux quand on affiche tous les favoris, et vu où il est calculé on peut pas le corriger depuis le model .. (à part avec un ugly hack en javascript).
Pour le cache, il suffirait d'utiliser le session ID. Voire tout simplement stocker le fichier cache dans une variable session.