Créer un CMS

WRInaute accro
Et encore une question idiote :mrgreen:

Pour les sites Internet, je travaille de deux manières très différentes: soit en simple HTML, soit en développement pur PHP (et ca prend beaucoup de temps), y compris en méleangeant les deux.J'ai déjà des modules développés pour mes sites qui fonctionnent: news, reportages photo, annuaire, calendrier, petites annonces, ... Ca marche bien pour des gros développements mais très long à mettre en place pour des petits sites où l'utilisatezur doit un peu mettre à jour du contenu (pour l'instant, j'utilise trois développements de news suivant la structure du site). C'est pas la première fois que j'analyse des CMS au niveau fonctionalités, référencement, .... mais pour chacun ca& me parait trop statique au niveau navigation pour pouvoir le cas échéant gérer chaque page (un de mes site reprend un espèce de développement qui me permet de tout changer dans une liste page par page, un tests publié sur WRI en septembre 2009, mais c'est un peu complexe pour un néophite.
Ce que je pense faire, c'est un petit CMS tout simple utilisant effectivement une base de donnée MySQL, sans trop de relations pour permettre à un programmeur du dimanche de développer aussi ses modules.
Je cherche pas d'aides de développement, juste des idées de programmeurs et d'utilisateurs

PS: si un de vous me parle de Joomla, Wordpress, Xoops, .... lui en claque une (virtuelle :mrgreen: ) et lui donne quelques exemples sur mon site principal ybet.be qu'il ne saura PAS faire avec un CMS standard (là il y a de l'html et de la programmation spécifique).

C'est surtout d'autres point de vue qui m'intéresse.

Première question, le cahier des charges premier abord.

