plateforme coopérative de partage d'information 1.9 Version de PLOOPI
PLOOPI est une plateforme web de travail collaboratif (GNU GPLv2) permettant à ses utilisateurs d'échanger et de diffuser des données. Il s'agit d'un logiciel sécurisé, robuste et optimisé dont le code source a été de nombreuses fois audité. PLOOPI se présente également sous la forme d'un framework de développement permettant de faciliter la mise en oeuvre de modules métiers basés sur des fonctionnalités avancées de travail collaboratif.

Documentation

Pages visitées : La classe « skin »

La classe « skin »

L’affichage dans ploopi est divisé en deux parties :

  • Le gabarit principal qui est géré par le moteur de template. Pour modifier le gabarit vous devez créer ou modifier un template BackOffice (cf. Création d’un template BackOffice).
  • Le coeur du module qui est géré par l’utilisateur. Pour garder une cohérence esthétique et ergonomique, et faciliter le travail du développeur, il est recommandé d’utiliser l’instance globale $skin de la classe skin qui fournit des méthodes génériques d’affichage.

Ploopi fourni une classe skin générique qui peut être personnalisée au niveau du template backoffice. En effet chaque template backoffice inclut une classe skin spécifique qui permet de redéfinir certaines méthodes qui lui sont propres.

Créer un titre de page

1
<? echo $skin->create_pagetitle('Titre de page'); ?>

Créer un bloc

1
2
3
<? echo $skin->open_simplebloc('Titre du bloc');?>
<div style="padding:4px;">Contenu du bloc</div>
<? echo $skin->close_simplebloc(); ?>

Gérer des onglets

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?
$tabs = array();
 
$tabs['onglet_1'] = 
    array(
        'title' => 'Onglet 1', 
        'url' => "admin.php?tabItem=onglet_1"
    );
    
$tabs['onglet_2'] = 
    array(
        'title' => 'Onglet 2', 
        'url' => "admin.php?tabItem=onglet_2"
    );
    
$tabs['onglet_3'] = 
    array(
        'title' => 'Onglet 3', 
        'url' => "admin.php?tabItem=onglet_3"
    );
 
$tabItem= isset($_GET['tabItem']) ? $_GET['tabItem'] : 'onglet_1';
 
echo $skin->create_tabs($tabs, $tabItem);
 
switch($tabItem)
{
    case 'onglet_1':
    break;
    case 'onglet_2':
    break;
    case 'onglet_3':
    break;
}
?>

Gérer une barre d’icônes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
$toolbar = array();
 
$toolbar['icone_1'] = 
    array(
        'title' => 'Icone 1',
        'url'   => "admin.php?toolbarItem=icone_1",
        'icon'  => "icone1.png"
    );
 
$toolbar['icone_2'] = 
    array(
        'title' => 'Icone 2',
        'url'   => "admin.php?toolbarItem=icone_2",
        'icon'  => "icone2.png"
    );
 
$toolbarItem= isset($_GET['toolbarItem']) ? $_GET['toolbarItem'] : 'icone_1';
 
echo $skin->create_toolbar($toolbar,$toolbarItem);
 
switch($toolbarItem)
{
    case 'icone_1':
    break;
    case 'icone_2':
    break;
}
?>

Afficher un tableau avancé

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?
$columns = array();
$values = array();
 
$columns['left']['colonne1'] =
    array(
        'label' => 'Colonne 1', 
        'width' => '100', 
        'style' => 'text-align:center;'
    );
    
$columns['auto']['colonne2'] = 
    array(
        'label' => 'Colonne 2', 
        'options' => array('sort' => true)
    );
    
$columns['right']['colonne3'] = 
    array(
        'label' => 'Colonne 3', 
        'width' => '100'
    );
 
$values[0]['values']['colonne1'] = 
    array(
        'label' => 'gras', 
        'style' => 'font-weight:bold;'
    );
        
$values[0]['values']['colonne2'] = 
    array(
        'label' => 321
    );
    
