Bitte beachten Sie, dass wir keinerlei Haftung für mögliche Schäden an Ihrem System übernehmen, wenn Sie Änderungen am Quellcode durchführen!
Erstellen Sie im Ordner modules
einen Ordner für die eigene Extension.
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
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
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
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.
Kopieren Sie den kompletten Inhalt dieser Datei (oder die ganze Datei) und achten Sie darauf, dass die Einrückungen danach noch genauso vorhanden sind.
Erstellen Sie in Ihrer Extension folgenden Ordner: meineExtension/models
.
Erstellen Sie hier eine neue Datei mit dem kopierten Inhalt oder fügen Sie die kopierte Datei hier ein.
Benennen Sie die Datei um oder vergeben Sie einen eigenen Namen, z.B. link.document_product_relations.php
.
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
Die neue Relation verwendet die nun schon vorhandene Relationstabelle.