1. Créer une partie standard sans modules spécifiques, genre petit site de présentation avec quelques pages qui puissent être facilement mises en lignes par un webmaster (donc pas le client).
2. Insérer les modules additionnels (déjà développés) en standard sans obligation de les utiliser (en gros, case cochée ou non par le créateur du site, donc pas le client).
3. Permettre à un utilisateur standard de modifier les parties hearder - footer - quelques parties de navigation (sans trop) au niveau contenu, couleur, logo et images. Je cherche pas la difficultée:
. pas de CSS, rien que des choix de couleurs dans les tables (un utilisateur qui connait pas les titre1 sur WORD ou Writer va avoir du mal à se taper dans un éditeur de texte). -> structure en tableaux imbriqués.
. pas de javascript (je fais aussi du référencement et l'utilise dans des formulaires internes uniquement).
. pour le reste, j'ai déjà quasiment tout de développé en interne pour les images, ...

Dans le cas de chacun qu'est ce qui pourrait être ajouté ou discuté (pas le CSS, ca fonctionne très bien en base de donnée et en table, merci) pour permettre à un webmaster de mettre en ligne rapidement en ligne de quelques pages de présentation et permettre aussi au client de modifier certains contenus, navigations, images de navigation et images internes ... sans entrer dans le design.

Deuxième partie, la structure
C'est bien là le premier défaut des CMS (quelqu'ils soient) ...
Une page reprend un header, footer, une partie gauche et droite plus le contenu (normalement au milieu). Normalement, je vous apprend rien :roll:
Pourtant, suivant le gout du client, on met seulement la navigation à gauche, à droite ou les deux (et moi j'aimerais bien développer un truc qui permette de choisir si la gauche et la droite sont présents sur chaque page .... (je sais je suis un peu cinglé).
La question suivante: une table reprenant les différentes possibilités (plusieurs headers sont possibles par exemple) dans les enregistrements, une table permettant pour chaque page de sélectionner par défaut un espèce de cavena et aussi de paramétrer individuellement dans une liste via une table liée ... (déjà développé pour un site). .... C'est déjà au-dessus de n'importe quel CMS du marché OU de reprendre (dans une table mais pas forcément) une liste des possibilités pour chaque.
- la première possibilité est probablement plus facile à mettre en cache, la deuxième permet éventuellement de paramétrer sans formulaire, directement dans la base de donnée.
Mais en plus (pour les spécialistes de vitesse). Selon les sites, j'ai développé deux techniques: 1 la table reprend l'adresse d'une page html qui reprend le contenu (sans <header> donc transparente pour les moteurs et visiteurs), la deuxième est de reprendre en champs le contenu (sauf images en liens, mais c'est le choix discutable peut-être que j'ai fait pour un site il y a trois ans). L'avantage du premier (contenu externe à la table) est la vitesse et le défaut, la sauvegarde doit aussi reprendre les pages html (ce qui est pas forcément toujours un avantage en cas de restauration pour la vitesse mais un avantage), la deuxième est plus rapide en sauvegarde et restauration mais reprend toujours les images en plus. La troisième (images dans la table fait vite grossir la base de donnée.


C'est déjà pas mal comme demande pour ce soir, c'est juste des conseils pour voire quels choix je vais faire. De toute façon, il sera repris sur un site (dahut.be) comme le calendrier (-http://www.dahut.be/aide/calendrier.php), utilisé sur -http://www.darut.be qui reprend aussi un annuaire, un agenda d'activités et des petites annonces (en plus de toute la gestion des mots et adresse IP interdits ou remplacés, des news avec commentaires, (ybet.be l'utilise mais un autre aussi, un peu modifié) et présentation de produits (pas de vente en ligne pour l'instant sur de nouveau le site ybet) ....

J'ai pas tout, c'est probablement développé amateur en plus(pourtant, on est pas beaucoup à savoir ce qui est dans la partie admin des différents modules) mais ca fonctionne. Mes questions semblent peut-être "amateur" mais c'est juste l'idée qu'il soit utilisable pour d'autres qui m'intéresse (en développant réellement utilisateur "bête" et référencement) et rassembler quelques uns de mes développements tous bords.

Merci d'avance
 
WRInaute accro
vitalizo a dit:
Pfff, ya WP pour ça....
:D


WP (comme les autres) n'est pas assez vicieux pour moi :wink: Rien que le petit développement sur -www.materiel-informatique.be sur les parties navigations modifiables pages par pages n'existe dans aucun CMS .... En plus que de pouvoir sélectionner page par page de contenu une colonne de navigation ou deux :mrgreen:
C'est tout l'intérêt d'un propre développement, faire des trucs impossible à réaliser pour un CMS standard (et les développements, c'est aussi mon petit plus en référencement)

En plus, j'aime pas ces trucs tout fait qu'on peut à peine bricoler sans qu'il explose.

Tiens un petit calendrier suivi par les moteurs de recherche, tout en php :mrgreen: http://www.dahut.be/aide/calendrier.php.
 
WRInaute accro
Il y a effectivement wordpress pour ton projet. Pourquoi réinventer la roue ?
(je n'ai pas lu le message d'origine, trop long).
 
WRInaute accro
Sujet très intéressant +1 reco.

Tu as regardé au niveau des frameworks ? Il ne faut pas réinventer toute la roue à chaque fois ;)
 
WRInaute accro
spout a dit:
Sujet très intéressant +1 reco.

Tu as regardé au niveau des frameworks ? Il ne faut pas réinventer toute la roue à chaque fois ;)

Quels frameworks me conseiilerait tu d'essayer?

PS: j'ai déjà réinventé la roue sur Internet :D Pour l'instant, j'utilise mon propre module de news (avec ou sans commentaires possibles en plus :oops: ), mon propre annuaire, mon propre modules d'agenda d'activités et petites annonces, mon propre module de présentation des produits du magasin (avec une vraie gestion commerciale derrière en plus :mrgreen: ).

Il y a qu'un forum que j'ai pas encore réellement développé (c'est prévu pour l'année prochaine pour remplacé celui que j'utilise qui n'est plus suivi)
 