$values[0]['values']['colonne3'] = 
    array(
        'label' => '01/01/2008', 
        'sort_label' => '20080101'
    );
    
$values[0]['description'] = 'description 0';
$values[0]['link'] = "admin.php?monlien0";
 
$values[1]['values']['colonne1'] = 
    array(
        'label' => 'normal', 
        'style' => 'font-weight:normal;'
    );
    
$values[1]['values']['colonne2'] = 
    array(
        'label' => 654
    );
    
$values[1]['values']['colonne3'] = 
    array(
        'label' => '07/01/2008', 
        'sort_label' => '20080107'
    );
    
$values[1]['description'] = 'description 1';
$values[1]['link'] = "admin.php?monlien1";
 
$skin->display_array($columns, $values, 'nom_du_tableau', array('sortable' => true, 'orderby_default' => 'colonne2', sort_default' => 'DESC'));
?>

Afficher un treeview

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?
$treeview['list'][1] = 
    array(
        'id' => 1
        'label' => 'ovensia',
        'description' => 'site de la société ovensia'
        'parents' => array(0),
        'node_onclick' => "ploopi_skin_treeview_shownode('1', '".ploopi_queryencode("ploopi_op=fonction_de_refresh&hid=1")."', 'admin-light.php')",
        'link' => 'http://www.ovensia.fr',
        'icon' => 'ovensia.png'
    );
 
$treeview['list'][5] = 
    array(
        'id' => 5
        'label' => 'ploopi',
        'description' => 'site de la communauté ploopi'
        'parents' => array(0, 1),
        'node_onclick' => "ploopi_skin_treeview_shownode('5', '".ploopi_queryencode("ploopi_op=fonction_de_refresh&hid=5")."', 'admin-light.php')",
        'link' => 'http://www.ploopi.org',
        'icon' => 'ploopi.png'
    );
 
$treeview['list'][7] = 
    array(
        'id' => 7
        'label' => 'ploopi',
        'description' => 'site de la distribution GNU/Linux Debian'
        'parents' => array(0, 1, 5),
        'node_onclick' => "ploopi_skin_treeview_shownode('7', '".ploopi_queryencode("ploopi_op=fonction_de_refresh&hid=7")."', 'admin-light.php')",
        'link' => 'http://www.debian.org',
        'icon' => 'debian.png'
    );
 
 
$treeview['tree'][0][] = 1;
$treeview['tree'][1][] = 5;
$treeview['tree'][5][] = 7;
 
echo $skin->display_treeview($treeview['list'], $treeview['tree']);
?>

Afficher un découpage de page et un nombre d’enregistrement par ecran

1
2
3
4
5
6
7
8
9
<?
paramCutPage = array('nbMax' => $count,            // Nombre d'enregistrement total
                      'by' => $limit_by,           // Nombre d'enregistrement par page
                      'page' => $actual_page,      // Page en cours
                      'post' => array('op' => 'actionhistory'), // Tableau contenant les paramètres post a passer en hidden
                      'answerby' => array(10,25,50,100,500));   // Tableau contenant la liste des choix de nombre d'enregistrement par page
 
echo $skin->display_cut_page('cut_page1',$paramCutPage);
?>

display_cut_page retourne le code html a afficher qui est un “form”.
Il retourne donc aussi le $POST suivant (pour notre exemple)

1
2
3
4
5
6
<?
$_POST['cut_page1_op']    = 'actionhistory'; // input hidden
$_POST['cut_page1_by']    = '100';   // Nb d'enregistrement par page (fin de votre 'LIMIT' de votre requête)
$_POST['cut_page1_page']  = '2';     // Numéro de la page sélectionnée
$_POST['cut_page1_begin'] = '100';   // Début de votre 'LIMIT' de votre requête = 0 pour la page 1, ($_POST['page']-1 * $_POST['by']) pour la page $_POST['page']
?>

Données qu’il est nécessaire de traiter pour les renvoyer à display_cut_page





Retour en haut de la page