Fork me on GitHub






Module utilisateur
Aspirant
Inscrit: 07/04/2005 21:21
Messages: 65
Bon je commence par poser mes questions avant d'avoir lu les tutos, pour que vous me guidiez un petit peu.
Quand je dit guider, vous pouvez me renvoyer sur des tutos ca me convient tres bien.

J'en parlais dans des posts précédants, un module pour le gérage ( ??? gérance ?? bref ..) de groupe .
Et apparemment ca n'existe pas.
Donc je vais essayer de créer qqchose qui correspond à mes besoins ( sachant que j'ai des bases en php mysql)

Donc premierement : ce que je veux faire :
Une page sur laquelle je peux voir tous mes utilisateurs et cliquer sur un bouton éditer mais surtout avoir la possibilité de voir tous les utilisateurs du groupe voulu.
Donc en php mysql ca me semble pas dur, 2 parcours de tables et c'est fait mais j'avoue avoir mal compris le concept de module et me demande si les modules entre en considération ici car il n'y a pas de création de table, c'est juste une utilisation de table existante.

Bon je m'arrete la pour mes questions je pense que vous allez déjà pouvoir m'aiguiller un peu .

Je vous remercie d'etre la :D

Posté le : 02/08/2005 13:02
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Semi pro
Inscrit: 05/04/2003 19:03
Messages: 1645
Bonjour,

tu as des fonctions de recherche de membres (trouver membre") dans l'administration.
Pour voir quels sont les membres d'un groupe, va dans les paramétrages de groupe (admin>groupes).

Sinon, il n'existe pas de module de "gestion" de groupe à ma connaissance pour la 2.0.x. Le module Members permet juste une recherche de membres sur certains critères, qui n'incluent pas les groupes.

@+

Posté le : 02/08/2005 15:00
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Semi pro
Inscrit: 07/03/2004 12:52
Messages: 591
tu peux aussi voir de ce côté sur xoops.org

http://www.xoops.org/modules/reposito ... file.php?cid=101&lid=1488

mais les liens sont morts depuis les misères de xoops.org

Il faudrait conatcter l'auteur directement. Si je le retrouve sur mon poste je te le mettrai en lien ici.

Si mes souvenirs sont exacts, il permet la gestion des membres et des groupes.
A+

Posté le : 02/08/2005 15:10

la fonction recherche, la meilleure amie du Xoopsien !!
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Aspirant
Inscrit: 07/04/2005 21:21
Messages: 65
Mais je veux créer moi meme le module :D , je voulais jsute qu'on me donne quelques pistes pour commencer la création :

-- est ce que ej doit créer un module ou je peux créer seulement des pages


-- si je dois créer un module comment je dois m'y prendre (si j'ai bien compris le module est associé à une histoire de cache, comment ca marche )


-- est ce que c'est une trop grande entreprise de m'attaquer à la création de ca


-- y a t il un squelette type pour une page ou pour un module ?
( en gros qu'elles sont les headers footers et autre include qui sont indispensable pour qu'on ai l'impression de rester dans le meme site

Posté le : 02/08/2005 19:31
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Guest_
Salut,

Pour le gérage de tes utilisateurs, je crois que tu peux t'inspirer de deux scripts existants :
1) La partie qui permet de traiter les groupes dans l'admin
2) La recherche d'utilisateurs

Si tu souhaites utiliser un squelette de script tu peux toujours prendre le module vierge présent à cette adresse

A+
Hervé

Posté le : 02/08/2005 19:43
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Salut,

Dis moi si vraiment cela t'interrèsse de créer ton module, je te met un extrait du module news (juste UN extrait d'UN fichier)

