UP PREVIOUS NEXT   Technologies Internet et Education, © TECFA
  4. Installation et initialisation

4. Installation et initialisation

Postnuke a un interface pour initialiser, activer/désactiver ou enlever un module et il y a deux fichiers qui contribuent: "pntables.php" et "pninit.php".

4.1 Décrire toutes les tables SQL dans le fichier "pntables.php"

Il s'agit juste d'une fonction qui remplit l'array "pntable" avec le nom de toutes les tables utilisées et de leurs colonnes (ex ci-dessous: table "pn_joinproject_members" avec 4 colonnes)

function joinproject_pntables() {
    // Initialise table array
    $pntable = array();
    // Get the name for the template item table.
    $members = pnConfigGetVar('prefix') . '_joinproject_members';
    // Set the table name
    $pntable['joinproject_members'] = $members;
    // Set the column names.
    $pntable['joinproject_members_column'] = 
array('memberid'   => $members . '.memberid',
      'projid'     => $members . '.projid',
      'membername' => $members . '.membername',
      'accepted'   => $members . '.accepted');
    // Return the table information
    return $pntable; }

4.2 Créer ou effacer les tableaux SQL dans le fichier "pninit.php" (fonctions "init()" et "delete()")

Dans init() on crée les tables dans la base de données avec des requêtes SQL

function joinproject_init() {
    list($dbconn) = pnDBGetConn();
    $pntable = pnDBGetTables();
    $memberstable = $pntable['joinproject_members'];
    $memberscolumn = &$pntable['joinproject_members_column'];
    $sql1 = "CREATE TABLE $memberstable (
            $memberscolumn[memberid] tinyint unsigned NOT NULL auto_increment,
            $memberscolumn[projid] tinyint unsigned NOT NULL default '',
            $memberscolumn[membername] varchar(255) NOT NULL default '',
            $memberscolumn[accepted] tinyint(1) NOT NULL default '0',
            PRIMARY KEY(memberid))";
   $dbconn->Execute($sql1);
    // Check for an error with the database code, and if so set an
    // appropriate error message and return
    if ($dbconn->ErrorNo() != 0) {
        pnSessionSetVar('errormsg', _CREATETABLE1FAILED);
        return false;
    }
}

 

 

Dans delete() on efface les tables de la base de données avec la requête SQL "DROP TABLE"

function joinproject_delete()
{
    list($dbconn) = pnDBGetConn();
    $pntable = pnDBGetTables();
    $sql1 = "DROP TABLE $pntable[joinproject_members]";
    $dbconn->Execute($sql1);
    // Check for an error with the database code, and if so set an
    // appropriate error message and return
    if ($dbconn->ErrorNo() != 0) {
        pnSessionSetVar('errormsg', _DROPTABLE2FAILED);
        return false;
    }
    // Deletion successful
    return true;
}

4.3 Tester (et vérifier les tables SQL dans la DB !)

Administration -> Modules -> Liste -> "MyModule" ->

Initialiser,

Activer/Désactiver,

Enlever


UP PREVIOUS NEXT -- TIE