FonfonBlog, CMS Blog - version 1.0 Alpha

ViPHP
ViPHP | 5462 Messages

27 août 2010, 22:29

je retest :

EDIT 1 :
- t'as toujours pas réglé les droits, tout mettre en 0777
- erreur de path
dans ton index.php
$path =  dirname($_SERVER['DOCUMENT_ROOT'] . '/' . $_SERVER['SERVER_NAME']);
//il faut faire
$path =  dirname($_SERVER['DOCUMENT_ROOT'] . '/' . $_SERVER['SCRIPT_NAME']);
ta testé en sous dossier ?

si TOUT passe en premier par app/index.php tu peux tenter ca
$baseurl 	= "http://" . $_SERVER['SERVER_NAME'] . str_replace('/' . basename(dirname(__FILE__)), '', dirname($_SERVER['SCRIPT_NAME']));
$inc 		= dirname($_SERVER['DOCUMENT_ROOT'] . str_replace('/' . basename(dirname(__FILE__)), '', $_SERVER['SCRIPT_NAME']));
	
define("BASEURL", $baseurl);
define("INC", $inc);
mais dans ce que la c'est tout, ton verifinstall dois y passé aussi

Eléphant du PHP | 398 Messages

02 sept. 2010, 09:08

Je viens de voir que ça l était que sur les dossiers, il me semblait que ça l'avait fait sur les fichiers aussi.

Pour être bie daccord sur la commande, je fais :

Code : Tout sélectionner

