Forum général.cherche-logiciel gestion collaborative en php de base de données mysql

Posté par (page perso) . Licence CC by-sa
3
7
avr.
2014

Bonjour,

Je suis à la recherche d'un truc apparemment trop spécifique pour être aisément trouvable avec mes, pauvres, skills moteur de recherche.

J'ai construit une base de données qui est ensuite utilisée pour remplir un livre (en pdf)
En gros on va dire que c'est architecturé comme un dictionnaire : chaque entrée dans la base correspond à une "entrée" dans le livre (nom, définition, source, etc…)

Jusqu'ici tout va bien :)

Maintenant le volume de données à insérer dans la base étant important, je manque de temps pour tout faire moi-même.
Je cherche donc un client collaboratif que je pourrais mettre en frontend de ma BDD (MySQL) et qui permettrait à des gens de m'aider à la remplir.

Je cherche quelque chose de simple à utiliser pour les gens (qui ne sont pas vraiment des informaticiens), avec authentification, permettant d'ajouter/modifier collaborativement des entrées dans la base.

Quelque chose entre un wiki et un phpmyadmin.

Le tout en php pour que je puisse l'héberger avec la BDD.

Quelqu'un connaîtrait-il un outil qui fasse ce genre de chose ?

  • # un wiki ou bien directement mysql (phpmyadmin)

    Posté par . Évalué à 2.

    ce que tu cherches c'est exactement ce que fait un wiki

    • edition collaborative
    • gestion des revisions
    • gestion des droits
    • stockage dans une base de donnée.

    sinon en regardant les droits dans mysql, tu peux peut-etre faire des utilisateurs qui ne peuvent qu'inserer ou modifier des données mais pas les effacer.

    il te suffit alors d'ouvrir un compte par utilisateur,
    et c'est dans les logs de mysql que tu verras ce qu'ils ont fait.

    • [^] # Re: un wiki ou bien directement mysql (phpmyadmin)

      Posté par (page perso) . Évalué à 1. Dernière modification le 07/04/14 à 10:32.

      Un wiki ne semble pas convenir puisqu'il ne va pas remplir ma base donnée à moi, mais la sienne avec son format propre

      Les gens vont éditer tout un tas de truc mais cela ne va pas suivre ma structure et ne va pas être stocké dans ma bdd (en tous cas tel que je le comprends)

      Autant la simplicité d'édition d'un wiki me conviendrait, autant je ne sais pas comment imposer aux contributeurs la structure de ma bdd dans le cas d'un wiki.

      (et pour le phpmyadmin, c'est l'ergonomie qui m'inquiete plus. Mais bon c'est peut etre le plus simple)

  • # coder un script php ?

    Posté par (page perso) . Évalué à 1.

    si la BDD n'est pas trop complexe ça peut être fait en quelques heures, (voir moins avec un framework adapté, je te conseille cake php, avec son option scafold, qui permet de définir un CRUD sur une base de donnée en quelques minutes, ajoute 1 petite heure pour lire un peu la doc, et encore 1 pour avoir un système d'authentification (sauf si tu veux faire l'authentification à l'arrache avec un .htaccess)

  • # editablegrid

    Posté par . Évalué à 3.

    pour certains de mes projets j'utilise ca
    http://www.editablegrid.net/en

    ca te prend 4 fichiers pour avoir une jolie interface dispo sur l'url fichier.html

    • fichier.html qui va contenir l'appel à fichier.php et fichier.js (qui lui appellera update_fichier.php)
    • datasource/fichier.php pour extraire les données de ta base et les presenter au javascript
    • javascript/fichier.js pour prendre les données et les mettre dans un joli tableau et gerer les evenements sur le tableau
    • update_fichier.php pour recuperer la case qui a changé et modifier la base de donnée

    de memoire tu peux meme ajouter des lignes directement depuis l'interface

    • [^] # Re: editablegrid

      Posté par (page perso) . Évalué à 1.

      ça a l'air pas mal, sauf que pour arriver à en faire quelque chose faut s'accrocher!
      Jessaye à partir de l'exemple php-mysql d'ajouter une pagination : je pige toujours pas comment ça fonctionne, si il y a des des fichiers js de l'exemple full à ajouter, quelle fonctions appeler, etc …
      Trop peu documenté, c'est dommage.

      wind0w$ suxX, GNU/Linux roxX!

      • [^] # Re: editablegrid

        Posté par . Évalué à 3.

        je te fais une documentation rapide :

        tu as un fichier html, c'est lui qui est appelé par l'utilisateur
        ce fichier appelle 2 fichiers :
        - datasource/demo.php (c'est lui qui va faire la requete dans la base de données, et formater la sortie dans un tableau "$data" qui sera traiter par le json
        - javascript/demo.js (qui fait certains traitements, je touche à rien la dedans, sauf le morceau ajax qui va chercher un php pour la mise à jour des données)

        le demo.js appelle un fichier de mise à jour qui fera l'update sql

        • [^] # Re: editablegrid

          Posté par (page perso) . Évalué à 1.

          Oui, j'avais compris ça et j'arrive à afficher les données de ma table et à les modifier sans problème.

          Ce que je n'arrive pas à faire c'est la pagination.
          Je ne comprends pas à quelles fonctions, à quels fichiers js elle fait appel.

          wind0w$ suxX, GNU/Linux roxX!

          • [^] # Re: editablegrid

            Posté par . Évalué à 3.

            y a pas de pagination, c'est une presentation en tableau
            avec un affichage de 5/10/15…50 lignes

            • [^] # Re: editablegrid

              Posté par (page perso) . Évalué à 1.

              OK … je pige toujours pas pourquoi j'y arrive pas.
              J'ai dû me planter mais je vois pas où.
              Faut dire que sans doc c'est compliqué …

              Tu saurais faire un exemple basé sur editablegrid-mysql-example avec la pagination?

              wind0w$ suxX, GNU/Linux roxX!

              • [^] # Re: editablegrid

                Posté par . Évalué à 3. Dernière modification le 13/04/14 à 18:57.

                c'est quoi pour toi la pagination ?

                dans le cas de mon usage, la pagination c'est sous le tableau :
                <<|<|1|2|3|>|>>

                elle se calcule automatiquement avec le nombre de ligne divisée par le nombre de ligne par page (en haut à droite)

                dnas le code de l'example,il manque en effet le index.html qui contiendrait les appels aux autres fichiers, et les div qui seront ensuite remplies par le javascript.

                voici ce que j'avais, il faut surement adapter les chemins car j'avais regrouper editablegrid et ses fichiers communs dans un dossier includes/
                pour ensuite avoir juste mes fichiers de mon projet à la racine de mon dossier de travail

                <html>
                        <head>
                                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                                <title>demo editablegrid</title>
                
                                <!-- include javascript and css files for the EditableGrid library -->
                                <script src="includes/editablegrid/editablegrid-2.0.1.js"></script>
                                <link rel="stylesheet" href="includes/editablegrid/editablegrid-2.0.1.css" type="text/css" media="screen">
                
                                <!-- include javascript and css files for jQuery, needed for the datepicker and autocomplete extensions -->
                                <script src="includes/jquery/jquery-1.6.4.min.js" ></script>
                                <script src="includes/jquery/jquery-ui-1.8.16.custom.min.js" ></script>
                                <link rel="stylesheet" href="includes/jquery/jquery-ui-1.8.16.custom.css" type="text/css" media="screen">
                
                                <!-- include javascript and css files for the autocomplete extension -->
                                <script src="includes/autocomplete/autocomplete.js" ></script>
                                <link rel="stylesheet" href="includes/autocomplete/autocomplete.css" type="text/css" media="screen">
                
                               <!-- include javascript and css files for this demo -->
                                <script src="demo.js" ></script>
                                <link rel="stylesheet" type="text/css" href="css/demo.css" media="screen"/>
                                <script type="text/javascript">
                                        window.onload = function() { 
                                                // you can use "datasource/demo.php" if you have PHP installed, to get live data from the demo.csv file
                                                //editableGrid.onloadXML("datasource/demo.xml"); 
                                                editableGrid.onloadXML("loaddata.php"); 
                                        }; 
                                </script>
                
                        </head>
                
                        <body>
                                <div id="wrap">
                                <h1>Demo editablegrid</a></h1>
                
                                        <!-- Feedback message zone -->
                                        <div id="message"></div>
                
                                        <!--  Number of rows per page and bars in chart -->
                                        <div id="pagecontrol">
                                                <label for="pagecontrol">Rows per page: </label>
                                                <select id="pagesize" name="pagesize">
                                                        <option value="5">5</option>
                                                        <option value="10">10</option>
                                                        <option value="15">15</option>
                                                        <option value="20">20</option>
                                                        <option value="25">25</option>
                                                        <option value="30">30</option>
                                                        <option value="40">40</option>
                                                        <option value="50">50</option>
                                                </select>
                                        </div>
                
                                        <!-- Grid filter -->
                                        <label for="filter">Filter :</label>
                                        <input type="text" id="filter"/>
                
                                        <!-- Grid contents -->
                                        <div id="tablecontent"></div>
                
                                        <!-- Paginator control -->
                                        <div id="paginator"></div>
                
                                </div>
                        </body>
                
                </html>
                • [^] # Re: editablegrid

                  Posté par (page perso) . Évalué à 1.

                  merci NeoX d'avoir essayé de m'aider mais je crois qu'il y a un gros soucis avec la doc.
                  J'ai beau tourner le truc dans tous les sens impossible de comprendre et d'en tirer quelque chose d'utile.

                  Doit y avoir une formule magique à mettre pour initialiser le bousin avec des paramètres obscurs kivonbien dans le fichier demo.js …

                  Je retesterai peut-être si je trouve rien d'autre quand ils auront fait une doc, parce que là, c'est bien de partager le code sur giteub mais à par pour le mec qui l'a codé je ne vois vraiment pas comment ça peut être utile à quelqu'un d'autre!

                  wind0w$ suxX, GNU/Linux roxX!

                  • [^] # Re: editablegrid

                    Posté par . Évalué à 2.

                    y a rien de special à faire

                    edite le fichier config pour mettre les ID/pass de la base de donnée
                    edite le loaddata.php pour aller lire les infos de la base de donnée.
                    edite le fichier html (le code que je t'ai donnée) pour aller prendre le fichier demo.js et loaddata.php
                    edite le fichier update.php pour que les saisies et modifications que tu fais dans le tableau soient renvoyer dans la base de données.

                    tu ne peux pas faire autre chose qu'un tableau modifiable,
                    le but n'est pas de faire des "pages" de formulaires

                    tu ne peux donc pas modifier la "pagination" pour faire autre chose que des tableaux modifiables.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.