Artiphp - CMS open source et gratuit
Vous êtes ici » Accueil/Forum
Saisissez votre recherche
RechercherRechercher   Liste des MembresListe des Membres   S'enregistrerS'enregistrer    ProfilProfil 
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


Page perso

 
Poster un nouveau sujet   Répondre au sujet    Artiloo.com Index du Forum -> Les scripts des membres
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jalex



Inscrit le: 24 Fév 2012
Messages: 7

MessagePosté le: Ven 24 Fév 2012 19:32    Sujet du message: Page perso Répondre en citant

Bonjour à tous, j'ai installé Artiphp et je souhaiterais intégrer des pages écrites en php/mysql avec le menu correspondant.
Pourriez-vous m'indiquer un tuto existant ou une marche à suivre?
Merci d'avance
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Sam 25 Fév 2012 11:10    Sujet du message: Répondre en citant

Bonjour jalex et bienvenue parmi les artinautes,

Les éléments de réponse se trouvent déjà dans ces forums, mais il est vrai qu'il faudrait que nous trouvions un jour le temps d'écrire un tutoriel expliquant les démarches à effectuer et les possibilités.

Par exemple et en dernier lieu, voir ce sujet :
-http://www.artiloo.com/phpBB2/viewtopic.php?t=10203


En résumé, pour de simples pages PHP, voici comment tu peux procéder, en supposant que ces pages se trouvent dans un répertoire mespagesperso/ à la racine de ton Artiphp 5 :


- début de la page pour bénéficier des sessions, variables et constantes d'Artiphp
Code:
<?php
/**
*
* @Adaptation pour intégration dans Artiphp 5
*
*/

// Protection - Page
define('IN_ARTI', true);

// Chargement configuration
require('../artpublic/config.inc.php'); // ATTENTION : chemin relatif depuis racine Artiphp

// Debug de la page
//error_reporting(E_ALL ^ E_NOTICE); // pour débogage éventuel

// Connexion au noyau
// ------------------
include(ARTI_SYS_INT_FCT_PATH . 'identification.inc.php'); // zone de connexion/membre

// Langue
// ------
if (empty($_SESSION['SESSION_IDSKIN'])) {
    include(ARTI_SYS_INT_FCT_PATH . 'donnees_skin.inc.php');
}
$SESSION_LANGSKIN = $_SESSION['SESSION_LANGSKIN'];
include(ARTI_SYS_INT_PATH . "langues/$SESSION_LANGSKIN/index.inc.php");

// DEBUT facultatif
// répertoire du module
$mod_encours_dir = 'mespagesperso';
// impression page
include(ARTI_SYS_INT_FCT_PATH . 'imprime.inc.php');
// feuille de style du module
$css .= "\n<link type=\"text/CSS\" rel=\"stylesheet\" href=\"" . ARTI_WEB_INT_PATH . "templates/temp$SESSION_SKIN/" . $mod_encours_dir . ".css\" media=\"screen\" title=\"style\" />\n";
// FIN facultatif

// Metatags
// --------
/*
include("langues/$SESSION_LANGSKIN/metatags.inc.php"); // si la page n'a pas de titre ou description spécifiques
$metatitle = $LG_METATITLE;
$metaDescription = $LG_METADESC;
*/
$metatitle = "Titre de la page (balise <title>)";
$metaDescription = "Description de la page (balise meta Description)";

// En-tête de page
$entete = "<a href=\"" . ARTI_WEB_PATH . "index.php\">$LG_ACCUEIL</a>/Titre affiché de la page\n\n";
// ---------------



- milieu de la page (Attention ! Ne retenir que ce qui correspond au code entre les balises <body> et </body>)
. si le code HTML généré est déjà affecté à une variable
Code:
$milieu = "<div id=\"mod_mespagesperso\" class=\"mod_content\"><h1>Titre affiché de la page</h1>\n\n";
$milieu .= $nom_de_ta_variable; // Attention ! uniquement ce qui correspond au code entre les balises <body> et </body>
$milieu .= '</div>' . "\n";

