/**
 * 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;
}