/** * Löscht die gecachten Dateien eines Artikels. Wenn keine clang angegeben, wird * der Artikel in allen Sprachen gelöscht. * * @param $id ArtikelId des Artikels * @param [$clang ClangId des Artikels] * * @return void */ function rex_deleteCacheArticle($id, $clang = null) { global $REX; foreach ($REX['CLANG'] as $_clang => $clang_name) { if ($clang !== null && $clang != $_clang) { continue; } rex_deleteCacheArticleMeta($id, $clang); rex_deleteCacheArticleContent($id, $clang); rex_deleteCacheArticleLists($id, $clang); } }
/** * 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 boolean TRUE bei Erfolg, sonst FALSE */ function rex_copyMeta($from_id, $to_id, $from_clang = 0, $to_clang = 0, $params = array()) { global $REX; $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 = array(); } if ($from_id == $to_id && $from_clang == $to_clang) { return false; } $gc = rex_sql::factory(); $gc->setQuery('select * from ' . $REX['TABLE_PREFIX'] . "article where clang='{$from_clang}' and id='{$from_id}'"); if ($gc->getRows() == 1) { $uc = rex_sql::factory(); // $uc->debugsql = 1; $uc->setTable($REX['TABLE_PREFIX'] . 'article'); $uc->setWhere("clang='{$to_clang}' and id='{$to_id}'"); $uc->addGlobalUpdateFields(); foreach ($params as $key => $value) { $uc->setValue($value, $gc->escape($gc->getValue($value))); } $uc->update(); rex_deleteCacheArticleMeta($to_id, $to_clang); return true; } return false; }