Page 1 sur 16

FonfonBlog, CMS Blog - version 1.0 Alpha

Posté : 11 août 2010, 16:04
par BaLiSTiK
Bonjour

Celà fait maintenant plus de 13 mois que je réalise mon projet de CMS Blog et j'arrive enfin au terme.
Je vous présente une version Bêta, finie à 99% car je désirerai avoir des premiers retours de tests avant de proposer mon CMS en téléchargement.

Petite présentation :
FonfonBlog est un CMS Blog qui doit permettre à toute personne de pouvoir réaliser son blog, en s'appuyer sur mon support.
Il est développé en PHP 5 (avec utilisation de 3/4 librairies PEAR) et fonctionne aussi bien sous MySQL que PostgreSQL. J'y ai incorporé du javascript s'appuyant sur le framework JQuery 1.4.1.
Par contre, il ne fonctionne pas sur les espaces persos de Free à cause de l'URL rewritting

Image
Bannière que j'ai réalisé sous Inkscape (ma première en plus \0/, je découvrais le logiciel et le dessin vectoriel)

Installation :
L'installation est la première chose à faire lorsque l'application est déployée sur un serveur. Elle se réalise en 4 parties (soit remplir 4 formulaires)
- 1 : Configuration de la connexion à la base de données
- 2 : Création du compte administrateur
- 3 : Paramètres divers du blog (titre du site, encodage, validation des inscriptions...etc)
- 4 : Configuration de l'envoie de mail (fonction PHP mail(), SMTP...)

Une fois l'installation faite, découvrons le CMS

Voici une liste non exhaustive des fonctionnalités développées :
* Point de vue administration
- Gestion des articles et commentaires (rédaction, modification, suppression)
- Gestion des utilisateurs (inscription, valisation inscription, suppression, modification d'accès, bannissement...)
- Gestion interface graphique : Choix du CSS (un CSS par défaut est appliqué), choix de l'aspect de fond, upload d'un style, modification des CSS
- Gestion des "blocs *" : choix d'affichage ou pas, ordre d'apparition
* liste des blocs développés : cloud-tag, archives, calendrier, derniers articles, texte de présentation du site...
(*) un bloc est un élément apparaissant sur le menu de droite par defaut.
- Gestion des logs
- Backup de la base de données
- Modification des paramètres du site
- Rédaction CGU et Mentions légales
- Ajout/Modification/Suppression catégories, sites "amis"
- Affichage de lignes de codes colorées syntaxiquement

Utilisateur :
- Ajout de commentaires
- Flux RSS
- Affichage des images des articles en lightbox
- Inscription
- Prévention de commentaires "non désiré"
- Contact administrateur
- Impression d'articles
- Connexion login/mdp ou connexion OpenID
- Partage d'article (impression, publication facebook, envoie par mail)
- Accessibilité avec javascript désactivé

Autre fonctionnalités techniques
- Librairie PEAR
- Couche model multi-SGBD
- Authentification OpenID
- Obfuscation scripts javascript

etc...Il y a encore beaucoup de fonctionnalités que je souhaites ajouter mais que je n'ai pas le temps de faire ou alors pas encore les compétences
Donc voila :) !! C est le premier gros projet que je diriges moi même de A à Z, j'estime que c'est loin d'être parfait, mais je l'ai fait avec le cœur et l'envie de proposer quelque chose de simple et intuitif :).

Si vous avez envie de le tester, de remonter des bugs, de proposer des modifications, donner votre avis (constructif si possible ^^), je vous en prie, et n'hésiter pas à me contacter.
Je souhaiterai aussi qu'un développeurs CSS s'y intéresse pour créer des designs à l'application, afin de voir ce que ça peut donner avec une interface. différente.

Pour voir ce que ça donne sur un site déjà monté :http://www.fonfonland.fr

Merci à vous pour la lecture et pour les retours ^^.

Téléchargement de l'application sur : https://sourceforge.net/projects/fonfonblog/files/
Version en court :1.0 Alpha

Téléchargement par svn :
PS : pour me contacter perso : par MP ou par la page contact sur http://blog.fonfonland.fr

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 16:09
par stealth35
hello, je viens de téléchargé, mais les images marche pas il cherche dans
http://localhost/app/webroot/css/fonfonblog/body.css

alors que l'appli est dans http://localhost/fonfonblog

