[HomePage :: Module :: Eigenes Modul mit imBuilding erstellen :: Dieser Seite]  

Das Ideas IPF Object

Module bauen mit imBuilding - Tutorial - Seite 8

Nächste Seite: Der Ideas IPF Handler

Vorige Seite: Erste Betrachtungen

Betrachten wir zunächst das Object genauer. Das Object ist eine Klasse, genannt mod_ideas_Ideas, also mod_modulName_itemname, welches hier in diesem Fall die IPF Klasse icms_ipf_seo_Object erweitert. Würde es sich um ein nicht-Seo-Modul Handeln, würde hier nur icms_ipf_Object stehen. Will man sich die Klasse genauer anschauen braucht man nur der Ordnerstruktur im Libraries-Ordner folgen. Also kann man hier im Ordner "/icms/ipf/seo/ die Datei Object.php finden. Diese enthält im Großen und Ganzen nur das, was zur Erweiterung der Seo-Funktionalität benötigt wird. Also Felder für short_ur (der SEO-URL Title des Objects), die meta_keywords und meta_description. Ansonsten erweitert die Klasse wiederum ebenso das icms_ipf_Object, welche überhaupt die Refferenz-Datei für das Können der IPF-Modul Objekte ist. Werfen wir also einen Blick auf den constructor, der von imBuilding generiert wurde:

public function __construct(&$handler) {
    icms_ipf_object::__construct($handler);
    $this->quickInitVar("ideas_id", XOBJ_DTYPE_INT, TRUE);
    $this->quickInitVar("title", XOBJ_DTYPE_TXTBOX, TRUE);
    $this->quickInitVar("dsc", XOBJ_DTYPE_TXTAREA, TRUE);
    $this->quickInitVar("body", XOBJ_DTYPE_TXTAREA, FALSE);
    $this->quickInitVar("url", XOBJ_DTYPE_URLLINK, FALSE);
    $this->quickInitVar("file", XOBJ_DTYPE_FILE, FALSE);
    $this->quickInitVar("image", XOBJ_DTYPE_IMAGE, FALSE);
    $this->quickInitVar("created_by", XOBJ_DTYPE_INT, TRUE);
    $this->quickInitVar("created_on", XOBJ_DTYPE_LTIME, TRUE);
    $this->quickInitVar("updated_by", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("updated_on", XOBJ_DTYPE_LTIME, FALSE);
    $this->quickInitVar("active", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("started", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("finished", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("status", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("approved", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("notif_sent", XOBJ_DTYPE_INT, FALSE);
    $this->quickInitVar("comments", XOBJ_DTYPE_INT, FALSE);

    $this->initCommonVar("counter");
    $this->initCommonVar("dohtml");
    $this->initCommonVar("doimage");
    $this->initCommonVar("dosmiley");
    $this->initCommonVar("docxode");

    $this->setControl("image", "image");
    $this->setControl("created_by", "user");
    $this->setControl("updated_by", "user");
    $this->setControl("active", "yesno");
    $this->setControl("started", "yesno");
    $this->setControl("finished", "yesno");
    $this->setControl("approved", "yesno");
    $this->initiateSEO();
}

Schauen wir zunächst auf

$this->quickInitVar("title", XOBJ_DTYPE_TXTBOX, TRUE);

Das Object - quickInitVar()

Wollen wir uns die Nächste anschauen. Diese ist noch einfacher aufgebaut und bietet nur ein paar Möglichkeiten.

$this->initCommonVar("counter");

Das IPF Object - initCommonVar()

Weiter gehts:

$this->setControl("image", "image");

Das IPF Object - setControl()

Aus Das IPF Object - setControl() nehmen wir mit, dass wir hier im Constructor zwei Zeilen zufügen müssen:

$this->setControl("status", array("name" => "select", "itemHandler" => "ideas", "method" => "getStatusArray", "module" => "ideas"));
$this->setControl("file", "file");

Wir behalten im Hinterkopf, dass wir für den Constructor eine Funktion im Handler benötigen "getStatusArray" und dass wir hier den Datei-Upload erlauben.

Wir können nun hergehen, und und ein paar Felder im Formular verstecken. Zum Beispiel den Ersteller, Aktualierer und das jeweilige Datum können wir generieren und können uns die Felder also sparen. Auch haben wir Felder, die nicht zum ausfüllen gedacht sind, wie die Anzahl an Kommentaren oder notif_sent zur Überprüfung, ob die Benachrichtigung bereits versendet wurde.

Das IPF Object - hideFieldFromForm()

Last not least sehen wir hier noch $this->initiateSEO();

Dazu gibt es wenig genug zu sagen: Es kann nur aufgerufen werden, wenn unsere Objekt-Klasse icms_ipf_seo_Object verwendet und muss sonst weggelassen werden.

Was passiert dadurch? Als erstes werden dem Object im Formular 3 neue Felder bereitgestellt:

  • short_url = einen SEO-Title für die URL
  • meta_description für die META-Beschreibung
  • meta_keywords für die META-Schlüsselwörter
Weiterhin wird im icms_ipf_Object $seoEnabled = FALSE; auf $seoEnabled = TRUE; umgestellt. Was heißt das nun? Im Prinzip sagt dies nur dem Handler, dass im Falle, dass SEO genutzt ist, beim Aufrufen der insert() Funktion geprüft wird, ob die SEO Felder leer sind. Ist dem so, werden die Felder automatisch mittels icms_ipf_Metagen generiert und gefüllt.

Vorerst war es das, was wir hier machen können und wenden uns zunächst dem Kapitel Der Ideas IPF Handler.

Module bauen mit imBuilding - Tutorial - Seite 8

Nächste Seite: Der Ideas IPF Handler

Vorige Seite: Erste Betrachtungen

Diese Seite wurde 3 Mal geändert
Aktualisierung 07.01.2013 von sato-san
Diese Seite wurde erstellt am 01.08.2012 von QM-B
Diese Seite wurde 548 Mal angesehen

Kommentar
Die hier veröffentlichten Artikel und Kommentare stehen uneingeschränkt im alleinigen Verantwortungsbereich des jeweiligen Autors.