. si le code HTML est affiché au fur et à mesure (directement ou via des "echo");
Code:
// DEBUT tamporisation du contenu de la page principale
ob_start();

// ici ton code PHP ou HTML (Attention ! uniquement ce qui correspond au code entre les balises <body> et </body>)

// FIN tamporisation du contenu de la page principale
$mainpage_content = ob_get_contents();
ob_end_clean();

$milieu = "<div id=\"mod_mespagesperso\" class=\"mod_content\"><h1>Titre affiché de la page</h1>\n\n";
$milieu .= $mainpage_content;
$milieu .= '</div>' . "\n";



- fin de la page
Code:
// Intégration dans le template d'Artiphp
// --------
$SESSION_SKIN = $_SESSION['SESSION_SKIN'];
include(ARTI_SYS_INT_PATH . "templates/temp$SESSION_SKIN/temp.html");
echo $arti;
mysql_close($link);
?>



- optionnel
. si tu as besoin de placer du code supplémentaire (styles, JavaScript, ou autre) dans le template, dans le fichier temp.html de ton template Artiphp, place-le ainsi entre <head> et </head> :
Code:
<?php if ($mod_encours_dir == 'mespagesperso') { ?>
<!-- tes codes supplémentaires ici -->
<?php } ?>



- ensuite pour les menus automatiques, il te reste à les créer en zone admin en mentionnant l'adresse de tes pages.


Bonne intégration

jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jalex



Inscrit le: 24 Fév 2012
Messages: 7

MessagePosté le: Dim 26 Fév 2012 12:10    Sujet du message: Répondre en citant

Bonjour et merci pour cette réponse.
J'ai deux questions:
- je ne trouve pas comment donner des droits à cette page (pour être utiisée que par les membres connecté),

- j'essai de faire un include:
$milieu .= include(ARTI_SYS_INT_PATH . "mespagesperso/essai.html") . "\n";

ne donne rien

$milieu .= include(ARTI_SYS_INT_PATH . "templates/temp$SESSION_SKIN/essai.html") . "\n";

ne donne rien

include(ARTI_SYS_INT_PATH . "templates/temp$SESSION_SKIN/essai.html");

inclu la page en dehors de $milieu, tout à fait en haut à gauche.

Merci d'avance pour votre aide.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Dim 26 Fév 2012 19:53    Sujet du message: Répondre en citant

jalex a écrit:
- je ne trouve pas comment donner des droits à cette page (pour être utiisée que par les membres connecté)

Ne s'agissant pas d'un module Artiphp, la gestion des droits (en lecture) ne peut se faire que manuellement. Il y a des exemples dans ces forums, par exemple ici :
-http://www.artiloo.com/phpBB2/viewtopic.php?p=54409#54409

Code:
// Ouverture de cette page aux groupes autorisés (laisser au minimum le groupe 1 des admins dans le tableau PHP)
// ---------------------------------------------
if (empty($_SESSION['SESSION_ARTIGROUP']) || !in_array($_SESSION['SESSION_ARTIGROUP'], array('1', '2'))) {
    header('Location: ' . ARTI_WEB_INT_FCT_PATH . 'erreur.php?ec=2');
    exit();
}

A placer après l'inclusion de artpublic/config.inc.php pour bénéficier des variables de session.
Si besoin est, complète le tableau array() avec les numéros des groupes à autoriser.

Citation:
- j'essai de faire un include:
$milieu .= include(ARTI_SYS_INT_PATH . "mespagesperso/essai.html") . "\n";

Normalement, la syntaxe correcte devrait être :
Code:
$milieu .= include ARTI_SYS_PATH . 'mespagesperso/essai.html';

ARTI_SYS_INT_PATH correspond au chemin système de artpublic/
ARTI_SYS_PATH à celui de la racine d'Artiphp
Dans ce cas, ce n'est pas include(), mais include suivi d'une chaîne de caractère représentant le chemin du fichier à inclure.

Citation:
include(ARTI_SYS_INT_PATH . "templates/temp$SESSION_SKIN/essai.html");
inclu la page en dehors de $milieu, tout à fait en haut à gauche.

