Développer avec RBS Change : Extensibilité de RBS Change : structure des données

  • 44249.21 en réponse à 44249.20 écrit par EITC

    05/01/2014 01:15


    EITC
    Rang : Membre
    Il semblerait que le problème soit du à labalise <field name="nombredemetrescarresparboite" /> présente dans le properties.xml du catalogue surchargé... J'avais mis des majuscules dans le "name"

    Je pense également que le format de mon document ait été modifié par Notepad++, je l'ai forcé à UTF8

    J'ai tout recompilé et le champ s'affiche.

    Par contre le libellé ne s'affiche pas dans le BO, et cette info n'apparaît pas sur ma fiche produit dans le FO.

    Problème lié ou non, je ne sais plus afficher la page d'accueil du BO : Fatal error: Class 'dashboard_BlockHeaderConfiguration' not found in /homez.800/onlineca/www/repository/framework/framework-3.6.8/f_mvc/Action.php on line 37

    Encore une petite question, comment rendre ce champ obligatoire dans le BO ?

    Pourriez-vous m'aider ?

    Édité par EITC 05/01/2014 01:28

  • 44249.22 en réponse à 44249.21 écrit par EITC

    06/01/2014 17:44


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Bonjour,

    Beaucoup de questions auxquelles je vais essayer de répondre sans en oublier :)

    Problèmes des "Unknown...."
    En voyant la chose comme ceci, j'en déduis que cette erreur se produit sur votre serveur (probablement fournit par 1and1, vu la racine du DocumentRoot). Je suppose que vous développez sur votre poste local et que vous n'avez pas le problème, mais que cela se passe uniquement sur le serveur distant.

    Les premières choses auxquelles je pense selon ces suppositions seraient :
    • soit un problème de fichiers de cache transférés et ne matchant pas avec la configuration du serveur. Dans ce cas, tentez de partir d'une situation propre en vidant les caches et en recompilant le tout :
      <phpCli> framework/bin/change.php clear-all
      <phpCli> framework/bin/change.php compile-all
    • soit un problème au niveau des liens symboliques qui se sont perdus ou corrompus lors d'un upload des fichiers. Dans ce cas, si vous avez un accès SSH au serveur, je vous conseillerait d'exécuter la commande suivante à la racine de votre projet :
      find . -type l -exec rm -f {} \;
      Ce qui effacera tous les liens symboliques, pour ré-initialisé le projet, exécutez ensuite la commande :
      <phpCli> framework/bin/change.php init
      
      Ce qui refera les liens symboliques correctement.


    ATTENTION :
    • Vérifiez avant tout que le fichier change.properties soit en accord avec la configuration du serveur (puisqu'il sert à définir la base pour les paths des symlinks).
    • Vous pouvez aussi être dans une situation de cumul des deux idées évoquées en fonction de ce qui a été transféré sur le serveur


    Erreurs de type "ListNotFound..." :
    Avez/Aurez-vous toujours ces erreurs une fois les "unknown" résolues?


    Le fichier de l'éditeur déclarant le field :
    En principe il n'y a aucune problème lorsque vous écrivez les "name" en CamelCase, par contre si l'encodage a été modifié, effectivement vous aurez des problèmes. Si vous utilisez NotePad++, l'encodage a forcer est "UTF-8 sans BOM", pour tous les fichiers que vous allez manipuler.

    Pour l'affichage du libellé, ce dernier doit être définit dans le fichier de locales (vérifiez l'emplacement de votre fichier de locales), modifiez le au besoin et dans ce cas, recompiler les locales. Le fichier de locales doit également être en "UTF-8 sans BOM" pour que la compilation des locales se passe correctement.

    Le champ ne s'affiche pas en FO :
    Vous devez reproduire l'arborescence du modules concerné pour les templates dans le dossier override (par exemple : override/modules/catalog/templates), puis y copier le template de base que vous voulez modifier et ensuite y ajouter le champ supplémentaire de la manière suivante par exemple :
    <li>
       ${trans:m.catalog.document.simpleproduct.nombredemetrescarresparboite,ucf} : ${product/getNombreDeMetresCarresParBoite}
    </li>
    



    Problème de chargement du dashboard :
    A mon avis ce problème est lié aux erreurs de type "Unknown...", donc une fois ce point réglé, la page d'accueil de votre BO devrait s'afficher à nouveau.

    Comment rendre le champ obligatoire en BO?
    Dans le modèle de votre document (fichier XML dans le dossier persistentdocument), il suffit de rajouter sur la ligne l'attribut suivant :
    min-occurs="1"

    Une fois cet ajout fait vous devez compiler les documents :
    <phpCli> framework/bin/change.php compile-documents

    Pour plus d'infos sur le modèle d'un documents et des contraintes, vous pouvez consulter le wiki sur la page de "déclaration d'un document".

    En espérant avoir répondu à toutes vos questions.

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 44249.23 en réponse à 44249.22 écrit par Jean-Michel

    07/01/2014 00:10


    EITC
    Rang : Membre
    Wowww, ça c'est de la belle réponse :D Merci !

    Alors on va reprendre point par point comme vous...

    Problèmes des "Unknown...."
    Ce problème est résolu.
    J'ai réouvert Notepad++ et mis UTF8 sans BOM à la place de UTF8, j'ai tout réuploadé, lancé a commande "clear-all" et compile-all"

    Erreurs de type "ListNotFound..." :
    Ce problème n'est pas résolu, mais à part la trace dans le log, cela ne me cause aucun problème...

    Le fichier de l'éditeur déclarant le field :
    Toujours pas résolu, le changement de format et la recompile ne sert à rien, j'ai revérifié complètement d'après le tuto et tout était correct. La seule différence c'est que je n'ai pas créé un section supplémentaire dans properties.xml, je l'ai directement mis dans "modules.catalog.bo.general.General"

    Le champ ne s'affiche pas en FO :
    J'ai reussi en recréant le dossier templates dans "override/modules/catalog" et en modifiant le fichier "Catalog-Block-Simpleproduct-Success.all.all.html"

    Comment rendre le champ obligatoire en BO?
    Votre technique a fonctionné. Malheureusemen comme je n'ai toujours pas de traduction affichée, on ne voit pas qu'il y a une * et le libellé en bleu. C'est lors de l'enregistrement que j'ai le message d'erreur comme quoi le champs est obligatoire.

    Encore un grand merci pour votre patience
  • 44249.24 en réponse à 44249.23 écrit par EITC

    07/01/2014 10:50


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Bonjour,

    Pas de problème, je vais donc reprendre les points que e considère comme étant encore "ouverts"

    Erreurs de type "ListNotFound..." :
    Les listes ne sont pas trouvées, vous ne constatez donc pas de grand problème à l'utilisation si ce n'est que vos listes sont vides ; ce qui est l'origine de votre problème notamment par rapport à la zone de facturation . Je suppose donc que les données initiales ne sont pas importées pour les modules. Maintenant à quel moment le problème à pu se produire je l'ignore, et donc l'impact que ca a pu avoir egélament. Ce problème peut être lié aux "unknown..." rencontrées précédemment. ZA partir de là, deux solutions :
    • soit vous n'avez pas de contenu important, auquel cas vous pouvez vous permettre un reset de la base de données. Pour ce faire, modifier dans change.properties la valeur de DEVELOPMENT_MODE pour "true" et exécutez :
      <phpCli> framework/bin/change.php compile-config
      <phpCli> framework/bin/change.php reset-database
      Normalement il ne doit y avoir aucune erreur ni aucune ligne en rouge qui doit apparaître. N'oubliez pas de remettre le paramètre DEVELOPMENT_MODE à sa valeur initale et à recompiler la configuration
    • vous avez des données importantes et vous ne pouvez pas faire de reset de la base de données. Dans ce cas il va falloir exécuter la commande d'initialisation des modules, mais si ces derniers ont déjà été initialisés et marqué comme tels (j'ai des incertitudes liées aux erreurs de type unknown), nous devrons procéder autrement. Dans un premier temps initialisez les modules :
      <phpCli> framework/bin/change.php import-init-data
      Indiquez moi par la suite si vous avez encore des erreurs de type ListNotFound.


    Le fichier de l'éditeur déclarant le field :
    Que je comprenne bien ; vous avez le champ en backoffice, mais pas son libellé ou vous ne voyez absolument pas le champ? (peut-être qu'un screenshot de l'éditeur en BO pourrait m'aider).


    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1462 membres
Aucun membre connecté