Menu

Module um Dokumenten-Relationen erweitern

Für alle, die sich mit dem Developer Guide von 1CRM schon auseinandergesetzt haben, haben wir hier eine kurze Anleitung, die beschreibt, wie Sie 1CRM-Extensions erstellen können, die bestehende Module um die Relationen zu den Dokumenten erweitern.

Voraussetzungen

Zielgruppen: Admin
Produkte: 1CRM On-Premises

Bitte beachten Sie, dass wir keinerlei Haftung für mögliche Schäden an Ihrem System übernehmen, wenn Sie Änderungen am Quellcode durchführen!

Eigene 1CRM-Extensions erstellen

1 Ordner für eigene Extensions erstellen

Erstellen Sie im Ordner modules einen Ordner für die eigene Extension.

2 Benötigte Unterordner anlegen

Legen Sie die benötigten Unterordner für die Erweiterung des gewünschten Moduls an (im Beispiel: Produkte bzw. ProductCatalog).

Beispiel: meineExtension/ext/modules/ProductCatalog/models und /views

3 bean.Product.php erweitern

Nun wird die bean.Product.php im models-Ordner um den Link auf die Dokumentenrelation erweitert. Über den hier angegebenen Link documents wird das Subpanel im nächsten Schritt aufgerufen.

<?php return; /* no output */ ?>
links
documents
relationship: documents_products
vname: LBL_DOCUMENTS

4 record.Standard.php erweitern

Erweitern Sie im views-Ordner die seit Version 7.7 verwendete zusamengeführte record.Standard.php um das Subpanel für die Dokumente.

<?php return; /* no output */ ?>
layout
subpanels
- documents

5 Zu erweiternde Datei raussuchen

Sie benötigen nun noch die oben verwiesene Relation documents_products. Die zu erweiternde Datei finden Sie unter include/models > link.document_relations.php. Hier wird die Relationstabelle für die Datenbank und alle bisher vorhandenen Relationen definiert.

6 Kompletten Inhalt der Datei kopieren

Kopieren Sie den kompletten Inhalt dieser Datei (oder die ganze Datei) und achten Sie darauf, dass die Einrückungen danach noch genauso vorhanden sind.

7 Ordner in Extension erstellen

Erstellen Sie in Ihrer Extension folgenden Ordner: meineExtension/models.

8 Datei mit kopierten Inhalt erstellen oder kopierte Datei einfügen

Erstellen Sie hier eine neue Datei mit dem kopierten Inhalt oder fügen Sie die kopierte Datei hier ein.

9 Datei umbenennen

Benennen Sie die Datei um oder vergeben Sie einen eigenen Namen, z.B. link.document_product_relations.php.

10 Neue Produkt-Dokumenten-Relation einfügen

Behalten Sie den kompletten Dateiinhalt bis auf die Relationen und fügen Sie hier nur die neue Produkt-Dokumenten-Relation ein:

<?php return; /* no output */ ?>
detail
type: link
table_name: document_relations
primary_key: [relation_type, relation_id, document_id]
fields
app.date_modified
app.deleted
document
vname: LBL_DOCUMENT_ID
required: true
type: ref
bean_name: Document
relation_type
vname: LBL_RELATION_TYPE
type: module_name
required: true
relation
vname: LBL_RELATION_ID
required: true
type: ref
dynamic_module: relation_type
document_revision
vname: LBL_DOCUMENT_REVISION_ID
type: ref
bean_name: DocumentRevision
relation_role
vname: LBL_RELATION_ROLE
type: varchar
len: 30
indices
document_relations_docid
fields
- document_id
relationships
documents_products
lhs_key: id
rhs_key: id
relationship_type: many-to-many
join_key_lhs: document_id
join_key_rhs: relation_id
relationship_role_column: relation_type
relationship_role_column_value: ProductCatalog
lhs_bean: Document
rhs_bean: Product

Ergebnis

Die neue Relation verwendet die nun schon vorhandene Relationstabelle.