EDIT : pareil pour lien d'install il cherche http://localhost/installation-1-creatio ... nnees.html

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 17:24
par BaLiSTiK
Pour le CSS je sais pourquoi >_<, c'est un oublie de ma part, désolé :(
alors il faut remplacer dans le fichier css.ini, la valeur "fonfonblog" par "default".

Sinon peut tu m'en dire plus pour l'erreur d'installation ? j ai fais deux installation : une en locale sur mon pc de travail et une sur le serveur sur lequelle j heberge mon site et je n ai pas eu de soucis.

EDIT : Je re-up l'appli

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 17:27
par stealth35
Pour le CSS je sais pourquoi >_<, c'est un oublie de ma part, désolé :(
alors il faut remplacer dans le fichier css.ini, la valeur "fonfonblog" par "default".

Sinon peut tu m'en dire plus pour l'erreur d'installation ? j ai fais deux installation : une en locale sur mon pc de travail et une sur le serveur sur lequelle j heberge mon site et je n ai pas eu de soucis.
j'ai juste mis le dossier fonfonblog sans mon www, dans ton constantes_sites.php y'a
define("BASEURL","http://" . $_SERVER['SERVER_NAME']);
ca voudrais dire que le index.php est forcement a la base du www

EDIT 1 :j'ai bidouiller vite fait en mettant
define("BASEURL","http://" . $_SERVER['SERVER_NAME'] . "/fonfonblog");
ducoup c'est bon

EDIT 2 : je continu dans l'install mais la il veux pas me faire les require puisque ta mis $_SERVER['DOCUMENT_ROOT'] a chaque fois :wink:

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 17:34
par BaLiSTiK
Pas forcement, ça doit dépendre de la configuration des serveurs.
Car je suis pas hébergé sur la racine du serveur, mon pote m a fait un sous-domaine sur son serveur, avec un dossier fonfonblog.raknam.fr, dans lequel mon appli est basée.
Mais c est déjà un bon point si ça marche chez toi :)

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 17:35
par stealth35
Pas forcement, ça doit dépendre de la configuration des serveurs.
Car je suis pas hébergé sur la racine du serveur, mon pote m a fait un sous-domaine sur son serveur, avec un dossier fonfonblog.raknam.fr, dans lequel mon appli est basée.
Mais c est déjà un bon point si ça marche chez toi :)

sous domaine != a sous dossier :wink:

dans ce cas faut préciser que le l'appli dois être au niveau du root apache

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 19:00
par stealth35
niveau compatibilité la version 5.3 est vraiment nécessaire ?

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 19:18
par BaLiSTiK
Non, ça fonctionne avec la 5.2 aussi :). Mais avec 5.1 ptete quelques fonctions qui ne passerons pas.

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 19:24
par stealth35
Non, ça fonctionne avec la 5.2 aussi :). Mais avec 5.1 ptete quelques fonctions qui ne passerons pas.
dac comme c'etait marquer 5.3 je me demandais :wink:

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 20:13
par savageman
On peut avoir quelques screens du back office svp ?

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 20:42
par BaLiSTiK
Je viens d'en faire vite fait :
http://fonfonland.free.fr/screens-0.9-Beta/

Si vous en voulez sur une section plus précise, j'en referai avec plaisir :).

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 23:01
par stealth35
je continu au niveau de l'install, j'ai changé dans le verfiinstall.php le $_SERVER par INC ca marche mieux, par contre impossible de creer la base (alors qu'il dis que c'est ok)
dans ton code tu fais un shell_exec pour l'install, mais pour ceux qui non pas mysql dans leur PATH ou qui on un serveur distant c'est foutu :(
tu pars du principe que la commande est lancer donc c'est bon mais y'a pa de verif derrière

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 23:42
par jojolapine
Hello,
Alors je laisse galérer les autres pour l'installation, je reviendrais quand ça sera régler :)
Pour ce que j'en ai vu sur ton site, c'est bien finit, et assez propre dans l'ensemble :)

Deux trois choses en passant très rapidement:
- http://fonfonblog.raknam.fr/rss.xml est vide
- Il ya beaucoup (beaucoup) de fichiers css et js dont certains ne servent pas toujours... Donc il serait bien de faire des includes au besoin. Et tant qu'on y est, pourquoi ne pas concaténer (et minifier) les css et les js en un seul? Pour une question de performance.
- Pourquoi le div calendrier est-il caché?
- Un peu de sémantique ne ferait pas de mal :)
par exemple les listes dans le menu de droite:
<div class="blocMenu" id="categorie"
		 style="display : block;"		>
		<div class="titreBloc">Cat&eacute;gories</div>
			<p>
						<img src="http://fonfonblog.raknam.fr/app/webroot/images/right.gif" alt="puce" />&nbsp;

						<a href="http://fonfonblog.raknam.fr/1/actualite.html">Actualit&eacute;</a></p><p>
						<img src="http://fonfonblog.raknam.fr/app/webroot/images/right.gif" alt="puce" />&nbsp;
						<a href="http://fonfonblog.raknam.fr/17/debug.html">D&eacute;bug</a></p><p>
						<img src="http://fonfonblog.raknam.fr/app/webroot/images/right.gif" alt="puce" />&nbsp;
						<a href="http://fonfonblog.raknam.fr/7/internet.html">Internet</a></p><p>
						<img src="http://fonfonblog.raknam.fr/app/webroot/images/right.gif" alt="puce" />&nbsp;
						<a href="http://fonfonblog.raknam.fr/19/projet.html">Projet</a></p><p>

						<img src="http://fonfonblog.raknam.fr/app/webroot/images/right.gif" alt="puce" />&nbsp;
						<a href="http://fonfonblog.raknam.fr/18/tutoriel.html">Tutoriel</a></p>	</div>
