HowTo's
Aus CavoxCms Wiki
Inhaltsverzeichnis |
Neues Eingabefeld einfügen
Folgende Schritte müssen gemacht werden.
Model
- Model anpassen in function validate()
$this->add("feld", "text", false);
Templates/Sprachdateien
- details
<div class="row">
<div class="title">{$lang.feld}:</div>
<div class="content">{$tuple.feld} </div>
</div>
Sprachdateien anpassen: feld=Feld
- form
{cavox_input type=text name=feld value=$tuple.feld title=$lang.feld required=1}
Sprachdateien anpassen: feld=Feld
- list (falls erwünscht)
- html anpassen und Sprachdateien feld=Feld und orderby.feld=Feld anpassen.
- Zusätzlich kann im Controller das cOrderBy (function view_list()) angepasst weren.
Version und Updates
- Versionsnummer in module.txt erhöhen
- In install.sql einbauen
`feld` MEDIUMTEXT NOT NULL,
- In cModule Datenbank updaten:
if(cArray::isOlderVersion($pv, "0.0.2"))
cDb::query("ALTER TABLE `%activities` ADD `feld` MEDIUMTEXT NOT NULL ;");
Zwei Objekte mit einem Formular erstellen
- a < n == 1 > b
- Formular für a wird erweitert um b
Beide Felder müssen ausgefüllt sein
Formular Template:
[Eingabefelder für a]
...
<input type="hidden" name="b_id" value="{$tuple.b.id}" />
{cavox_input type=text name=city value=$tuple.b.f1 title=$lang.f1 required=1}
...
[Weitere Eingabefelder für b]
Controller (save):
$a = cObject::load("A", $params);
$params->set("id", $params->get("b_id", "id:B"));
$b = cObject::load("B", $params);
if($b->save() && !$a->hasErrors()){
$a->b= $b;
$a->save();
$a->setView("list");
}
return cResult::merge($a->result, "b", $b->result);
Objekt b optional
Formular Template
[Eingabefelder für a]
...
<input type="hidden" name="b_id" value="{$tuple.b.id}" />
{cavox_input type=bool name=has_b value=$tuple.b title=use change="cSet('b[tplid]', 'switch');"}
{cavox_input type=text name=city value=$tuple.b.f1 title=$lang.f1 required=1}
...
[Weitere Eingabefelder für b]
Controller (save)
$bid = $params->get("b_id", "id:B");
$a = cObject::load("A", $params);
if($params->get("has_b", "bool")){
$params->set("id", $bid);
$b = cObject::load("B", $params);
if($b->save() && !$a->hasErrors()){
$a->b= $b;
$a->save();
$a->setView("list");
}
return cResult::merge($a->result, "b", $b->result);
}else{
$b = cObject::get("B", $bid);
if($b != null)
$b->delete();
if($a->save())
$a->setView("list");
return cResult::merge($a->result, "b", array());
}
