On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • (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 ;-)
    • 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.
        Marc
        I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
      • 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
        • 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 tongue ? 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 ?
            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l&#39;outil id
          • 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.
              Marc
              I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
            • Quote from: Marc at Apr 26, 2006, 08: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...
                .: COO - Commerce Guys - Community Driven Innovation :.


                MODx est l&#39;outil id
              • 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 ;-)
                • 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.
                  • Quote from: Marc at Apr 26, 2006, 08: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 grin
                    • 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é.
                        Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !