public function __construct($arrAttributes = null) { parent::__construct($arrAttributes); \Controller::loadLanguageFile(\Config::get('fieldpalette_table')); \Controller::loadLanguageFile($this->strTable); $this->import('Database'); $this->arrDca = \HeimrichHannot\FieldPalette\FieldPalette::getDca($this->strTable, $this->strName); $this->viewMode = $this->arrDca['list']['viewMode'] ?: 0; }
public function setTable($strTable, $insertID, $arrSet, DataContainer $dc) { $strFieldPalette = \HeimrichHannot\FieldPalette\FieldPalette::getPaletteFromRequest(); $objModel = \HeimrichHannot\FieldPalette\FieldPaletteModel::findByPk($insertID); if (!\HeimrichHannot\FieldPalette\FieldPalette::isActive(\Input::get('ptable'), $strFieldPalette)) { $objModel->delete(); $this->log('Fieldpalette "' . $insertID . '" not available within FieldpaletteRegistry, Model deleted.', __METHOD__, TL_ERROR); $this->redirect('contao/main.php?act=error'); } // if are within nested fieldpalettes set parent item tstamp if ($arrSet['ptable'] == 'tl_fieldpalette') { $objParent = \HeimrichHannot\FieldPalette\FieldPaletteModel::findByPk($objModel->pid); if ($objParent !== null) { $objParent->tstamp = time(); $objParent->save(); } } // set fieldpalette field $objModel->pfield = $strFieldPalette; $objModel->save(); }
public static function loadDynamicPaletteByParentTable($strAct, $strTable, &$dc) { switch ($strAct) { case 'create': $strParentTable = FieldPalette::getParentTableFromRequest(); $strPalette = FieldPalette::getPaletteFromRequest(); break; case 'cut': case 'edit': case 'show': case 'delete': case 'toggle': $id = strlen(\Input::get('id')) ? \Input::get('id') : CURRENT_ID; $objModel = \HeimrichHannot\FieldPalette\FieldPaletteModel::findByPk($id); if ($objModel === null) { break; } $strParentTable = FieldPalette::getParentTable($objModel, $objModel->id); $strPalette = $objModel->pfield; // set back link from request if (\Input::get('popup') && \Input::get('popupReferer')) { $arrSession = \Session::getInstance()->getData(); if (class_exists('\\Contao\\StringUtil')) { $arrSession['popupReferer'][TL_REFERER_ID]['current'] = \StringUtil::decodeEntities(rawurldecode(\Input::get('popupReferer'))); } else { $arrSession['popupReferer'][TL_REFERER_ID]['current'] = \String::decodeEntities(rawurldecode(\Input::get('popupReferer'))); } \Session::getInstance()->setData($arrSession); } break; } if (!$strParentTable || !$strPalette) { return false; } if ($strTable !== $strParentTable) { \Controller::loadDataContainer($strParentTable); } static::registerFieldPalette($dc, $strParentTable, $strTable, $strPalette); }
protected function prepareParameter($act) { $arrParameters = array('do' => $this->do, 'ptable' => $this->ptable, 'table' => $this->table, 'act' => $this->act, 'pid' => $this->pid, 'id' => $this->id, $this->fieldpaletteKey => $this->fieldpalette, 'popup' => $this->popup); $arrAllowed = array_keys($arrParameters); switch ($act) { case 'create': $arrAllowed = array('do', 'ptable', 'table', 'act', 'pid', 'fieldpalette', 'popup', 'popupReferer'); // nested fieldpalettes if ($this->ptable == \Config::get('fieldpalette_table') && ($objModel = FieldPaletteModel::findByPk($this->pid)) !== null) { $arrParameters['table'] = FieldPalette::getParentTable($objModel, $objModel->id); } break; case 'toggle': $arrAllowed = array('do', 'table', 'state', 'tid', 'id'); $arrParameters['id'] = $this->pid; break; case 'edit': $arrAllowed = array('do', 'table', 'act', 'id', 'popup', 'popupReferer'); break; case 'copy': $arrAllowed = array('do', 'table', 'act', 'id', 'popup', 'popupReferer'); break; case 'show': $arrAllowed = array('do', 'table', 'act', 'id', 'popup', 'popupReferer'); break; case 'delete': $arrAllowed = array('do', 'table', 'act', 'id'); break; } $arrParameters = array_intersect_key($arrParameters, array_flip($arrAllowed)); return $arrParameters; }