public function insertRow(array $row, $index = self::END) { if (!is_integer($index) && $index !== self::END) { throw new \InvalidArgumentException('index muss ein integer sein. self::END f?r append'); } if (!count($row) === count($this->columns)) { throw new \InvalidArgumentException("Zeile hat nicht %d Spalten sondern %d Spalten.", count($row), count($this->columns)); } A::insert($this->rows, $row, $index); return $this; }
public function addRow($headline, $content, $index = self::END, $class = NULL) { if ($index === self::END) { $indexHeadline = $indexContent = self::END; } else { // wenn bei 0 eingefügt werden soll ist head = 0 und div = 1 $indexHeadline = $index * 2; // wenn bei 2 eingefügt werden soll ist head = 4 (weil div+head 0 und div+head1 davor sind) und div = 5 $indexContent = $indexHeadline + 1; } \Webforge\Common\ArrayUtil::insert($this->html->content, $head = new HTMLTag($this->getOption('headlineTag'), $headline, array('class' => $class)), $indexHeadline); \Webforge\Common\ArrayUtil::insert($this->html->content, $div = new HTMLTag($this->getOption('contentTag'), $content, array('class' => $class)), $indexContent); $head->addClass('ui-accordion-header'); $div->setOption('br.openTag', TRUE)->setOption('tag.indent', $this->indent + 2); }
/** * Findet den Controller anhand des Requests * * GET [/$prefix]/person/1 * => * \Project::getNamespace()\Controllers\PersonController::getEntity(1) * => * \CoC\Controllers\PersonController::getEntity(1) * * GET [/$prefix]/person/1/form * => * \Project::getNamespace()\Controllers\PersonController::getEntity(1,'form') * * GET [/$prefix]/persons/grid?filter1=value1&filter2=value2 * => * \Project::getNamespace()\Controllers\PersonController::getEntities(array('filter1'=>'value1', 'filter2'=>'value2'),'grid') */ public function routeController(ServiceRequest $request) { $r = $this->initRequestMatcher($request); $entityPart = $r->qmatchRx('/^[a-z-0-9]+$/i', 0); if (mb_strpos($entityPart, '-') !== FALSE) { $entityPart = Code::dashToCamelCase($entityPart); } // alle weiteren Parameter an den Controller weitergeben $params = $r->getLeftParts(); if ($request->getType() === self::GET) { $this->log('EntityPart: ' . $entityPart . ' ' . ($this->isPlural($entityPart) ? 'ist plural' : 'ist singular'), 2); if ($this->isPlural($entityPart)) { if ($r->part() === 'form') { $method = 'getNewEntityFormular'; } else { $method = 'getEntities'; A::insert($params, $request->getQuery(), 0); // query als 1. parameter } $entityPart = Inflector::singular($entityPart); } else { $method = 'getEntity'; $params = array(); $params[] = $r->shift(); // id $params[] = count($r->getLeftParts()) > 1 ? $r->getLeftParts() : $r->shift(); // subresource $params[] = $request->getQuery(); } } elseif ($request->getType() === self::PUT) { if ($r->part() === 'grid') { $entityPart = Inflector::singular($entityPart); $controller = $this->getEntityController($entityPart); $method = 'saveSort'; $params = array($r->bvar($controller->getSortField(), array())); } elseif ($request->hasMeta('revision') && $request->getMeta('revision') !== 'default') { $method = 'saveEntityAsRevision'; A::insert($params, $request->getMeta('revision'), 1); A::insert($params, (object) $request->getBody(), 2); } else { $method = 'saveEntity'; A::insert($params, (object) $request->getBody(), 1); // $formData als parameter 2 } } elseif ($request->getType() === self::PATCH) { $method = 'patchEntity'; A::insert($params, (object) $request->getBody(), 1); // $formData als parameter 2 } elseif ($request->getType() === self::DELETE) { $method = 'deleteEntity'; // das gibt einen "missing argument 1" fehler, wenn id fehlt, aber ka welche httpException ich hier nehmensoll, deshalb bleibt das erstmal so } elseif ($request->getType() === self::POST) { $entityPart = Inflector::singular($entityPart); // singular und plural okay A::insert($params, $request->getBody(), 0); // $formData als parameter 1 if ($request->hasMeta('revision')) { $method = 'insertEntityRevision'; A::insert($params, $request->getMeta('revision'), 0); } else { $method = 'insertEntity'; } } else { // das kann glaub ich nicht mehr passieren, weil wir jetzt alle haben: put/pust/delete/get gibts nicht noch head? throw HTTPException::MethodNotAllowed('Die Methode: ' . $request->getType() . ' ist für diesen Request nicht erlaubt'); } if (!isset($controller)) { $controller = $this->getEntityController($entityPart); } return array($controller, $method, $params); }
public function addParameter(GParameter $parameter, $position = self::APPEND) { // nicht nach name hashen oder sowas wegen Reihenfolge \Webforge\Common\ArrayUtil::insert($this->parameters, $parameter, $position); return $this; }
public function setMethodOrder(GMethod $method, $position) { if (!$this->hasMethod($method->getName())) { throw new \InvalidArgumentException('Methode muss erst der Klasse hinzugefügt werden. Erst dann darf setMethodOrder() aufgerufen werden'); } \Webforge\Common\ArrayUtil::insert($this->methodsOrder, $method->getName(), $position); return $this; }