NAME
Quiq::Html::Component - Eigenständige Komponente einer HTML-Seite
BASE CLASS
SYNOPSIS
use Quiq::Html::Component;
# Instantiiere Objekt
$c = Quiq::Html::Component->new(
name => $name
resources => \@resources,
css => $css | \@css,
html => $html | \@html,
js => $js | \@js,
ready => $js | \@js,
);
# Frage Eigenschaften ab
$name = $c->name;
@resources = $c->resources;
$css | @css = $c->css;
$html | @html = $c->html;
$js | @js = $c->js;
$ready | @ready = $c->ready;
# Generiere HTML-Fragment
$h = Quiq::Html::Tag->new;
$html = $c->fragment($h);
DESCRIPTION
Ein Objekt der Klasse repräsentiert eine eigenständige Komponente einer HTML-Seite bestehend aus HTML-, CSS- und JavaScript-Code (normaler Code und jQuery ready-Handler). Der Zweck besteht darin, diese Bestandteile zu einer logischen Einheit zusammenzufassen. Die Bestandteile können über Methoden der Klasse abgefragt werden, um sie systematisch in die unterschiedlichen Abschnitte einer HTML-Seite (<head>, <body>, <style>, <script>, $(function() {...})) einsetzen zu können. Die Resourcen mehrerer Komponenten (Attribut resources) können zu einer Liste ohne Dubletten konsolidiert werden. Dies ist allerdings Aufgabe des Nutzers bzw. der Klasse Quiq::Html::Component::Bundle. Ein Objekt der Klasse speichert die einzelnen Bestandteile lediglich, die Methoden manipulieren diese nicht. Einzig die Methode fragment() führt eine Verarbeitung durch, indem sie zusammenfassenden HTML-Code über allen Komponenten generiert.
METHODS
Konstruktor
new() - Instantiiere Objekt
Synopsis
$c = $class->new(@keyVal);
Attributes
Alle Attribute außer name
können mehrfach angegeben werden.
- name => $name
-
Name der Komponente. Unter diesem Namen kann die Komponente aus einem Bündel von Komponenten ausgewählt werden. Siehe Quiq::Html::Bundle.
- resources => \@resources
-
Liste von Resourcen (CSS- und JavaScript-Dateien), die von der Komponente benötigt werden. Eine Resource wird durch ihren URL spezifiziert. Es sollte eine einheitliche Schreibweise über mehreren Komponenten verwendet werden, damit die Resource-Listen konsolidiert werden können.
- css => $css | \@css
-
Der CSS-Code der Komponente. Besteht der CSS-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- html => $html | \@html (Default: '')
-
Der HTML-Code der Komponente. Besteht der HTML-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- js => $js | \@js
-
Der JavaScript-Code der Komponente. Besteht der JavaScript-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- ready => $js | \@js
-
Der Ready-Handler der Komponente. Gibt es mehrere Ready-Handler kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Description
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
Objektmethoden
css() - CSS-Code der Komponente
Synopsis
$css | @css = $c->css;
Description
Liefere den CSS-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
fragment() - Generiere HTML
Synopsis
$html = $c->fragment($h);
$html = $class->fragment($h,@keyVal);
Description
Generiere den Frament-Code der Komponente und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.
Der Fragment-Code besteht aus dem HTML-, CSS- und JavaScript-Code der Komponente. Anwendungsfall ist z.B. eine Ajax-Antwort, die in ein bestehendes HTML-Dokument eingebettet wird.
Der generierte Code hat den Aufbau:
<RESOURCEN LADEN>
<STYLE CODE>
<HTML CODE>
<JAVASCRIPT CODE>
html() - HTML-Code der Komponente
Synopsis
$html | @html = $c->html;
Description
Liefere den HTML-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
js() - JavaScript-Code der Komponente
Synopsis
$js | @js = $c->js;
Description
Liefere den JavaScript-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
name() - Name der Komponente
Synopsis
$name = $c->name;
Description
Liefere den Namen der Komponente.
ready() - Ready-Handler der Komponente
Synopsis
$ready | @ready = $c->ready;
Description
Liefere den/die Ready-Handler der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
resources() - Resourcen der Komponente
Synopsis
@resources | $resourceA = $c->resources;
Returns
Liste der Resource-URLs. Im Skalarkontext eine Referenz auf die Liste.
Description
Liefere die Liste der Resource-URLs der Komponente.
Private Methoden
getValue() - Liefere Attributwert
Synopsis
@arr | $str = $obj->getValue($key);
Description
Liefere den Wert des Attributs $key. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
putValue() - Setze Attributwert oder füge ihn hinzu
Synopsis
$obj->putValue($key=>$val);
Description
Setze den Wert $val des Attributs $key oder füge ihn hinzu.
VERSION
1.206
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2022 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.