/** * Erweitert das Meta-Formular um die neuen Meta-Felder * * @param string $prefix Feldprefix * @param string $params EP Params * @param callback $saveCallback Callback, dass die Daten speichert */ function _rex_a62_metainfo_form($prefix, $params, $saveCallback) { // Beim ADD gibts noch kein activeItem $activeItem = null; if (isset($params['activeItem'])) { $activeItem = $params['activeItem']; } $restrictionsCondition = ''; if ($prefix == 'art_') { if ($params['id'] != '') { $s = ''; $OOArt = OOArticle::getArticleById($params['id'], $params['clang']); // Alle Metafelder des Pfades sind erlaubt foreach (explode('|', $OOArt->getPath()) as $pathElement) { if ($pathElement != '') { $s .= ' OR `p`.`restrictions` LIKE "%|' . $pathElement . '|%"'; } } $restrictionsCondition = 'AND (`p`.`restrictions` = ""' . $s . ')'; } } elseif ($prefix == 'cat_') { $s = ''; if ($params['id'] != '') { $OOCat = OOCategory::getCategoryById($params['id'], $params['clang']); // Alle Metafelder des Pfades sind erlaubt foreach (explode('|', $OOCat->getPath()) as $pathElement) { if ($pathElement != '') { $s .= ' OR `p`.`restrictions` LIKE "%|' . $pathElement . '|%"'; } } // Auch die Kategorie selbst kann Metafelder haben $s .= ' OR `p`.`restrictions` LIKE "%|' . $params['id'] . '|%"'; } $restrictionsCondition = 'AND (`p`.`restrictions` = ""' . $s . ')'; } elseif ($prefix == 'med_') { $catId = rex_session('media[rex_file_category]', 'int'); if ($activeItem) { $catId = $activeItem->getValue('category_id'); } if ($catId !== '') { $s = ''; if ($catId != 0) { $OOCat = OOMediaCategory::getCategoryById($catId); // Alle Metafelder des Pfades sind erlaubt foreach (explode('|', $OOCat->getPath()) as $pathElement) { if ($pathElement != '') { $s .= ' OR `p`.`restrictions` LIKE "%|' . $pathElement . '|%"'; } } } // Auch die Kategorie selbst kann Metafelder haben $s .= ' OR `p`.`restrictions` LIKE "%|' . $catId . '|%"'; $restrictionsCondition = 'AND (`p`.`restrictions` = ""' . $s . ')'; } } $sqlFields = _rex_a62_metainfo_sqlfields($prefix, $restrictionsCondition); $params = rex_call_func($saveCallback, array($params, $sqlFields), false); return rex_a62_metaFields($sqlFields, $activeItem, 'rex_a62_metainfo_form_item', $params); }
/** * Erweitert das Meta-Formular um die neuen Meta-Felder * * @param $prefix Feldprefix * @param $params EP Params * @param $saveCallback callback, dass die */ function _rex_a62_metainfo_form($prefix, $params, $saveCallback) { global $REX; $debug = false; $qry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . '62_params p, ' . $REX['TABLE_PREFIX'] . '62_type t WHERE `p`.`type` = `t`.`id` AND `p`.`name` LIKE "' . $prefix . '%" ORDER BY prior'; $sqlFields = new rex_sql(); // $sqlFields->debugsql = true; $sqlFields->setQuery($qry); $params = rex_call_func($saveCallback, array($params, $sqlFields), false); // Beim ADD gibts noch kein activeItem $activeItem = null; if (isset($params['activeItem'])) { $activeItem = $params['activeItem']; } return rex_a62_metaFields($sqlFields, $activeItem, 'rex_a62_metainfo_form_item', $params); }
/** * @return string */ public function getMetainfoExtension() { $this->sql->setValues($this->getMetaValues()); return rex_a62_metaFields($this->sqlFields, $this, 'rex_a62_metainfo_form_item', array()); }