Ejemplo n.º 1
0
 protected function handleSave(array $params, rex_sql $sqlFields)
 {
     // Nur speichern wenn auch das MetaForm ausgefüllt wurde
     // z.b. nicht speichern wenn über be_search select navigiert wurde
     if (!rex_post('savemeta', 'boolean')) {
         return $params;
     }
     $article = rex_sql::factory();
     // $article->setDebug();
     $article->setTable(rex::getTablePrefix() . 'article');
     $article->setWhere('id=:id AND clang_id=:clang', ['id' => $params['id'], 'clang' => $params['clang']]);
     $article->setValue('name', rex_post('meta_article_name', 'string'));
     parent::fetchRequestValues($params, $article, $sqlFields);
     // do the save only when metafields are defined
     if ($article->hasValues()) {
         $article->update();
     }
     rex_article_cache::deleteMeta($params['id'], $params['clang']);
     rex_extension::registerPoint(new rex_extension_point('ART_META_UPDATED', '', $params));
     return $params;
 }
Ejemplo n.º 2
0
 /**
  * Kopiert die Metadaten eines Artikels in einen anderen Artikel.
  *
  * @param int   $from_id    ArtikelId des Artikels, aus dem kopiert werden (Quell ArtikelId)
  * @param int   $to_id      ArtikelId des Artikel, in den kopiert werden sollen (Ziel ArtikelId)
  * @param int   $from_clang ClangId des Artikels, aus dem kopiert werden soll (Quell ClangId)
  * @param int   $to_clang   ClangId des Artikels, in den kopiert werden soll (Ziel ClangId)
  * @param array $params     Array von Spaltennamen, welche kopiert werden sollen
  *
  * @return bool TRUE bei Erfolg, sonst FALSE
  */
 public static function copyMeta($from_id, $to_id, $from_clang = 1, $to_clang = 1, $params = [])
 {
     $from_clang = (int) $from_clang;
     $to_clang = (int) $to_clang;
     $from_id = (int) $from_id;
     $to_id = (int) $to_id;
     if (!is_array($params)) {
         $params = [];
     }
     if ($from_id == $to_id && $from_clang == $to_clang) {
         return false;
     }
     $gc = rex_sql::factory();
     $gc->setQuery('select * from ' . rex::getTablePrefix() . "article where clang_id='{$from_clang}' and id='{$from_id}'");
     if ($gc->getRows() == 1) {
         $uc = rex_sql::factory();
         // $uc->setDebug();
         $uc->setTable(rex::getTablePrefix() . 'article');
         $uc->setWhere("clang_id='{$to_clang}' and id='{$to_id}'");
         $uc->addGlobalUpdateFields();
         foreach ($params as $key => $value) {
             $uc->setValue($value, $gc->getValue($value));
         }
         $uc->update();
         rex_article_cache::deleteMeta($to_id, $to_clang);
         return true;
     }
     return false;
 }