sudo chmod -Rf 777 /home/balistik/fonfonblog/*.* (de tête...je n ai pas la syntae exacte)
Pour ce f*****g path, j ai juste testé
path =  dirname($_SERVER['DOCUMENT_ROOT'] . '/' . $_SERVER['SCRIPT_NAME']);
sur un pc local et ça ne fonctionnait pas, je retesterai sur le site de prod.

J ai testé (sur le même PC qu'au dessus) la deuxième solution pour INC et ça passait !! A voir si ça passe aussi en prod.
Concernant les fichiers verifInstall.php , impression.php et ajax_*.php, il serait peut-être préférable qu'ils aient chacun leur propres constantes INC et BASEURL. Je ne les fait pas passer par app/index.php car ces fichiers n'ont pas besoin du code HTML et tout le bazar de l'application.

A part ce soucis et le bug que j'ai relevé la semaine dernière (mais non corrigé pour le moment), pas de soucis bloquant ?
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 5462 Messages

02 sept. 2010, 12:16

oui du coup c'est pas fiable le $_SERVER['SCRIPT_NAME'], suivant les conf c'est différent :(

Eléphant du PHP | 398 Messages

02 sept. 2010, 13:41

oui du coup c'est pas fiable le $_SERVER['SCRIPT_NAME'], suivant les conf c'est différent :(
Tout là est le problème ^^, comment trouver la syntaxe passe-partout.

Avec le BASEURL de cette façon :
	$baseurl = "http://" . $_SERVER['SERVER_NAME'] . str_replace('/' . basename(dirname(__FILE__)), '', dirname($_SERVER['SCRIPT_NAME']));
Les liens se mettent en : http://monsite.fr//page.html. La solution que j'ai trouvé pour y remédier serait de rediriger la page http://monsite.fr/ vers http://monsite.fr/accueil.html avec le htaccess en écrivant comme ceci (ça ne doit pas être la bonne syntaxe):

Code : Tout sélectionner

RewriteCond %{HTTP_USER_AGENT} ^.* RewriteRule ^(.*) /accueil.html [R=301,L]
Google Chrome me sort :

Code : Tout sélectionner

Cette page Web présente une boucle de redirection. La page Web à l'adresse http://fonfonblog/accueil.html a déclenché trop de redirections. Pour résoudre le problème, effacez les cookies de ce site ou autorisez les cookies tiers. Si le problème persiste, il peut être dû à une mauvaise configuration du serveur et n'être aucunement lié à votre ordinateur.
Mozilla Firefox :

Code : Tout sélectionner

Redirection de page incorrecte Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
L'erreur doit surement venir de mon RewriteCond #-o
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 5462 Messages

02 sept. 2010, 13:59

faut surtout se demander pourquoi ta besoin de $baseurl ? et des autres constantes de path ? normalement c'est le role du index.php (pas app/index.php) de tout dispatcher

Eléphant du PHP | 398 Messages

02 sept. 2010, 14:05

faut surtout se demander pourquoi ta besoin de $baseurl ? et des autres constantes de path ? normalement c'est le role du index.php (pas app/index.php) de tout dispatcher
je préfère une balise de type
<script type="text/javascript" src="http://monsite.fr/app/webroot/javascript/jquery/jquery.js"></script>
que
<script type="text/javascript" src="/app/webroot/javascript/jquery/jquery.js"></script>
et ça aussi bien pour les liens, les images etc...
ça me semble plus logique que l'URL soit entière. Je contrôle mieux
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 5462 Messages

02 sept. 2010, 14:08

dans ce cas, il faut faire un champs de config avec cette variable la : http://monsite.fr
(éventuellement pré-remplis par $_SERVER['SERVER_NAME'])

Eléphant du PHP | 398 Messages

02 sept. 2010, 15:24

J ai réussi quelques tests pour enlever la constantes BASEURL. Pour ce, j ai réécris quelques constantes mais pour le moment ça fonctionne sur un poste local et que sur les pages passant par app/index.php.

Les constantes réécrites (avec anciennes et nouvelles écritures ) :
	//define("IMAGES", BASEURL . DS . WEBROOT . DS . "images" . DS);
	define("IMAGES", DS . "images" . DS);
	
	//Liste des CSS pour le site
	//define("CSS_DIR", BASEURL . DS . WEBROOT . DS . "css" . DS);
	define("CSS_DIR", DS . "css" . DS);

	//Dossier des CSS que demandent certains scripts
	//define("CSS_SCRIPT", BASEURL . DS . WEBROOT . DS . "css_script" . DS);
	define("CSS_SCRIPT",  DS . "css_script" . DS);
	
	//define("JS", BASEURL . DS . WEBROOT . DS . "javascript" . DS);
	define("JS", DS . "javascript" . DS);

	//define("FLASH", BASEURL . DS . WEBROOT . DS . "flash" . DS);
	define("FLASH", DS . "flash" . DS);

	//define("LIEN_BACKUP_BD", BASEURL . DS . WEBROOT . DS . "backup" . DS);
	define("LIEN_BACKUP_BD", DS . "backup" . DS);


Et pour être sur que ça pointe bien, sur le htaccess :

Code : Tout sélectionner

#reeecriture des dossier JS, CSS et images RewriteRule ^javascript/([a-zA-Z0-9-_.\/]+) /app/webroot/javascript/$1 [L] RewriteRule ^images/([a-zA-Z0-9-_.\/]+) /app/webroot/images/$1 [L] RewriteRule ^css/([a-zA-Z0-9-_.\/]+) /app/webroot/css/$1 [L] RewriteRule ^css_script/([a-zA-Z0-9-_.\/]+) /app/webroot/css_script/$1 [L] RewriteRule ^flash/([a-zA-Z0-9-_.\/]+) /app/webroot/flash/$1 [L] RewriteRule ^backup/([a-zA-Z0-9-_.\/]+) /app/webroot/backup/$1 [L]
Je vais tester sur le site de prod.

et ça donne ceci niveau rendu HTML :
<head>
...
<link href="/css/fonfonblog/body.css" rel="stylesheet" type="text/css" />
<link href="/css/fonfonblog/balises.css" rel="stylesheet" type="text/css" />
...

<!-- CSS des plugins JS -->
<link type="text/css" href="/css_script/j-ui-css/jquery-ui.custom.css" rel="stylesheet" />
<link type="text/css" href="/css_script/farbtastic.css" rel="stylesheet" />
<link type="text/css" href="/css_script/fancybox-1.3.1.css" rel="stylesheet" media="screen" />

<!-- appel des scripts Javascripts -->
<script type="text/javascript">
var baseurl = 'http://fonfonblog.raknam.fr';
</script>
<script type="text/javascript" src="/javascript/jquery/jquery.js"></script>
<script type="text/javascript" src="/javascript/jquery/pstrenght.js"></script> 
..
</head>
EDIT : ça à l'air de tourner :D
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 5462 Messages

02 sept. 2010, 15:48

je testerai :wink:

sinon pour bosser en E_ALL | E_STRICT
tu vas avoir une erreurs (pas de toi) dans la lib MIME_Type : dans MIME / Type / Type.php tu change la premiere ligne en ça
$_fileCmd = PEAR5::getStaticProperty('MIME_Type', 'fileCmd');

Eléphant du PHP | 398 Messages

02 sept. 2010, 15:51

je testerai :wink:

sinon pour bosser en E_ALL | E_STRICT
tu vas avoir une erreurs (pas de toi) dans la lib MIME_Type : dans MIME / Type / Type.php tu change la premiere ligne en ça
$_fileCmd = PEAR5::getStaticProperty('MIME_Type', 'fileCmd');
J'ai déjà modifié sur ma version locale, je n'ai ptete pas répercuté ce changement dans les versions de téléchargement.
Je refais un paquet tout beau tout propre ce soir !!

EDIT : Version 0.9.5 uploadé. J ai comme l'impression qu'en localhost ça va merdé...je sais pas si ça plantait vraiment ou si c est mon htacces qui merde pour les redirections :/.
Mais en tout cas, sur le serveur OVH, ça tourne
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 398 Messages

03 sept. 2010, 11:44

Pour régler des messages d'avertissement qui apparaissent lorsque le site est en version "dev",
il faut rajouter dans le fichier app/inc/ini.php, tout à la fin par exemple, la ligne :
date_default_timezone_set('Europe/Paris');
Le développement de l'authentification OpenId me bloquant, je vais mettre ça de coté et développer une mise à jour de l'interface graphique, en y ajoutant une colonne de gauche. Ainsi, les blocs menu, pourront etre placés soit à gauche, soit à droite, selon le choix de l'administrateur :).

ça ne devrait pas trop être compliqué à développer ^^.
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 398 Messages

06 sept. 2010, 16:54

J'ai modifié quelques trucs ce WE, et notamment ce que j'évoquais plus haut :

- La possibilité de placer les blocs sur une colonne menu à gauche ou à droite. Par conséquent : j 'ai rajouté une table, rajouté un champ à la table ffb_bloc_menu, et une clé étrangère sur ce nouveau champ, pointant sur la nouvelle table.
Le contenu de cette nouvelle table est simple : 1 - Gauche / 2 - Droite.

- Ayant plus de place, j ai aussi modifié le menu d'administration mais j aimerai y retravailler un peu plus dessus encore :).

- J ai commencé l'authentification OpenID en suivant ce tutoriel :
http://www.mti.epita.fr/blogs/2009/01/1 ... id-en-php/
C est pas facile car j essaie d'adapter à ma classe connexion mais je devrais m'en sortir :). Puis si j y arrive pas, je pète le code ici ^^
J ai changé de librairie PEAR pour ce, en utilisant celle fournie par JanRain

Donc voila, je up sur sourceforge les modifications ce soir, et je vous fournit un script SQL pour modifier la BD :).

EDIT :
Script MySQL en cas de MAJ de la version 0.10.1 et la MAJ sur sourceforge :).
--Creation de la table de position MySQL
create table ffb_r_position_gd(
   code_position_gd               integer not null AUTO_INCREMENT,
   lib_position_gd                text,
   primary key (code_position_gd)
);

-- Si BD est postgreSQl :
create table ffb_r_position_gd(
   code_position_gd              serial NOT NULL,
   lib_position_gd                text,
   primary key (code_position_gd)
);

--Modificarion de la sequence (uniquement pour MySQL)
ALTER TABLE ffb_r_position_gd AUTO_INCREMENT = 1;

--Insertion de la table
insert into ffb_r_position_gd(lib_position_gd) VALUES('Gauche');
insert into ffb_r_position_gd(lib_position_gd) VALUES('Droite');

--Ajout du champ ds la table blocs_menu
alter table ffb_blocmenu_page add column position integer;  

--Ajout de la clé étrangere
alter table ffb_blocmenu_page add constraint FK_Position_menu foreign key (position)
      references ffb_r_position_gd (code_position_gd) on delete restrict on update restrict; 

--Modification du champ position
alter table ffb_blocmenu_page set position = 1 where code_blocmenu = 1;
alter table ffb_blocmenu_page set position = 1 where code_blocmenu = 2;
alter table ffb_blocmenu_page set position = 2 where code_blocmenu = 3;
alter table ffb_blocmenu_page set position = 2 where code_blocmenu = 4;
alter table ffb_blocmenu_page set position = 2 where code_blocmenu = 5;
alter table ffb_blocmenu_page set position = 2 where code_blocmenu = 6;
alter table ffb_blocmenu_page set position = 2 where code_blocmenu = 7;
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 398 Messages

13 sept. 2010, 20:46

Bonjour,

Je n'ai pas beaucoup de temps à consacrer au développent de FonfonBlog en ce moment mais j'avance petit à petit :). J'ai profité d'une offre OVH (hebergement + DNS gratuit pendant 2 ans) pour avoir mon propre serveur.
La nouvelle adresse est : www.fonfonland.fr .
Je compte faire une fois l'appli finie, un site "vitrine" sur l'adresse citée ci-dessus et une démo online de l'appli sur par exemple demo.fonfonland.fr. Mais bon avant ça j'ai encore quelques bugs à régler et surtout debuuger la connexion OpenID.

Voici mon code actuellement :
function connexOpenid(){
		
		function __autoload($class){
			$split = split('_', $class);
			include_once OPENID . "Auth/OpenID/${split[2]}.php";
		}
		require_once(OPENID . 'Auth/OpenID/SReg.php');
		
		$store 		= new Auth_OpenID_FileStore(TMP);// new Auth_OpenID_FileStore(STORAGE);
		$consumer 	= new Auth_OpenID_Consumer($store);
		
		$authRequest = $consumer->begin($_POST['loginConnexionOpenId']);
		$sreg = Auth_OpenID_SRegRequest::build(array('login'), array('fullname', 'email'));
		$authRequest->addExtension($sreg);
		$redirectUrl = $authRequest->redirectURL(URL_OPENID, RETURN_URL_OPENID);
		if($redirectUrl != null){
			$this->connexionOpenIdVerif();
		}
		
	}
Si c est bon, je fais le lien avec les informations de l user :
	function connexionOpenIdVerif(){
		
		function __autoload($class){
			$split = split('_', $class);
			include_once OPENID . "Auth/OpenID/${split[2]}.php";
		}
		$store = new Auth_OpenID_FileStore(STORAGE);
		$consumer = new Auth_OpenID_Consumer($store);
		$result = $consumer->complete(RETURL_URL);
		if($result->status == Auth_OpenID_SUCCESS){
			$this->m_nAccessBD->connexion();
			$sRequete = 'SELECT 
							u.*, 
							l.lib_level 
						FROM ' . $this->m_nAccessBD->__getTable() . ' u 
						LEFT JOIN ' . PFX . 'r_type_levels l
						ON u.id_level = l.code_level
						WHERE u.UriOpenId = \''.$_POST['loginConnexionOpenId'].'\''; 
			$rResultReq = $this->m_nAccessBD->requete($sRequete);
			
						
			$this->m_nAccessBD->deconnexion();			
			$this->m_aLogin = array();
			$this->m_aLogin = $this->m_nAccessBD->recupDonnesRequete($rResultReq);
			$validation = $this->m_aLogin[0]->validation;
			$banissement= $this->m_aLogin[0]->bannissement;
			
			
			if(!empty($validation)){
				if($banissement == 2){
					switch($validation){
						case 1 : 
							$this->m_bUserOK = FALSE;
							$this->__destruct();
							$this->m_bMessage = '<div class="msg_err"><p>Votre inscription n\'a pas encore &eacute;t&eacute; valid&eacute;e par l\'administrateur.</p></div>';
						break;
						
						case 2 :
							$this->m_bUserOK = TRUE;
							$_SESSION['utilisateur']['id'] 				= $this->m_aLogin[0]->id_user;
							$_SESSION['utilisateur']['autorisation'] 	= $this->m_aLogin[0]->validation;
							$_SESSION['utilisateur']['code_level'] 		= $this->m_aLogin[0]->id_level;
							$_SESSION['utilisateur']['level'] 			= $this->m_aLogin[0]->lib_level;
							$_SESSION['utilisateur']['pseudo'] 			= $this->m_aLogin[0]->pseudo;
							$_SESSION['utilisateur']['mail'] 			= $this->m_aLogin[0]->mail;
							$_SESSION['utilisateur']['avatar'] 			= $this->m_aLogin[0]->url_avatar;
							//$_SESSION['connex']					= urlencode(serialize($this));
							$this->m_bMessage = '<div class="msg_ok"><p>Vous &ecirc;tes maintenant connect&eacute; avec votre identifiant OpenID</p></div>';
							$this->m_nAccessBD->gestion_log(date("d/m/Y H:i", time()) . ' Connexion OpenId utilisateur de ' . $this->m_aLogin[0]->pseudo);
					}
				}elseif($banissement == 1){
					$this->m_bUserOK = FALSE;
					$this->__destruct();
					$this->m_bMessage = '<div class="msg_err"><p>Vous avez &eacute;t&eacute; banni par l\'administrateur.</p></div>';														
				}
			}
			
		}else{
			$this->m_bMessage = '<div class="msg_err"><p>La connexion OpenID a &eacute;chou&eacutee.</p></div>';
		}
	}

Mais ça bug à ce niveau :
Fatal error: Call to a member function toMessage() on a non-object in /homez.379/fonfonla/www/app/libraries/openid-php-janrain/Auth/OpenID/Consumer.php on line 1773
Soit dans la premiere methode quand je fais appel à : $authRequest->addExtension($sreg);

Je captes pas là j'avoue :/
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 5462 Messages

13 sept. 2010, 21:06

c'est du php 4 la lib non ?

Eléphant du PHP | 398 Messages

13 sept. 2010, 21:19

Non, j ai changé de librairie, j'utilise celle édité par JanRain à cette adresse : http://www.janrain.com/openid-enabled ou http://github.com/openid/php-openid/downloads
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe