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); }