<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>oscim.net</title>
	<atom:link href="http://www.oscim.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oscim.net</link>
	<description>infos, notes et ps d&#039;un freelance</description>
	<lastBuildDate>Sat, 31 Dec 2011 20:52:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>modification des modules non type a partir de la version 2.1.1</title>
		<link>http://www.oscim.net/archives/403</link>
		<comments>http://www.oscim.net/archives/403#comments</comments>
		<pubDate>Sat, 31 Dec 2011 20:50:35 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss]]></category>
		<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[2.1.0]]></category>
		<category><![CDATA[2.1.1]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[note]]></category>
		<category><![CDATA[note de version]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.oscim.net/archives/403</guid>
		<description><![CDATA[Vous migrez votre template d&#8217;un osCSS 2.1.0 à la nouvelle version en cours de dev. Dans l&#8217;affichage de vos page, les modules non typé n&#8217;affiche plus rien ?
Il s&#8217;agit d&#8217;un petite evolution de ces modules. Le module DOIT renvoyer le type de donnée qu&#8217;il traitent. C&#8217;est cette indication qui est utilisé dans les boucles associées [...]]]></description>
			<content:encoded><![CDATA[<p>Vous migrez votre template d&#8217;un osCSS 2.1.0 à la nouvelle version en cours de dev. Dans l&#8217;affichage de vos page, les modules non typé n&#8217;affiche plus rien ?</p>
<p>Il s&#8217;agit d&#8217;un petite evolution de ces modules. Le module DOIT renvoyer le type de donnée qu&#8217;il traitent. C&#8217;est cette indication qui est utilisé dans les boucles associées au modules.</p>
<p>Pour corriger ce probleme, ajouter dans les function &nbsp;&raquo; in_obj_xxx&nbsp;&raquo;, dans la boucle de traitement des donnée , l&#8217;informations comme suit:<br />
Avant</p>
<pre> while ($listing_version_products = $res-&gt;fetchAssoc()){</pre>
<pre> $pd=product::get_item($listing_version_products['products_id']);</pre>
<pre> $pd-&gt;aca=$aca_listing-&gt;return_db_min($listing_version_products['products_id']);</pre>
<pre> $p[]=$pd;</pre>
<pre> }</pre>
<pre> return new objectInfo(array('title'=&gt;__('table heading version products') , 'content'=&gt;$p));</pre>
<p>Apres</p>
<pre>while ($listing_version_products = $res-&gt;fetchAssoc()){
 $pd=product::get_item($listing_version_products['products_id']);
 $pd-&gt;aca=$aca_listing-&gt;return_db_min($listing_version_products['products_id']);
 $pd-&gt;type='product';
 $p[]=$pd;
 }</pre>
<pre>return new objectInfo(array('title'=&gt;__('table heading version products') , 'content'=&gt;$p ,'type'=&gt;'product'));</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/403/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>memo appel detail customer for view public informations</title>
		<link>http://www.oscim.net/archives/401</link>
		<comments>http://www.oscim.net/archives/401#comments</comments>
		<pubDate>Sat, 31 Dec 2011 15:46:27 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss]]></category>
		<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[note]]></category>

		<guid isPermaLink="false">http://www.oscim.net/archives/401</guid>
		<description><![CDATA[Il est possible avec la class customers d&#8217;appler les informations public associé a un id.
A cette occasion, la class customer est reinititalisé.
Pour continuer à acceder à l&#8217;utilisateur courant , utiliser
$current=$page-&#62;new_class(&#8217;customer&#8217;);
]]></description>
			<content:encoded><![CDATA[<p>Il est possible avec la class customers d&#8217;appler les informations public associé a un id.<br />
A cette occasion, la class customer est reinititalisé.<br />
Pour continuer à acceder à l&#8217;utilisateur courant , utiliser</p>
<p>$current=$page-&gt;new_class(&#8217;customer&#8217;);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/401/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(pense bête) frontoffice &#8211; gestion des pdf</title>
		<link>http://www.oscim.net/archives/389</link>
		<comments>http://www.oscim.net/archives/389#comments</comments>
		<pubDate>Fri, 16 Dec 2011 23:16:41 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss]]></category>
		<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[note]]></category>

		<guid isPermaLink="false">http://www.oscim.net/archives/389</guid>
		<description><![CDATA[Suite à l&#8217;évolution de la prise en charge des pdf (modularité / ou prise en charge d&#8217;un import externe fournis pas logiciel tiers)
- Utilisation du moteur interne
La génération du pdf à lieu exclusivement par le back-office.
- Utilisation d&#8217;un moteur externe
Pas de génération de pdf disponible dans le back-office.
- Conclusion
Aussi, pour que le client dans sont [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à l&#8217;évolution de la prise en charge des pdf (modularité / ou prise en charge d&#8217;un import externe fournis pas logiciel tiers)<span id="more-389"></span></p>
<p>- Utilisation du moteur interne<br />
La génération du pdf à lieu exclusivement par le back-office.<br />
- Utilisation d&#8217;un moteur externe<br />
Pas de génération de pdf disponible dans le back-office.</p>
<p>- Conclusion</p>
<p>Aussi, pour que le client dans sont espace (cf module account/history) le pdf soit disponible, il doit être présent.</p>
<p>La lecture ou téléchargement de ce fichier est assuré par l&#8217;appel à la page documents.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/389/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolution des statut, modification gestion des status</title>
		<link>http://www.oscim.net/archives/385</link>
		<comments>http://www.oscim.net/archives/385#comments</comments>
		<pubDate>Sun, 13 Nov 2011 11:58:15 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[add]]></category>
		<category><![CDATA[ajouter]]></category>
		<category><![CDATA[commande]]></category>
		<category><![CDATA[confirmation]]></category>
		<category><![CDATA[orders]]></category>
		<category><![CDATA[oscss]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[processus]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[statut]]></category>

		<guid isPermaLink="false">http://www.oscim.net/archives/385</guid>
		<description><![CDATA[Une petite modif apparait dans la gestion des status, afin que ceuc xi soit plus souple d&#8217;usage.
L&#8217;exemple concerne la gestion des commandes, et les statut, en attente, en preparation, livré et annulé.

La nouvelle nomenclature sera ainsi
- en attente id 1
- payé id 2
- en preparation id 3
- expedié id 4
- livré id 5
- cloturé id [...]]]></description>
			<content:encoded><![CDATA[<p>Une petite modif apparait dans la gestion des status, afin que ceuc xi soit plus souple d&#8217;usage.</p>
<p>L&#8217;exemple concerne la gestion des commandes, et les statut, en attente, en preparation, livré et annulé.</p>
<p><span id="more-385"></span></p>
<p>La nouvelle nomenclature sera ainsi<br />
- en attente id 1<br />
- payé id 2<br />
- en preparation id 3<br />
- expedié id 4<br />
- livré id 5<br />
- cloturé id 6<br />
- annulé id -1</p>
<p>D&#8217;autre part, il est maintenant possible, et recommandé, que les module qui ajoute des statut, soit des statut enfant de ceux cité au dessus</p>
<p>C&#8217;est a dire, que un statut &laquo;&nbsp;payé par CB &laquo;&nbsp;, sera un statut avec l&#8217;id 21.<br />
Il appartiendra a la section des statut payé, et precisera par cb.</p>
<p>Pour attribbuer un statut à sont pére, il faut respecter l&#8217;ecriture ci dessous:<br />
pere + num<br />
21 Pour pere payé<br />
12 Pour pere en attente</p>
<p>L&#8217;etat des commande et du comportement de la boutique, sera donc basé sur le pere du statut courant.<br />
Toutefois cette nuance permet au module de genere leur propre statut, et ainsi de suivre en interne du module la progression.</p>
<p>Enfin les liste de commande ne contiendront que les statut &gt; 0. C&#8217;est a dire que les listing ne publierons pas les commande annulé, ou avec un statut negatif</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/385/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OsCSS contrib_installer  filesql nouveau tag</title>
		<link>http://www.oscim.net/archives/382</link>
		<comments>http://www.oscim.net/archives/382#comments</comments>
		<pubDate>Sun, 06 Nov 2011 13:37:59 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[installateur extension osCSS2]]></category>
		<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[contrib]]></category>
		<category><![CDATA[filesql]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[tag]]></category>

		<guid isPermaLink="false">http://www.oscim.net/?p=382</guid>
		<description><![CDATA[L&#8217;installateur d&#8217;extension ce voit pourvu d&#8217;un nouveau tag, le filesql.
Ce tag ne demande aucun arguement, il ne fait qu&#8217;initier la mise en oeuvre de la lecture du dossier /sql de la contrib courante.
L&#8217;arborescence du dossier sql, respecte les même contrainte que les fichiers d&#8217;installations.

/sql

/mysql

install

tables

xxxx.sql
xxxx.key.sql


data

xxx.sql




remove

tables
data




postgresql/



Les fichiers sql, key.sql respecte le format courant des fichier sql.  les [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;installateur d&#8217;extension ce voit pourvu d&#8217;un nouveau tag, le filesql.<span id="more-382"></span></p>
<p>Ce tag ne demande aucun arguement, il ne fait qu&#8217;initier la mise en oeuvre de la lecture du dossier /sql de la contrib courante.</p>
<p>L&#8217;arborescence du dossier sql, respecte les même contrainte que les fichiers d&#8217;installations.</p>
<ul>
<li>/sql
<ul>
<li>/mysql
<ul>
<li>install
<ul>
<li>tables
<ul>
<li>xxxx.sql</li>
<li>xxxx.key.sql</li>
</ul>
</li>
<li>data
<ul>
<li>xxx.sql</li>
</ul>
</li>
</ul>
</li>
<li>remove
<ul>
<li>tables</li>
<li>data</li>
</ul>
</li>
</ul>
</li>
<li>postgresql/</li>
</ul>
</li>
</ul>
<p>Les fichiers sql, key.sql respecte le format courant des fichier sql.  les commentaires sont composé de &laquo;&nbsp;&#8211;&nbsp;&raquo;.</p>
<p>Chaque commande doit ce terminer par un &laquo;&nbsp;;&nbsp;&raquo;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/382/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension ecommerce / dolibarr</title>
		<link>http://www.oscim.net/archives/360</link>
		<comments>http://www.oscim.net/archives/360#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:14:04 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[Dolibarr - extension]]></category>
		<category><![CDATA[Soap ecommerce / Dolibarr]]></category>
		<category><![CDATA[dolibarr]]></category>

		<guid isPermaLink="false">http://www.oscim.net/?p=360</guid>
		<description><![CDATA[(DOCUMENT DE TRAVAIL&#8230; EN COURS!!!)
Un petit point sur l&#8217;extension ecommere pour dolibarr, basé sur la version de tiaris. Afin de réponse a mes besoin, j&#8217;ai re-developpé ma propre version. Enf effet, la version original n&#8217;ayant absolument pas les capacité dont j&#8217;avais besoin .
Petit recap des fonctionnalités nécessaires :

 import des archives (6 ans +/- 15 [...]]]></description>
			<content:encoded><![CDATA[<p>(DOCUMENT DE TRAVAIL&#8230; EN COURS!!!)</p>
<p>Un petit point sur l&#8217;extension ecommere pour dolibarr, basé sur la version de tiaris. Afin de réponse a mes besoin, j&#8217;ai re-developpé ma propre version. Enf effet, la version original n&#8217;ayant absolument pas les capacité dont j&#8217;avais besoin .<span id="more-360"></span></p>
<p>Petit recap des fonctionnalités nécessaires :</p>
<ul>
<li> import des archives (6 ans +/- 15 000 Clients pour un site)</li>
<li>gestion lors de l&#8217;import de la clôture des commande, de la génération de BL , de la clôture (si payé) des factures</li>
<li>gestion des import produit et catégories</li>
<li>utilisation des attribut de produits venant de ecommerce , et non implémenté dans dolibarr (creation d&#8217;un produit par couple produit + attribut), avec un référence unique</li>
<li>création de numéro de commande, facture , client personnalisé, indiquant à la fois les ref de dolibarr, celle du site ecommerce , et l&#8217;id du site ecommerce (plusieurs site couplé avec 1 seul dolibarr)</li>
<li>traitement automatisé des imports , et recherche d&#8217;existant (un même client inscrit sur 2 sites ecommerce, un produit en vente sur 2 sites.. ), et si l&#8217;automatisation échoue, ajout d&#8217;une action manuelle permettant de terminer l&#8217;import apres un choix manuel</li>
<li>Gestion de correspondance de statuts ecommerce vs dolibarr et les variante de document. (commande + bon de livraison + facture + paiement )</li>
<li>UTilisation d&#8217;un module de module pour le tratiement specifique par type de moteur ecommrece, liée à dolibarr</li>
<li>Suivi du stock</li>
</ul>
<p>Afin de faire tous ca, il à quand même fallu ce retorusser les manches, et attaquer fort. Le mdoule utlise des table ecom_ temporaire pour assurer la liaison entre le site ecom et dolibarr. Il à dabord fallut restructurer un peu les tables, et ajouter des contrainte unique afin de garantir coherance de l&#8217;ensemble.</p>
<h2>Base de données</h2>
<p>Pour toutes les tables de liaison entre ecom est dolibarr, j&#8217;ai ajouté quelques colonne, afin de traiter la gestion des echange entre l&#8217;ecom et dolibarr apres import. Ces collone assure aussi un etat de l&#8217;import.</p>
<h3>Les colonnes event_xxx</h3>
<p>Les 3 colonnes supplementaire ajouté</p>
<p>event_type int(2) NOT null comment &#8216;0: init / 1 import ,11 import ok, 12 import attente, 13 import apres association manuelle , 14 import not Ok / 2 export, 21 export ok, 22 export attente / 3 no touch &#8216;,<br />
event_update datetime NOT null,<br />
event_check int(1) NOT null default &#8216;0&#8242; comment &#8216; -9 error , -1 error reload / 0 default / 1 ok / 2 check and no touch ok/ 3 Abandon  &#8216;,</p>
<p>Pour toutes les table, j&#8217;ai ajouté des clek unique sur les coupe <em>doli_id, ecom_id, site_id</em> afin de garantir l&#8217;unicité des données, et bloqué les doublon eventuel en plus des control php.</p>
<p><em>Colonne event_type:</em></p>
<p>Cette colonne prend comme valeur uun entier, et precise le type d&#8217;evenement concerné</p>
<p><em>Colonne event_update:</em></p>
<p>Elle prend comme valeur la date et heur lors de l&#8217;enregsitrement. C&#8217;est cette colonne qui determinera le sens du flux entre dolibarr et l&#8217;ecommerce lors du prochain control. Si la date de mise a jour est plus recente que celle de l&#8217;ecommerce, dolibarr poussera les donnée vers le moteur d&#8217;ecommerece. Si par contre c&#8217;est celle de l&#8217;ecommerce qui est plus recente, dolibarr assura une mise a jour de sa version locale.</p>
<p><em>Colonne event_check:</em></p>
<p>Cette colonne qui prend comme valeur un entiers, precise dans quel etat c&#8217;est terminé le processus precendent, et permet de desactiver certaine ligne (comptabilisé et ne seront plus jamais modifié, facture classé).  En outre cette colonne determine si le processus entre dolibarr et ecommerce et montant ou descandant, elle est couplé àla colonne precedent.</p>
<p>Ex:</p>
<ul>
<li>dernier mouvement de type import, et date ecom update identique ou plus ancienne que date sur table local &gt;&gt; aucune action</li>
<li>dernier mouvement type import et date ecom update plus recente , nouvel import (synhro)</li>
<li>dernier mouvement type export et date ecom update plus recente ,  nouvel import (synhro)</li>
<li>dernier mouvement type export et date ecom update identique ou plus ancienne que date sur table local &gt;&gt; aucune action</li>
</ul>
<h2>Les modules enfants de l&#8217;extension ecommerce</h2>
<p>Le module enfants, prend en charge, l&#8217;affichage des champs d&#8217;import / export lors de la configuration, et le traitement des donnée lors de l&#8217;import ou l&#8217;export, afin d&#8217;assurer la transition.</p>
<p>Il doit être defini lors de l&#8217;ajout d&#8217;un site ecommerce dans dolibarr, et ne peut être modifié par la suite. Pour chaque changement de moteur d&#8217;ecommerce couplé a dolibarr, il peut être necessaire d&#8217;ajouter et ajusté ce module ;</p>
<h2>Fonctionnement</h2>
<h3>Ordre des imports , logique fonctionnelle</h3>
<p>La gestion des import, et l&#8217;inter-dependance entre les données importés, impose une logique dans l&#8217;ordre des imports, Afin de préserver la coherance.</p>
<p>ex : les produit appartiennent à une categorie, les commande depende d&#8217;un client.</p>
<p>Aussi la logique d&#8217;import fonctionne comme suit:</p>
<ol>
<li>Parametres (1 fois, à la config)</li>
<li>Clients et carnet d&#8217;adresse</li>
<li>Categories</li>
<li>Produits</li>
<li>Commandes</li>
</ol>
<p><em>Notez que la gestion via cron, impose cette logique. Mais lors d&#8217;un import contenant de gros volume d&#8217;archive (la boutique fonctionne depuis un certain temps déjà), il est important de n&#8217;initier les import de commande qu&#8217;une fois les synchro des autres données effectués</em></p>
<h4>Specificités des categories</h4>
<p>Les categories sont intement liées au produits. Toutefois, dolibarr intégrant ces propres categories, de même que chaque site connecté.</p>
<p>Aussi , pour chaque site, il est possible (et necessaire) de creer une categorie, et d&#8217;y associcé l&#8217;ensemble des categories creer pour le site courant.</p>
<p>Usage : Il est ensuite possible de creer la base du produits dans un second site, on lui precisant que celui ci appartient à une categorie d&#8217;un second site.</p>
<h3>Les actions Différées (mécanisme de rattrapage)</h3>
<p>Ces mécanismes de rattrapage assure la cohrerance du syteme est de sa gestion des données. En  effet, il peut être logique de synchroniser les stock pour un produit, sans pour autant modifié une adresse client plutot quand creer une nouvelle.</p>
<p>Lorsque le choix n&#8217;est pas possible de manière automatiser, une question reste en supsend afin que l&#8217;utilisateur l&#8217;ajuste manuellement (A terme, cet usage devrait permettre de choisir pour chaque type de data, le mode d&#8217;ajustement automatqiue possible , oui pour les stock et non pour la description).</p>
<p>Les action différées, sont les import ou export n&#8217;ayant pu être traiter automatqiuement. Elle necessite l&#8217;intervention humaine, et reste donc en attente. Elle peuvent concerner tous les type de données importées et sont souvent issue de l&#8217;incapacité de choisir , lorsque par exe, 2 contacts sotn presque identiques, mais avec quelques variances, ou lors de la detection de client en doublon.</p>
<h2>Les class php , fonctionnement et usage</h2>
<p>Cette extension contient plusieures class organisées comme suit:</p>
<ul>
<li>les class Ecom_xxx , sont les class gerant la manipulation des données des table specifique à cet extension, et assurant la liaison entre le site ecommerce et dolibarr</li>
<li>Les class E_xxx , sont les class public, utilisé dans les pages, et assurant les process de manipulations de donnée, et qui ce charges des appels sur les class dolibarr, et sur les class d&#8217;exension</li>
<li>Les class ECS_xxx, sont des alias des class E_xxx, mais avec un singeltown, assurant une instanciation unique</li>
</ul>
<h3>Les class Ecom_xxx</h3>
<p>A chacunes de ces class correspond une table dans la base de donnée nomme llx_ecom_xxx. Elle manipulent les données temporaire, et herite d&#8217;une class mêre, Ecom_Master. Ces class sont normalisé, et contiennent les methodes suivante:</p>
<ul>
<li>create</li>
<li>fetch</li>
<li>update</li>
<li>UpdateCheck</li>
<li>delete</li>
</ul>
<h3>Les class E_xxx et ECS_xxx</h3>
<p>Ces classes assurent la manipulation centralisé des données, les import et modification. Elle prennent en compte le site courant, et charge le module enfant pour ce type de site.</p>
<p>Les methodes public, l&#8217;ensmeble des class est orienté vers un type de donnée (client, carnet d&#8217;adresse, commande), mais peuvent être amené à manipuler les données d&#8217;autre type.</p>
<ul>
<li><strong>ActionDiffLoad</strong></li>
<li><strong>WsFetch</strong></li>
<li><strong>ecom2dolibarr</strong> convertion du retour de webservice en un object dolibarr</li>
<li><strong>ImportAll</strong> import des nouveautées, et control recursif des donnée precendente</li>
<li><strong>ImportOne</strong> import d&#8217;une ligne de donnée specifique</li>
<li><strong>AdjustOne</strong> control et ou mise a niveau de donnée</li>
<li><strong>CheckExactly</strong> control pour chercher une modification dans les synchro</li>
<li><strong>findInSite</strong> (Obsolete)</li>
</ul>
<h3>Class ECS_xxx</h3>
<p>Seul 2 class appartiennent à cette categorie, les class ECS_site, et ECS_log.</p>
<p>Ces class sotn appelé dans toutes les autre class de type E_xxx. Elle sont Obligatoire. Elle utilise le mecanisme de singeltown, aussi , pour obtenir l&#8217;occurence courante, il s&#8217;uffit d&#8217;utiliser la forme:</p>
<pre>ECS_site::getInstance();</pre>
<h4>Class ECS_site</h4>
<p>Cette class Assure le chargement de la configuration du site courant, Elle charge le connecteur du site, ainsi que sa configuration. Elle Assure aussi la liaison, pour les appel de methode  apparteant au connecteur, dans les synchronisation des clefs des données entre dolibarr et ecommerce.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/360/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilisé au quotidien l&#8217;extension ecommerce / dolibarr</title>
		<link>http://www.oscim.net/archives/368</link>
		<comments>http://www.oscim.net/archives/368#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:13:38 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[Soap ecommerce / Dolibarr]]></category>
		<category><![CDATA[dolibarr]]></category>

		<guid isPermaLink="false">http://www.oscim.net/?p=368</guid>
		<description><![CDATA[(DOCUMENT DE TRAVAIL&#8230; EN COURS!!!)
Vous avez installé et mis en place l&#8217;extension ecommerce pour dolibarr. Vous allez donc mainetanant gerer votre boutique en partie avec dolibarr. Cet article à pour but d&#8217;expliquer et definir les régles de foncitonnement et pocédure, dans l&#8217;exploitation de cette solution.
Les Tiers Société et Contact
Les produits
La gestion des produits, couplé avec [...]]]></description>
			<content:encoded><![CDATA[<p>(DOCUMENT DE TRAVAIL&#8230; EN COURS!!!)</p>
<p>Vous avez installé et mis en place l&#8217;extension ecommerce pour dolibarr. Vous allez donc mainetanant gerer votre boutique en partie avec dolibarr. Cet article à pour but d&#8217;expliquer et definir les régles de foncitonnement et pocédure, dans l&#8217;exploitation de cette solution.</p>
<h2>Les Tiers Société et Contact</h2>
<h2>Les produits</h2>
<p>La gestion des produits, couplé avec un ecommerce, vous permet de gérer dans dolibarr, à la fois les produits en ligne, et les porduit specifique créer dans dolibarr et qui ne sont pas en ligne. Le mecanisme d&#8217;import via crond, vous assure une synchronisation perpetuelle avec le(s) moeteur(s) ecommerce. Aussi tous nouveaux produit ajouté sur l&#8217;ecommerce sera importer dans dolibarr. Il en est de même pour les modification du produit, les mise à jour seront importées (depend de la configuration, et des données à mettre à jours)</p>
<h3>Import/ Re-import</h3>
<p>Les données de prix, taxe, poids, code barre, stock, description sont inseré dans dolibarr.</p>
<p>Dans le cas d&#8217;un produit deja present (plusieurs ecomm)</p>
<h3>Update Ecommerce</h3>
<h3>Update Dolibarr</h3>
<p>Un onglet specifique ecommerce et ajouté dans la fiche produit.</p>
<h2>Les commandes, factures, expeditions</h2>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/368/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esquisse de la version 2.1.1</title>
		<link>http://www.oscim.net/archives/373</link>
		<comments>http://www.oscim.net/archives/373#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:12:46 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss 2]]></category>

		<guid isPermaLink="false">http://www.oscim.net/?p=373</guid>
		<description><![CDATA[La version 2.1.1 est maintenant en cours de developement, et certaine restructuration von avoir lieu.
osCSS 2.1.0 avait pour but la mise en oeuvre avec une refonte fondamentale du code, et la conservation d&#8217;un reto-compatibilité avec les version anterieur.
La version 2.1.1 apportera une reorganisation partielle des fichier afin de clarifier leur fonctionements, et mieux structurer l&#8217;api [...]]]></description>
			<content:encoded><![CDATA[<p>La version 2.1.1 est maintenant en cours de developement, et certaine restructuration von avoir lieu.</p>
<p>osCSS 2.1.0 avait pour but la mise en oeuvre avec une refonte fondamentale du code, et la conservation d&#8217;un reto-compatibilité avec les version anterieur.<span id="more-373"></span></p>
<p>La version 2.1.1 apportera une reorganisation partielle des fichier afin de clarifier leur fonctionements, et mieux structurer l&#8217;api public comme privé.</p>
<p>Dans cette idée , le core public va donc voire les modification suivantes (il s&#8217;agit d&#8217;une liste de travail amené à être modifié ).</p>
<ul>
<li>le dossier classes/driver va ainsi voir apparaitre un dossier data.</li>
</ul>
<p>Ce dossier rassemble les class (anciennement driver.xxx.php) qui manipule des types de donnée (produit, categorie, article&#8230;). Ces type etant geré de maniere dynamique, il sera donc possible d&#8217;ajouter de nouveau type de données.</p>
<ul>
<li>Apparition d&#8217;une factory pour traiter les type de donnée, sans pour autant creer une class driver specialisé</li>
<li>le dossier classes/ va ainsi voir apparaitre un dossier core_page (class extends class page.php)</li>
</ul>
<p>Il accepte tous les fichiers (anciennement page.xxx.php), les fichiers y sont regroupés et reonnmés sans le &#8216;page.&#8217;</p>
<ul>
<li>suivit de  core_page/overlay.</li>
</ul>
<p>Ce dossier conteint les class de surcouche , element du constructeur principale. Ils prennent en charges lors du charement du template de page de l&#8217;appel des plugins, des boxes et des modules (generic)</p>
<ul>
<li>Les vues sql vont disparaitre, et n&#8217;être proposé que lors de l&#8217;install pour simplifier une retro compatibilité, en offrant en vue les table modifiés.</li>
<li>Une petite optimisation de quelques tables va avoir lieux (produit/client), et quelques colonnes ajouté</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/373/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajout d&#8217;extensions non pre-definies</title>
		<link>http://www.oscim.net/archives/353</link>
		<comments>http://www.oscim.net/archives/353#comments</comments>
		<pubDate>Mon, 04 Jul 2011 08:47:27 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[oscss 2]]></category>
		<category><![CDATA[amelioration]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[oscss]]></category>
		<category><![CDATA[souplesse]]></category>

		<guid isPermaLink="false">http://www.oscim.net/?p=353</guid>
		<description><![CDATA[L&#8217;utiliLors de la mise en oeuvre d&#8217;une boutique, j&#8217;ai eu besoin d&#8217;ajouter des contenus non prévus (de base produits, categories, client, et page cms) , mais dont certaine devait elle même permettre d&#8217;être modulaire avec des extensions specifiques.
Depuis quelques temps déjà, je me frottais avec les factorys, dont je n&#8217;avais pas travaillé l&#8217;usage; Ben c&#8217;est [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;utiliLors de la mise en oeuvre d&#8217;une boutique, j&#8217;ai eu besoin d&#8217;ajouter des contenus non prévus (de base produits, categories, client, et page cms) , mais dont certaine devait elle même permettre d&#8217;être modulaire avec des extensions specifiques.<span id="more-353"></span></p>
<p>Depuis quelques temps déjà, je me frottais avec les factorys, dont je n&#8217;avais pas travaillé l&#8217;usage; Ben c&#8217;est choses faites :!</p>
<p>La structure typé des contenu etant parfaitement adaptés à cet usage, une class factory vient normalisé les appels d&#8217;extension de type aca .</p>
<h2>Généralités</h2>
<p>Je m&#8217;explique, prenons comme exemple, une boutique qui nécessite la mise en oeuvre d&#8217;un contenu de type fournisseur. Dans l&#8217;absolu, on pourrait juste duplisquer une page comme les fabricants (admin).  Toutefois, il faut intégres des a present, que le besoin de ce contenu devra s&#8217;adapter a travers le temps, afin d&#8217;affiner et/ou developper les informations qui y sont contenu.</p>
<p>Donc pour une facilité de maintenance, on creer un contenu de type fournisseurs, puis on y greffe les elements modulaire dans un repertorie fournisseur.</p>
<p>Il serotn charge, comme pour les autres contenu. Nous pourrons donc ajuster les interface de control , et ou modifier les elements stocké, voir faire evoluer les foonctionnalité.</p>
<p>Dans cette demarche , la class AcaFactory est prevu pour ca.</p>
<p>Dans un premier temps, on ajoute uen variable de configuration portant le nom de la constante avec le type de contenu inseré dans celui ci.</p>
<p>ex:</p>
<ul>
<li>Pour le front office MODULE_FOURNISSEUR_INSTALLED</li>
<li>Pour le backoffice MODULE_FOURNISSEUR_INSTALLED_BO</li>
</ul>
<p>Puis , on creer un repertoire fournisseur, dans lesquel nous y stockerons les modules specifiques de ce contenu.</p>
<p><em>Note:  il n&#8217;est pas encore possible d&#8217;administrer les status  dans le backoffice, il faut donc definir manuellement le contenu de la constante des module actif.</em></p>
<h2>Récaptitulatif</h2>
<h3>Backoffice</h3>
<p>Pour activer les modules associé à un nouveau contenu , un repertoire du nom du nouveau type doit être present dans modules,</p>
<p>par ex :</p>
<p>modules/fournisseurs/</p>
<p>Les modules aca destinée a cette donnée seront alors utilisé</p>
<p>Une varibale de configuration , stocké dans la base configuration doit être nommé comme suit:</p>
<p>MODULE_FOURNISSEUR_INSTALLED_BO, ou fournisseur represnete le nom de la ressource</p>
<p>Un module de page doit chapeauter l&#8217;enssemble pour assurer les enregsitrement et gestion de base de cette ressource. Celui ci sera en general nommé fournisseur (dans notre exemple); il prendra en charge l&#8217;ensregsitrement de base de cette ressource,</p>
<ul>
<li>table fournisseurs</li>
<li>table frounissseurs_info (table complementaire à l&#8217;horizontale)</li>
<li>table fournisseurs_description (table suppl pour la gestion mutli langue)</li>
<li>table fournisseurs_extra (table supll pour l&#8217;utlisation des champs extra de cette ressource)</li>
</ul>
<h3>Frontoffice</h3>
<p>Dans l&#8217;usage d&#8217;une ressource qui doit aussi être implementé dans le frontoffice en tant que ressource , et non pas complement d&#8217;une ressource existante:! je m&#8217;explique; si il s&#8217;agit d&#8217;un fournisseurs, et que vous souhiaitier rendre public la lisaison entre les deux, sans pour autant mettre en oeuvre une recherche, page (comme les produits), mais juste une information complementaire au produit; Dans ce cas, preferé un module de type product, qui ne sera donc chargé que dans le chargement des element associé à un produit.</p>
<p>Dans le cas de la creation d&#8217;une nouvelle ressource, qui nécessite la mise en place, la gestion specifique de ce produits, et dans ce cas seulement, suivez les insctructions suivantes:</p>
<h2>Utilisations</h2>
<p>L&#8217;utilisation des factory, vous permet d&#8217;ajouter des ressources specifiques, et donc dans d&#8217;ajuster le fonctionement du moteur à vos ressource. L&#8217;interet de ces modules et l&#8217;utilisarion des ressource elle même de manières modulaire. Vous ajouter donc un type de ressource, qui lui même contiendra des modules externe pour sont usage, exploitation et affichage.</p>
<h3>Backoffice</h3>
<p>L&#8217;appel dans une class de de ressource s&#8217;utilise dans le module de gestion de la ressource elle même. Cette class, qui compose le module de type page, prend en charge la gestion de la ressource elle même.</p>
<p>Ce module de page prend donc en charge le listing complet, et la recherche de la ressource, ainsi que les action d&#8217;edition, de suppression de modification. Il assure de plus le chargement des sous modules composant cette ressource (repertoire du nom de la ressource dans dossier module).</p>
<p>Ex d&#8217;arborescence (pour ressource fournisseurs)</p>
<ul>
<li>modules
<ul>
<li>pages
<ul>
<li>fournisseurs.php</li>
</ul>
</li>
<li>fournisseurs
<ul>
<li>header_tags.php</li>
<li>etc ..;</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><em>Note: l&#8217;ensemble des factory, public et privé support l&#8217;appel au methodes magic, vous pouvez donc codé librement, dans le respect des interfaces de base</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/353/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fail2ban , et quelques info pour ameliorer les exclusion des ip cass..couill&#8230;</title>
		<link>http://www.oscim.net/archives/348</link>
		<comments>http://www.oscim.net/archives/348#comments</comments>
		<pubDate>Fri, 01 Jul 2011 09:59:44 +0000</pubDate>
		<dc:creator>oscim</dc:creator>
				<category><![CDATA[tuto]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[serveur]]></category>

		<guid isPermaLink="false">http://www.oscim.net/archives/348</guid>
		<description><![CDATA[Suite à la redondance de certaine ip qui allonge de maniere inconsidéré les log , j&#8217;ai decidé d&#8217;agir.
Apres quelques recherche , les articles suivant m&#8217;ont mis sur la voie:

http://cx.cx/2011/02/22/fail2ban-installation-et-configuration/
http://gardouilleland.free.fr/wordpress/?cat=17
http://forum.inforeseau.com/post118.html

donc , je trouvais l&#8217;approche de l&#8217;analyse du fichier de log de fail2ban (gardouilleland) etre une bonne approche;
Je me suis donc mis en tete de rajouter un [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à la redondance de certaine ip qui allonge de maniere inconsidéré les log , j&#8217;ai decidé d&#8217;agir.<br />
Apres quelques recherche , les articles suivant m&#8217;ont mis sur la voie:</p>
<ul>
<li>http://cx.cx/2011/02/22/fail2ban-installation-et-configuration/</li>
<li>http://gardouilleland.free.fr/wordpress/?cat=17</li>
<li>http://forum.inforeseau.com/post118.html</li>
</ul>
<p>donc , je trouvais l&#8217;approche de l&#8217;analyse du fichier de log de fail2ban (gardouilleland) etre une bonne approche;</p>
<p>Je me suis donc mis en tete de rajouter un filtre puis une action</p>
<p>En suivant le tuto de gardouilleland, je n&#8217;arrivais pas a faire fonctionner la mise en prison des ip qui insiste malgres des ban repeté (les boths ne ce lassent pas vite)</p>
<p>J&#8217;ai donc testé le filtre mise en place</p>
<pre>fail2ban-regex /var/log/fail2ban.log /etc/fail2ban/filter.d/fail2ban.conf</pre>
<p>et la constaté qu&#8217;il manquait le &lt;host&gt; en fin de regex, comme precié dans le wiki</p>
<p>http://www.fail2ban.org/wiki/index.php/MANUAL_0_8</p>
<p>avec sont encadrement , soit:<br />
<em><code>(?P&lt;host&gt; ... )</code></em></p>
<h2>Ajout régle et jail pour bloquer les tentatives incessantes</h2>
<h3><em>fichier filter fail2ban.conf<br />
</em></h3>
<p>Et la, c&#8217;est ok apres test de la regex, plus de soucis, celle ci est bien trouvé; Ce qui donne donc , l&#8217;ajout d&#8217;un fichier etc/fail2ban/filter.d/fail2ban.conf composé comme suit:</p>
<pre># Fail1Ban: fichier de configuration
#
# Author: Tom Hendrikx
# Traduction: Gardouille
#
# Version: 1.0
#
[Definition]
# Option: failregex
# Notes.: regex qui correspond aux messages d'erreur relatifs
# à un mauvais mot de passe dans le fichier de log.
# L'hote doit correspondre à un groupe nommé "host".
# Le tag "&lt;HOST&gt;" peut être utilisé pour faire correspondre
# les IP/hostname et c'est seulement un alias pour
# (?:::f{4,6}:)?(?P&lt;host&gt;\S+)
# Valeur: Texte
#
# Compter toutes les ip bannies dans le fichier de log
failregex = fail2ban.actions: WARNING \[(.*)\] Ban (?P&lt;host&gt;\S+)

# Option: ignoreregex
# Notes.: regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeur: Texte
#
# Ignorer nos propres bannissements, pour garder nos comptes exacts.
# Dans le fichier de config, nommer la prison 'fail2ban', ou alors changer cette ligne!
ignoreregex = fail2ban.actions: WARNING \[fail2ban\] Ban</pre>
<h3>jail</h3>
<p>Et la régle jail correpsondante, dans le fichier etc/fail2ban/jail.conf</p>
<pre>[fail2ban]
enabled = true
filter = fail2ban
action = iptables-allports[name=fail2ban]
sendmail-whois[dest="aurelien@oscim.com",name="fail2ban",sender="fail2ban@sd-27429.dedibox.fr"]
# Fichier de log analysé :
logpath = /var/log/fail2ban.log
# Analyse les logs sur 1 semaine
findtime = 604800
# bantime: 1 semaine
bantime = 604800
maxretry = 2</pre>
<h2>Ajout régle est jail en complement de suhosin</h2>
<p>On construit le fichier de configuration</p>
<pre># Fail1Ban: fichier de configuration
#
# Author: oscim
#
# Version: 1.0
#
[Definition]
# Option: failregex
# Notes.: regex qui correspond aux messages d'erreur relatifs
# à un mauvais mot de passe dans le fichier de log.
# L'hote doit correspondre à un groupe nommé "host".
# Le tag "&lt;HOST&gt;" peut être utilisé pour faire correspondre
# les IP/hostname et c'est seulement un alias pour
# (?:::f{4,6}:)?(?P&lt;host&gt;\S+)
# Valeur: Texte
#
# Compter toutes les attack bloqué par suhosin et declaré dans le log (<tt>/var/log/user.log</tt>) et on les bannies
failregex =   suhosin\[\d*\].*\(attacker\s'&lt;HOST&gt;'.*

# Option: ignoreregex
# Notes.: regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeur: Texte
#
# Ignorer nos propres bannissements, pour garder nos comptes exacts.
# Dans le fichier de config, nommer la prison 'fail2ban', ou alors changer cette ligne!
ignoreregex = fail2ban.actions: WARNING \[suhosin\] Ban</pre>
<p>On teste ensuite la regex avec</p>
<pre>fail2ban-regex /var/log/user.log /etc/fail2ban/filter.d/suhosin.conf</pre>
<h3>jail</h3>
<p>Et la régle jail correpsondante, dans le fichier etc/fail2ban/jail.conf</p>
<pre>[suhosin]
enabled = true
port    = http,https
filter  = suhosin
logpath = /var/log/syslog/*error.log
maxretry = 1</pre>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 947px; width: 1px; height: 1px;">
<pre>suhosin</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.oscim.net/archives/348/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

