Nouveau concept de "thèmes", alias charte graphique : les thèmes permettent un cloisonnement total des ressources graphiques (gabarits de pages ou de blocs, images, styles CSS, Javascript, habillages) et simplifient la cohabitation de chartes graphiques différentes au sein d'un même site.
Ce nouveau module permet de diffuser des messages sur Twitter via un onglet dédié dans l'éditeur d'un document. Cette diffusion peut être réalisée de deux manières :
Possibilité de réaliser des filtres impliquant "un des critères" (en plus de "tous les critères"). L'utilisateur peut par exemple créer le filtre "produits notés au moins 4 de marque XXX ou de marque YYY".
En backoffice, la liste des abonnées "alerte" est disponible en CSV depuis la fiche produit.
Un nouveau filtre permet de filtrer les produits selon leur note visiteur : non noté, 1 ou plus, 2 ou plus, ...
L'édition du statut de la commande a été revue et corrigée. Elle s'appuie désormais sur un workflow clair qui ne permet plus les erreurs de manipulation.
Le nouveau module 'productsexporter' enrichit l'interface backoffice en permettant la configuration des exportations vers les comparateurs de prix (Kelkoo, LeGuide.com, Bonlot.com, BeezUp, ...).
Des évolutions du module zone et un nouveau filtre du module order permet l'activation d'un mode de livraison en fonction de la zone de l'adresse de livraison. Les même filtres sont applicables sur les modes de paiement.
Un nouveau filtre permet de récupérer les clients ayant activé une alerte produit sur au moins un produit d'une liste donnée. Référez-vous aux évolutions sur le module Catalogue et boutiques pour plus de détails sur ces alertes.
Un nouveau moteur de recherche permet au visiteur une recherche limitée au catalogue produits.
En plus d'une recherche textuelle simple et auto-complétée sur l'ensemble des propriétés des produits, le visiteur peut cumuler des filtres : rayon, marque, note, tranche promotionnelle, tranche tarifaire, ... attributs étendus.
Les filtres applicables sont dynamiquement mis à jour en fonction de la requête courante et présentent en premier lieu les n valeurs les plus couramment utilisées.
La liste des produits d'un rayon profite des fonctionnalités du moteur de recherche produits et permet au visiteur de profiter des mêmes filtres dynamiques lors de la navigation dans le catalogue.
Jusqu'à présent seules des pages et pages externes pouvaient être sélectionnées comme cible du lien d'une bannière. Les choix possibles s'élargissent maintenant à tous les documents disposant d'une URL (le filtrage est basé sur la propriété hasUrl du modèle de document).
La catégorie d'un billet se choisit désormais dans une liste, pour éviter la sélection d'une catégorie d'un autre blog.
Uniquement pour les projets 3.0.3, l'extension RBS Change Manager permet d'agir sur le projet sans accès SSH. Pour l'instant, seules les commandes change.php sont supportées : changedev.php reste exclusivement accessible à la ligne de commande.
Compatibilité Windows
A été validé le fonctionnement de RBS Change avec ZendServer-5.3.2-5.0.2 et EasyPHP-5.3.2i, sous Windows 7 64bits.
Compatibilité fastcgi
Toutes les dépendances au mod_php pour Apache ont été enlevées. RBS Change est donc désormais pleinement compatible avec le protocole fastcgi.
Compatibilité magic_quotes_gpc
RBS Change est désormais compatible avec les hébergements activant magic_quotes_gpc.
Compatibilité allow_url_fopen
RBS Change n'a désormais plus besoin de l'activation de allow_url_fopen.
Domaine d'installation
Auparavant, RBS Change forçait l'installation sur des fqdn publics "valides". Désormais cette barrière est levée et l'installation peut se faire sur "localhost" ou "127.0.0.1", ...
La version 3.0.3 de Change introduit un nouveau schéma SolR, compatible avec SolR version 1.4. Ce schéma permet d'assoir de nouvelles fonctionnalités que nous abordons succinctement ici.
Attention : RBS Change 3.0.3
fonctionne toujours avec un ancien schéma (2.0.4), sans modification de
configuration, mais ne fonctionne pas correctement avec un schéma 3.0.3
sans configuration particulière. Référez-vous au guide d'installation pour configurer correctement votre projet.
Champs volatiles
Jusqu'à présent, les champs dynamiques étaient forcément stockés dans l'index SolR. Les champs volatiles sont indexés mais non stockés, pour des performances optimales. Cf. indexer_Field::getVolatile(Integer|IntegerMulti|String|Float)FieldName(), indexer_IndexedDocument::setVolatile(...)Field().
Auto-complétion
Les champs "*_complete" permettent la complétion à la frappe de l'utilisateur en constituant automatiquement les expressions de 1 à n termes à partir des valeurs du champ. En association avec solrsearch_CompleteAction, le développeur peut rapidement mettre en place une complétion sur le champ de son choix.
Gestion des facettes de recherche
Gestion des facettes de recherche sur des requêtes SolR, sur les valeurs simples ou des intervalles de valeurs.
Gestion des expressions de requêtes
La méthode solrsearch_SolrsearchHelper::parseString() permet un support partiel de la syntaxe de requête SolR : recherche d'expressions (PhraseQuery), termes obligatoires ou exclus, boost de termes.
RangeQuery
Les RangeQuery peuvent désormais exclure les bornes de l'intervalle requêté.
QueryUnion, complétant QueryIntersection.change:include supporte désormais l'attribut transmitAll, booléen qui permet une transmission non explicite de l'ensemble des variables du contexte courant au gabarit inclus.change:form support désormais l'attribute module qui fixe le contexte des change:xxxinput à autre chose que le module courant.Support de la valeur hasUrl pour l'attribut allow d'une propriété de type document (Cf. Publicités pour un exemple d'utilisation).
Le document queryfolder du module filter permet une implémentation simple de dossiers "intelligents" dont le contenu est géré par un filtre. Le document order/smartfolder est un exemple d'utilisation.
Prise en compte de la méthode getVirtualChildrenAt()du service d'un document dans la récupération des enfants d'un noeud du backoffice. Le service du document users/group est un exemple d'utilisation.
Introduction du raccourci ChangeRequest::hasNonEmptyParameter().
La gestion propre de l'ajout de propriétés pouvait parfois être problématique, notamment si la base avait déjà été altérée. Désormais PersistentProvider::addProperty() se comporte comme un "addPropertyIfNotExists()".
Les tâches planifiées peuvent être complètement désactivées par l'utilisation de la constante DISABLE_CHANGECRON_EXECUTION.
QueryIntersection et QueryUnion.solr.SpellCheckComponent introduit avec la version 1.3 de SolR.Le support de la base Oracle est supprimé de la version open source.