function getmoduleoption($option$repmodule='news')
{
    global 
$xoopsModuleConfig$xoopsModule;
    static 
$tbloptions= Array();
    if(
is_array($tbloptions) && array_key_exists($option,$tbloptions)) {
        return 
$tbloptions[$option];
    }

    
$retval=false;
    if (isset(
$xoopsModuleConfig) && (is_object($xoopsModule) && $xoopsModule->getVar('dirname') == $repmodule && $xoopsModule->getVar('isactive'))) {
        if(isset(
$xoopsModuleConfig[$option])) {
            
$retval$xoopsModuleConfig[$option];
        }

    } else {
        
$module_handler =& xoops_gethandler('module');
        
$module =& $module_handler->getByDirname($repmodule);
        
$config_handler =& xoops_gethandler('config');
        if (
$module) {
            
$moduleConfig =& $config_handler->getConfigsByCat(0$module->getVar('mid'));
            if(isset(
$moduleConfig[$option])) {
                
$retval$moduleConfig[$option];
            }
        }
    }
    
$tbloptions[$option]=$retval;
    return 
$retval;
}


/**
 * updates rating data in item table for a given item
 */
function news_updaterating($storyid)
{
    global 
$xoopsDB;
    
$query "SELECT rating FROM ".$xoopsDB->prefix("stories_votedata")." WHERE storyid = ".$storyid."";
    
$voteresult $xoopsDB->query($query);
    
$votesDB $xoopsDB->getRowsNum($voteresult);
    
$totalrating 0;
    while(list(
$rating)=$xoopsDB->fetchRow($voteresult)){
        
$totalrating += $rating;
    }
    
$finalrating $totalrating/$votesDB;
    
$finalrating number_format($finalrating4);
    
$sql sprintf("UPDATE %s SET rating = %u, votes = %u WHERE storyid = %u"$xoopsDB->prefix("stories"), $finalrating$votesDB$storyid);
    
$xoopsDB->queryF($sql);
}

/**
 * Internal function for permissions
 *
 * Returns a list of all the permitted topics Ids for the current user
 *
 * @return array $topics    Permitted topics Ids
*/
function MygetItemIds()
{
    global 
$xoopsUser;
    
$module_handler =& xoops_gethandler('module');
    
$newsModule =& $module_handler->getByDirname('news');
    
$groups is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
    
$gperm_handler =& xoops_gethandler('groupperm');
    
$topics $gperm_handler->getItemIds('news_view'$groups$newsModule->getVar('mid'));
    return(
$topics);
}

