Boomtchak
Accueil du site > CMS Outils > CMS BoomSélection I > PhpNuke & dérivés > PostNuke > Thèmes graphiques > Comment adapter ses thèmes pour PostNuke 0.70x en PostNuke 0.71 (...)

Comment adapter ses thèmes pour PostNuke 0.70x en PostNuke 0.71 ?

Si vous comprenez le fonctionnement des themes .70x, alors vous pouvez utiliser ce guide pour porter rapidement vos themes vers les nouvelles fonctions .71. Par contre, si vous n’y comprenez rien, vous pouvez vous faire une idée de ce qu’il faut faire en lisant ce fichier et en vous référant à l’exemple de fichier theme.php qu’il y a à la fin de ce document.

Le Quick and Dirty Guide Version 1.02 (Upgrading Postnuke .70x themes to .7 By fredb8&#054&#064&#104otmail.com) original en anglais.

Son annonce ici.

Bonne chance !


ETAPE 1 : Ajouter la fonction themes_get_language()


...
$textcolor1 = "#CCCCCC" ;
$textcolor2 = "#CCCCCC" ;
$postnuke_theme = true ;

themes_get_language() ;


ETAPE 2 : Changement majeurs dans la fonction themeheader()


$slogan = pnConfigGetVar(’slogan’) ;
$sitename = pnConfigGetVar(’sitename’) ;
$banners = pnConfigGetVar(’banners’) ;
$startpage = pnConfigGetVar(’startpage’) ;
$currentlang = pnConfigGetVar(’language’) ;

if (!pnUserLoggedIn())
$username = "Anonymous" ;
else
$username = pnUserGetVar(’uname’) ;

pnBannerDisplay() ;


ETAPE 3 : Si vous avez un formulaire de Login utilisateur dans votre thème, vous devez ajouter ce champ caché (hidden field) à ce formulaire :

if ($username == "Anonymous" )

$urivalue=getenv("REQUEST_URI") ;
..........
."<input type="hidden" name="url" value=$urivalue> "


else

[Hello user....blah blah]


ETAPE 4 : Pour afficher les messages Administrateur (ex : Bienvenue sur Postnuke...) sur votre page principale, vous devez ajouter ceci à votre thème. C’est, en règle générale, la toute dernière implémentation de votre fonction themeheader() :

if ($index == 1)
blocks(’Centre’) ;

ETAPE 5 : Changements sur themearticle(). Ce code remplace tout ce qui concerne l’authorisation :

if (pnSecAuthAction(0, ’Stories ::’, "$info[aid] :$info[cattitle] :$info[sid]", ACCESS_EDIT))
echo " [ "._EDIT."" ;
if (pnSecAuthAction(0, ’Stories ::’, "$info[aid] :$info[cattitle] :$info[sid]", ACCESS_DELETE))
echo "| <a href="admin.php ?module=NS-AddStory&&op=RemoveStory&&a mp ;sid=$info[sid]">"._DELETE." ]
" ;
echo "

" ;


ETAPE 6 : changements à la fonction themesidebox(). Les messages Admin sont affichés gr&acirc ;ce à cette fonction (themesidebox). Les messages Admin sont en grandes parties les blocs sans titres. Donc, vous contr&ocirc ;lez d’abord pour voir si le bloc possède un titre. Si ce n’est pas le cas, cela doit être un message Admin, donc, affichez le. Sinon, cela doit être un véritable bloc, il suffit donc d’utiliser le code themesidebox habituel :

function themesidebox($block)

// S’il n’y a pas de titre, ce doit être un message admin.
if (empty($block[’title’]))
echo "$block[content]" ;

else

[Votre code de bloc vient ici]



ETAPE 7 : Pour éviter les messages d’avertissement en PHP 4.1x, assurez vous que vos paramètres de blocs sont placés entre simples guillemets :

blocks(’right’)
blocks(’left’)
blocks(’Centre’)
< !—pagebreak—>

EXEMPLE DE FICHIER THEME.PHP


/***********************************************************
/* Nom du Theme : BubbleGumMaroon for PostNuke 0.71
/* modifié : Brumie (http://developer.indonesia.nu)
/* copyright 2001 Somara Sem (http://www.pixelmayhem.com)
/* (Veuillez ne pas retirer ce copyright)
/*
/* Créé le : 11/20/2001
/***********************************************************

/***********************************************************
/* CHANGELOG :
/* 03/01/2002 - Porté sous Postnuke .71 par
/* fredb8&#054&#064&#104otmail.com
/* 12/14/2001 - Ajout d’une ligne javascript BubbleGumMaroon
/* (par Brumie)
/*
/* 12/12/2001 - Liens de navigation du bas fixés.
/* Ajout d’une ligne javascript au code du
/* theme afin de ne plus devoir editer le
/* header.php (par Somara Sem)
/* Merci à Brumie et xtremdj pour cette astuce
/*
/* 12/12/2001 - Couleur de thème modifiée (par Brumie)
/*
/* 12/11/2001 - Theme porté sous Postnuke 0.7x
/* (par Somara Sem)
/*
/* 11/27/2001 - Update mineures. (par Somara Sem)
/*
/* 11/20/2001 - Thème créé. (par Somara Sem)
/*
/***********************************************************

/***********************************************************
/* Définition des couleurs de Thème
/*
/* Definit les couleurs de votre site web. $bgcolor2 est
/* généralement utilisé pour les bordures de tableaux comme
/* vous pouvez le voir sur la fonction OpenTable(),
/* $bgcolor1 est utilisé pour la couleur de fond du tableau
/* et les deux autres couleurs de fond suivent les même
/* critères. $texcolor1 et 2 sont utilisé pour le texte
/* interne des tableaux
/***********************************************************

$bgcolor1 = "#EDE3E3" ;
$bgcolor2 = "#895C5C" ;
$bgcolor3 = "#B48B8B" ;
$bgcolor4 = "#D9C7C7" ;
$textcolor1 = "#000000" ;
$textcolor2 = "#000000" ;
$postnuke_theme = true ;

themes_get_language() ;

/***********************************************************
/* Fonctions OpenTable
/*
/* Définissez le look de vos tableaux pour tout votre site.
/* Pour cela vous avez deux options : la fonction OpenTable
/* et la fonction OpenTable2. Ensuite vous avez CloseTable
/* et CloseTable2 pour fermer respectivement vos tableaux 1
/* et 2. La différence est que OpenTable à une longueur de
/* tandis que OpenTable2 à une longueur qui dépend de son
/* contenu
/***********************************************************

function OpenTable()
global $bgcolor1, $bgcolor2 ;
echo "n" ;
echo "n" ;


function CloseTable()
echo "n" ;

function OpenTable2()
global $bgcolor1, $bgcolor2 ;
echo "n" ;
echo "n" ;

function CloseTable2()
echo "n" ;


/***********************************************************
/* Fonction themeheader()
/*
/* Définissez l’en-tête de votre site. Il vous faudra pour
/* cela définir le tag BODY et à certains endroits l’appel
/* des fonctions des blocs de gauche par : blocks(left) ;
/***********************************************************

function themeheader()
global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $sitename, $slogan, $banners, $index, $user, $cookie ;

$slogan = pnConfigGetVar(’slogan’) ;
$sitename = pnConfigGetVar(’sitename’) ;
$banners = pnConfigGetVar(’banners’) ;
$startpage = pnConfigGetVar(’startpage’) ;
$currentlang = pnConfigGetVar(’language’) ;

if (!pnUserLoggedIn())
$username = "Anonymous" ;
else
$username = pnUserGetVar(’uname’) ;


echo "nnn" ;
echo "nnn" ;

pnBannerDisplay() ;

echo "n" ;
echo "n" ;
echo "nnnnnnnnnnnnnnnn" ;

// Images du haut
echo "n"
."n"
."Welcome!n"
."n"
."n"
."n" ;

// Barre de navigation avec effet ’Roll-over’, éditez les liens à votre // convenance
echo "n"
."n"
."n"
."onMouseOver="MM_swapImage(’news’,’’,’themes/BubbleGumMaroon/images/nav/news-02.gif’,1)">n"
."onMouseOver="MM_swapImage(’topics’,’’,’themes/BubbleGumMaroon/images/nav/topics-02.gif’,1)">src="themes/BubbleGumMaroon/images/nav/topics-01.gif" width="76" height="25" name="topics" border="0"-n"
."onMouseOver="MM_swapImage(’downloads’,’’,’themes/BubbleGumMaroon/images/nav/downloads-02.gif’,1)">n"
."n"
."onMouseOver="MM_swapImage(’submitnews’,’’,’themes/BubbleGumMaroon/images/nav/submitnews-02.gif’,1)">n"
."onMouseOver="MM_swapImage(’topten’,’’,’themes/BubbleGumMaroon/images/nav/topten-02.gif’,1)">n" ."n"
."n"
."nnnn" ;

// Barre de formulaire
echo "n"
."n"
."n"
."n"
."n" ;
if ($username == "Anonymous")
$urivalue=getenv("REQUEST_URI") ;
echo "n"
." User : n"
."n"
." Pass : n"
."n"
."n"
."n"
."n"
."n"
." Joinn"
."n" ;
else
echo " Hello $username ! logout" ;

echo "n"

."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
." n"
."n"
."n"
."n"

."n"
."n"
."n" ;

// Début du tableau principal
echo "n"
."n"
."n"
."n"
."n"
."n" ;
blocks(’left’) ;
echo "n"
."n"
."n" ;
if ($index == 1)
blocks(’Centre’) ;



/***********************************************************
/* Fonction themefooter()
/*
/* Définissez le bas-de-page de votre site. Vous n’avez
/* pas besoin de fermer les tags BODY et HTML. N’oubliez
/* pas de faire appel
/* à la fonction pour créer les blocs droits avec :
/* blocks(right).
/* La variable $index a également besoin d’être définie
/* comme globale et est utlisée pour déterminer si la page
/* que vous regardez est la page principale ou une interne
/***********************************************************

function themefooter()
global $index, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4 ;
if ($index == 1)
echo "n"
."n"
."n" ;
blocks(’right’) ;

echo "n"
."n"
."n"
."n"
."n"
."nnn" ;

// Barre de navigation à effet Roll-over du bas
echo "n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."n"
."nnnn" ;

// Début du tableau de bas de page
echo "n"
."n"
."n" ;
footmsg() ;
echo "n"
."n"
."nnn" ;


/***********************************************************
/* Function themeindex()
/*
/* Cette fonction s’occupe de la mise en page des news sur
/* la page principale
/***********************************************************

function themeindex ($_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $info, $links, $preformat) global $tipath, $anonymous, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $timezone ;

// Tableau de titre de la news
echo "n"
."n"
."$preformat[catandtitle]n"
."n"
.""._POSTEDBY." : $info[informant] "._ON." $info[longdatetime] $timezone ($info[counter] "._READS.")n"
."n"
."n"
."n"
."nnn"

// Contenu de la news
."n"
."n"
."n"
."$preformat[searchtopic]n"
."$info[hometext]n"
."$preformat[notes]n"
."n"
."n"
."nnn"

// News postée par... imprimer
."n"
."n"
."n"
."$preformat[more]n"
."n"
."n"
."n"
."nnn" ;


/***********************************************************
/* Fonction themeindex()
/*
/* Cette fonction s’occupe de la mise en page des news
/* quand vous cliquez sur "lire l’article en entier..."
/* sur la page principale du site
/***********************************************************

function themearticle ($_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $info, $links, $preformat)
global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4 ;

// Lire plus... Zone de titre
echo "n"
."n"
."n"
."$preformat[catandtitle]n"
."n"
.""._POSTEDBY." : $info[informant] " ;

if (pnSecAuthAction(0, ’Stories ::’, "$info[aid] :$info[cattitle] :$info[sid]", ACCESS_EDIT))
echo " [ "._EDIT."" ;
if (pnSecAuthAction(0, ’Stories ::’, "$info[aid] :$info[cattitle] :$info[sid]", ACCESS_DELETE))
echo "| "._DELETE." ]" ;

echo "n" ;

echo "n"
."n"
."nnn"

."nnn"

// Lire plus... Contenu
."n"
."n"
."n" ;
echo "$preformat[searchtopic]n" ;
echo "$preformat[fulltext]n" ;
echo "n"
."n"
."nnn"

."nnn" ;

/***********************************************************
/* Fonction themesidebox()
/*
/* Contrôlez le look de vos blocs. Tout simple...
/***********************************************************

function themesidebox($block)

if (empty($block[’title’]))
echo "$block[content]" ;
else


// Side Box Title
echo "n"
."n"
."n"
."$block[title]n"
."n"
."n"
."n"

// Side Box Content
."n"
."n"
."n"
."$block[content]n"
."n"
."n"
."nnn"

."nnn" ;



VOILA POUR CE QUI EST DE LA TRADUCTION...
Je me rends compte suite à celle-ci qu’il y aurrait moyen d’ête plus complet dans l’explication de la définition du theme.php mais bon, libre à vous de rajouter des détails !
Faites juste attention à conserver les copyrights !

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0