osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [add-on] Dynamic Template System, Agencer sa boutique page à page.
FoxP2
posté 17 Dec 2010, 14:16
Message #1


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



voici donc un nouveau module dédié à oscommerce 2.3.x :
Dynamic Template System vous permet (via une interface intégrée dans l'admin via le menu 'Modules'->'Bloc colonnes') d'agencer les boxes pour chacune de vos pages.
Les paramètres classiques restent en place (Afficher le bloc Catégories/Position du bloc/Ordre d'affichage.)

Point de vue ergonomie, le module se présente ainsi :
[mode édition] :

[mode par défaut]


cet add-on respecte le développement initial voulu par Harald et sa team (resize automatique de la boutique/orienté objet)
je me suis efforcé d'avoir un impact à minima dans le 'core', ce qui donne en terme d'installation :
  • fichier catalog/includes/classes/osc_template.php : 1 ligne à modifier.
  • fichiers catalog/includes/modules/boxes à remplacer par ceux dans le pack.
  • fichier catalog/admin/includes/functions/general.php :2 nouvelles fonctions.
  • fichier catalog/admin/modules.php : 2 modifications mineures.
  • fichier catalog/admin/includes/languages/french.php : 3 lignes de traduction.


Pourquoi dynamic ?
deux raisons :
  • si vous ajoutez une page (ou plus) supplémentaire dans votre boutique (à la racine), elle est automatiquement listée dans le menu 'Affichage dans les pages'.

    pour la gestion d'une boxe dans cette nouvelle page, 3 cas de figure :
    1. l'option choisie est 'toutes les pages' -> vous n'avez rien à faire.
    2. l'option choisie est 'aucune page' -> vous n'avez rien à faire.
    3. l'option choisie est 'page à page' -> il vous suffira de cocher cette nouvelle page dans le listing pour que votre boxe s'y affiche.

  • si vous ajoutez une boxe supplémentaire dans votre boutique (exmple : boxe login):
    vous devez ajouter dans la classe de cette boxe:
    le paramètre:
    Code
    var $pages;

    le définir dans le constructeur : (qui je vous rappelle est appelé automatique lors de l'instance de la boxe) :
    Code
    $this->pages = MODULE_BOXES_XXXXXXXX_DISPLAY_PAGES;


    ajouter la requête dans la méthode 'install' :
    Code
          tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Affichage dans les pages.', 'MODULE_BOXES_XXXXXXXX_DISPLAY_PAGES', 'all', 'Sélectionnez les pages où la boxe doit être présente. ', '6', '0','tep_cfg_select_pages(' , now())");


    et pour finir ajouter dans la méthode keys, la constante
    Code
    'MODULE_BOXES_XXXXXXXX_DISPLAY_PAGES'


    si cette boxe est déjà installée, il vous faudra soit la réinstaller (bouton supprimer le module) ou passer la requête via Php My Admin :
    SQL
    INSERT INTO `configuration` (`configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `set_function`) VALUES
    ('Affichage dans les pages.', 'MODULE_BOXES_XXXXXXXX_DISPLAY_PAGES', 'all', 'Sélectionnez les pages où la boxe doit être présente. ', 6, 0, 'tep_cfg_select_pages(');


  • dernière précision : lors de l'installation de cet add-on, par défaut toutes les boxes sont affichées dans toutes les pages. vous n'avez plus qu'à définir vous même leur placement.



    arrow.gif le pack peut être télécharger ici

    Go to the top of the page
     
    FoxP2
    posté 19 Dec 2010, 17:51
    Message #2


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    je viens de publier un nouveau pack qui rend Dynamic Template System compatible avec tous les modules d'oscommerce 2.3.x (validé en STRICT)
    j'ai ajouté quelques lignes dans le code javascript afin d'améliorer l'interface dans l'admin (binding[mode two-way] entre les sélecteurs) tels qu'illustrés ci dessous :


    Go to the top of the page
     
    FoxP2
    posté 22 Dec 2010, 18:29
    Message #3


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    comme la question a été posé sur le forum us, je vais y répondre ici aussi.

    Comment étendre le fonctionnement de Dynamic Template System sur un module :

    prenons l'exemple du module ht_google_analytics :

    pour intégrer le module dans la gestion de Dynamic Template System, il suffit :
    d'ajouter le paramètre à la classe :
    Code
    var $pages;


    l'ajouter dans son constructeur :
    Code
    $this->pages = MODULE_HEADER_TAGS_GOOGLE_ANALYTICS_DISPLAY_PAGES;


    l'ajouter dans la méthode install() :
    Code
          tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Affichage dans les pages.', 'MODULE_HEADER_TAGS_GOOGLE_ANALYTICS_DISPLAY_PAGES', 'all', 'Sélectionnez les pages où le module doit être activé. ', '6', '0','tep_cfg_select_pages(' , now())");

    et ajouter la clé dans la méthode keys() :
    Code
    'MODULE_HEADER_TAGS_GOOGLE_ANALYTICS_DISPLAY_PAGES'


    terminé.

    le module ht_google_analytics avant changement :


    le module ht_google_analytics après changement :



    si d'autres conditionnelles sont programmées dans la méthode execute() - ce qui est le cas au passage pour le module ht_google_analytics qui ne génère pas le même code javascript dans la page checkout_success, elle restent prioritaires sur les autres.

    Dès sa conception (certain confirmeront car j'en ai discuté en privé avant la publication) j'ai choisi de fournir un code non intrusif et qui puisse s'étendre facilement pour l'ensemble des modules.
    Nous ne sommes pas encore au niveau de la future osCom3 (ou je pourrai enfin penser/concevoir en 'total object') mais on s'en approche.
    Go to the top of the page
     
    lorem_ipsum
    posté 14 Jan 2011, 12:55
    Message #4


    Ceinture jaune+ OSC
    Icône de groupe

    Groupe : Membres
    Messages : 120
    Inscrit : 18-March 08
    Lieu : Toulouse
    Membre no 21188



    Bonjour FoxP2,

    Jolie contrib wink.gif

    A tout hasard, as tu prévu une update pour permettre le choix sur index.php en prenant en compte la variable $category_depth ?
    Ce qui permettrai d'avoir une page d'accueil autonome.



    --------------------
    osCommerce v2.2 RC2a 2.3.1 :P version killeuse de prestachoux et magentruc
    Go to the top of the page
     
    FoxP2
    posté 19 Jan 2011, 12:29
    Message #5


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    tiens,c'est marrant ça, j'ai le même type de demande sur le forum us : http://forums.oscommerce.com/topic/368579-...ost__p__1559825.
    je vais donc réfléchir à une solution allant dans ce sens.
    lorem_ipsum : installes le pack tel quel, tu seras le premier à essuyer les plâtres sur l'évolution du code que je posterai ici. happy.gif
    Go to the top of the page
     
    lorem_ipsum
    posté 20 Jan 2011, 01:18
    Message #6


    Ceinture jaune+ OSC
    Icône de groupe

    Groupe : Membres
    Messages : 120
    Inscrit : 18-March 08
    Lieu : Toulouse
    Membre no 21188



    Citation
    Gyakutsuki
    Posted 17 January 2011, 13:42
    Must be integrated in osc 2.3.2 smile.gif

    Un signe que cette contrib à tout d'une grande!

    Pas de problème pour faire les tests, actuellement j'ai la modif codée directement dans template_top.
    J'ai pas encore regardé comment l'intégrer à la contrib mais je sais que j'ai rencontré quelques problèmes avec grid et les "push pull".

    Si jamais, Il pourrait être sympa d'avoir la possibilité d'exclure des catégories...fabricants...produit.

    bon code


    --------------------
    osCommerce v2.2 RC2a 2.3.1 :P version killeuse de prestachoux et magentruc
    Go to the top of the page
     
    FoxP2
    posté 20 Jan 2011, 09:19
    Message #7


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    en fait, si tu reprends le début du thread, c'est une suggestion qui a été faite à harald début novembre. Et sa réponse ne m'a pas convaincu. (oscom3 gère l'affichage des boxes avec les pages via la table osc_templates_boxes_to_pages)
    ayant eu l'occasion d'en discuter avec d'autres dev sur le forum us (dont Gyakutsuki), je reste persuadé qu'il a fait volontairement l'impasse sur certaines fonctionnalités pour ne pas faire d'ombre à la prochaine version.
    je trouve que ce choix est une erreur stratégique. oscom3, dans sa structure, amènera suffisamment de nouveautés pour envoyer osc2.3.x au garage dès sa sortie. Il parait évident lorsqu'on suit le blog de mark evans qu'oscom3 pourra fonctionner indifféremment sur un SGBDR MySql ou SQLServer (donc en passant par une couche d'abstraction de la base de données).

    concernant :
    Citation
    Si jamais, Il pourrait être sympa d'avoir la possibilité d'exclure des catégories...fabricants...produit.

    bof. il s'agit de ne pas non plus faire une usine à gaz.
    de plus, il est important de garder une certaine homogénéité dans la structure du front office. A trop varier celle ci, tu risques au final de déstabiliser ton client.

    donc découper l'index en fonction d'une page d'accueil (différente d'une page catégorie) oui, ça parait logique. au delà, ça commence à être chaotique.
    gérer les boxes en fonction des pages doit être un plan stratégique établi sur des critères simples mais efficaces.
    un exemple type :
    lorsque le client se trouve sur la page 'create_account', qui est un formulaire, aucune boxes ne doit être présente. Toute son attention est ainsi fixé sur l'élément principale : son inscription. cela permet donc d'étaler le formulaire sur toute la largeur de la page (et non par défaut en longueur - d'où le scrollling).
    Go to the top of the page
     
    FoxP2
    posté 31 Jan 2011, 14:11
    Message #8


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    Citation (lorem_ipsum @ 14 Jan 2011, 12:55) *
    Bonjour FoxP2,

    Jolie contrib wink.gif

    A tout hasard, as tu prévu une update pour permettre le choix sur index.php en prenant en compte la variable $category_depth ?
    Ce qui permettrai d'avoir une page d'accueil autonome.


    j'allais oublier :

    pour avoir la page index indépendante (sans aucune boxe)
    dans le fichier includes/classes/osc_template.php, ajouter dans les global :
    Code
    $category_depth;

    puis changer la ligne :
    Code
                    if(($mb->isEnabled()) && (($mb->pages === 'all')) || (in_array($PHP_SELF , explode(';' , $mb->pages)))){

    par :
    Code
                  if(($mb->isEnabled()) && (($mb->pages === 'all') && ($category_depth != 'top')) || (in_array($PHP_SELF , explode(';' , $mb->pages)))){
    Go to the top of the page
     
    Bonbec
    posté 31 Jan 2011, 14:30
    Message #9


    Ceinture marron OSC
    Icône de groupe

    Groupe : Modérateurs
    Messages : 1543
    Inscrit : 30-May 06
    Lieu : Vichy (03)
    Membre no 10583



    Salut FoxP2,

    Je commence à m'intéresser à la 2.3 et en lisant la section, j'ai constaté que ton lien "la 2.3 en action" est rompu wacko.gif


    --------------------
    Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
    Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
    Config 2 en local avec UwAmp : Osc Phoenix
    Go to the top of the page
     
    Danyx
    posté 30 Dec 2011, 17:47
    Message #10


    Ceinture orange+ OSC
    Icône de groupe

    Groupe : Membres
    Messages : 426
    Inscrit : 26-March 07
    Lieu : VALENCIENNES
    Membre no 16165



    Dis FoxP2, Le lien que tu indique ici est en anglais, par contre je remarque que tes exemples sont en français, y a t'il un pack version française?
    Vu mon excellent anglais biggrin.gif c'est mieux pour moi et d'autre


    --------------------
    Oscommerce 2.3.1 | fckeditor |Modul Switcher Store | Ajax Attributs | SPPC | Indication Prix non communiqué quand prix=0€| QtPro | Classement des attributs sur (product_info.php) | Subcategory textboxes
    Intégration OsCommerce dans NPDS...
    -----------------------------
    Je n'aime pas le mot tolérance, mais je n'en trouve pas de meilleur
    GANDHI
    Go to the top of the page
     
    Danyx
    posté 30 Dec 2011, 23:27
    Message #11


    Ceinture orange+ OSC
    Icône de groupe

    Groupe : Membres
    Messages : 426
    Inscrit : 26-March 07
    Lieu : VALENCIENNES
    Membre no 16165



    Pourquoi faire simple quand on peut faire compliquer!!!!!!!!!
    La solution sans installer de contrib est :
    Code
    http://www.oscommerce-fr.info/forum/index.php?showtopic=69286&st=0#entry360332


    biggrin.gif


    --------------------
    Oscommerce 2.3.1 | fckeditor |Modul Switcher Store | Ajax Attributs | SPPC | Indication Prix non communiqué quand prix=0€| QtPro | Classement des attributs sur (product_info.php) | Subcategory textboxes
    Intégration OsCommerce dans NPDS...
    -----------------------------
    Je n'aime pas le mot tolérance, mais je n'en trouve pas de meilleur
    GANDHI
    Go to the top of the page
     
    FoxP2
    posté 31 Dec 2011, 10:35
    Message #12


    Ceinture marron OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1665
    Inscrit : 3-June 09
    Membre no 25501



    merci Danyx pour ce retour posiitif. evil.gif
    Go to the top of the page
     
    Kaelandesign
    posté 9 Feb 2012, 18:24
    Message #13


    Ceinture blanche OSC
    Icône de groupe

    Groupe : Membres
    Messages : 19
    Inscrit : 27-June 08
    Membre no 22279



    Citation (FoxP2)
    pour avoir la page index indépendante (sans aucune boxe)
    dans le fichier includes/classes/osc_template.php, ajouter dans les global :
    Code
    $category_depth;

    puis changer la ligne :
    Code
    if(($mb->isEnabled()) && (($mb->pages === 'all')) || (in_array($PHP_SELF , explode(';' , $mb->pages)))){

    par :
    Code
    if(($mb->isEnabled()) && (($mb->pages === 'all') && ($category_depth != 'top')) || (in_array($PHP_SELF , explode(';' , $mb->pages)))){


    Bonjour, bonjour !

    Un grand merci FoxP2 pour ton travail acharné smile.gif !
    J'utilise cette modification pour ne pas avoir de blocs sur la page d'accueil, par contre j'aurais une question à propo de cette modification...

    En fait quand on réalise cette modification, cela fonctionne bien effectivement !
    Sauf que sur les autres pages, comme account.php,contact_us.php etc en bref toutes les autres pages affichent les blocs !

    Je m'explique dans mon cas, j'aimerais juste ne pas avoir de blocs sur la page accueil (comme c'est le cas avec cette modification) mais également sur les autres pages type shoppint_cart.php,account.php etc (utilisant un menu horizontal je n'ai nullement besoin de revoir les blocs sur ces pages la).

    J'ai donc utilisé ton module en séléctionnant : afficher (catégorie par exemple) juste sur index.php & product_info.php et donc la c'est parfait ça ne s'affiche plus sur les autres pages mais par contre sur l'index.php oui (normal)...

    Aurais-tu une solution pour cette problématique ?
    Merci à l'avançe !

    Cordialement.
    Go to the top of the page
     
    kakashi
    posté 26 Jun 2013, 15:45
    Message #14


    Ceinture blanche OSC
    Icône de groupe

    Groupe : Membres
    Messages : 19
    Inscrit : 28-October 10
    Membre no 28192



    Bonjour

    Avez vous eu un pb avec le javascript,

    Quand je coche une option et que je ré-édite la page, celle ci n'apparait pas (pas de case cochés qui sont cochées). dans la bd il marque allindex par exemple.
    Sur none rien ne s'efface, sur all rien ne se coche.

    Merci
    Go to the top of the page
     
    kakashi
    posté 26 Jun 2013, 15:58
    Message #15


    Ceinture blanche OSC
    Icône de groupe

    Groupe : Membres
    Messages : 19
    Inscrit : 28-October 10
    Membre no 28192



    Touvé, remplacer CHECKED par checked et UNCHECKED par unchecked


    --------------------
    Cordialement

    -------------------

    Portail http://www.clicshopping.org, FAQ http://www.clicshopping.org
    Go to the top of the page
     
    badcape
    posté 22 Dec 2014, 12:39
    Message #16


    Ceinture bleue OSC
    Icône de groupe

    Groupe : Membres
    Messages : 1071
    Inscrit : 28-September 07
    Lieu : Saint paul - REUNION
    Membre no 19202



    ... un p'tit coup d'oeil à la version 2.3.4!
    cool.gif

    Ce message a été modifié par badcape - 27 Dec 2014, 18:05.


    --------------------
    Thierry
    En prod Server: Percona Server via UNIX socket Percona Server version:10.1.20-MariaDB - Percona Server (GPL),
    PHP 5.5.30 phpMyAdmin 4.0.10.6 Database version: MySQL 5.5.5-10.1.20 extension: mysqli
    version Oscommerce-2.3.4 bootstrap avec un tas comme ça de contributions ...... et bien d'autres dont je me suis inspiré à grand renfort de café !
    Un grand merci à tous !(pour votre aide et votre patience....)
    En local:
    1) Pour suivre mon site en prod - EasyPHP DevServer 14.1 VC9 "Minakami" avec oscom 2.3.4 Bootstrap Gold + KissIT_image thumbnailer, Product fields group, Products Extra Fields, margin report, account_create_in_admin, easy populate, FAQ desk, MATC, SPPC, quick updates for SPPC, slick reCaptcha, modular front page module, Select Product Image Directory, Edit page (page control), Message box, Horizontal categories menu BS, Edit order, Edit invoice, Hide categories with category cache, Related products BS, Ultimate Seo Urls, Withdrawal form for BS... modifiées et d'autre contrib que je teste avant de mettre en prod.
    2) Pour dev Phoenix 1.0.2.0, Devserver sous PHP 7.1.3 et Database MySQL 5.7.17
    Go to the top of the page
     
    Xavduck
    posté 13 Oct 2015, 16:13
    Message #17


    Ceinture blanche OSC
    Icône de groupe

    Groupe : Membres
    Messages : 15
    Inscrit : 25-September 15
    Membre no 32660



    Bonjour,

    Je relance le post car non compatible avec la version 2.3.4

    Il y a un problème au niveau du sql qui je pense vient du fichier
    admin/includes/functions/general.php

    Qui ne retourne pas les bons résultat dans la bdd.

    ex : si l' on tente de modifier quoi que ce soit dans l' admin " blocs colonne "
    la bdd prend la valeur " Array " dans la table configuration MODULE_BOXES_LANGUAGES_DISPLAY_PAGES

    Si quelqu'un c'est déjà penché dessus...


    Ce message a été modifié par Xavduck - 13 Oct 2015, 16:16.


    --------------------
    osCommerce 2.3.4 - Member Approval perso - Limitation des pages pour les non-clients perso - Paiement par chèque ou virement bancaire perso - Site Fr + Eng - Livraison (Collissimo) selon pays perso - Modif apparences facture admin - Theme switcher
    Go to the top of the page
     

    Reply to this topicStart new topic
    1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
    0 membre(s) :

     



    RSS Version bas débit Nous sommes le : 28th March 2024 - 15:07
    Ce site est déclaré auprès de la commision Nationale
    de l'Informatique et des Libertés (déclaration n°: 1043896)