HowTo's

Aus CavoxCms Wiki

Wechseln zu: Navigation, Suche

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}&nbsp;</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,
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());
}
Persönliche Werkzeuge