tag:blogger.com,1999:blog-2122900054629726902024-03-14T11:20:40.622+01:00Parsimony - Carnets de notesCe blog contient mes notes sur le CMS parsimonyUnknownnoreply@blogger.comBlogger16125tag:blogger.com,1999:blog-212290005462972690.post-54238875840415287632013-05-24T14:11:00.000+02:002013-05-24T14:11:38.617+02:00Forbidden dans la page d'accueilSi vous avez un joli<br />
<h1 style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Forbidden</h1>
<br />
A la place de la page d'accueil.<br />
C'est normal! Dans la nouvelle version, le site n'est pas accessible aux personnes non enregistrées.<br />
Certes le message pourrait être confondu avec une erreur d'Apache mais il s'agit d'une erreur généré<br />
dans <span style="color: red;">/modules/core/classes/request.php (l274) </span><br />
<br />
<a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/core/classes/request.php#L274">https://github.com/parsimony/parsimony_cms/blob/master/modules/core/classes/request.php#L274</a><br />
<br />
Pour régler ce problème, allez dans <span style="color: red;">Accounts --> Permissions --> Anonymous</span><br />
Et dans le module blog cochez la case <i>"Enable The Blog Module for Anonymous Role"</i><br />
<br />
<img alt="" height="252" src="data:image/png;base64,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" width="640" />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-83473455267974496032013-03-05T17:08:00.003+01:002013-03-05T17:19:36.697+01:00Modifier la barre du haut<div class="separator" style="clear: both; text-align: left;">
S'il vous prend l'envie de modifier la barre du haut de Parsimony voilà quelques informations utiles:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQfIYBz7CZfJjFoiMXP3V_k_wsn_Fd0LIxrM15n_a-h4M7HB1Uh5W_S5F2VnhWdR6qVKB_2P1AAqkT2lmh6gxkHjelgLqL7AwDfeLmJp3nBkICAjPAnmx7lyAQ8CYAK-Q_XhlM3iXQjnR-/s1600/toolbar.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQfIYBz7CZfJjFoiMXP3V_k_wsn_Fd0LIxrM15n_a-h4M7HB1Uh5W_S5F2VnhWdR6qVKB_2P1AAqkT2lmh6gxkHjelgLqL7AwDfeLmJp3nBkICAjPAnmx7lyAQ8CYAK-Q_XhlM3iXQjnR-/s1600/toolbar.png" /></a></div>
<h2>
<span style="color: red;">Avant de modifier l'interface de Parsimony, gardez bien à l'esprit quand cas de mise à jour ces modifications seront perdues. Elles sont donc déconseillés.</span></h2>
La <a href="http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur" target="_blank">vue</a> de la barre du haut se trouve ici:<br />
<span style="color: red;"><a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/blocks/menu/view.php">/modules/admin/block/menu/view.php</a></span><br />
<span style="color: red;"><br /></span><u>Elle est divisé en 4 parties:</u><br />
<span style="color: #cc0000;"><ul class="menu"></span><br />
--> L’icône de Parsimony / [Domaines] (pour les multi-sites) / Comptes<br />
<span style="color: #cc0000;"><ul class="modesSwitcher"></span><br />
--> Preview / Edit / Creation<br />
<span style="color: #cc0000;"><ul class="menu"></span><br />
--> Desktop/Max/Portrait/Landscape<br />
<span style="color: #cc0000;"><div class="rightpart"></span><br />
Version/Langue/Login/Logout<br />
<br />
<h2>
Rajouter des icônes</h2>
<h3>
<a href="http://parsimonycms.blogspot.fr/2013/03/les-icones-de-parsimony.html">Comment afficher un </a><span style="color: #0000ee;"><u>icône</u></span> (voir le lien)</h3>
<h3>
Comment mettre un tooltip</h3>
<div>
Pour rajouter une bulle avec la description de l’icône il faut mettre la classe : <span style="color: orange;">tooltip</span></div>
<div>
<i><a class="tooltip"></a></i><br />
<br /></div>
<div>
Puis préciser le texte dans le tooltip<br />
<br /></div>
<div>
<span style="color: red;">Soit directement:</span></div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnjo870ENwGdbyavOZQRFwiL_cmMzIDXEgWxPdFnfk_r50tbRMx3gkdSRqlSdpGtOfYBNbUR8095_r3WKp6Lmn0w2C5iTLQLkgy2j41Z-zhS7ZoiWLQACqsgps7QMQq93E7U9zUUezs47K/s1600/descriptionsmall.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnjo870ENwGdbyavOZQRFwiL_cmMzIDXEgWxPdFnfk_r50tbRMx3gkdSRqlSdpGtOfYBNbUR8095_r3WKp6Lmn0w2C5iTLQLkgy2j41Z-zhS7ZoiWLQACqsgps7QMQq93E7U9zUUezs47K/s1600/descriptionsmall.png" /></a><span style="color: red;"><br /></span><br />
<i><br /></i>
<br />
<br />
<i><br /></i>
<i><a class="<span style="color: blue;">tooltip</span>" data-tooltip="<?php echo t('<span style="color: red;">Voici la description</span>',false); ?>"</a></i></div>
<div>
<span style="color: red;"><br /></span></div>
<div>
<span style="color: red;">Soit avec une description dans une div, par exemple avec la div #description</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFrSuvjJXximma0XpIgKiAdxIIBecXrwxG9OhXOy-6EFCTDKMxPJlaAnR3rF7orkG3DX5wusg1pMKCM_HUZW9fkGQryTU9Fhiq98nENEl7w623cJSIKH3366-xzZbnHSqfaYaFNCbQjAK/s1600/description.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFrSuvjJXximma0XpIgKiAdxIIBecXrwxG9OhXOy-6EFCTDKMxPJlaAnR3rF7orkG3DX5wusg1pMKCM_HUZW9fkGQryTU9Fhiq98nENEl7w623cJSIKH3366-xzZbnHSqfaYaFNCbQjAK/s1600/description.png" /></a></div>
<div>
<i><span class="tooltip" data-tooltip="#description"></span></i></div>
<div>
<div>
<i><div id="<span style="color: red;">description</span>"></i></div>
<div>
<i><span class="Apple-tab-span" style="white-space: pre;"> </span><div><h1>Ceci est une description</h1></i></div>
<div>
<i><span class="Apple-tab-span" style="white-space: pre;"> </span>En HTML</div></i></div>
<div>
<i></div></i></div>
</div>
<div>
<i><br /></i></div>
<div>
Il ne faut pas oublier de rajouter dans <span style="color: red;"><a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/style.css#L115">modules/admin/style.css</a></span></div>
<div>
<pre style="border: 0px; padding: 0px;"><div class="line" id="LC115" style="background-color: #ffffcc; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="nf" style="border: 0px; color: #990000; font-weight: bold; margin: 0px; padding: 0px;">#description</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">{</span><span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">display</span><span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">:</span><span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">none</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">;}</span></div>
</pre>
Afin que le texte de la div description ne soit affiché que lorsque la souris passe au dessus de l'icône.</div>
<div>
<br /></div>
<h3>
Afficher un menu</h3>
<div>
Afin de mieux comprendre ce que nous allons faire, voici un schéma explicatif<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcziylOYRSvGIu3en5o3MQRrMGL7KsaPvSxvCBFS_jzUxoFOM1nu5K1SinqCnWS787ExOWsjZ6nYS3Uj2d17Hq_Ohn3XblJIdOQRRbanWeSR4mLkKskG-iCg5lfgv9a_VPRduK7i6RT-hT/s1600/schema.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcziylOYRSvGIu3en5o3MQRrMGL7KsaPvSxvCBFS_jzUxoFOM1nu5K1SinqCnWS787ExOWsjZ6nYS3Uj2d17Hq_Ohn3XblJIdOQRRbanWeSR4mLkKskG-iCg5lfgv9a_VPRduK7i6RT-hT/s640/schema.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Nous allons créer un lien hypertexte (notre icône) qui va déclencher une fonction dans le contrôleur qui va ouvrir une boite de dialogue.<br />
<br />
<u>Il va donc nous falloir </u><br />
--modifier la vue de la barre<br />
--rajouter une fonction dans le contrôleur<br />
--créer la vue de la boite de dialogue<br />
<u><br /></u><span style="font-family: inherit;"><b>
Pour créer une boite de dialogue, lorsque l'on clique sur l'icône</b></span><br />
<span style="font-family: inherit;"><b>il faut rajouter la classe<span style="color: orange;"> action </span>et nommer l'action.</b></span></div>
<div>
<br /></div>
<div>
Dans la <i><span style="color: #38761d;">vue</span></i> <a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/blocks/menu/view.php">/modules/admin/block/menu/view.php</a></div>
<div>
<a href="#" class="<span style="color: blue;">action</span>" rel="<span style="color: red;">getViewNomdumenu</span>"></div>
<div>
<br /></div>
<div>
<b>Puis dans le <span style="color: #38761d;">contrôleur</span>: <a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/module.php#L822">/modules/admin/module.php</a> à la ligne 828 (par exemple)</b><br />
<b>Rajouter cette fonction</b></div>
<div>
<pre style="border: 0px; padding: 0px;"><div class="line" id="LC821" style="border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="sd" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">/**</span></div>
<div class="line" id="LC822" style="background-color: #ffffcc; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="sd" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"> * Get the the view of Nom du Menu</span></div>
<div class="line" id="LC823" style="border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="sd" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"> * @return string </span></div>
<div class="line" id="LC824" style="border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="sd" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"> */</span></div>
<div class="line" id="LC825" style="border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">protected</span> <span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">function</span> <span class="nf" style="border: 0px; color: #990000; font-weight: bold; margin: 0px; padding: 0px;">getViewNomdumenuAction</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">()</span> <span class="p" style="border: 0px; margin: 0px; padding: 0px;">{</span></div>
<div class="line" id="LC826" style="border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px 0px 0px 10px;">
<span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;">$this</span><span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;">-></span><span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;">getView</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">(</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'nomdumenu'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">,</span><span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;">'desktop'</span><span class="p" style="border: 0px; margin: 0px; padding: 0px;">);</span></div>
<div class="line" id="LC827" style="border: 0px; margin: 0px; padding: 0px 0px 0px 10px;">
<div style="color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px;">
<span class="p" style="border: 0px; margin: 0px; padding: 0px;">}</span><br />
<span class="p" style="border: 0px; margin: 0px; padding: 0px;">
</span></div>
<div style="color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px;">
</div>
<span style="font-family: Times New Roman;"><span style="white-space: normal;"><u>Puis créer un fichier pour la <span style="color: #38761d;">vue</span> de la boite de dialogue</u></span></span><br />
<span style="font-family: Times New Roman;"><span style="white-space: normal;">Dans <a href="https://github.com/parsimony/parsimony_cms/tree/master/modules/admin/views/desktop">/modules/admin/views/desktop</a>/nomdumenu.php</span></span><br />
<span style="font-family: Times New Roman;">Tout ce qui sera présent dans <i>nomdumenu.php </i>sera affiché dans la boite de dialogue.</span></div>
</pre>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-23877307677184789552013-03-05T14:33:00.001+01:002013-03-05T17:09:41.921+01:00Les icônes de parsimonyLa liste des icônes utilisés dans parsimony se trouve ici:<br />
<a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/style.css#L931" target="_blank">/modules/admin/style.css</a> à la ligne 931<br />
<br />
Elles sont constituées des icônes présents dans ces trois fichiers<br />
<a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/img/defaultsprite.png" target="_blank">admin/img/defaultsprite.png</a><br />
<a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/img/icons_white.png" target="_blank">admin/img/icons_white.png</a><br />
<a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/admin/img/icons.png" target="_blank">admin/img/icons.png</a><br />
<br />
<span style="font-size: large;">icons_white</span><br />
<br />
Voici la liste des icônes ui-icons white (icônes blanc sur fond noir)<br />
<a href="http://jquery-ui.googlecode.com/svn/tags/1.6rc5/tests/static/icons.html">http://jquery-ui.googlecode.com/svn/tags/1.6rc5/tests/static/icons.html</a><br />
<i>(Cliquer sur toggle text pour avoir le nom à coté des icônes)</i><br />
<br />
Pour utiliser un icône icons-white il vous suffit de mettre ui-icon-white et le nom de l'icone dans la classe d'un SPAN<br />
<u>Par exemple ceci:</u><br />
<span class="<span style="color: blue;">ui-icon-white</span> <span style="color: red;">ui-icon-arrow-4</span>"</span><br />
Donnera cela:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMnmY3Pnx00MKyLN1fsokLFUIT92T7j8k3zYNLZWcro7OPW2_E3bB1LR9QuJR_K3ud238KLW9pyc6GdR8pkfkz9KLiAq7emHZ8Xj5ABx3fszXdnFRdS5BJ3U38xrT-oxg-AOyyExshjXAN/s1600/uiiconsarrowthick.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMnmY3Pnx00MKyLN1fsokLFUIT92T7j8k3zYNLZWcro7OPW2_E3bB1LR9QuJR_K3ud238KLW9pyc6GdR8pkfkz9KLiAq7emHZ8Xj5ABx3fszXdnFRdS5BJ3U38xrT-oxg-AOyyExshjXAN/s1600/uiiconsarrowthick.png" /></a></div>
<br />
<br />
<br />
<span style="font-size: large;">icons</span><br />
<span style="font-size: large;"><br /></span>
<i>(En cours de rédaction)</i><br />
<i><br /></i>
<span style="font-size: large;">defaultsprite</span><br />
<span style="font-size: large;"><br /></span>
<i>(En cours de rédaction)</i><br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-2633681319974611752013-02-09T04:14:00.002+01:002013-02-09T04:14:23.301+01:00Container Tab<span style="color: red;">(Uniquement dans la version 2.5)</span><br />
<span style="color: red;"><br /></span>
Vous pouvez maintenant classer vos blocs dans des onglets.<br />
<br />
A l'aide du nouveau container Tab.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKwsyHA-GIYBSulTuJf8eCHTul_BETMgYlPpA5wWkvstdpWcgvntqnj91teDlfK-qtFacbdg_9KOwQuFflmg920vBVF2QBDZDrLh5FER0izmtXTKCM0t0XEbibNjPQLjGqhyphenhyphenZKQF7XW0XD/s1600/cms2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKwsyHA-GIYBSulTuJf8eCHTul_BETMgYlPpA5wWkvstdpWcgvntqnj91teDlfK-qtFacbdg_9KOwQuFflmg920vBVF2QBDZDrLh5FER0izmtXTKCM0t0XEbibNjPQLjGqhyphenhyphenZKQF7XW0XD/s1600/cms2.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb9TvBqlv-6rM4UJ5hGEKC1SZfLrytPLVmoDPh3hyphenhyphengzj71_9nlxnd9I4BTeO-FF99o6-0ve1dsewCrlXYEDimK74E5a3LWdGqdygkwq7yHBpxH1q1erVjEzCqnIYtY3aC1varbQyAK5clw/s1600/cms.gif" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb9TvBqlv-6rM4UJ5hGEKC1SZfLrytPLVmoDPh3hyphenhyphengzj71_9nlxnd9I4BTeO-FF99o6-0ve1dsewCrlXYEDimK74E5a3LWdGqdygkwq7yHBpxH1q1erVjEzCqnIYtY3aC1varbQyAK5clw/s1600/cms.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Un exemple avec un simple bloc Wysiwyg</td></tr>
</tbody></table>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-45551677802384592002013-02-05T22:27:00.001+01:002013-02-05T22:27:26.984+01:00Animation AjaxDans Parsimony, vous pouvez charger les pages avec Ajax.<div>
<br /></div>
<div>
Pour cela il vous faut activer <i>Configuration -> Ajax -> Ajax Navigation</i></div>
<div>
<i><br /></i></div>
<div>
Maintenant, lorsque l'on change de page on a une animation (la partie centrale tournent)</div>
<div>
<br /></div>
<div>
Si vous voulez changer l'animation, il vous suffit de changer le fichier <i>/modules/core/css/ajaxNav.css</i></div>
<div>
<i><br /></i></div>
<div>
Voici une liste d'animation CSS : <a href="http://www.w3schools.com/cssref/css3_pr_transform.asp">http://www.w3schools.com/cssref/css3_pr_transform.asp</a></div>
<div>
<br /></div>
<div>
A savoir:</div>
<div>
from{ --> Etat au début</div>
<div>
to{ --> Etat final</div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-44194539979357372062013-02-04T16:10:00.001+01:002013-04-26T12:39:56.382+02:00Impossible d'accéder à connect<br />
Vous venez d'installer Parsimony et vous avez:<br />
<br />
<h1>
Not Found</h1>
The requested URL /connect was not found on this server.<br />
<br />
<br />
<ul>
<li>Vérifier que vous avez installer mod_rewrite : <b>a2enmod rewrite</b></li>
<li>Vérifier que vous avez bien le .htaccess de copier dans /var/www</li>
<li>Dans le configuration de votre VirtualHost (/etc/apache2/sites-available)<br />Il faut <b>AllowOverride All</b></li>
<li>Redémarrer apache2 (service apache2 restart)</li>
</ul>
<div>
<i>Source:</i> <a href="https://github.com/parsimony/parsimony_cms/issues/12">https://github.com/parsimony/parsimony_cms/issues/12</a></div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-14840840887595876062013-01-31T22:41:00.000+01:002013-02-01T00:23:51.989+01:00Effacer un moduleVous voulez effacer un module ? personnellement, je n'ai pas encore trouvé comment faire ça depuis l'interface d'administration voila la technique manuelle:<br />
<br />
<u>- Effacer votre module dans</u><br />
<span style="color: orange;">/modules</span><br />
<span style="color: orange;">/profiles/www/modules/</span><br />
<span style="color: orange;">/profiles/www/backup/modules/</span><br />
<br />
Puis dans <span style="color: orange;">config.php</span><br />
Effacez à la dernière ligne<br />
<span style="color: orange;">$config['activeModules']['</span><span style="color: red;">NOMDUMODULE</span><span style="color: orange;">'] = '1';</span><br />
<span style="color: orange;"><br /></span>Normalement si vous avez bien fait cela, vous devriez ne plus voir votre module (et pas un vilain écran blanc aussi).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-85538679350424936012013-01-31T02:30:00.000+01:002013-02-21T11:20:59.047+01:00Créer un nouveau bloc (chapitre 1)<div style="text-align: left;">
Nous allons apprendre à créer un nouveau bloc en nous concentrant (pour le moment) sur le côté graphique.</div>
<div style="text-align: left;">
<br />
<span style="color: red;">Certaines parties du code où la licence présente <a href="http://parsimony.mobi/download">la mention OSL (open source licence)</a> en entête ne peuvent être modifiées sans en redistribuer le code sauf si vous acceptez de payer une licence commerciale.</span><br />
<br />
<span style="color: red;">Je tiens aussi à rappeler que ce blog fait office de carnet de notes, toutes les informations contenues ici ne sont pas vérifiées. N'hésitez pas à rapporter la moindre erreur dans les commentaires (aucune inscription demandée)</span><br />
<br />
Pour ce tutoriel, nous allons essayer de concevoir un bloc permettant de créer un formulaire de contact.<br />
<br /></div>
<div style="text-align: left;">
<h2>
<span style="font-size: x-large;">Copie du bloc Form Add</span></h2>
Nous allons reprendre le bloc <i>formadd</i> qui correspond à peu de choses près à ce que nous voulons créer.<br />
<br />
Pour cela, nous copions le dossier<i> /modules/core/blocks/formadd/</i> vers <i>/modules/core/blocks/contactform</i><br />
<br />
<u>Un bloc contient plusieurs fichiers:</u><br />
<i>block.php</i> : Contient la partie fonctionnelle<br />
<i>icon.png </i>: l'icône qui s'affichera dans le menu<br />
<i>view.php</i> : Affichage du bloc dans les pages<br />
<i>adminView.php</i>: (optionnel) Contient la page de configuration du bloc<br />
<i>script.js</i>: (optionnel) Décrit les parties accessible dans Design<br />
<i>default.css</i>: (optionnel) CSS par défaut<br />
<br />
<h2>
<span style="font-size: x-large;">Renommage du bloc Form Add</span></h2>
<u>Modifions le fichier block.php</u><br />
<span style="color: red;"> * @title Contact Form</span><br />
<span style="color: red;"> * @description displays an contact form</span><br />
<span style="color: red;"> * @block_category database</span><br />
(inutile de modifier la catégorie)<br />
<br />
Bien qu'ils s'agissent de commentaires cette partie à une influence sur l'interface d'administration.<br />
<u><br /></u>
<br />
Il faut aussi modifier le nom de la classe:<br />
class<span style="color: red;"> contactform</span> extends \block {<br />
<br />
<u><br /></u>
<u>Ainsi que le fichier script.js</u><br />
<span style="color: red;">function block_contactform() {</span><br />
<span style="color: red;">this.name = "contactform";</span><br />
<span style="color: red;"><br /></span>
Voilà nous avons un nouveau bloc fonctionnel<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjnAMt5l65zDqlYWEPZSs3f0i1NnklmnH4UQ4hzV4IrqbyY37i7MLcH_TA7tVOf0v_9scg4-I50Mbz4DmRacqGSpyx32bIUUC9YNUUBqFVbM-3MJhEaZd2lf6meZK3x_vVJIQiq1mtDq2/s1600/newblock.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjnAMt5l65zDqlYWEPZSs3f0i1NnklmnH4UQ4hzV4IrqbyY37i7MLcH_TA7tVOf0v_9scg4-I50Mbz4DmRacqGSpyx32bIUUC9YNUUBqFVbM-3MJhEaZd2lf6meZK3x_vVJIQiq1mtDq2/s1600/newblock.png" /></a><br />
<i>Si le back-office se met à charger indéfiniment, vérifier votre console Javascript et les logs d'erreur d'apache.</i><br />
<i><br /></i>Évidemment, nous allons aussi créer une nouvelle icône de la taille par défaut: 42x42<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUw5YbUinnJRJDPBWQ8WpiQj_DjqlBTSnBOoKdngaKoGfpTJEV7cRkT0d1axcVBVhhCmE8eJs4S-33tEcKEXq2_ohE9ynpmX5tCCxcoI4tR6N4kRrYksWKYJ2X6z6tqZGZqB57Xmtn2RWk/s1600/blockicon1.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUw5YbUinnJRJDPBWQ8WpiQj_DjqlBTSnBOoKdngaKoGfpTJEV7cRkT0d1axcVBVhhCmE8eJs4S-33tEcKEXq2_ohE9ynpmX5tCCxcoI4tR6N4kRrYksWKYJ2X6z6tqZGZqB57Xmtn2RWk/s1600/blockicon1.png" /></a></td></tr>
</tbody></table>
<br />
<span style="background-color: white;"><span style="color: red;"><br /></span></span>
<span style="background-color: white;"><span style="color: red;"><br /></span></span>
<br />
<br />
<br />
Voilà nous avons notre nouveau bloc, il fonctionne comme Form Add.<br />
<br />
<h2>
<span style="font-size: x-large;">Modifier l'apparence de notre bloc</span></h2>
<h3>
Modification du CSS</h3>
Commençons par modifier l'apparence de notre bloc afin d'obtenir un design de formulaire de contact de base visuellement acceptable.<br />
<br />
Afin de pouvoir le faire, il nous faut créer un fichier default.css dans <i>/modules/core/blocks/contactform</i><br />
Pour savoir quelle partie nous pouvons modifier, allons chercher l'information dans <i>script.js</i><br />
<br />
<span style="color: red;">this.stylableElements = {</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"form":"form",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"form parts":"form div",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"labels":"label",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"inputs":"input",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"textareas":"textarea",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"selects":"select",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"submit button":".submit",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"notification":".notify",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"positive notification":".positive",</span><br />
<span style="color: red;"><span class="Apple-tab-span" style="white-space: pre;"> </span>"negative notification":".negative"</span><br />
<span style="color: red;"> }</span><br />
<br />
Ici, nous pouvons voir tous les champs modifiables dans l'interface d'administration.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4orzqZB9yyLLABKfPZrbwGfpW1lJcCqH3dXI4H81EonbE-niWA0fL598XAzsxDDVuODtbG9HTPDoO1peOvuX-rjmeiCqIpbLZXi1oLmB2IILE_D_tKisEAUTe7TP17TLHyCDuDNhRA7uh/s1600/desing.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4orzqZB9yyLLABKfPZrbwGfpW1lJcCqH3dXI4H81EonbE-niWA0fL598XAzsxDDVuODtbG9HTPDoO1peOvuX-rjmeiCqIpbLZXi1oLmB2IILE_D_tKisEAUTe7TP17TLHyCDuDNhRA7uh/s1600/desing.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u><br /></u>
<u>Il nous suffit de récupérer la partie droite dans notre fichier <i>default.css</i></u><br />
<br />
<span style="color: red;">form{}</span><br />
<span style="color: red;">form div {}</span><br />
<span style="color: red;">label {}</span><br />
<span style="color: red;">input {}</span><br />
<span style="color: red;">textarea {}</span><br />
<span style="color: red;">select {}</span><br />
<span style="color: red;">.submit {}</span><br />
<span style="color: red;">.notify {}</span><br />
<span style="color: red;">.positive {}</span><br />
<span style="color: red;">.negative {}</span><br />
<div>
<br /></div>
<div>
Tout ce que nous changerons dans ce fichier sera appliqué par défaut lorsque l'on créera un nouveau bloc.</div>
<div>
<br /></div>
<div>
Après modification de nos balises CSS voilà ce que donne notre formulaire de contact.<br />
<a href="https://gist.github.com/4674510" target="_blank">default.css</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumKll-pek6Sp1HL0_EmAbLNr8OQCkps0DKZrhnsPOzl4c_lf3vNVbMVEbuamISWLVXD0J164uzF-b0dvaYr-fimuYPhKeqRW9GaAWNR3-zDj_mYfdZvjasdkzi6-CxcR21e19Q45eJ6Qt/s1600/default.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumKll-pek6Sp1HL0_EmAbLNr8OQCkps0DKZrhnsPOzl4c_lf3vNVbMVEbuamISWLVXD0J164uzF-b0dvaYr-fimuYPhKeqRW9GaAWNR3-zDj_mYfdZvjasdkzi6-CxcR21e19Q45eJ6Qt/s320/default.png" width="298" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<i>Nous pouvez très bien élaborer le design directement dans l'interface d'administration de Parsimony et ensuite récupérer le code CSS</i><br />
<i><br /></i>
<br />
<h3>
Modification de l'HTML</h3>
<div>
<br /></div>
<h4>
Pour commencer, nous allons changer le texte qui est affiché par défaut lors de l'envoi d'un formulaire</h4>
Dans <i>block.php</i>, la fonction <span style="color: red;">public function init() {}</span> définit la configuration par défaut de notre bloc<br />
<br />
Modifions les messages par défaut de succès et d'échec lors de l'envoi du formulaire de contact.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$this->setConfig('success', <span style="color: #e69138;">'Your message has been submitted'</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$this->setConfig('fail', <span style="color: #e69138;">'Error: Try to resend the message'</span>);<br />
<br />
<br />
<h4>
Puis nous allons changer le texte du bouton d'envoi par défaut</h4>
Dans <i>block.php, </i>la fonction<span style="color: red;"> public function generateViewAction($module,$entity) {}</span> génère le code par défaut de la vue.<br />
<br />
$html .= "\t".'<input type="submit" value="<?php echo t(\'<span style="color: #e69138;">Send your mail</span>\', FALSE); ?>" name="add" class="submit">'.PHP_EOL;<br />
<br />
Nous changeons le texte par défaut du bouton submit afin qu'il affiche "Send your email" (envoyer votre email)<br />
À savoir: <span style="color: red;">t('')</span> est une fonction qui affiche une traduction si elle existe dans /modules/core/locale<br />
<br />
Nous pouvons très bien remodifier ces informations depuis l'interface d'administration, il ne s'agit que du texte par défaut.<br />
<br />
<span style="font-size: large;">Et voilà, nous avons un bloc qui nous permet de générer des formulaires de contacts rapidement.</span><br />
<br />
Dans le prochain chapitre, nous allons rajouter des fonctionnalités à notre bloc: la possibilité d'envoyer des emails.<br />
<br />
<br /></div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-212290005462972690.post-30383983668621786522013-01-31T01:00:00.000+01:002013-02-01T01:49:51.228+01:00Créer un nouveau bloc (chapitre 2)Nous avons appris précédemment <a href="http://parsimonycms.blogspot.com/2013/01/creer-un-nouveau-bloc-exemple.html" target="_blank">(chapitre 1)</a> comment créer un nouveau bloc et en changer l'apparence.<br />
Nous allons , maintenant , découvrir comment y ajouter des fonctionnalités.<br />
<br />
Revenons à notre exemple de formulaire de contact.<br />
Ce serait pratique de recevoir un email lorsqu'on répond au formulaire.<br />
<br />
Pour cela, nous allons rajouter un champ dans la configuration pour renseigner l'email qui va nous servir à recevoir ces notifications.<br />
<h2>
Modification de l'interface d'administration.</h2>
Revenons au fichier <i>block.php (/modules/core/blocks/contactform/block.php </i>si vous suivez bien)<br />
<h3>
Nous allons rajouter un paramètre à notre configuration.</h3>
D'abord à la création du bloc, nous donnons une valeur par défaut à notre nouveau paramètre:<br />
Pour cela dans<br />
<span style="color: red;">public function init() {}</span><br />
Nous rajoutons ceci<br />
<span style="color: red;">$this->setConfig('notifyemail', 'exemple@exemple.com');</span><br />
<br />
Où 'notifyemail' est le nom du paramètre et 'exemple@exemple.com' la valeur par défaut.<br />
<h3>
Puis à la sauvegarde de la configuration, nous lui précisons de sauvegarder ce paramètre.</h3>
<u>Dans </u><br />
<span style="color: red;">public function saveConfigs(){}</span><br />
<u>Rajouter</u><br />
<span style="color: red;">$this->setConfig('notifyemail', $_POST['notifyemail']);</span><br />
<br />
Et voilà, notre paramètre est crée!<br />
<br />
Il nous faut toutefois concevoir le champ dans l'interface d'administration pour pouvoir le modifier.<br />
<h3>
Ajout d'un champ dans l'interface d'administration</h3>
<div>
L'interface d'administration se modifie dans<i> adminView.php</i></div>
<div>
<br /></div>
<div>
<u>Rajouter avant</u></div>
<div>
<div>
<span style="color: red;"><div class="placeholder"></span></div>
<div>
<span style="color: red;"> <label><?php echo t('Success Message', FALSE); ?></label></span></div>
</div>
<div>
<span style="color: red;"><br /></span></div>
<div>
<u>Ceci</u></div>
<div>
<div>
<span style="color: red;"><div class="placeholder"></span></div>
<div>
<span style="color: red;"> <label><?php echo t('Email to notify', FALSE); ?></label></span></div>
<div>
<span style="color: red;"> <input type="text" name="notifyemail" value="<?php echo $this->getConfig('notifyemail'); ?>"></span></div>
<div>
<span style="color: red;"></div></span></div>
</div>
<div>
<br /></div>
<div>
Voilà l’apparence de ce code:</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVVFXjyxfPGbjonh9xBYYKPoaZY0kuXPxKByVxlK1YYWpIOMGCv0ngCTcwIG5AflAIO7lb4RtJPB1ZvaI6gNvyF6DyaC6mPX4-Q3ZZcnzyeuVHJCT2sFDkAjxeVX87CyfVcix5ml4Dn3V2/s1600/admin.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVVFXjyxfPGbjonh9xBYYKPoaZY0kuXPxKByVxlK1YYWpIOMGCv0ngCTcwIG5AflAIO7lb4RtJPB1ZvaI6gNvyF6DyaC6mPX4-Q3ZZcnzyeuVHJCT2sFDkAjxeVX87CyfVcix5ml4Dn3V2/s1600/admin.png" /></a></div>
<div>
<br /></div>
<div>
<u>Quelques précisions.</u></div>
<div>
<span style="color: orange;">name= </span>doit être identique à la valeur $_POST[''] dans block.php</div>
<div>
<span style="color: orange;">$this->getConfig('notifyemail') : </span>Récupère la configuration du paramètre notifyemail (créé précédemment)</div>
<div>
<br /></div>
<div>
Vous pouvez tester dans l'interface d'administration les valeurs sont bien sauvegardés.</div>
<h2>
Modification l'action de l'envoi du formulaire</h2>
<div>
Nous n'avons toujours pas jeté un coup d'oeil à <i>view.php </i></div>
<div>
C'est ici que nous allons dire à notre bloc d'envoyer l'email.</div>
<div>
<i><br /></i></div>
<div>
Étudions un peu son fonctionnement.</div>
<div>
<br /></div>
<div>
<span style="color: red;">if($this->getConfig('module'))</span></div>
<div>
Vérifie que le module est bien configuré sinon il affiche <span style="color: orange;">Please Configure this block</span></div>
<div>
<br /></div>
<div>
<span style="color: red;">if(isset($_POST['add']))</span></div>
<div>
Tout ce qui est encapsulé dans cet if est exécuté lorsque le formulaire est répondu.</div>
<div>
<br /></div>
<div>
<span style="color: red;"> include(PROFILE_PATH .$this->getConfig('pathOfView'));</span></div>
<div>
Cette ligne récupère la vue crée dans l'interface d'administration (et présent dans le dossier <i>/profiles</i>)</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ_S4Bss1cNgYX3RcKaQX6Gw2RM8S1_gWm6Q7jnKnLfwhRPN2UMjOyE6v-rhWIqrBSzjv7bmQLsLunt1dvn003E4YCldlS-WkBdn1ZNf9R7698cHchCEB28ivdVipHVDUpchi8OXio4rqs/s1600/admin2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ_S4Bss1cNgYX3RcKaQX6Gw2RM8S1_gWm6Q7jnKnLfwhRPN2UMjOyE6v-rhWIqrBSzjv7bmQLsLunt1dvn003E4YCldlS-WkBdn1ZNf9R7698cHchCEB28ivdVipHVDUpchi8OXio4rqs/s1600/admin2.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ce code est régénéré par generateViewAction dans block.php si l'option régénérer la vue est actif</td></tr>
</tbody></table>
<div>
<i>(Ne vous laissez pas avoir par le <span style="color: red;">if($entity->insertInto($_POST))</span> en plus de vérifier si la requête SQL s'est bien déroulée, ils rajoutent les valeurs rentrées dans la base de données)</i></div>
<div>
<i><br /></i></div>
<div>
Nous allons faire simple (pour commencer), lorsque le formulaire est rempli, un email vide est envoyé.</div>
<div>
Afin de faire ceci, nous allons utiliser la fonction: </div>
<div>
tools::sendMail de <i><a href="https://github.com/parsimony/parsimony_cms/blob/master/modules/core/classes/tools.php" target="_blank">/modules/core/classes/tools.php</a></i></div>
<div>
<span class="nf" style="background-color: white; border: 0px; color: #990000; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;"><br /></span></div>
<div>
<span style="line-height: 16px; white-space: pre;">Elle fonctionne comme ceci</span></div>
<div>
<span class="nf" style="background-color: white; border: 0px; color: #990000; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">sendMail</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">(</span><span class="nv" style="background-color: white; border: 0px; color: teal; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">$to</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">,</span><span style="background-color: white; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"> </span><span class="nv" style="background-color: white; border: 0px; color: teal; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">$from</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">,</span><span style="background-color: white; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"> </span><span class="nv" style="background-color: white; border: 0px; color: teal; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">$replyTo</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">,</span><span style="background-color: white; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"> </span><span class="nv" style="background-color: white; border: 0px; color: teal; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">$subject</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">,</span><span style="background-color: white; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; white-space: pre;"> </span><span class="nv" style="background-color: white; border: 0px; color: teal; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">$body</span><span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;">)</span></div>
<div>
<span class="p" style="background-color: white; border: 0px; color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; line-height: 16px; margin: 0px; padding: 0px; white-space: pre;"><br /></span></div>
<div>
Pour l'email nous allons simplement mettre dans $to,$from,$replyTo celui configurerait dans notre paramètre notifyemail.</div>
<div>
<br /></div>
<div>
<i><span style="color: red;">tools::sendMail($this->getConfig('notifyemail'),$this->getConfig('notifyemail'), $this->getConfig('notifyemail'),$subject,$body);</span></i></div>
<div>
<br /></div>
<div>
Pour le sujet ($subject) nous allons mettre le nom du bloc pour cela il nous faut le récupérer comme ceci</div>
<div>
<span style="color: red;">$form_name = $this->getName();</span></div>
<div>
Puis rajouter un peu de texte (traduisible)</div>
<div>
<span style="color: red;">$subject = $form_name.' '.t('Responded');</span></div>
<div>
<br /></div>
<div>
<u>Au final, voilà le code:</u></div>
<div>
<div>
<span style="color: orange;">if(isset($_POST['add'])){</span></div>
<div>
<span style="color: orange;"> if($entity->insertInto($_POST)){</span></div>
<div>
<span style="color: orange;"> echo '<div class="notify positive">'.t($this->getConfig('success')).'</div>';</span></div>
<div>
<span style="color: orange;"> }else{</span></div>
<div>
<span style="color: orange;"> echo '<div class="notify negative">'.t($this->getConfig('fail')).'</div>';</span></div>
<div>
<span style="color: orange;"> }</span></div>
<div>
<div>
<span style="color: red;">$form_name = $this->getName();</span></div>
<div>
<span style="color: red;">$subject = $form_name.' '.t('Responded');</span></div>
</div>
<div>
<span style="color: red;">tools::sendMail($this->getConfig('notifyemail'),$this->getConfig('notifyemail'), $this->getConfig('notifyemail'),$subject,$body);</span></div>
<div>
<span style="color: orange;"> }</span></div>
</div>
<div>
<span style="color: orange;"><br /></span></div>
<div>
Si vous avez bien <a href="http://parsimonycms.blogspot.com/2013/01/creer-un-nouveau-bloc-exemple.html" target="_blank">paramétré votre serveur mail</a>, et mis la bonne adresse dans l'interface d'administration, vous devriez recevoir un email avec comme sujet <span style="color: red;">NOM_DU_BLOC responded.</span></div>
<div>
<span style="color: red;"><br /></span></div>
<div>
Voilà pour ce chapitre ! Pour le prochain, nous allons rajouter les valeurs du formulaire dans le corps de notre email.</div>
<div>
<span style="color: red;"><br /></span></div>
<div>
<span style="color: orange;"><br /></span></div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-16390438280281426542013-01-30T21:38:00.001+01:002013-02-01T01:51:45.718+01:00Ayez plus rien ne marche<h2>
Problème de bloc</h2>
Si vous vous retrouvez avec un bloc qui vous empêche d'utiliser l'interface d'administration,<br />
il vous suffit de le chercher dans <i>modules/core/views/desktop/NOMDUBLOC.</i>php et de corriger ce qui pose problème.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-71471525114683999192013-01-30T14:14:00.003+01:002013-02-01T01:53:49.455+01:00Récupérer son mot de passe après réinitialisation accidentelle<div style="text-align: center;">
<span style="text-align: left;">Si vous avez réinitialisé votre mot de passe alors que vous n'avez pas </span><a href="http://parsimonycms.blogspot.fr/2013/01/gestion-de-lenvoi-demail.html" style="text-align: left;">paramétré votre serveur mail</a><span style="text-align: left;"> vous avez encore la solution de la dernière chance:</span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Dans /modules/core/classes/user.php</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
L152</div>
<div style="text-align: left;">
Rajouter </div>
<div style="text-align: left;">
<span style="color: red;">echo $newPass;</span></div>
<div style="text-align: left;">
Après</div>
<div style="text-align: left;">
<span style="color: red;"> \app::getModule('core')->getEntity('user')->where('mail = :mail')->update(array('pass' => $newPass, 'mail' => $userMail));</span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Votre mot de passe apparaitra dans une boite de dialogue javascript (<trollface> ça serait trop facile sinon </trollface>) </div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNY3eCh9HFICwv3GmqgDmbkOLURzZQa9EJzBLzshQCJO79HzrIM4xZ0LOp40RJOyuP9iGwQg1WSP4jV-Pb9hWAVsbX_pz66smMnkqa79eD9xSOYnLMCPdAnc_XtaWGNuoQ7QfcKawPTNqV/s1600/password.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNY3eCh9HFICwv3GmqgDmbkOLURzZQa9EJzBLzshQCJO79HzrIM4xZ0LOp40RJOyuP9iGwQg1WSP4jV-Pb9hWAVsbX_pz66smMnkqa79eD9xSOYnLMCPdAnc_XtaWGNuoQ7QfcKawPTNqV/s1600/password.png" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="color: red; font-size: large;">N'oubliez pas d'enlever la ligne après !!</span></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-14818674156946134842013-01-29T21:37:00.000+01:002013-02-01T01:55:01.396+01:00Vos questions<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/f/f3/Question_mark_alternate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/f/f3/Question_mark_alternate.png" width="247" /></a></div>
<div style="text-align: center;">
<span style="font-size: x-large;">Vos questions</span></div>
<div style="text-align: center;">
<span style="font-size: x-large;"><br /></span></div>
<div style="text-align: left;">
Si vous avez des questions, n'hésitez pas à les poser ici, les commentaires sont sans demande d'inscription (mais soumis à vérification)</div>
Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-212290005462972690.post-1587793520510359192013-01-29T19:13:00.000+01:002013-02-01T01:56:02.128+01:00Gestion de l'envoi d'emailSi vous voulez tester l'envoi d'email sur un serveur de test.<br />
<br />
Allez dans <i>Configuration -> Mailing </i><br />
<br />
Et changer Send Type par SMTP et mettez le serveur SMTP de votre FAI.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhyphenhyphenF0K0ltqQFdvhm9N21s128KKOanDq5BWEIi-gEwJB2EZHEOg6cBT0vtm1nRGb9wVSRD6znfk6icezAOkszeQ5l566LO55OTlT5lqumD07-acoD71HfeQdMIR0r1fkz1uuS_k3P94GIKz/s1600/smtp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="491" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhyphenhyphenF0K0ltqQFdvhm9N21s128KKOanDq5BWEIi-gEwJB2EZHEOg6cBT0vtm1nRGb9wVSRD6znfk6icezAOkszeQ5l566LO55OTlT5lqumD07-acoD71HfeQdMIR0r1fkz1uuS_k3P94GIKz/s640/smtp.png" width="640" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-26924295727864310162013-01-29T19:10:00.003+01:002013-02-01T02:08:42.438+01:00Designer les emails<div style="text-align: center;">
<div style="text-align: left;">
Vous voulez changer les emails par défaut ? Vous pouvez évidemment les modifier à la main en allant dans : <span style="color: #e69138; font-style: italic;">modules\admin\views\mail\ </span>mais il y a une solution plus simple !<br />
<br /></div>
<h2 style="text-align: left;">
<span style="font-size: large;">
Présentation des emails</span></h2>
<div style="text-align: left;">
Tout d'abord, regardons un peu les emails disponibles dans <span style="color: #e69138; font-style: italic;">modules\admin\views\mail\</span></div>
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<div style="text-align: left;">
<i>remp.php : Email de renvoi de mot de passe</i></div>
</div>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukMIvOBsNUdj_qOvynyI7SrO6-TYGCr5O9cmpm9uDGl6AeCEqG1Aeq3ovLeJNhOrq-ya_zVuQarDiDF-HZbf4Z6OM_0cGXmX5v_U086RqmaWEKREqDRvQdMgf63oa2LfmS0aYJt0_K7M-/s1600/issue6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukMIvOBsNUdj_qOvynyI7SrO6-TYGCr5O9cmpm9uDGl6AeCEqG1Aeq3ovLeJNhOrq-ya_zVuQarDiDF-HZbf4Z6OM_0cGXmX5v_U086RqmaWEKREqDRvQdMgf63oa2LfmS0aYJt0_K7M-/s1600/issue6.png" /></a></div>
<i><br /></i></div>
<div style="text-align: center;">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<i>registration.php : Email de création de comptes</i></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLcZnBTvzd79J1AipoqLeqhKmFwdTT7LCjdFRiJmzl-wPcIeck5nGx7EILOgaJZkBn8J6FO7FuRCaeOykMN4F7MmTsoPBoSWUZp7emQBvFSRgHk-hyhLfHcVD239LD5rAactXJ8ixJejed/s1600/registration.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLcZnBTvzd79J1AipoqLeqhKmFwdTT7LCjdFRiJmzl-wPcIeck5nGx7EILOgaJZkBn8J6FO7FuRCaeOykMN4F7MmTsoPBoSWUZp7emQBvFSRgHk-hyhLfHcVD239LD5rAactXJ8ixJejed/s1600/registration.png" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<br />
<div style="text-align: left;">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Il y en a un troisième parsimailing.php pour autant il ne semble pas être utilisé.<br />
<br />
Maintenant pour le modifier directement voilà la procédure :<br />
<h2>
Créer une page temporaire</h2>
<i>Modules -> Ajouter une page</i><br />
Donnez-lui le nom que vous voulez<br />
<br />
<u>Puis créer un bloc Code dans Content</u><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEc4LHGDyqxhZsC-gOSxGOoKU7XsHnEGuRYfFKmFvp0gjcFQReBqtzR225ppSJt_21BpI1PTwFkB8iOveH3BNs_l7jX2voRV8hMKx-IvYYwg7Q3yMoidhR558wgUD3WPyObhkohz6ytja/s1600/core1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEc4LHGDyqxhZsC-gOSxGOoKU7XsHnEGuRYfFKmFvp0gjcFQReBqtzR225ppSJt_21BpI1PTwFkB8iOveH3BNs_l7jX2voRV8hMKx-IvYYwg7Q3yMoidhR558wgUD3WPyObhkohz6ytja/s1600/core1.png" /></a></div>
<br />
<br />
<i><br /></i>
<i><br /></i>
<i><br /></i>
<i><br /></i>
<i><br /></i>
<u>Cliquez sur le bloc -> Configure</u><br />
Récupérez le code de l'email que vous voulez modifier et copiez-le. (<span style="color: #e69138; font-style: italic;">modules\admin\views\mail\</span><span style="font-style: italic;">)</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5V4Kjjd-RN2HbJ8AuinlnIXSLM0Jxvbj098QBfN5zBSDIh0uUCxg3Y7AyUQPepz6QUshincf-nEYOD2X-j-76whykoJKmO4nDx7wf93gdvbT4d-AGL78AqeBepGVtE7scjRB7QCyM6eCN/s1600/mailhtml.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5V4Kjjd-RN2HbJ8AuinlnIXSLM0Jxvbj098QBfN5zBSDIh0uUCxg3Y7AyUQPepz6QUshincf-nEYOD2X-j-76whykoJKmO4nDx7wf93gdvbT4d-AGL78AqeBepGVtE7scjRB7QCyM6eCN/s640/mailhtml.png" width="640" /></a></div>
<br />
<u><br /></u>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Sauvegardez et voilà le résultat:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd72Tm_74IYeekCAYzdHuDgPVsUT9s-ZZ99zo79j16hEx4ktYqBqff0ASiVg-YkgFVHYYn-DLy-lMzy_6oeSXE1EFwk7FLiF4rwsNcM0HTYq6qwmIJEITfkT2_NBUa81PXaQZp7LnS-eo6/s1600/emailhtml2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd72Tm_74IYeekCAYzdHuDgPVsUT9s-ZZ99zo79j16hEx4ktYqBqff0ASiVg-YkgFVHYYn-DLy-lMzy_6oeSXE1EFwk7FLiF4rwsNcM0HTYq6qwmIJEITfkT2_NBUa81PXaQZp7LnS-eo6/s640/emailhtml2.png" width="610" /></a></div>
<br />
Vous pouvez modifier le code dans Configure, et pour finir, une fois que vous êtes satisfait de l'apparence, recopier le code dans les fichiers PHP respectifs.<br />
<br />
J'ai testé assez rapidement avec le bloc wysiwyg, cependant cela ne semble pas marcher.<br />
<h2>
Alternative</h2>
<div>
<u>Vous pouvez aussi accéder aux emails en mettant ces URL:</u></div>
<div>
<span style="color: orange;">/modules/admin/views/mail/remp.php</span></div>
<div>
<span style="color: orange;">/modules/admin/views/mail/registration.php</span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-36262450444272112013-01-29T15:58:00.003+01:002013-01-29T19:34:59.374+01:00Générer un tableau de donnéesAjouter un formadd<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi8p0CTI2CYlet2KWyeBJI3y1s58Hp4UjJaX9ABCLF2jxp5d916eatbCTBpmH9WU88-TucMpxYSbk0F4M1BWk2ZgndbGrhMX8AczDDMErelMFxoda9kW3nN36_sZor8iyV3-mf3EKy4ir1/s1600/formadd1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="77" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi8p0CTI2CYlet2KWyeBJI3y1s58Hp4UjJaX9ABCLF2jxp5d916eatbCTBpmH9WU88-TucMpxYSbk0F4M1BWk2ZgndbGrhMX8AczDDMErelMFxoda9kW3nN36_sZor8iyV3-mf3EKy4ir1/s320/formadd1.png" width="320" /></a><br />
<br />
<br />
<br />
<br />
<br />
Choisissez un ou des tables<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP0ISt7o5K7tunWBeNxQglQIf7DmM-83f4uluIJFJO_zAY-hhvJ9JVciToFPQUrhuKR5Vr5F3T6EQd_FVRz8tK81tXor6uKjzfPf2o66v4szmdJCUiq_X-MbI_HwA77kuy1fxWbI5_sbMF/s1600/formadd2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP0ISt7o5K7tunWBeNxQglQIf7DmM-83f4uluIJFJO_zAY-hhvJ9JVciToFPQUrhuKR5Vr5F3T6EQd_FVRz8tK81tXor6uKjzfPf2o66v4szmdJCUiq_X-MbI_HwA77kuy1fxWbI5_sbMF/s1600/formadd2.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Choissisez les champs que vous voulez afficher<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz9jIkVHdikdC-n-j2lByK3xr6jg2MrJnf_fjkoYvVlp3H2IRkFSBgbPc_ofgVhZElSUrm3aC_6L1Vq44_H7c3Bgo7N9XT7_KK5uS6k2MLz6AJh1cFDluc7FOiaO_Zqzes0LtXMBbqEA-C/s1600/formadd3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz9jIkVHdikdC-n-j2lByK3xr6jg2MrJnf_fjkoYvVlp3H2IRkFSBgbPc_ofgVhZElSUrm3aC_6L1Vq44_H7c3Bgo7N9XT7_KK5uS6k2MLz6AJh1cFDluc7FOiaO_Zqzes0LtXMBbqEA-C/s1600/formadd3.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<u>Puis dans View ajouter au début du code</u></div>
<br />
<blockquote class="tr_bq">
<table border="1"><br /> <tr><br /> <th><strong>ID</strong></th><br /> <th><strong>NOM</strong></th><br /> etc...<br /> </tr><br /><span style="font-size: large;">...</span><br /><span style="color: red;"><tr></span><span class="Apple-tab-span" style="white-space: pre;"> </span><div class="itemscope"><br /><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> <span style="color: red;"> </span></span><span style="color: red;"><td></span><div class="itemprop id_test"><?php echo $line->id_test; ?></div><span style="color: red;"></td></span><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: red;"><td></span><div class="itemprop nom"><?php echo $line->nom->display($line); ?></div><span style="color: red;"></td></span><span class="Apple-tab-span" style="white-space: pre;"> </span>etc...<br /><span class="Apple-tab-span" style="white-space: pre;"> </span></div><br /><span style="color: red;"></tr></span><span style="color: red;"><br /></span><span style="color: red;">...</span><span style="color: red;"><br /></span><span style="color: red;"><table></span></blockquote>
<br />
<br />
Et voilà vous avez un tableau de données.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DT228qHzwu9pTArva2q_Hjf_EDBe9UHB_bRZ0-3Q_Y14XglkRO4i6UktntPyc1g0Zopbt79SQrVWpgftmxb4VxQI80IrQvZ2Lu2h-Njn3_uevjPQsPXN-mOmwFzkqCCee5AGjaSiAAne/s1600/tableau.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DT228qHzwu9pTArva2q_Hjf_EDBe9UHB_bRZ0-3Q_Y14XglkRO4i6UktntPyc1g0Zopbt79SQrVWpgftmxb4VxQI80IrQvZ2Lu2h-Njn3_uevjPQsPXN-mOmwFzkqCCee5AGjaSiAAne/s1600/tableau.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-212290005462972690.post-3920525529136609262013-01-27T22:23:00.003+01:002013-01-30T17:52:02.325+01:00Les fichiers et dossiers<span style="font-size: large;">Voici une description brève et incomplète des différents fichiers et dossiers du CMS Parsimony.</span><br />
<br />
Je rajouterais au fur et à mesure mes découvertes.<br />
<div style="text-align: center;">
<span style="background-color: red; font-size: x-large;"><br /></span></div>
<div style="text-align: center;">
<span style="background-color: #f6b26b; font-size: x-large;">/</span></div>
<i>config.php</i><br />
Ce fichier contient la configuration de parsimony<br />
<br />
<i>install.php</i><br />
Ce fichier contient l'installateur de parsimony (il n'est plus accessible après installation)<br />
<br />
<i>index.php</i><br />
<br />
<i>.htaccess</i><br />
Gère le module rewrite du serveur web afin d'utiliser la réécriture d'url (indispensable au fonctionnement de parsimony)<br />
<br />
<div style="text-align: center;">
<span style="background-color: #f6b26b; font-size: x-large;">/cache</span></div>
<div style="text-align: center;">
Contient les fichiers en cache (images,scripts,traductions de l'interface d'administrations)</div>
<br />
<div style="text-align: center;">
<span style="background-color: #f6b26b; font-size: x-large;">/lib</span></div>
<div style="text-align: center;">
Contient les différentes bibliothèques utilisées par le back et le front office</div>
<br />
<i>codemirror</i> : <a href="http://codemirror.net/">CodeMirror</a> (editeur de code)<br />
<i>colorpicker</i> : <a href="http://www.colorjack.com/software/dhtml+color+picker.html">DHTML Color Picker</a> (Sélectionneur de couleurs)<br />
<i>csspie </i> : <a href="http://css3pie.com/">CSS3 Pie</a>(Compatibilité CSS3 sur IE9)<br />
<i>dnd</i> : (Drag'n'drop Jquery)<br />
<i>fancybox</i> : <a href="http://fancybox.net/">Fancy Box</a> (LightBox)<br />
<i>html5slider </i> : <a href="https://github.com/fryn/html5slider">HTML5 Slider</a> (Implémentation de input type=range pour Firefox 4 et +)<br />
<i>fracs </i> : <a href="http://larsjung.de/fracs/">Jquery.fracs</a> (Détermine les parties visibles des éléments HTML dans l'espace)<br />
<i>glyphish </i> : <a href="http://www.glyphish.com/">Glyphish </a>(Icônes)<br />
<i>html5editor</i> : Editeur <a href="http://fr.wikipedia.org/wiki/What_you_see_is_what_you_get">wysiwyg</a><br />
<i>jquery</i> : <a href="http://jquery.com/">Jquery </a>(Bibliothéque javascript aux nombreux usages)<br />
<i>jqueryui </i> : <a href="http://jqueryui.com/">Jquery UI</a> (La version pour créer des interfaces utilisateur)<br />
<i>jsPlumb</i> : <a href="http://www.jsplumb.org/jquery/demo.html">Js Plumb</a> (Système pour lier des objets utilisés dans l'éditeur de base de données)<br />
<i>nestedSortable</i> : <a href="http://mjsarfatti.com/sandbox/nestedSortable/">Nested Sortable</a> (Système pour améliorer les listes triables de Jquery)<br />
<i>phpmailer</i> : <a href="http://phpmailer.worxware.com/">PHP Mailer</a> (Envoi de mail en PHP)<br />
<i>simplehtmldom</i> : <a href="http://simplehtmldom.sourceforge.net/">Simple HTML DOM </a> Parseur de DOM afin de facilement manipuler du HTML<br />
<i>tooltips </i> : Système pour gérer les tooltips (Jquery)<br />
<i>upload </i> : Système de gestion des uploads (Jquery)<br />
<br />
<div style="text-align: center;">
<span style="background-color: #f6b26b; font-size: x-large;">/modules</span></div>
<div style="text-align: center;">
Contient les modules de Parsimony</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
<i>admin</i> : Back Office de Parsimony<br />
<i>admin/core/classes/entity.php</i> : Formulaire pour modifier un enregistrement <i>n</i><br />
<i>admin/views/mail : </i>Structure des Email </div>
<div style="text-align: left;">
<i>core</i> : Le module de base de Parsimony contient les blocs et fonctionnalités de bases</div>
<div style="text-align: left;">
<i>core/blocks</i> : Les blocs sont présents ici</div>
<div style="text-align: left;">
La création d'un module créera un nouveau dossier avec un fichier module.php</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: center;">
<span style="background-color: #f6b26b; font-size: x-large;">/profiles</span></div>
<div style="text-align: center;">
Contient les profils de Parsimony</div>
<div style="text-align: center;">
<br /></div>
Ce dossier contient les données "modifiés" des modules, des fichiers de configurations ainsi que les backups des différents fichiers.<br />
En effet parsimony génère des fichiers php ici , les fichiers dans modules ne sont que les squelettes des objets.<br />
<br />
<span style="color: red;">Ils n'y a aucun intêret de modifier ces fichiers directement.</span><br />
<span style="color: red;"><br /></span>Unknownnoreply@blogger.com0