WRInaute passionné
je parle pour la structure :
Je suis étonné que personne ne t'ai déjà parlé des CCK (content construction kit).
Et là, je sors la carte Drupal et celle de Joomla (et ouais, ça vous la coupe !)

Que ceux qui déploient du CCK pour Drupal en parlent. De toute façon, c'est quasiment natif chez Drupal :)

Moi je peux parler des CCK pour Joomla. Dans ton cas, je te conseille d'aller voir du côté de jSeBlod et de Flexicontent, 2 composants de CCK.
En plus, il y a une gestion de worflow assez intéressante.
Je te laisse chercher, car cela peut être très intéressant pour toi.
 
WRInaute accro
Joomla est de toute façon installé en interne (vais jeté un coup d'oeil) . cake, suis en train de lire .. le mode d'emploi :oops:

D'un autre coté, j'ai déjà toute une panoplie de trucs développés qui fonctionnent avec des paramétrages plutôt personnalisables ... mais avec un gros travail de rassemblement et de compilation. Pas facile de choisir.

Finalement, je vais probablement suivre mon idée, développer un truc personnel mais après avoir essayé les autres pistes, toutes les idées sont toujours bonnes à prendre (pas réinventer la roue, se baser sur des idées existantes).

De toute façon, ca risque d'être comme d'autres de mes développements: faire du contenu sur l'un ou l'autre de mes sites :mrgreen: (suis assez surpris des utilisateurs externes qui utilisent mon petit développement de news, faudrait juste donner un peu plus d'explications pour le calendrier php je pense) Mais suis pas idiot non plus, les développements personnels prennent beaucoup de temps.

Déjà merci pour les réponses, je vais de toute façon explorer toutes les pistes: utiliser (ou développer) un truc à mis chemin entre un frameworks et un développement personnel, à mis chemin entre un CMS rigide et un site en html complètement personnalisable.

Si vous avez d'autres idées
Patrick
 
WRInaute passionné
mouais.
Au minimum, tu devrais utiliser un framework. Pas à mi chemin entre un dev perso et un framework (car tu réinventes ENCORE la roue si tu ne te bases ni sur un framework, ni sur un CMF, ni sur un CMS)

A la rigueur entre un framework et un CMS, pourquoi pas.

Mais le dev personnel, c'est complètement inutile, chronophage et ... limitées *

lolo

* car 1 seul homme ne peut pas faire le travail de 1000 personnes, par contre 1000 personnes peuvent faire le travail d'1 seul homme et évidemment 1000 personnes peuvent faire le travail de 1000 personnes :) *
** un peu d'humour pour souligner que le travail communautaire open source existant, ben c'est pas de la merde en boite quand même !!!
 
WRInaute impliqué
regardes chez moi ( site de mon profil ) que ce soit la partie publication d'articles, annuaire, forum, gestion des membres, galerie photos etc ... il n'y a pas une ligne de code qui soit reprise d'un cms standard le dev est 100% cms perso.

le gros avantage c'est de faire du lignt et bien optimisé pour du mutu ( je suis monté jusqu'a 10.000 vu 50.000 pages / jour sur un 240 plan avec ca ) et aussi bien optimisé pour les moteurs.

le principe que j'adopte systématiquement, c'est justement de ne pas faire de footer header etc ... mais de générer plusieurs variables contenant le code html du contenu, du menu, de la zone membre etc ... puis en fin de traitement d'inclure une page html qui fait la présentation et qui elle meme réinclu les variable avec un <?php echo $variable; ?> a l'endroit désiré : avec ca tu dispose vraiment chaque élément ou tu veux sans les contraintes d'un cms classique.
 
WRInaute discret
JE suis un peu dans la même problématique, a savoir "l'industrialisation" de la création de site...

Après avoir beaucoup bossé avec Zend Framework, j'ai abandonné l'idée pour mon projet... souvant pour un site "vitine 2.0" c'est beaucoup trop lourd.

Du coup je suis parti sur mes classes à moi :
-> une classe SQL
-> une classe upload / redimentionnement image
-> une classe analytics (avec ajout de variable, evenement...)
-> une classe template
....

du coup mes "extensions" sont rapides à mettre en oeuvre, et pour un nouveau site, on configure le fichier de conf, on prepare le template et voila...

bon tout n'est pas finit, mais pour le moment je suis assez satisfait. De plus avec les API webmastertools et google analytics, on peut faire un backend sympa pour le client (à qui on vend un presta referencement...) avec l'évolution des positions des mot clés and co

Par contre pour certains clients, un wordpress bien configuré est largement suffisant, mais j'aime moins cette partie du job...
 
WRInaute accro
ludoanimation a dit:
mais de générer plusieurs variables contenant le code html du contenu, du menu, de la zone membre etc ... puis en fin de traitement d'inclure une page html qui fait la présentation et qui elle meme réinclu les variable avec un <?php echo $variable; ?> a l'endroit désiré : avec ca tu dispose vraiment chaque élément ou tu veux sans les contraintes d'un cms classique.
Pas bête les contenus en html :wink: c'est une des solution (moins complète) que j'avais envisagé plus haut. Ca augmente la vitesse de chargement (mais c'est plus complexe à sauvegarder le site). Sauf que là, c'est la page globale qui est plus difficile à paramétrer en "automatique", Sur materiel-informatique.be, j'utilise déjà cette technique avec une table qui reprend page par page les différentes navigation dans une table. Et c'est ce que j'aimerais bien utiliser, un truc qui fait le maximum en automatique tout en restant à la fois "très ouvert" pour des modifs et rapide à mettre en place.

loran750 a dit:
Mais le dev personnel, c'est complètement inutile, chronophage et ... limitées *

Il y a beaucoup plus de site qu'on croit qui sont complètement développés (le site de Blman est complètement développé maison mais faut le savoir http://www.michenaud.com/ connais pas l'administration mais s'il a fait le même genre que moi, ca doit casser sec les solutions commerce en ligne genre modules complémentaires, OScommerce et autres ).
Inutile, pas forcément.
Chronophage, ca oui (même plutôt 10 X qu'une ...) Limitées ... c'est très discutable, ... dirait plutôt
l'inverse.

Mais par expérience, je sais que dès qu'ont se met à ce genre de projet, faut pas réellement compter les heures (de nuit comme de jour d'ailleurs), ...
 
WRInaute accro
Je viens de faire un petit exemple vite fait basé sur le blog tutorial à ma sauce:
http://book.cakephp.org/view/1528/Blog

Un model:
app/models/post.php:
Code:
<?php
class Post extends AppModel {
var $name = 'Post';
}
?>

Le controller:
app/controllers/posts_controller.php:
Code:
<?php
class PostsController extends AppController {
	var $name = 'Posts';
	var $paginate = array('limit' => 10, 'order' => array('Post.created' => 'desc'));
	
	function index() {
		$this->set('Posts', $this->paginate('Post'));
	}
	
	function form($id = 0){
		$this->set('id', $id);
		if(empty($this->data)){
			$this->data = $this->Post->read(null, $id);
		}
		else{
			if($this->Post->save($this->data)) {
				$this->Session->setFlash('Votre post à été mis à jour.');
				$this->redirect(array('action' => 'index'));
			}
		}
	}
	
	function view($id){
		$this->set('Post', $this->Post->read(null, $id));
	}
}
?>

Les views:

app/views/posts/index.ctp (listing):
Code:
<ul>
<?php 
foreach($Posts as $Post){
	echo '<li>'.$Post['Post']['title'].'</li>';
}
?>
</ul>

app/views/posts/form.ctp (ajout/édition):
Code:
<?php $form->create('Post');?>
<?php if(!empty($id)):?>
<?php $form->hidden('Post.id', array('value' => $id));?>
<?php endif;?>
<?php $form->input('Post.title', array('label' => 'Titre', 'size' => 40));?>
<?php $form->input('Post.description', array('label' => 'Description', 'rows' => 4, 'cols' => 30));?>
<?php $form->end('Submit');?>

app/views/posts/view.ctp (fiche):
Code:
<?php echo $Post['Post']['title'];?>

Voilà comment c'est simple avec CakePHP :D

Il faut un temps d'adaptation (Convention over configuration), mais après je t'assure que le gain de temps est énorme.

Après ce framework, le seul truc vers où je pourrais aller c'est Django ou Ruby on Rails.
 
WRInaute passionné
Ybet : tu dis bien "faut pas réellement compter les heures (de nuit comme de jour d'ailleurs)". C'est donc bien un projet dingue. En entreprise, on te dirait niet, il n'y aurait pas de budget pour que tu te fasses plaisir :p

merci spout, espérons que ça motive Ybet à adopter un framework :) (au minimum !)
 
WRInaute accro
loran750 a dit:
Ybet : tu dis bien "faut pas réellement compter les heures (de nuit comme de jour d'ailleurs)". C'est donc bien un projet dingue. En entreprise, on te dirait niet, il n'y aurait pas de budget pour que tu te fasses plaisir :p

merci spout, espérons que ça motive Ybet à adopter un framework :) (au minimum !)

