Da es einige Codedateien gibt, die bei einem erneuten Generierungsprozess überschrieben würden, sollten hier keine manuellen Änderungen durchgeführt werden.
Solche Dateien sind immer in einem Ordner "generated" abgelegt, zudem finden Sie Warnhinweise im Code.
Sind nachträgliche Anpassungen des generierten Moduls erforderlich, wird hier beschrieben, wie Sie vorgehen können.

Eingabemaske für Objektdaten ändern

Die hierfür zuständige Datei basicdata.ascx befindet sich im Ordner "admin". 

Folgende Operationen werden unterstützt:

  • Feld durch ein anderes ersetzen
    Der Platzhalter InsteadOf{FeldID} ersetzt das generierte Markup eines einzelnen Feldes mit der ID {FeldID}.
  • Control vor einem anderen Control einfügen
    Der Platzhalter Before{FeldID} fügt Markup vor einem generierten Feld mit der ID {FeldID} ein. 
  • Control nach einem anderen Control einfügen
    Der Platzhalter After{FeldID} fügt Markup vor einem generierten Feld mit der ID {FeldID} ein. 
  • Sortierreihenfolge ändern (Attribut FieldOrder).

Die Platzhalter werden dabei in das Steuerelement ctlGeneratedBasicDataForm eingetragen. Hier ein Beispiel unter der Annahme, dass sich in der generierten basicdata.ascx Felder mit der ID Feld_A und Feld_B  befinden. Feld_A soll ausgetauscht werden, hinter Feld_B wird ein neues Feld Feld_C eingefügt. Zur Änderung der Reihenfolge wird dem Attribut FieldOrder die gewünschte Reihenfolge der ursprünglich vorhandenen FeldIDs übergeben.

<generated:basicdata runat="server" ID="ctlGeneratedBasicDataForm" FieldOrder="Feld_B,Feld_A">
<InsteadOfFeld_A><%--Hier das entsprechende Markup für das Eingabefeld einfügen.--%></InsteadOfFeld_A>
<AfterFeld_B><tr><td id="Td3" runat="server" align="right" class="adminlabel-customsettings" valign="top"><asp:label ID="Label3" AssociatedControlId="title" runat="server" text="">[l_Feld_C]</asp:label></td><td class="admin-settingsvalue"><asp:TextBox runat="server" ID="Feld_C" Width="300px" /></td></tr></AfterFeld_B>
</generated:basicdata>

Datenobjekt-Klasse ändern

Die von der CosyFactory generierte Klasse {FM_Paketname_Modulname} ist zuständig für das Mapping der Objekte mit der Datenbank (ORM) und wird abgelegt unter classes/generated/{Modulname}.cs. Direkt im Ordner "classes" findet sich eine gleichnamige Datei {Modulname}.cs mit einer Klasse, die von der generierten Basisklasse abgeleitet ist. Hier können Sie also Methoden der Basisklasse ContentObjectBase überschreiben und eigene Methoden hinzufügen (Erweiterung der Business-Logik). Die API-Dokumentation zur Basisklasse finden Sie hier.

Darstellung der Objekte im Frontend steuern

Hierzu können die Dateien desktop.ascx sowie desktop.ascx.cs im Ordner "desktop" frei bearbeitet werden. Dies ist dann erforderlich, wenn zum Rendering der Objekte auf der Website eigene Business-Logik benötigt wird. Die Klasse desktop ist von der Basisklasse ContentModuleDesktop abgeleitet, die API-Dokumentation zu der Basisklasse finden Sie hier.

Eigenes SQL bei der Installation ausführen

Bei der Erzeugung des Moduls wird auch ein SQL-Scipt generiert, das unter Setup/Scripts/Generated zu finden ist. Soll im Anschluss an die Ausführung dieses Scripts eigenes SQL ausgeführt werden, steht hierzu unter Setup/Scripts/Custom die Datei After_{Versionsnummer}.sql zur Verfügung.
Weiterhin ist es möglich, vor sowie nach der Ausführung der Datenbankscripte eigenen Code auszuführen. Bearbeiten Sie hierzu die Datei UpdateActions.{Versionsnummer}.cs unter Setup/Code/Custom.

Maske für Moduleinstellungen ändern

Hierzu können die Dateien customsettings.ascx sowie customsettings.ascx.cs im Ordner "plugin" frei bearbeitet werden.

Listeneintrag eines Objekts im Objektbrowser ändern

Bearbeiten Sie zu diesem Zweck die Datei objectbrowser.xml im Ordner "plugin". Weitere Felder können hinzugefügt werden:
<column name="..." title="..." attributes="...">

Reiter im Objekt-Edit-Manager hinzufügen oder entfernen

Dies ist möglich in der Datei editobjectconfiguration.xml im Ordner "plugin". Auch weitere grundlegende Moduleigenschaften sind hier konfiguriert (MayAttachTask, MayPublish, ShowLangSelection). Weiterführende Informationen finden Sie hier bzw. hier.

Such-Plugin einbauen

Folgende Schritte sind hierzu nötig:

  • Einbindung einer Datei Search.ascx im Ordner "plugin". Diese kann basierend auf analogen Dateien in der contentXXL-Codebasis leicht erstellt werden.
  • Einbindung einer Datei SearchSettings.ascx im Ordner "plugin". Diese kann basierend auf analogen Dateien in der contentXXL-Codebasis leicht erstellt werden und regelt die Einstellungen des Such-Plugins wie templates etc.
  • Erstellung von Stored Procedures {Modul}_GetSearchTree und Search_Portal{Modul} (die Namen können frei gewählt werden). Als Vorlage können die SPs News_GetSearchTree und Search_PortalNews dienen.
  • Erstellung von Code zur Einbindung der StoredProcedures im Codebehind der search.ascx. Weitere Informationen hierzu finden Sie hier bzw. wenden Sie sich gegebenenfalls an den Support.

Autotagging aktivieren

Hierzu muss lediglich eine Datei autotagging.xml im Ordner "plugin" platziert werden. Hier sind die Felder definiert, die für das Autotagging heranzuziehen sind. Die Datei kann basierend auf analogen Dateien in der contentXXL-Codebasis leicht erstellt werden.