• J'hésite entre Joomla et MODx, lequel choisir ?#

  • beldrak Reply #1, 6 years, 1 month ago

    Reply
    (Note du modérateur : Cette discussion a commencé sur ce thread => [Débutants] Utiliser les snippets et des chunks, mais elle commençait à devenir off topic, et ça pourrait intéresser d'autres personne donc j'ai re-titré et transféré dans la FAQ)
    Ca c'est un véritable post pationné ....
    J'avoue avoir trouvé simple la retouche du code sous joomla pour parvenir à mes fins en partant de mes maigres connaissances en html et css ... Après, c'est possible que modx soit plus adapté quand on est vraiment professionnel mais je regrette principalement l'installation des modules ( c'est ce qui devrait etre simplifié ).
    Du reste, modx est relativement récent et il a encore un petit peu de chemin a faire avant d'etre parfaitement simplifié à mon avis ( a moins que ce ne soit jamais fais ). Après, je ne comprendrais jamais l'utilité d'avoir à retoucher du code "complexe" dans un cms autant tout faire soit meme, c'est ce que j'entendais par là.
    Merci pour les précisions et ca fais toujours plaisir de voir un passioné parler ;-)


  • marc Reply #2, 6 years, 1 month ago

    Reply
    Le tout en un clic n'est pas la philosophie de MODx (voir la réponse de David).
    Chaque module neccessite une adaptation du code à ton site en construction (au travers de chunk/sniipet) : ce qui fait la force de MODx.
    C'est ces outils qui le rend personnalisable.
    En contre partie MODx s'adresse à des personnes qui connaissent un minimum les langages HTML, CSS et un peu PHP.


  • Zombie Reply #3, 6 years, 1 month ago

    Reply
    effectivement, je n'y connais rien en PHP, et c'est heureux. Graphiste à l'origine, infographiste (un peu) aussi, mettre les mains dans le html et css, sont normales; mais le PHP , heu, non. enfin prouvez-moi le contraire


  • davidm Reply #4, 6 years, 1 month ago

    Reply
    cquiec, quand on dit connaître le php ce serait plutôt "avoir des rudiments", ce qu'on fini toujours par avoir à force de voir du code. Ceci dit, contrairement à Joomla par exemple, MODx ne nécessite pas forcémment de toucher au code php : on peut très bien s'en servir sans jamais y toucher (c'est toute la beauté pour un designer d'ailleurs !).

    OK pour installer un plugin, module ou snippet on va copier-coller du code php mais faut-il y connaître grand chose pour ça ? Certains diront : oui mais certains snippets demandent de renseigner des paramètres qui sont dans le code du snippet lui-même => vrai, mais là il s'agit plus de savoir lire (et parfois donc lire l'anglais) que de connaître php.

    Sinon pour répondre à Beldrak, désolé si j'ai été un peu véhément, effectivement je suis passionné...

    Maintenant revenons à quelque chose de rationnel : comparons le gabarits du template par défaut de Joomla et celui de MODx (sans tenir compte du fait que celui de Joomla bénéficie de la coloration syntaxique du php ce qui le rend sur ce forum plus facile à lire) .

    Joomla :

    <?php defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <?php $iso = split( '=', _ISO );
    echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
    <?php mosShowHead(); ?>
    <?php
    if ( $my->id ) {
    	initEditor();
    }
    
    if ((mosCountModules( 'user1' )) && (mosCountModules( 'user2' ))) {
    //if both modules are loaded, we need a 50%-layout for them
    	$usera = 'user1';
    	$userb = 'user2';
    } else if ((mosCountModules( 'user1' )) || (mosCountModules( 'user2' ))) {
    // if only one, then 100% no matter which one.
    	$usera = 'user3';
    	$userb = 'user3';
    }
    ?>
    <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
    <link href="<?php echo $mosConfig_live_site; ?>/templates/madeyourweb/css/template_css.css" rel="stylesheet" type="text/css"/>
    <link href="<?php echo $mosConfig_live_site; ?>/templates/madeyourweb/css/css_color_green.css" rel="stylesheet" type="text/css"/>
    </head>
    
    <body>
    <div id="accessibility">
    	<a href="index.php#menu">
    		Menu</a>
    	<a href="index.php#content">
    		Content/Inhalt</a>
    </div>
    <div id="pagewidth-800" >
    	<div id="header" >
    		<div id="top-top">
    			<?php
    			if (mosCountModules( "user4" )) {
    				?>
    				<div id="search">
    					<?php mosLoadModules ( 'user4',-1); ?>
    				</div>
    				<?php
    			}
    			?>
    			<div id="topmenu">
    				<?php if (mosCountModules( "user3" )) { ?><?php mosLoadModules ( 'user3',-1); ?><?php } ?>
    			</div>
    		</div>
    
    		<div class="clr"></div>
    
    		<div id="top-bottom">
    			<a href="index.php">
    				<?php echo '<img src="' .$mosConfig_live_site. '/templates/' .$GLOBALS['cur_template']. '/images/logo.gif" border="0" width="250" height="80" alt="logo" />'; ?>
    				</a>
    		</div>
    		<?php
    		if (mosCountModules( "banner" )) {
    			?>
    			<div id="banner">
    				<?php mosLoadModules ( 'banner',-1); ?>
    			</div>
    			<?php
    		}
    		?>
    	</div>
    	<div id="outer-800" >
    		<div id="pathway">
    			<?php mospathway() ?>
    		</div>
    		<div id="leftcol">
    			<a name="menu"></a>
    			<?php
    			if (mosCountModules( "left" )) {
    				mosLoadModules ( 'left',-3);
    			}
    			?>
    		</div>
    		<?php
    		if ((mosCountModules( "right" )) || (mosCountModules( "top" ))) {
    			?>
    			<div id="maincol-broad-800" >
    			<?php
    		} else {
    			?>
    			<div id="maincol-wide-800" >
    			<?php
    		}
    			if (mosCountModules( "user1" )) {
    				?>
    				<div id="<?php echo $usera; ?>">
    					<?php mosLoadModules ( 'user1',-2); ?>
    				</div>
    				<?php
    			}
    			if (mosCountModules( "user2" )) {
    				?>
    				<div id="<?php echo $userb; ?>">
    					<?php mosLoadModules ( 'user2',-2); ?>
    				</div>
    				<?php
    			}
    			?>
    			<div class="clr"></div>
    			<div class="content">
    				<a name="content"></a>
    				<?php mosMainBody(); ?>
    			</div>
    		</div>
    		<?php
    		if ((mosCountModules( "right" )) || (mosCountModules( "top" ))) {
    			?>
    			<div id="rightcol-broad">
    				<?php mosLoadModules ( 'top',-3); ?>
    				<?php mosLoadModules ( 'right',-3); ?>
    			</div>
    			<?php
    		}
    		?>
    		<div class="clr"></div>
    	</div>
    
    	<div id="footer-800" >
    		<?php include_once( $mosConfig_absolute_path .'/includes/footer.php' ); ?>
    		<?php mosLoadModules( 'debug', -1 );?>
    	</div>
    </div>
    
    </body>
    </html>


    Maintenant MODx :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    
    <head>
    	<title>[(site_name)] | [*pagetitle*]</title>
    
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    
    	<link rel="stylesheet" href="[(base_url)]assets/templates/default/site.css" type="text/css" media="screen" />
            <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="[(site_url)][~11~]" />
            <base href="[(site_url)]" />
    
    <!--[if lte IE 6]>
    
      <style type="text/css" media="screen, tv, projection">
            body { behavior: url(assets/js/csshover.htc); } /* hover:anything support */
            #content { margin-left: 22px; } /* to avoid the BMH */
            a,  a:link { border-bottom-style: solid } /* becuase IE just doesn't dot */
      </style>
    
      <script type="text/javascript" src="assets/js/sleight.js"></script>
    
    <![endif]-->
    
            <script src="manager/media/script/scriptaculous/prototype.js" type="text/javascript"></script>
            <script src="manager/media/script/scriptaculous/scriptaculous.js" type="text/javascript"></script>
    
    </head>
    <body>
    
    <div id="page">
    
    
    <div id="header">
    	<div id="search"><a name="search"></a>
    		[!FlexSearchForm? &FSF_showResults=`0` &FSF_landing=`8`!]
    	</div>
    	<h1><a href="[~[(site_start)]~]" title="[(site_name)]">[(site_name)]</a></h1>
    </div>
    <!-- close #header -->
    
    	<div id="content">
    
    		<div class="post">
    			<h4 class="date-header">[!DateTime? &format=`d-M-Y h:i A`!]</h4>
    			<h3 id="post-">[*longtitle*]</h3>
    				[*#content*]
    		</div>
    		<!-- close .post (main column content) -->
    
    		<div id="navlist"><a name="navlist"></a>
    			<h3>Related Links:</h3>
    			[[ListRelated? &LR_title=`Other pages possibly of interest...`]]
    		</div>
    		<!-- close #navlist -->
    
    	</div>
    	<!-- close #content -->
    
    	<div id="sidebar">
    		<ul>
    			<li><h2>About Me:</h2>
    			{{AboutMe}}
    			</li>
    
    			<li id="dropmenu"><a name="dropmenu"></a><h2>Pages:</h2>
    			[!DropMenu!]
    			</li>
    
    			<li id="recentdocs"><a name="recentdocs"></a><h2>Most Recent:</h2>
                    	[[ListIndexer?LIn_root=0]]
    			</li>
    
    			<li><h2>Meta:</h2>
    				<ul>
    		        <li><a href="http://validator.w3.org/check/referer"
     title="This page validates as XHTML 1.0 Transitional">Valid <abbr title="eXtensible HyperText Markup Language">XHTML</abbr></a></li>
                    	<li><a href="http://jigsaw.w3.org/css-validator/check/referer"
     title="This page uses valid Cascading Stylesheets" rel="external">Valid <abbr title="W3C Cascading Stylesheets">css</abbr></a></li>
    				    <li><a href="http://modxcms.com/"
     title="Powered by MODx, Do more with less.">MOD<strong>x</strong></a></li>
    		        </ul>
    			</li>
    
    		</ul>
    
    	</div>
    
    	<!-- close #sidebar -->
    
    <div class="clear"> </div>
    
    <div id="footer">
    	<p>[(site_name)] is powered by <a href="http://modxcms.com/"
     title="Powered by MODx, Do more with less."><strong>MOD</strong>x</a><br />
    <a href="[~11~]" title="Link to our Blog RSS Feeds">Blog Entries (RSS)</a><br />
    <strong>MOD</strong>x-theme by <a href="http://www.liquidthemes.com">liquidthemes</a><br
     />
    MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document retrieved from [^s^].</p>
    </div>
    
    <!-- close #footer -->
    
    </div>
    <!-- close #page -->
    
    </body>
    </html>


    La question c'est lequel est le plus compréhensible ? le plus simple ?

    Perso entre <?php mosMainBody(); ?> et [*content*] je trouve qu'il n'y a pas photo... en tant que designer je pense que cela rend les templates beaucoup plus lisibles => moins de risque d'erreurs, maitenance facilitée, apprentissage "intuitif" ( "content" si on parle trois mot d'anglais pas trop dur à retenir... et [* *] plutôt facile comme balisage...).

    Non ?


  • marc Reply #5, 6 years, 1 month ago

    Reply
    Connaître PHP n'est pas une obligation pour utiliser MODx. On peux très bien s'en passer et rester dans des structures et des fonctions traditionnelles (ou "standard").

    Par contre, si tu souhaites personnaliser et notamment créer des snippets pour arriver à ce que tu recherches, la connaissance de PHP devient indispensable (du moins les bases).
    Comprendre PHP permet aussi de comprendre le fonctionnement des snippets que tu utilises et leurs limites.
    Mais encore une fois ce n'est pas une obligation.

    Pour être un webmaster (graphiste, infographiste, web designer, etc.) digne de ce nom, les compétences minimales restent les langages HTML et CSS. Ces compétences sont indispensables avec MODx.

    Pour être rédacteur sous MODx, null besoin d'être expert dans ces langages : un peu de connaissance du langage HTML et de ces possibilités suffit.


  • davidm Reply #6, 6 years, 1 month ago

    Reply
    Quote from: Marc at Apr 26, 2006, 03:53 AM
    Par contre, si tu souhaites personnaliser et notamment créer des snippets pour arriver à ce que tu recherches, la connaissance de PHP devient indispensable (du moins les bases). Comprendre PHP permet aussi de comprendre le fonctionnement des snippets que tu utilises et leurs limites. Mais encore une fois ce n'est pas une obligation.

    Absolument, mais ce raisonnement s'applique à toute application web et notamment tous les CMS codés en PHP...


  • beldrak Reply #7, 6 years, 1 month ago

    Reply
    En fait, j'en reste tjr au meme avis ...
    C'est trop compliqué l'installation des snippets et des chunks, ca aurait pu etre simplifié.
    Tjr dans la meme idée, trifouiller dans le php pour un cms je trouve pas ca génial. Pour l'instant, je n'ai pas eu à le faire sur tout les cms que j'ai tester.
    Je ne cherche pas à critiquer gratuitement modx, le reproche que je fais est un reproche à prendre en compte pour une amélioration ;-). Si l'installation de modules était simplifié je pense qu'il deviendrait le meilleur cms ( niveau graphisme sur, niveau code je pense aussi mais ca reste à voir ).
    Pour ce qui est de joomla, il est vrai que le code peux sembler un brin plus brouillon mais je m'y suis retrouvé rapidement tant au niveau du code html que des css. Pour l'instant, je n'ai pas retouché du tout de php ( et je n'y compte pas parce que je prefere refaire tout moi meme dans cette idée là ).
    Au niveau de ta réponse, je ne te reproche pas la véhémence et je comprends que tu veuilles protéger ce cms mais personnellement je n'ai pas réussi à l'utiliser véritablement comme je l'aurais voulu.
    En fait, je cherchais à faire un site communautaire alors je n'avais aucun interet à laisser juste des rubriques et à écrire dedans ( ca j'aurais su le faire avec modx ).
    Au final, je ne cherche pas à comparer modx a joomla mais à proposer une version plus "simple" ... Tant est qu'on puisse appeller ca simple.
    Bon, c'est pas le tout mais je parler d'amélioration mais j'y contribue pas ;-)


  • aour Reply #8, 6 years, 1 month ago

    Reply
    Re

    Attention, la réalisation de template sous joomla va changer avec l'utilisation de PatTemplate. Cela va devenir plus compliqué même si pour le moment, les templates actuel devront etre supportés.

    Voici des exemples de la syntaxe Joomla +1.1

    Pour insérer un module
    <jdoc :include type=âmodulesâ position=âleftâ style=â-1â³ />
    


    Pour un affichage conditionnel de module
    <jdoc :exists type=âmodulesâ condition=âuser1 and user2â³ >
    //do something
    </jdoc>


    Pas simple et derrière une grosse machine à gaz :

    http://dev.joomla.org/images/stories/UML/document.png
    MAintenant, il y a suffisament de projet de CMS pour que chacun trouve celui qui lui convient le plus.


  • OncleBen31 Reply #9, 6 years, 1 month ago

    Reply
    Quote from: Marc at Apr 26, 2006, 03:53 AM
    Par contre, si tu souhaites personnaliser et notamment créer des snippets pour arriver à ce que tu recherches, la connaissance de PHP devient indispensable (du moins les bases).
    D'autant plus qu'il y a toujours de nouveaux snippets/module en développement par les utilisateurs qui les partagent avec plaisir. La plate-forme Modx est pleine de possibilité, mais la réactivité et la participation de sa communauté est une valeur ajouté très importante


  • Yogui3 Reply #10, 6 years, 1 month ago

    Reply
    L'installeur de Modx peut (apparement) être utilisé pour installer les ressources, après un upload sur le serveur. C'est vrai qu'il est très peu utilisé mais peu de ressource nécessite une installation complexe. La très grande majorité s'installe en un rien de temps avec un copié-collé.