/** * 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 Inhalte 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 int [$from_re_sliceid] Id des Slices, bei dem begonnen werden soll * * @return boolean TRUE bei Erfolg, sonst FALSE */ function rex_copyContent($from_id, $to_id, $from_clang = 0, $to_clang = 0, $from_re_sliceid = 0, $revision = 0) { global $REX; if ($from_id == $to_id && $from_clang == $to_clang) { return false; } $gc = rex_sql::factory(); $gc->setQuery('select * from ' . $REX['TABLE_PREFIX'] . "article_slice where re_article_slice_id='{$from_re_sliceid}' and article_id='{$from_id}' and clang='{$from_clang}' and revision='{$revision}'"); if ($gc->getRows() == 1) { // letzt slice_id des ziels holen .. $glid = rex_sql::factory(); $glid->setQuery('select r1.id, r1.re_article_slice_id from ' . $REX['TABLE_PREFIX'] . 'article_slice as r1 left join ' . $REX['TABLE_PREFIX'] . "article_slice as r2 on r1.id=r2.re_article_slice_id\n where\n r1.article_id={$to_id} and r1.clang={$to_clang} and r1.revision={$revision}\n and r2.id is NULL"); if ($glid->getRows() == 1) { $to_last_slice_id = $glid->getValue('r1.id'); } else { $to_last_slice_id = 0; } $ins = rex_sql::factory(); $ins->setTable($REX['TABLE_PREFIX'] . 'article_slice'); $cols = rex_sql::factory(); // $cols->debugsql = 1; $cols->setquery('SHOW COLUMNS FROM ' . $REX['TABLE_PREFIX'] . 'article_slice'); for ($j = 0; $j < $cols->rows; $j++, $cols->next()) { $colname = $cols->getValue('Field'); if ($colname == 'clang') { $value = $to_clang; } elseif ($colname == 're_article_slice_id') { $value = $to_last_slice_id; } elseif ($colname == 'article_id') { $value = $to_id; } elseif ($colname == 'createdate') { $value = time(); } elseif ($colname == 'updatedate') { $value = time(); } elseif ($colname == 'createuser') { $value = $REX['USER']->getValue('login'); } elseif ($colname == 'updateuser') { $value = $REX['USER']->getValue('login'); } else { $value = $gc->getValue($colname); } if ($colname != 'id') { $ins->setValue($colname, $ins->escape($value)); } } $ins->insert(); // id holen und als re setzen und weitermachen.. rex_copyContent($from_id, $to_id, $from_clang, $to_clang, $gc->getValue('id'), $revision); return true; } rex_deleteCacheArticleContent($to_id, $to_clang); return true; }
echo rex_info($I18N->msg('seo42_urlpage_updated')); // extension point 1 $params = array(); $params['id'] = $articleId; $params['url_type'] = $newUrlType; if ($newUrlData['url_clone']) { foreach ($REX['CLANG'] as $theClang => $clang_name) { $params['clang'] = $theClang; rex_register_extension_point('SEO42_URL_UPDATE', '', $params); } } else { $params['clang'] = $clang; rex_register_extension_point('SEO42_URL_UPDATE', '', $params); } // generate stuff new rex_deleteCacheArticleContent($articleId, $clang); rex_generateArticle($articleId); seo42_generate_pathlist(array()); // extension point 2 rex_register_extension_point('SEO42_URL_UPDATED', '', $params); // this is for frontend link fix with js $dataUpdated = true; } else { // err msg if ($sql->getError() != '') { echo rex_warning($sql->getError()); } } } $sql = rex_sql::factory(); //$sql->debugsql = 1;
/** * Kopiert die Inhalte 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 int [$from_re_sliceid] Id des Slices, bei dem begonnen werden soll * * @return boolean TRUE bei Erfolg, sonst FALSE */ function rex_copyContent($from_id, $to_id, $from_clang = 0, $to_clang = 0, $from_re_sliceid = 0, $revision = 0) { global $REX; if ($from_id == $to_id && $from_clang == $to_clang) { return false; } $gc = new rex_sql(); $gc->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article_slice where re_article_slice_id='{$from_re_sliceid}' and article_id='{$from_id}' and clang='{$from_clang}' and revision='{$revision}'"); if ($gc->getRows() == 1) { // letzt slice_id des ziels holen .. $glid = new rex_sql(); $glid->setQuery("select r1.id, r1.re_article_slice_id\r\n from " . $REX['TABLE_PREFIX'] . "article_slice as r1\r\n left join " . $REX['TABLE_PREFIX'] . "article_slice as r2 on r1.id=r2.re_article_slice_id\r\n where \r\n\t\t\t\t\t\t\t\t\t\t\t\tr1.article_id={$to_id} and r1.clang={$to_clang} and r1.revision={$revision}\r\n\t\t\t\t\t\t\t\t\t\t\t\tand r2.id is NULL"); if ($glid->getRows() == 1) { $to_last_slice_id = $glid->getValue("r1.id"); } else { $to_last_slice_id = 0; } $ins = new rex_sql(); $ins->setTable($REX['TABLE_PREFIX'] . "article_slice"); $cols = new rex_sql(); // $cols->debugsql = 1; $cols->setquery("SHOW COLUMNS FROM " . $REX['TABLE_PREFIX'] . "article_slice"); for ($j = 0; $j < $cols->rows; $j++, $cols->next()) { $colname = $cols->getValue("Field"); if ($colname == "clang") { $value = $to_clang; } elseif ($colname == "re_article_slice_id") { $value = $to_last_slice_id; } elseif ($colname == "article_id") { $value = $to_id; } elseif ($colname == "createdate") { $value = time(); } elseif ($colname == "updatedate") { $value = time(); } elseif ($colname == "createuser") { $value = $REX['USER']->getValue("login"); } elseif ($colname == "updateuser") { $value = $REX['USER']->getValue("login"); } else { $value = $gc->getValue($colname); } if ($colname != "id") { $ins->setValue($colname, $ins->escape($value)); } } $ins->insert(); // id holen und als re setzen und weitermachen.. rex_copyContent($from_id, $to_id, $from_clang, $to_clang, $gc->getValue("id"), $revision); return true; } rex_deleteCacheArticleContent($to_id, $to_clang); return true; }