Probleme und Prinzipien der Anpassung der Box-Version von Bitrix24



Viele Unternehmen kommen irgendwann zu dem Schluss, dass eine Reihe von Geschäftsprozessen automatisiert werden müssen, um ihren Platz in der Sonne und ihre Kunden nicht zu verlieren. Daher beginnen Kunden zunehmend, ihr Geschäft zu „digitalisieren“.

Zu diesem Zweck gibt es verschiedene Plattformen, Bitrix24 ist eine der beliebtesten. Die Geschwindigkeit der Entwicklung und des Aufkommens neuer Funktionen, der qualitativ hochwertige Support und eine Vielzahl von Tools, die selbst bei minimaler Anpassung die Grundbedürfnisse der meisten verschiedenen Unternehmen abdecken, machen diese Plattform zu einer nahezu perfekten Lösung für Unternehmen.

Aber leider nicht für Entwickler, besonders für Anfänger.

Experten schreiben Schulungsartikel über 1C-Bitrix und verschiedene Module des Systems, aber nach dem Lesen haben Anfänger immer noch kein gemeinsames Bild und verstehen nicht, wie alles auf dieser Plattform funktioniert. Es gibt Artikel im Internet über die Entwicklung bewährter Verfahren für Frameworks, aber die Entwicklung für B24 wird umgangen. Es gibt Unternehmen, die gelernt haben, ein Qualitätsprodukt herzustellen, aber ihre Best Practices geheim halten.

Wenn Sie wissen möchten, wie Sie mit Bitrix24 arbeiten können, während Sie die ursprüngliche Haarfarbe beibehalten, sind Sie bei cat willkommen.

Julia Silantieva ist eine führende Entwicklerin von Bitrix24 in der ITECH Full-Cycle Digital Agency.

Was ist Bitrix24?


Wahrscheinlich kennt jeder, der aufgrund seines Service oder Interesses mindestens einmal auf die Entwicklung für Bitrix24 gestoßen ist, das Produkt 1C-Bitrix: Site Management (BUS) . Dies ist ein CMS zum Erstellen von Websites oder nach der Definition von Bitrix selbst ein Internet-Ressourcenverwaltungssystem.

Nur wenige wissen, dass das Bitrix24- Unternehmensportal ein in 1C-Bitrix geschriebener Dienst ist.

Bitrix24 bietet zwei Lösungen: Cloud und Box. Sie unterscheiden sich, wie der Name schon sagt, durch den Speicherort des Portalcodes: auf Bitrix-Servern oder auf dem Client-Server. Die Box bietet mehr Raum für Fantasie, verfügt jedoch über eine teurere Lizenz und benötigt Serverunterstützung. Die Cloud ist billiger, weist jedoch eine Reihe von Einschränkungen bei der Anpassung auf.

Im Allgemeinen können Sie sowohl Cloud- als auch Box-Versionen ändern. Welche Lösung verwendet werden soll, hängt von den Anforderungen des Kunden ab.

Als Teil dieses Artikels möchte ich die allgemeinen Entwicklungsansätze für die Box-Version von Bitrix24 genauer betrachten .

Box-Lösung: Produktarchitektur


Innerhalb des Dienstes befindet sich das Bitrix Framework , das den Kern der Site bildet.

Bitrix Framework enthält Module und Komponenten:

  1. Ein Modul ist ein Datenmodell und eine API für den Zugriff auf diese Daten. Das gesamte Produkt ist strukturell in Module unterteilt, die für einen bestimmten Anwendungsbereich verantwortlich sind: Intranet, Aufgaben, CRM, Geschäftsprozesse und andere.
  2. Eine Komponente ist eine Steuerung und Ansicht zur Verwendung in einem öffentlichen Bereich. Eine Komponente, die die API eines oder mehrerer Module verwendet, bearbeitet Daten. Die Komponentenvorlage (Ansicht) zeigt Daten auf der Seite an. Die Komponenten sind Teil der Module, lösen jedoch ein engeres, privates Problem, indem Sie beispielsweise eine Liste von Aufgaben oder eine Deal-Karte anzeigen. Der gesamte öffentliche Teil des Dienstes basiert auf einem Aufruf von der Seite verschiedener Komponenten. Eine CRM-Deal-Listenseite besteht beispielsweise aus Menü-, Filter- und Listenkomponenten.



Der Kern des Bitrix Frameworks sind Dateien im Verzeichnis / bitrix . Sie können aus mehreren Gründen keine Änderungen am Kernel vornehmen (im Allgemeinen. Niemals. Denken Sie nicht einmal darüber nach ):

  • Bei der Aktualisierung des Systems werden die vorgenommenen Änderungen gelöscht.
  • ;
  • , — , .

Es gibt jedoch noch eine weitere große Einschränkung.