Je suis de toute façon en train d'analyser cake (en plus de la programmation Objet qui est pas ma tasse de thé) :wink:

Pour les heures, quand je vois que je viens de passer quasiment une journée à mettre en ordre un simple site de 10 pages en html (et me reste encore à monter un module de news adapté vite - fait avec un éditeur propre pour l'utilisateur) :oops:

Pour l'entreprise .... c'est moi le chez d'entreprise, du moins quand ma femme viens pas demander vers 23 heures "Tu monte maintenant?" .... "J'arrive dans quelques minutes" pour entendre vers 3 - 4 heures du matin son cri de guerre "Alors tu mooooonte ...") . Comme quoi, c'est pas toujours moi le patron. :oops: :? On perd souvent beaucoup de temps pour en gagner énormément ensuite. Pour la gestion commerciale de la boîte, j'avais le choix: racheter un gros logiciel pas forcément tout à fait adapter (on parle de 5 à 6000 € quand même avec toutes les fonctionalités), soit développer le mien (y compris la partie vente comptoir qui est rarement standard): ca m'a pris presque un an pour qu'elle soit utilisable. Deux ans plus tard, encore quelques petits trucs à ajouter (et là aussi, j'ai plus envie de perdre un peu de temps pour ne plus repasser des heures à chaque modifs de TVA ou autre ou modifier le "design" - structure en modifiant des lignes de codes ) et aucun CMS (même en le bricolant complètement) ne fait le dixième (t'a déjà vu un wordpress te faire une déclaration de TVA?). C'est pas limité, c'est comme tu a dis chronophage.

En connaissant le principe de la programmation, le réel danger, c'est qu'on veut toujours en ajouter plus .... et c'est là qu'on perd beaucoup de temps. Quand je regarde les codages de certains CMS ou application éditée en Dreamweaver, ca donne pas franchement non plus envie de les essayer en production. D'ailleurs dans les réponses, deux qui ont finalement développé leurs applications (ca prouve pas non plus qu'ils ont raison :wink: )

Merci Spout, dès que j'ai fini la lecture du tutorial, je reprend ton exemple :wink:

L'idée de Mitchum est aussi intéressante même si c'est un peu ce que j'utilise actuellement pour quelques sites (mais souvent aussi des pertes de temps). Je vais prendre tout mon temps pour compiler chaque idée.
 
Discussions similaires
Haut