ça serait pas mieux avec un une liste <ul> et un css adapté (list-style-image)?
- ah au passage, l'effet sur le bandeau du haut s'affole très vite...
- autre détail assez important, il y a pas mal de javascript, c'est pas un mal, sauf s'il est vraiment trop obstrusif... (après ça c'est plutôt les gouts et les couleurs...)
donc ceci:
<div onmouseout="$(this).fadeTo('slow',0.7,function(){ $(this).css('opacity', '0.7'); });" onmouseover="$(this).fadeTo('slow',1, function(){ $(this).css('opacity', '1'); });" id="bandeauHead">
pourrais devenir:
<div id="bandeauHead">
associé au js suivant dans un ficheir à part:

Code : Tout sélectionner

$('#bandeauHead').hover(function(){ $(this).fadeTo('slow',0.7,function(){ $(this).css('opacity', '0.7'); }); }, function(){ $(this).fadeTo('slow',1, function(){ $(this).css('opacity', '1'); }); });
(en passant c'est pas redondant de changer la propriété css opacity dans le callback?)
- Et je viens de voir qu'il y a plein de textes non-affichés, par exemple le div#preInstallation ...

Bon j'arrête là pour mon fouinage!

J'ai beaucoup critiqué, mais le projet semble intéressant malgré tout ;)

Bonne continuation!

Re: FonfonBlog, CMS Blog

Posté : 11 août 2010, 23:51
par stealth35
bon j'ai réussi l'install ouf, le sql voulais pas ce lancer j'ai du le faire a la main, ca coinçait aussi au niveau du config.ini qui ne pouvais pas être modifiable j'ai du basculer les droit pour qu'il l'écrive

tu fais
$ini = new ini(FILEDATABASE, $text);
$ini->ajouter_array($dataBaseIni);
$ini->ecrire();
$this->creationOk = true;
donc pour toi par default c'est ok alors que plus haut ta bien
echo is_writable(FILEDATABASE);
sauf que c'est un booleen et echo false; ca fait rien un petit var_dump fais l'affaire

J'ai regardé ta fonction verifLoginBD de l'appControl, tu va chercher tout les login de la base pour faire des boucles, foreach , explode et une comparaison avec un in_array
autant faire juste une requete pour savoir si le pseudo est dans la base, si oui il est pas dispo sinon ok
SELECT 1 FROM `ffb_users` WHERE pseudo = 'blabla'
EDIT 1 : pareil pour verifTag


Au niveau de la convention de code c'est un peu bizarre, y'a du mélange de php 4 et de php 5, des fois y'a les public/private des fois non, des fois y'a var des fois non, les non de classe aussi majascule ou pas, pareil pour les fonction, tu met des underscore ou double unscore pour certaine fonction et pas d'autre.
Au niveau de ca (des underscores) des 1 seul pour tout ce qui est private/protected, biensur rien n'est obligatoire et le code marche quand meme, mais ca permet une coérence au niveau du code et c'est plus simple a la lecture :wink:


EDIT 2 : un peu bizarre ta méthode de protéger des valeurs mysql avec json_encode non ?
EDIT 3 : pourl es date en français utilise strftime ca sera plus simple (et tu pourrais avoir d'autre langue du coup)
EDIT 4 : c'est pas un rss mais un atom que t'as fais :wink:, et l'encoding est diffèrent de celui du site
EDIT 5 : t'es sur pour IIS, tu le gère comment ton rewriting ?
EDIT 6 : c'est marrant je vois ca partout au niveau des try..catch et des exception, mais ca sert a rien de crréer un bloque si c'est pour afficher l'erreur dedans, le try...catch dois se faire un niveau de l'appelle de la fonction/méthode,

faire :
class Foo
{
    public static function bar($bool)
    {
        try
        {
            if($bool)
            {
                var_dump($bool);
            }
            else
            {
                throw new Exception('erreur');
            }
        }
        catch(Exception $e)
        {
            echo $e->getMessage();
        }
    }
}

Foo::bar(false);
reviens a faire :
class Foo
{
    public static function bar($bool)
    {
        if($bool)
        {
            var_dump($bool);
        }
        else
        {
            echo 'erreur';
        }        
    }
}

Foo::bar(false);
c'est comme ca que ca marche :wink: :
class Foo
{
    public static function bar($bool)
    {
        if($bool)
        {
            var_dump($bool);
        }
        else
        {
            throw new Exception('erreur');
        }        
    }
}

try
{
	Foo::bar(false);
}
catch(Exception $e)
{
	echo $e->getMessage();
}

EDIT 7 : pour ta class appControl (voir EDIT 1) tu pourrais faire :

verifLoginBD
public function verifLoginBD($loginSend)
{ 		

    $this->m_nAccesBD->connexion();
   
    $login     = $this->m_nAccesBD->prepareInsertionDonnees($loginSend);
    $sRequete  = "SELECT 1 FROM ffb_users WHERE pseudo='$login'";
    $resultSql = $this->m_nAccesBD->requete($sRequete);		
   
    $this->m_nAccesBD->deconnexion(); 
 		
    return $resultSql;
}

verifTag
public function verifTag($tagSend)
{			
    $this->m_nAccesBD->connexion();

    $tag = $this->m_nAccesBD->prepareInsertionDonnees($tagSend);
	
    $sRequete   = "SELECT id_tag FROM ffb_tags WHERE nom_tag='$tag'";
    $resultSql  = $this->m_nAccesBD->requete($sRequete);
    $tag 	= $this->m_nAccesBD->recupDonnesRequete($resultSql);

    $this->m_nAccesBD->deconnexion(); 
 		
    if($tag)
    {
        return $tag[0]->id_tag;
    }
    else
    {
        return false;
    }
}

verifSyntaxeMail
public function verifSyntaxeMail($mailSend)
{ 		
    $valid = filter_var($mailSend, FILTER_VALIDATE_EMAIL);

    //checkdnsrr marche sous windows qu'a partir de php 5.3, si c'est une version en dessous seul l'intégrité du mail est vérifiée
    if($valid && !((substr(PHP_OS, 0, 3) == 'WIN') && (version_compare(PHP_VERSION, '5.3.0') === -1)))
    {
        $tab   = explode("@",$mail); //On recupere le DNS
        $check = checkdnsrr($tab[1],"MX"); //on le verifie
        return $check;
    }
    else
    {
        return $valid;
    }
}
je regarderai plus en profondeur le reste, en espérant t'aider :wink:

Re: FonfonBlog, CMS Blog

Posté : 12 août 2010, 09:05
par BaLiSTiK
Merci pour vos retours, je regarderai plus en détail dans la journée vos remarques !!

Le script de creation pour MySQL m a causé pas mal de soucis, car à la base, j ai énormément travaillé sous postgreSQL et j'ai eu la connerie de penser que ça fonctionnait pareil, donc il y a quelque chose à revoir la dessus c'est clair.

@jojolapine : le rss est pas vraiment fini faut dire ^^. Mais je m'étonne qu'il soit vide car je le lit sans problème sur mon profil Netvibes. En ce qui concerne les CSS, il est vrai que je pourrai réduire, c'est dailleurs à optimiser.