function 
news_html2text($document)
{
    
// PHP Manual:: function preg_replace
    // $document should contain an HTML document.
    // This will remove HTML tags, javascript sections
    // and white space. It will also convert some
    // common HTML entities to their text equivalent.

    
$search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
                     
"'<[/!]*?[^<>]*?>'si",          // Strip out HTML tags
                     
"'([rn])[s]+'",                // Strip out white space
                     
"'&(quot|#34);'i",                // Replace HTML entities
                     
"'&(amp|#38);'i",
                     
"'&(lt|#60);'i",
                     
"'&(gt|#62);'i",
                     
"'&(nbsp|#160);'i",
                     
"'&(iexcl|#161);'i",
                     
"'&(cent|#162);'i",
                     
"'&(pound|#163);'i",
                     
"'&(copy|#169);'i",
                     
"'&#(d+);'e");                    // evaluate as php

    
$replace = array ("",
                     
"",
                     
"\1",
                     
""",
                     "
&",
                     "
<",
                     "
>",
                     " ",
                     chr(161),
                     chr(162),
                     chr(163),
                     chr(169),
                     "
chr(\1)");

    
$text = preg_replace($search$replace$document);
    return 
$text;
}


function &news_getWysiwygForm(
$caption$name$value = "", $width = '100%', $height = '400px', $supplemental='')
{
    
$editor = false;
    switch(strtolower(getmoduleoption('form_options'))){
    case "
spaw":
        if (is_readable(XOOPS_ROOT_PATH . "
/class/spaw/formspaw.php"))    {
            
$myts =& MyTextSanitizer::getInstance();
            include_once(XOOPS_ROOT_PATH . "
/class/spaw/formspaw.php");
            
$editor = new XoopsFormSpaw($caption$name$value$width$height);
        }
        break;

    case "
fck":
        if ( is_readable(XOOPS_ROOT_PATH . "
/class/fckeditor/formfckeditor.php"))    {
            include_once(XOOPS_ROOT_PATH . "
/class/fckeditor/formfckeditor.php");
            
$editor = new XoopsFormFckeditor($caption$name$value$width$height);
        }
        break;

    case "
htmlarea":
        if ( is_readable(XOOPS_ROOT_PATH . "
/class/htmlarea/formhtmlarea.php"))    {
            include_once(XOOPS_ROOT_PATH . "
/class/htmlarea/formhtmlarea.php");
            
$editor = new XoopsFormHtmlarea($caption$name$value);
        }
        break;

    case "
dhtml":
        
$editor = new XoopsFormDhtmlTextArea($caption$name$value, 10, 50, $supplemental);
        break;

    case "
textarea":
        
$editor = new XoopsFormTextArea($caption$name$value);
        break;

    case "
koivi":
        if ( is_readable(XOOPS_ROOT_PATH . "
/class/wysiwyg/formwysiwygtextarea.php"))    {
            include_once(XOOPS_ROOT_PATH . "
/class/wysiwyg/formwysiwygtextarea.php");
            
$editor = new XoopsFormWysiwygTextArea($caption$name$value$width$height, '');
        }
        break;
    }

    return 
$editor;
}

/**
* Create, for Mozilla/Netscape and Opera a site navigation's bar
*/
function CreateSiteNavBar()
{
    global 
$xoopsConfig;
    
$content='';
    
$myts =& MyTextSanitizer::getInstance();
    include_once XOOPS_ROOT_PATH."
/modules/news/class/class.newstopic.php";
    
$content=sprintf("<link rel="Home" title="%s" href="%s/" />n",$xoopsConfig['sitename'],XOOPS_URL);
    
$content.=sprintf("<link rel="Contents" href="%s" />n",XOOPS_URL.'/modules/news/index.php');
    
$content.=sprintf("<link rel="Search" href="%s" />n",XOOPS_URL.'/search.php');
    
$content.=sprintf("<link rel="Glossary" href="%s" />n",XOOPS_URL.'/modules/news/archive.php');
    
$content.=sprintf("<link rel="%s" href="%s" />n",$myts->htmlSpecialChars(_NW_SUBMITNEWS),XOOPS_URL.'/modules/news/submit.php');
    
$content.=sprintf("<link rel="alternate" type="application/rss+xml" title="%s" href="%s/" />n",$xoopsConfig['sitename'],XOOPS_URL.'/backend.php');

    // create chapters
    
$xt = new NewsTopic();
    
$restricted=getmoduleoption('restrictindex');
    
$perms='';
    if (
$restricted) {
        global 
$xoopsUser;
        
$module_handler =& xoops_gethandler('module');
        
$newsModule =& $module_handler->getByDirname('news');
        
$groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
        
$gperm_handler =& xoops_gethandler('groupperm');
        
$topics = $gperm_handler->getItemIds('news_view', $groups$newsModule->getVar('mid'));
        if(count(
$topics)>0) {
            
$topics = implode(',', $topics);
            
$perms = " AND topic_id IN (".$topics."";
        } else {
            return '';
        }
    }
    
$maintopics = $xt->getChildTreeArray(0,"topic_title", $perms);
    foreach (
$maintopics as $ontetopic) {
        
$content.=sprintf("<link rel="Chapter" title="%s" href="%s" />n",$myts->htmlSpecialChars($ontetopic['topic_title']),XOOPS_URL.'/modules/news/index.php?storytopic='.$ontetopic['topic_id']);
    }
    unset(
$mytree);
    return(
$content);
}

/**
* Remove module's cache
*
*/
function updateCache() {
    global 
$xoopsModule;
    
$tpllist=array('news_item.html','news_archive.html','news_article.html','news_index.html','news_by_topic.html','news_by_this_author.html','news_ratenews.html','news_rss.html');
    include_once XOOPS_ROOT_PATH."
/class/xoopsblock.php";
    include_once XOOPS_ROOT_PATH.'/class/template.php';
    // Clear blocks cache
    xoops_template_clear_module_cache(
$xoopsModule->getVar('mid'));
    // Clear pages cache
    
$xoopsTpl = new XoopsTpl();
    foreach (
$tpllist as $onetemplate) {
        
$xoopsTpl->clear_cache('db:'.$onetemplate);
    }
}

function TableExists(
$tablename)
{
    global 
$xoopsDB;
    
$result=$xoopsDB->queryF("SHOW TABLES LIKE '$tablename'");
    return(
$xoopsDB->getRowsNum($result) > 0);
}

function FieldExists(
$fieldname,$table)
{
    global 
$xoopsDB;
    
$result=$xoopsDB->queryF("SHOW COLUMNS FROM    $table LIKE '$fieldname'");
    return(
$xoopsDB->getRowsNum($result) > 0);
}

function AddField(
$field$table)
{
    global 
$xoopsDB;
    
$result=$xoopsDB->queryF("ALTER TABLE " . $table . " ADD $field;");
    return 
$result;
}
?>


Evidemment, dans un module, il y a un certain nombre de fichier à créer, ainsi que les templates pour l'affichage des données provenant des tables de ta base de données.

A +

Posté le : 02/08/2005 19:45

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Admin Frxoops
Inscrit: 04/02/2003 07:37
De Belgique
Messages: 3376
Et encore, t'as pas vu mes modules... Même moi je m'y perd !

Plus sérieusement, à moins d'être déjà développeur dans un language quelconque, et donc comprendre la logique programmatique, la création d'un module un apprentissage par étape.

1) Apprendre à modifier un code (hack)
2) Ajouter des fonctionnalités à un module existant (version machin de tel module - ex. multiMenu. Si si.)
3) Fabriquer ton module de A à Z.

Le tout dans la calme et la bonne humeur.


Posté le : 02/08/2005 19:52
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Aspirant
Inscrit: 07/04/2005 21:21
Messages: 65
mais c'ets qu'ils veulent pas m'aider !!!!

Merci hervé de ta réponse.

Mais il me reste encore quelque petite chose à éclaircir et apparemment auxquelles vous ne voulez pas répondre.
( et je suis pas une bille en programation non plus )


-- Qu'est ce qu'un module ??? est ce que sans modules je suis capable de faire marcher une page qui :
prend tous les templates et autre blocs d'un autre modules ( pour le design bien que ca soit pas ce qui m'importe)
dans laquelle je un scroll avec tous mes groupes ( $coucou = Mysqlquery( Select " tout" from table_machin) )
qui avec un bouton de formulaire m'envoie sur une autre page ou j'ai :
$salut = mysqlquery( select "tout les gensé from table_machin where groupe = "bidule choisi"
Afficher $salut

bref en cherchant un peu je doit pouvoir retrouver la vrai sémantique.

Donc est ce que ca ca marche ou justement non parce que les modules rende tout plus dur ??

Posté le : 02/08/2005 20:53
Partager Twitter Partagez cette article sur GG+
Re: Module utilisateur
Semi pro
Inscrit: 05/04/2003 19:03
Messages: 1645
Voici le readme du module proposé par Xvitry

Citation :
Members Module for XOOPS

This module is an add-on to XOOPS, and is intended to help manage a club's membership. It is also useful for managing Xoops group memberships, as it makes it much easier to move users between groups.

Currently, it can perform the following:

1) Adds a new table with additional fields that the Xoops user table does not have. See the sql/mysql.sql file for details.

2) List members in a table with group level perms to determine which fields from the user table can be viewed.
- This page is very customizable from the preferences in the admin pages

3) Allow a user to easily edit their info on a single page.

4) Admins can edit any user's info.

5) Administer membership in groups with a more powerful interface than the default Xoops admin.
- The display here is not customizable from the admin pages, but it's easily done if you edit the include/selusers-form.inc.php file. Search that file for the line that contains "addOption" and change that line accordingly.

6) Auditing of changes made from this module to the member's information.

7) Allow export of member data to a CSV format for importing into other programs.

Note: This module only works with Xoops 2.0.x. It will not work with the 2.1 series. Some of the features are incorporated into the Xoops core starting with 2.1, so this will require pretty much a full rewrite.


Pour mieux comprendre les termes employés, je te recommande de lire documentation>démarrage rapide>apprendre à piloter XOOPS.

Sinon, il y a une documentation sur la conception de modules dans le manuel de référence (voir la doc) ainsi que sur le site de Thecat (thecat.ouvaton.org)

@+

Posté le : 02/08/2005 21:32
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

40 Personne(s) en ligne (23 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 40 | Plus ...