Normal, puisque tu ne passes pas par la variable $milieu, le contenu du fichier est affiché à l'endroit/moment de l'inclusion.


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jalex



Inscrit le: 24 Fév 2012
Messages: 7

MessagePosté le: Dim 26 Fév 2012 21:24    Sujet du message: Répondre en citant

Ok, en fait tu répond à ma question (a savoir si c'est une option pour toutes les pages) alors j'ai fait comme ça pour contrôler l'affichage de la page:
Code:

if($SESSION_ID=="")
   {
   $milieu .= 'Vous devez être connecté pour consulter cette page!'. "\n";
   }
      Else   
   {
   $milieu .= '<br>Num id :' . "$SESSION_ID\n";
   $milieu .= '<br>Nom :' . "$SESSION_USER\n";
   $milieu .= '<br>Texte </div>' . "\n";
        $milieu .= include ARTI_SYS_PATH . 'mespagesperso/essai.html';
   }

Ca fonctionne.
Par contre l'include affiche toujours en haut à gauche et le chiffre 1 (?) sous texte.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Lun 27 Fév 2012 10:40    Sujet du message: Répondre en citant

jalex a écrit:
Code:
if($SESSION_ID=="")
   {
   $milieu .= 'Vous devez être connecté pour consulter cette page!'. "\n";
   }
      Else   
   {
   $milieu .= '<br>Num id :' . "$SESSION_ID\n";
   $milieu .= '<br>Nom :' . "$SESSION_USER\n";
   $milieu .= '<br>Texte </div>' . "\n";
        $milieu .= include ARTI_SYS_PATH . 'mespagesperso/essai.html';
   }

Ca fonctionne.

OK, tu peux utiliser SESSION_ID, si c'est juste pour savoir si le visiteur est un membre connecté ou non. Par contre à la place de if($SESSION_ID==""), je mettrais plutôt :
Code:
if (empty($_SESSION['SESSION_ID']))


Citation:
Par contre l'include affiche toujours en haut à gauche et le chiffre 1 (?) sous texte.

Pour le 1 retourné, il faudrait savoir ce que fait essai.html ou quel est son contenu.

Autre solution qui fonctionne :
Code:
   $milieu .= '<br>Num id :' . "$SESSION_ID\n";
   $milieu .= '<br>Nom :' . "$SESSION_USER\n";
   $milieu .= '<br>Texte </div>' . "\n";
   ob_start();
   include ARTI_SYS_PATH . 'mespagesperso/essai.html';
   $milieu .= '<div style="float:left;" >' . ob_get_clean() . '</div>';

Le style étant à définir directement dans la balise <div> ou dans une classe dans general.css, en fonction du template utilisé.


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jalex



Inscrit le: 24 Fév 2012
Messages: 7

MessagePosté le: Mar 28 Fév 2012 0:09    Sujet du message: Répondre en citant

J'ai fait un essai vite fait (il est tard). Tout fonctionne! Je vais pouvoir travailler tout à l'heure.
Un Grand MERCI pour ton aide.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mar 28 Fév 2012 9:55    Sujet du message: Répondre en citant

A toutes fins utiles, voici une solution plus universelle, car elle permet de ne conserver que le contenu de la page se trouvant entre les balises <body> et </body>. Exemple avec le fichier index.html de la licence :
Code:
// Inclusion d'une page externe
ob_start();
include(ARTI_SYS_INT_PATH . 'licence/index.html');
$milieu .= preg_replace('%^.*<body[^>]*>(.*)</body>.*$%msi', "\n" . '<div style="float:left;">' . '$1' . '</div>' . "\n", ob_get_clean());
// ----------------------------



jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montpellier



Inscrit le: 02 Jan 2017
Messages: 2
Localisation: Montpellier

MessagePosté le: Lun 02 Jan 2017 16:37    Sujet du message: Répondre en citant

j'avais vu ces exemples http://www.artiloo.com/phpBB2/viewtopic.php?p=54409#54409
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Artiloo.com Index du Forum -> Les scripts des membres Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com