Problèmes et principes de personnalisation de la version en boîte de Bitrix24



De nombreuses entreprises parviennent à un moment donné à la conclusion qu'un certain nombre de processus commerciaux doivent être automatisés afin de ne pas perdre leur place au soleil et leurs clients. Par conséquent, les clients commencent de plus en plus à «numériser» leur entreprise.

Il existe différentes plates-formes à cet effet, Bitrix24 est l'une des plus populaires. La rapidité de développement et l'émergence de nouvelles fonctionnalités, une assistance de haute qualité et un ensemble riche d'outils qui, même avec une personnalisation minimale, couvrent les besoins de base de la plupart des différentes entreprises, font de cette plate-forme une solution presque parfaite pour les entreprises.

Mais, hélas, pas pour les développeurs, en particulier les débutants.

Les experts écrivent des articles de formation sur 1C-Bitrix et divers modules du système, mais après les avoir lus, les débutants n'ont toujours pas une image commune et ne comprennent pas comment tout fonctionne sur cette plateforme. Il existe des articles sur Internet sur le développement des meilleures pratiques sur les frameworks, mais le développement sur B24 est ignoré. Il y a des entreprises qui ont appris à fabriquer un produit de qualité, mais elles gardent secrètes leurs meilleures pratiques.

Si vous voulez savoir comment vous pouvez travailler avec Bitrix24, tout en conservant la couleur de cheveux d'origine, bienvenue chez cat.

Julia Silantieva est l'un des principaux développeurs de Bitrix24 au sein de l'agence numérique ITECH cycle complet.

Qu'est-ce que Bitrix24


Probablement, tous ceux qui, en raison de leur service ou de leur intérêt, ont rencontré au moins une fois le développement de Bitrix24, connaissent le produit 1C-Bitrix: Site Management (BUS) . Il s'agit d'un CMS pour la création de sites Web ou, par la définition de Bitrix lui-même, d'un système de gestion des ressources Internet.

Mais peu de gens savent que le portail d'entreprise Bitrix24 est un service écrit en 1C-Bitrix.

Bitrix24 a 2 solutions: cloud et box. Ils diffèrent, comme leur nom l'indique, par l'emplacement du code du portail: sur les serveurs Bitrix ou sur le serveur client. La boîte donne plus de place à l'imagination, mais a une licence plus chère et nécessite une prise en charge du serveur, et le cloud est moins cher, mais a un certain nombre de restrictions sur la personnalisation.

En général, vous pouvez modifier les versions cloud et en boîte. La solution à utiliser dépend des besoins du client.

Dans le cadre de cet article, je souhaite examiner plus en détail les approches générales de développement sur la version box de Bitrix24 .

Solution Box: Architecture produit


À l'intérieur du service se trouve le Bitrix Framework , qui est le cœur du site.

Bitrix Framework contient des modules et des composants:

  1. Un module est un modèle de données et une API pour accéder à ces données. L'ensemble du produit est structurellement divisé en modules qui sont responsables d'un domaine d'application particulier: Intranet, Tâches, CRM, Processus commerciaux et autres.
  2. Un composant est un contrôleur et une vue à utiliser dans une section publique. Un composant utilisant l'API d'un ou plusieurs modules manipule des données. Le modèle de composant (vue) affiche les données sur la page. Les composants font partie des modules, mais résolvent un problème plus étroit et plus spécifique, par exemple, afficher une liste de tâches ou une carte de distribution. L'ensemble de la partie publique du service est construit sur appel à partir de la page des différents composants. Par exemple, une page de liste d'offres CRM comprend des composants de menu, de filtre et de liste.