Das Bitrix24-Portal enthält wie jede andere in 1C-Bitrix geschriebene Site eine Site-Vorlage, einen öffentlichen Teil (d. H. Abschnitte und Seiten), Komponenten und Komponentenvorlagen. Und es unterscheidet sich von einer normalen Site darin, dass bei der Installation von Updates alle oben genannten Elemente ebenfalls aktualisiert werden. Daher können der öffentliche Teil, die Bitrix24-Vorlage und Standardkomponenten auch als Kern von Bitrix24 betrachtet werden . Dies bedeutet, dass Sie auch keine Änderungen daran vornehmen können (zumindest, weil sie beim nächsten Update gelöscht werden).



Es gibt jedoch immer noch Lücken, und es ist real, Änderungen schmerzlos vorzunehmen.

Aktualisierbarkeit


Produktaktualisierungen sind sehr wichtig. Sie lösen Sicherheitsprobleme, schließen vorhandene Fehler (manchmal produzieren sie jedoch genau dort neue :)). Manchmal kommen neue coole Brötchen mit Updates.

Wichtige neue Bitrixoid-Produkte werden auf ihren Konferenzen vorgestellt, die alle sechs Monate stattfinden (die letzte fand im April online statt ), aber sie werden fast täglich mit Patches veröffentlicht. Bleiben Sie auf dem Laufenden, um E-Mail-Updates zu erhalten. Sie können es im Admin-Bereich eines beliebigen Portals auf Bitrix24 verbinden: Marktplatz -> Plattform-Update -> Erweitert -> Abonnieren, um Informationen zu Updates per E-Mail zu erhalten .



Bitrix empfiehlt, Updates zu installieren, sobald sie verfügbar sind. Ich würde jedoch empfehlen, diesen Rat nicht immer einzuhalten. Es ist ratsam, Updates zu Zeiten minimaler Auslastung des Servers zu installieren, z. B. am Wochenende oder nachts. Nach dem Murphy-Gesetz stürzt Bitrix in dem Moment, in dem Sie alles schnell und leise erledigen müssen, beim Aktualisieren mit einem Fehler ab. :) Natürlich passiert das selten, aber es tut nicht weh, auf Nummer sicher zu gehen. Vergessen Sie nicht, vor dem Starten der Updates ein Backup zu erstellen.

Anpassungsprinzipien


Alle Entwicklungen sollten in einem Ordner durchgeführt werden - / local .

Um Ihre Funktionalität zu der in BUS geschriebenen Site hinzuzufügen, suchen Sie einfach die gewünschte Komponente, kopieren Sie sie in den Ordner / local und passen Sie die Klassen- und Komponentenvorlage an.

Bei Bitrix24 ist dieser Ansatz grundsätzlich falsch.

Wenn Sie die Vorlage in das Verzeichnis / local kopieren , wird sie vom System immer anstelle der Standardvorlage verwendet. Dies bedeutet, dass der Client nach dem nächsten Update keine neuen Funktionen sieht, die dieser Komponente hinzugefügt werden könnten, und dass etwaige Fehler nicht behoben werden. Es ist schwierig, die Relevanz der Komponenten manuell aufrechtzuerhalten, und wenn die Änderungen global waren, ist dies unmöglich.

Zweitens sind die Servicekomponenten ein komplettes System, und ihr Code wird unter der Annahme geschrieben, dass das ursprüngliche System im gesamten System verwendet wird. Dies bedeutet, dass eine angepasste Vorlage zu einer Inkompatibilität der Informationen mit dem Rest des Systems führen und zu einer Quelle schwer zu erfassender Fehler werden kann.

Was ist dann ein Entwickler, der eine Logik ändern oder hinzufügen muss?

Es gibt verschiedene Lösungen für das Problem:

  • bestimmte zulässige Einfügepunkte in die Schnittstelle und verzögerte Funktionen nutzen;
  • Ändern Sie das Ergebnis der Komponentenausführung und fügen Sie Ihre eigenen Stile und Skripte hinzu.
  • Erstellen Sie Ihren eigenen Geschäftsprozess oder richten Sie Roboter ein.
  • an Ereignisse auf der Seite von PHP oder JS binden;
  • Erstellen Sie Ihren eigenen Feldtyp (z. B. ein Widget).
  • Schreiben Sie Ihre Bewerbung;
  • Schreiben Sie Ihr Modul.

Für jede Aufgabe müssen Sie das am besten geeignete Werkzeug auswählen.

Lokal


Der Hauptordner, in dem der Entwickler seine Hände ausführen kann und sollte, ist / local . Anfangs befindet es sich nicht im Projekt, sodass Sie den Ordner nach eigenem Ermessen füllen können. In Bezug auf die Pfade ist es jedoch wichtig, die Anweisungen von Bitrix zu befolgen, da auf der Plattform sonst keine benutzerdefinierten Komponenten und Module angezeigt werden.

Wir bieten eine universelle Ordnerstruktur / lokal :



  • Aktivitäten enthalten Aktionen von Geschäftsprozessen.
  • Komponenten enthalten selbstgeschriebene Komponenten (nicht zu verwechseln mit benutzerdefinierten Bitrix-Komponenten!).
  • CSS , Schriftarten , Bilder , JS enthalten die entsprechenden Dateien und Ressourcen.
  • modules . , .
  • php_interface php-. ajax-, , , .
    • init.php — Bitrix Framework. . , , . init.php , , , init.php . , , __autoload composer.

  • templates .
  • tools cron .

