Ce tuto est en cour et sera déplacé dans les jours a venir.
Merci de votre compréhension. Fait par GaredoSuite a une demande de Pmb236
Je me suis mis sur un petit Tutoriel de base.
Pour faire un exemple simple nous allons voir ensemble comment créer une page accessible soit à tout les visiteurs.
Première étape : Combien de fichiers à créer et modifier et leurs noms.
-Mapage.php -> Dans le dossier Sources pour toutes les infos principales.
-Mapage.template.php -> Dans le dossier du thème default pour l’affichage.
-Mapage.french.ph -> Dans le dossier languages du thème par défaut pour les variables texte.
On modifiera les fichiers suivants :
-index.php -> a la racine du forum.
-index.template.php -> dans le dossier du thème default.
Seconde étape : Création du fichier Mapage.php
1)
On commence par le commencement: balises php , indication de version du fichier et sécurité.
<?php
/********************************************************************************
* Ma page * ======================================================================
*
* Software Version: 1 *
* Copyright (C) 2001-2006 Garedo(http://smf-fr.org) *
********************************************************************************/
if (!defined('SMF'))
die('Hacking attempt...');
?>
2)
Fonction pour la navigation. On va donner ici toutes les infos pour les liens en rapports avec la page.
function MapageMain()
{
global $txt, $scripturl, $modSettings, $context;
//Load the main links template
loadLanguage('Mapage');
//listing actions
$subActions = array(
'' => 'VoirMapage',
);
// Default to sub action 'main' or 'settings' depending on permissions.
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : '';
$subActions[$_REQUEST['sa']]();
}
A coller juste après :
if (!defined('SMF'))
die('Hacking attempt...');
3)
Enfin la fonction qui nous permette de d’afficher la page.//fonction pour afficher ma page
function VoirMapage()
{
global $txt, $scripturl, $modSettings, $context;
//Load the main links template
loadTemplate('Mapage');
loadLanguage('Mapage');
//Load the main index links template
$context['sub_template'] = 'main';
//Set the page title
$context['page_title'] = $txt['Mapage_1'];
$context['linktree'][] = array(
'url' => $scripturl . '?action=mapage',
'name' => $txt['Mapage_1'],
);
}
A coller juste avant :
Troisième étape : Création du fichier Mapage.template.php
1)
Toujour le même commencement : balises php et indication de version.
<?php
/********************************************************************************
* Ma Page *
* ==============================================================================*
* Software Version: 1 *
* Copyright (C) 2001-2006 Garedo (http://smf-fr.org) *
*********************************************************************************/
?>
2)
Fonction d’affichage.function template_main()
{
global $txt;
echo
theme_linktree(),
'<div align="center" style="border: solid 1px black;padding:20px;width: 300px;margin:auto;">'.$txt['Mapage_2'].'</div>';
}
On le colle toujours avant :
Quatrième étape : Création du fichier de langage Mapage.french.php
<?php
// Version: 1.1 ; Mapage
$txt['Mapage_1'] = 'Ma Page';
$txt['Mapage_2'] = 'Bonjours a tous.<br />Voici Ma Page perso.';
?>
Ciquieme étape : Edition du fichier index.php (celui qui ce trouve a la racine du forum)
On recherche : // Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] => array($file, $function).
$actionArray = array(
Et on ajoute après//Ajout pour Ma page
'mapage' => array('Mapage.php','MapageMain'),
Sixieme étape : Edition du fichier index.template.php dans le dossier du thème default
On recherche if (in_array($context['current_action'], array('search', 'admin', 'calendar', 'profile', 'mlist', 'register', 'login', 'help', 'pm')))
Et on remplace par if (in_array($context['current_action'], array('search', 'admin', 'calendar', 'profile', 'mlist', 'register', 'login', 'help', 'pm','mapage')))
On recherche // The end of tab section.
echo '
<td class="maintab_' , $last , '"> </td>
</tr>
</table>';
Et on ajoute avant //Voir le bouton [Mapage]
echo ($current_action=='mapage' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'mapage' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '?action=mapage">Ma page</a>
</td>' , $current_action == 'mapage' ? '<td class="maintab_active_' . $last . '"> </td>' : '';
Et voila le tour et jouer.
Il ne vous reste plus qu’a remplir le bloc div dans la fonction template_main()

Bien évidemment ce tuto est très basique, mais il permet déjà une première approche sur la façon d’ajouter des pages personnelles dans votre sript de forum préféré.
Je suis sur un projet de livre d’or pour mon forum, je ferais le tuto en même temps.
Ce qui permettra de voir ensemble des fonctions étendues pour la gestion de quelques permissions et divers affichages.