Le cœur de Bitrix Framework est constitué de fichiers situés dans le répertoire / bitrix . Vous ne pouvez pas apporter de modifications au noyau ( Généralement. Jamais. N'y pensez même pas ) pour plusieurs raisons:

  • lors de la mise à jour du système, les modifications apportées seront effacées;
  • ;
  • , — , .

Cependant, il y a une autre grosse mise en garde.

Le portail Bitrix24, comme tout autre site écrit en 1C-Bitrix, comprend un modèle de site, une partie publique (c'est-à-dire des sections et des pages), des composants et des modèles de composants. Et il diffère d'un site ordinaire en ce que lors de l'installation des mises à jour, tout ce qui précède est également mis à jour. Par conséquent, la partie publique, le modèle Bitrix24 et les composants standard peuvent également être considérés comme le cœur de Bitrix24 . Et cela signifie que vous ne pouvez pas non plus y apporter de modifications (du moins car elles seront supprimées lors de la prochaine mise à jour).



Mais il y a encore des failles, et c'est réel de faire des changements sans douleur.

Mise à jour


Les mises à jour des produits sont très importantes. Ils résolvent les problèmes de sécurité, ferment les bogues existants (cependant, ils en produisent parfois de nouveaux ici :)). Parfois, de nouveaux petits pains frais arrivent avec des mises à jour.

Les principaux nouveaux produits Bitrixoid sont présentés lors de leurs conférences, qui ont lieu tous les six mois (la dernière a eu lieu en avril en ligne ), mais ils sont publiés avec des correctifs presque tous les jours. Se tenir au courant aide les mises à jour par e-mail. Vous pouvez le connecter dans le panneau d'administration de n'importe quel portail sur Bitrix24: Marketplace -> Platform Update -> Advanced -> Subscribe pour recevoir des informations sur les mises à jour par courrier .



Bitrix conseille d'installer les mises à jour dès qu'elles seront disponibles. Mais je recommanderais de ne pas toujours adhérer à ce conseil. Il est conseillé d'installer des mises à jour à des moments de charge minimale sur le serveur, par exemple le week-end ou la nuit - selon la loi de Murphy, au moment où vous devez tout faire rapidement et silencieusement, Bitrix se bloque avec une erreur lors de la mise à jour. :) Bien sûr, cela se produit rarement, mais cela ne fera pas de mal de jouer en toute sécurité. Et n'oubliez pas de sauvegarder avant de commencer les mises à jour.

Principes de personnalisation


Tout développement doit être effectué dans un dossier - / local .

Pour ajouter vos fonctionnalités au site écrit en BUS, trouvez simplement le composant dont vous avez besoin, copiez-le dans le dossier / local , personnalisez le modèle de classe et de composant.

Chez Bitrix24, cette approche est fondamentalement erronée.

Premièrement, si vous copiez le modèle dans le répertoire / local , le système l'utilisera toujours au lieu du modèle standard. Cela signifie qu'après la prochaine mise à jour, le client ne verra pas de nouvelles fonctions qui pourraient être ajoutées à ce composant et les erreurs, le cas échéant, ne seront pas corrigées. Il est difficile de maintenir manuellement la pertinence des composants, et si les changements étaient globaux, alors impossible.

Deuxièmement, les composants de service sont un système complet et leur code est écrit en supposant que le système d'origine est utilisé dans l'ensemble du système. Cela signifie qu'un modèle personnalisé peut entraîner une incompatibilité des informations avec le reste du système et devenir une source d'erreurs subtiles.

Qu'est-ce donc qu'un développeur qui doit changer ou ajouter une sorte de logique?

Il existe plusieurs solutions au problème:

  • profiter de certains points d'insertion autorisés dans l'interface et des fonctions différées;
  • changer le résultat de l'exécution des composants et y ajouter vos propres styles et scripts;
  • créer votre propre processus commercial ou configurer des robots;
  • se lier aux événements du côté de PHP ou JS;
  • créez votre propre type de champ (par exemple, un widget);
  • rédigez votre candidature;
  • écrivez votre module.

Pour chaque tâche, vous devez choisir l'outil le plus approprié.

Local


Le dossier principal où le développeur peut et doit exécuter ses mains est / local . Initialement, il n'est pas sur le projet, vous pouvez donc remplir le dossier à votre discrétion, mais en termes de chemins, il est important de suivre les instructions de Bitrix, sinon la plateforme ne verra pas les composants et modules personnalisés.

Nous proposons une structure de dossiers universelle / locale :



  • activités contient des actions de processus métier.
  • composants contient des composants auto-écrits (à ne pas confondre avec les composants Bitrix personnalisés!).
  • css , polices , images , js contiennent les fichiers et ressources correspondants.
  • modules . , .
  • php_interface php-. ajax-, , , .
    • init.php — Bitrix Framework. . , , . init.php , , , init.php . , , __autoload composer.

  • templates .
  • tools cron .

La structure est très flexible: lorsque cela est nécessaire (par exemple, lorsque de nouvelles tâches apparaissent), vous pouvez ajouter de nouvelles sections au dossier, plutôt que de passer du temps à développer une nouvelle structure.

Lors du traitement des dossiers, la priorité est toujours donnée au dossier / local sur / bitrix . Cela signifie que si dans / local / templates / et / bitrix / templates / il existe des modèles de site Web portant le même nom, le modèle de / local sera connecté .

Une observation importante découle d'ici : pour que Bitrix comprenne qu'il est nécessaire de prendre des modèles de composants personnalisés dans le dossier / local , il doit avoir une certaine structure:

/ local / templates / site_template / components / namespace / component_name / template_name / .

Dans le même temps, le dossier du modèle de site dans / local (nous parlons de Bitrix24, pas du BUS) devrait contenir un modèle créé par Bitrix ( / bitrix / templates / bitrix24 / ). Dans ce cas uniquement, le système comprendra qu'il est nécessaire de connecter le composant à partir de / local .

Quoi d'autre est important de garder à l'esprit lors de la conception?


1. Toutes les variables de langue doivent être stockées dans les fichiers lang correspondants. Le fichier de langue est un script php qui stocke les traductions de phrases de langue dans une langue particulière. Ce script se compose d'un tableau $ MESS, dont les clés sont des identificateurs de phrases de langue et les valeurs sont des traductions dans la langue correspondante.

Chaque langue possède son propre ensemble de fichiers de langue stockés dans les sous - répertoires / lang / de la structure de fichiers du système ou du module.

Pourquoi est-il important de prendre tous les textes dans des fichiers séparés? Lors de la traduction de votre portail dans une autre langue, il suffira de collecter et de traduire uniquement des phrases à partir de fichiers de langue, tout en créant de nouvelles sections pour la langue correspondante. Il ne sera pas nécessaire de rechercher des endroits où des textes peuvent apparaître dans le code et d'apporter des modifications directement au code du portail.

En savoir plus sur l'utilisation des fichiers de langue dans un document officiel .

2. Lorsque vous travaillez avec des composants, vous n'avez pas besoin d'accéder directement à la base de données. Le concept de travailler avec le produit implique de travailler avec des données via des fonctions API. La structure des données peut varier d'une version à l'autre et les fonctions conservent une compatibilité descendante. Bitrix décourage fortement l'utilisation de requêtes de base de données directes, car cela peut violer l'intégrité des données et conduire à une inopérabilité du système.

De plus, si nous parlons des tables système du Bitrix Framework lui-même, ce n'est pas seulement le bienvenu, mais en principe non pris en charge. Il est nécessaire de travailler avec eux via l'API du système, car la structure physique de la base de données peut changer et le travail de même l'API la plus ancienne est garanti.

3. Travail de version sur un projet à l'aide d'un système de contrôle de version. Dans le même temps, en raison des particularités du développement sur Bitrix, il est logique de prévoir une «particularité» dans la mise en place du référentiel du projet: séparer les fichiers core et les fichiers personnalisés.

4. Lisez les quais. Sur de nombreux problèmes locaux, particulièrement courants avec 1C-Bitrix, vous pouvez trouver des articles ou une documentation distincts. Pour les développeurs habitués à google immédiatement en anglais, il sera surprenant que la plupart des articles soient écrits en russe. :)

Et vous devez vous rappeler la règle d'or que les développeurs expérimentés conseillent d'adhérer: moins de code - moins de bugs .

Total


Aujourd'hui, vous pouvez observer le déséquilibre entre l'offre et la demande sur le marché du développement de Bitrix24. Le besoin de développeurs augmente rapidement, et de nombreux experts ne veulent pas s'impliquer avec le produit de Bitrix, car ils connaissent bien son idée la plus ancienne et déjà pratiquement morte - BUS.

Mais le diable n'est pas si terrible, et même les développeurs novices pourront s'habituer et produire un produit de haute qualité qui n'est "pas dommage de montrer aux garçons" © habr.

All Articles