====== Devtags ====== The objective is to organize http://project.tuxfamily.org/allwebsites.pl (the list of all websites) see http://bugs.vhffs.org/view.php?id=179 for initial requirements and for all evolutions requested http://bugs.vhffs.org/view.php?id=235 examples : * cloud http://debtags.alioth.debian.org/cloud/ categories + list of attributes (tags), alphabetically + font-size depending on popularity * http://debtags.alioth.debian.org/faceted.html explanations of what are tags * add tags : http://debtags.alioth.debian.org/edit.html?pkg=admesh I like it a lot with categories, there are suggestions * navigation http://www.ohloh.net/tags/console with number of projects / search * http://www.ohloh.net/tags/console/java url are directly readable (add tags to refine results), easy to remove a tag (and nice icon) * what I don't like : tags for each project are not shown on this result list * navigation http://code.google.com/hosting/search?q=label:vnc * a bit too simple * tags are displayed for each project listed but with no indication of importance :/ * http://de.lirio.us there's source code available : * http://de.lirio.us/code/ * http://search.cpan.org/~rjbs/Rubric/ see http://search.cpan.org/src/RJBS/Rubric-0.142/ * http://links.edonix.com/sabrosus.php * https://sourceforge.net/projects/sabrosus/ in PHP / MySQL * http://sourceforge.net/projects/scuttle/ Web-based social bookmarking system. Allows multiple users to store, share and tag their favourite links online. * http://sourceforge.net/projects/phptagengine * http://sourceforge.net/projects/jscontrolstags * http://sourceforge.net/projects/qikblogger * http://www.libres-apps.org/ example of the use of tags (library Script.aculo.us see http://script.aculo.us/) * http://demoll.tuxfamily.org/ a real implementation to identify enhancements required * manage language for tags (only one language at the moment) * display websites by alphabetical order (only per page display) * enable users to log-in in order to modify / add tags * manage admin tags (not seen by users with unsuficient rights) * manage types of tags like License:GPL DocLicense:GFDL webTool:dokuwiki hosting:web hosting:SVN ... * identify latest modifications (tag added or modified, by who...) ===== user requirements ===== * Catégories de tags avec localisation * Chaque catégorie de tag contient des tag eux même localisés (pas plus de 20car) * Par défaut, les tags sont créés par les admins ou modérateurs, avec le libellé EN ANGLAIS (langue par défaut) * Avoir une description par tag permettant de mieux cerner ce que doit contenir le tag (savoir si son projet correspond au tag ou non) * Seuls les projets sont taggués (pour commencer, mais pourrait s'appliquer à espace web, svn ou cvs) * Modération a posteriori : * les modérateurs ont une page répertoriant les derniers tags ajoutés (tri par date) qu'ils peuvent supprimer si besoin * les modérateurs ont une autre page répertoriant les derniers projets taggués * les tags apparaîtront sur les pages: * http://project.tuxfamily.org/allwebsites.pl (récupérer tags du projet) * http://project.tuxfamily.org/allgroups.pl * possibilité d'avoir des tags non publics (réservés à modérateur : par exemple, admin:site_vide admin:a_surveiller), cela impacte l'interface de saisie et d'affichage * améliorations ultérieures: * recherche par tag (sites concernant les graphismes comme http://oldfaq.tuxfamily.org/wakka.php?wiki=LinuxGraphics) * recherche par inclusion/exclusion de tag (Exemple1: +jeu +3d => les projets de jeu avec moteur 3d ; Exemple2: +3d -jeu => les projets de rendu 3d, graphisme, etc.) * statistiques par tag (eg: combien de projets GPL, Art Libre... ; combien de projets concernant des distributions http://oldfaq.tuxfamily.org/wakka.php?wiki=ListDistributions) * possibilité pour pacman d'afficher les tags d'admin lors de la modération ===== specifications ===== ==== database model ==== http://wiki.eagle-usb.org/wakka.php?wiki=HowToDia will have to be updated with latest changes to the database Development version : vhffs_tags * tag_id identifiant (serial) * tag_parent categorie du tag. Ce tag est une categorie si ce champ vaut 0(int4) * date_modif date de création du tag(timestamp) * user_modif utilisateur ayant créé le tag(oid) * type_modif type de modification(A=add, D=delete, U=update) (char) * restriction gestion du niveau de restrictions (int4) vhffs_tags_locate * tag_id id du tag(int4) * langue langue de la localisation(varchar(20)) A voir: mettre la liste des langues dans une table a part et lié? * name nom du tag localisé (varchar(250)) * descr description du tag localisé (text) vhffs_tags_link * objectid id de l'objet taggé (oid) => permet retrouver description, type... * tag_id id du tag (int4) * date_create date de création du lien (timestamp) * user_create utilisateur qui créé le lien(qui tag sont projet quoi) (oid) latest version : link_tags_objects table : (1,n) between objects / tags * tag_id identifier of a tag (format ?) * object_id identifier of an object (be it a project, web area, cvs / svn) * date_creation identifies when the tag was added to this object * user who added the tag to the project example : project eagleusb is license:BSD+GPL, license_doc:Art Libre, license_doc:GFDL sans sections invariantes, license_doc:CC-BY-SA-2.5, license_doc:GPL, web:documentation, web:developments, web:forum hosting:tuxfamily, hosting:gna, hosting:endor tags table : list of tags available (one table is sufficient for l10n) * tag_id identifier of tag (format ?) * lang language for description * category_tag (this is in fact a tag_id : some tags are in fact categories ;-) to avoid creating a new table), 0 for tag being a category ? * description is a localized description of the tag (25char max ?) * date_creation identifies when the tag was created * date_modif identifies when the tag was modified * user_modif who last created/modified the tag * level 0 public, 1 identified, 2 modo, 3 admin ==== SQL accesses ==== * latest projects tagged * latest tags created * tags for a project, for a web area (the ones of the project) * list of projects (with description) for a selection of tags * number of projects by tag ==== screens using tags ==== * (new) tag moderation: latest projects tagged and latest tags created : deletion / translation for modo (or authorized users ?) * (new) list of tags by categories (alphabetical), add tags / translation (could be merged with previous one ?) * (modif) add / remove (/ translate) tag to project in panel (owner, modo, admin, authorized user) * (modif) display project / web area with tags (individual or complete list), web-area's tags correspond to the project * (new) search / navigation by tags Precisions : * category of tag could be displayed as an "acronym" on the tag (to avoid too long lines) or it could be of the form category:tag * if the language chosen by the user is not available, by default display english translation * put a link on every tag to access navigation by tags (how to add tags to refine search ? check what's done on http://sourceforge.net and http://www.libres-apps.org/ - choose other colors though !) ===== later / reminder ===== * check http://linuxfr.org/~Nahuel/21657.html about http://www.libres-apps.org/ * check http://www.snook.ca/technical/colour_contrast/colour.html for choice of colors * re-read http://debtags.alioth.debian.org/vocabulary.html and http://debtags.alioth.debian.org/faceted.html to understand better how to organize categories / tags * some examples * distribution: BSD (NetBSD, OpenBSD, ...), GNU/Linux, non-libre-OS * license: BSD, GPL, ArtLibre, GFDL, GFDL without invariant sections, CC-BY-SA, CC-BY * tools: Forum:PunBB, phpBB Wiki:wikini, wikka, doku, BTS:mantis,... (sub-categories may be needed) * content: program, game, distribution, packages * purpose: development, tutorial, support, * "service" tags like "to be checked", "empty", "undesired publicity", ... to be restricted to modo / admin (not to be displayed, perhaps hard-code it in vhffs ?) ===== quelques requêtes utiles (démo) ===== * derniers ajouts de tags par site : par date, tag et lien concerné * il n'y a pas encore d'utilisateur de loggué, pour savoir qui a fait la modif' * une page php pour l'afficher serait plus sympathique... (je passe par phpmyadmin), ça permettrait d'avoir de la modération SELECT lt.date_added, tags.tag, l.enlace FROM `tags_linktags` as lt, `tags_tags` as tags, `tags_sabrosus` as l where lt.tag_id=tags.id and l.id_enlace=lt.link_id ORDER BY lt.`date_added` DESC, l.enlace * dernière création d'un tag : par date, tag et liens concernés SELECT tags.date_creation, tags.tag, l.enlace FROM `tags_tags` AS tags, `tags_linktags` AS lt, `tags_sabrosus` AS l WHERE lt.link_id = l.id_enlace AND lt.tag_id = tags.id ORDER BY tags.date_creation DESC , tags.tag, l.enlace ===== pour tagguer utile ===== * se logguer sur http://demoll.tuxfamily.org le mot de passe étant tuxfamily02 * pas besoin de créer de nouveau tag, déjà utiliser ceux existants * cliquer du milieu sur Edit pour ouvrir un nouvel onglet (c'est plus pratique les tags , déselectionner admin:to_tag et cliquer sur les tags existants correspondants au site * notamment, trouver la licence, la langue, identifier si c'est un wiki/weblog et tout autre tag correspondant - identifier la langue (obligatoire, il peut y en avoir plusieurs) - identifier la licence (obligatoire) - identifier le thème (sélectionner plusieurs tags au besoin : par exemple weblog license:CC-BY-SA os:GNU/Linux support développement license:GPL) - pour les sites vides, contenant du non libre, à l'abandon, spammés ou cassés : tagguer en conséquence - si besoin d'ajouter un tag non existant, me demander avant :-)