Die Struktur ist sehr flexibel: Wenn dies erforderlich ist (z. B. wenn neue Aufgaben angezeigt werden), können Sie dem Ordner neue Abschnitte hinzufügen, ohne Zeit mit der Entwicklung einer neuen Struktur zu verschwenden.

Wenn Ordner verarbeitet wird , wird Priorität immer auf den angegebenen / lokalen Ordner über / bitrix . Dies bedeutet, dass die Vorlage von / local verbunden wird , wenn sich die gleichnamigen Site-Vorlagen in / local / templates / und / bitrix / templates / befinden . Daraus folgt eine wichtige Beobachtung : Damit Bitrix verstehen kann, dass benutzerdefinierte Komponentenvorlagen aus dem Ordner / local übernommen werden müssen, muss es eine bestimmte Struktur haben:



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

Gleichzeitig sollte der Site-Vorlagenordner in / local (es handelt sich um Bitrix24, nicht den BUS) eine von Bitrix erstellte Vorlage ( / bitrix / templates / bitrix24 / ) enthalten. Nur in diesem Fall versteht das System, dass die Komponente von / local aus verbunden werden muss .

Was ist beim Entwerfen noch zu beachten?


1. Alle Sprachvariablen müssen in den entsprechenden Lang-Dateien gespeichert sein. Die Sprachdatei ist ein PHP-Skript, das Übersetzungen von Sprachphrasen in eine bestimmte Sprache speichert. Dieses Skript besteht aus einem $ MESS-Array, dessen Schlüssel Bezeichner von Sprachphrasen sind, und deren Werte Übersetzungen in die entsprechende Sprache sind.

Jede Sprache verfügt über einen eigenen Satz von Sprachdateien, die in den Unterverzeichnissen / lang / der Dateistruktur des Systems oder Moduls gespeichert sind.

Warum ist es wichtig, alle Texte in separate Dateien zu packen? Wenn Sie Ihr Portal in eine andere Sprache übersetzen, reicht es aus, nur Phrasen aus Sprachdateien zu sammeln und zu übersetzen und gleichzeitig neue Abschnitte für die entsprechende Sprache zu erstellen. Es ist nicht erforderlich, nach Stellen zu suchen, an denen Texte im Code vorkommen können, und Änderungen direkt am Portalcode vorzunehmen.

Lesen Sie mehr über die Verwendung von Sprachdateien in einem offiziellen Dokument .

2. Wenn Sie mit Komponenten arbeiten, müssen Sie nicht direkt auf die Datenbank zugreifen. Das Konzept der Arbeit mit dem Produkt beinhaltet die Arbeit mit Daten über API-Funktionen. Die Datenstruktur kann von Version zu Version variieren, und die Funktionen bleiben abwärtskompatibel. Bitrix rät dringend von der Verwendung direkter Datenbankabfragen ab, da dies die Datenintegrität verletzen und zu einer Inoperabilität des Systems führen kann.

Wenn wir über die Systemtabellen des Bitrix Frameworks selbst sprechen, ist dies nicht nur nicht erwünscht, sondern wird im Prinzip nicht unterstützt. Es ist notwendig, mit ihnen über die API des Systems zu arbeiten, da sich die physische Struktur der Datenbank ändern kann und die Arbeit selbst der ältesten API garantiert ist.

3. Versionsverwaltung eines Projekts mit einem Versionskontrollsystem. Gleichzeitig ist es aufgrund der Besonderheiten der Entwicklung unter Bitrix sinnvoll, beim Einrichten des Repositorys für das Projekt eine „Besonderheit“ vorzusehen: Trennen Sie die Kerndateien von den benutzerdefinierten.

4. Lesen Sie die Docks. Zu vielen lokalen Problemen, insbesondere bei 1C-Bitrix, finden Sie separate Artikel oder Dokumentationen. Für Entwickler, die es gewohnt sind, sofort auf Englisch zu googeln, ist es eine Überraschung, dass die meisten Artikel in russischer Sprache verfasst sind. :)

Und Sie müssen sich an die goldene Regel erinnern, die erfahrene Entwickler empfehlen: weniger Code - weniger Fehler .

Gesamt


Heute können Sie das Ungleichgewicht zwischen Angebot und Nachfrage auf dem Entwicklungsmarkt für Bitrix24 beobachten. Der Bedarf an Entwicklern wächst rasant und viele Experten möchten sich nicht auf das Produkt von Bitrix einlassen, da sie mit seiner ältesten und bereits praktisch toten Idee - BUS - vertraut sind.

Aber der Teufel ist nicht so schrecklich, und selbst unerfahrene Entwickler werden sich daran gewöhnen und ein qualitativ hochwertiges Produkt produzieren können, was "für die Jungs keine Schande ist, es zu zeigen" © user habr.

All Articles