/** * Erstellt eine Clang * * @param $id Id der Clang * @param $name Name der Clang */ function rex_addCLang($id, $name) { global $REX; $REX['CLANG'][$id] = $name; $content = "// --- DYN\n\r"; reset($REX['CLANG']); for ($i = 0; $i < count($REX['CLANG']); $i++) { $cur = key($REX['CLANG']); $val = current($REX['CLANG']); $content .= "\n\r\$REX['CLANG']['{$cur}'] = \"{$val}\";"; next($REX['CLANG']); } $content .= "\n\r// --- /DYN"; $file = $REX['INCLUDE_PATH'] . "/clang.inc.php"; $h = fopen($file, "r"); $fcontent = fread($h, filesize($file)); $fcontent = ereg_replace("(\\/\\/.---.DYN.*\\/\\/.---.\\/DYN)", $content, $fcontent); fclose($h); $h = fopen($file, "w+"); fwrite($h, $fcontent, strlen($fcontent)); fclose($h); @chmod($file, 0777); $add = new sql(); $add->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where clang='0'"); $fields = $add->getFieldnames(); for ($i = 0; $i < $add->getRows(); $i++) { $adda = new sql(); // $adda->debugsql = 1; $adda->setTable($REX['TABLE_PREFIX'] . "article"); reset($fields); while (list($key, $value) = each($fields)) { if ($value == "pid") { echo ""; } else { if ($value == "clang") { $adda->setValue("clang", $id); } else { if ($value == "status") { $adda->setValue("status", "0"); } else { $adda->setValue($value, rex_addslashes($add->getValue("{$value}"))); } } } // createuser // updateuser } $adda->insert(); $add->next(); } $add = new sql(); $add->query("insert into " . $REX['TABLE_PREFIX'] . "clang set id='{$id}',name='{$name}'"); // ----- EXTENSION POINT rex_register_extension_point('CLANG_ADDED', '', array('id' => $id, 'name' => $name)); rex_generateAll(); }
/** * Erstellt eine Clang * * @param $id Id der Clang * @param $name Name der Clang */ function rex_addCLang($id, $name) { global $REX; $REX['CLANG'][$id] = $name; $content = ""; foreach ($REX['CLANG'] as $cur => $val) { $content .= "\$REX['CLANG']['{$cur}'] = \"{$val}\";\n"; } $file = $REX['INCLUDE_PATH'] . "/clang.inc.php"; rex_replace_dynamic_contents($file, $content); $add = new rex_sql(); $add->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where clang='0'"); $fields = $add->getFieldnames(); $adda = new rex_sql(); // $adda->debugsql = 1; for ($i = 0; $i < $add->getRows(); $i++) { $adda->setTable($REX['TABLE_PREFIX'] . "article"); foreach ($fields as $key => $value) { if ($value == 'pid') { echo ''; } else { if ($value == 'clang') { $adda->setValue('clang', $id); } else { if ($value == 'status') { $adda->setValue('status', '0'); } else { $adda->setValue($value, rex_addslashes($add->getValue($value))); } } } } $adda->insert(); $add->next(); } $add = new rex_sql(); $add->setQuery("insert into " . $REX['TABLE_PREFIX'] . "clang set id='{$id}',name='{$name}'"); // ----- EXTENSION POINT rex_register_extension_point('CLANG_ADDED', '', array('id' => $id, 'name' => $name)); rex_generateAll(); }
/** * Generiert den Cache der Media-Kategorie. * * @param $category_id Id des zu generierenden Media-Kategorie * * @return TRUE bei Erfolg, sonst FALSE */ function rex_generateMediaCategory($category_id) { global $REX; $query = 'SELECT * FROM ' . OOMediaCategory::_getTableName() . ' WHERE id = ' . $category_id; $sql = rex_sql::factory(); //$sql->debugsql = true; $sql->setQuery($query); if ($sql->getRows() == 0) { return false; } $content = '<?php' . "\n"; foreach ($sql->getFieldNames() as $fieldName) { $content .= '$REX[\'MEDIA\'][\'CAT_ID\'][' . $category_id . '][\'' . $fieldName . '\'] = \'' . rex_addslashes($sql->getValue($fieldName), '\\\'') . '\';' . "\n"; } $content .= '?>'; $cat_file = $REX['GENERATED_PATH'] . "/files/{$category_id}.mcat"; if (rex_file::put($cat_file, $content)) { return true; } return false; }
/** * Generiert den Artikel-Cache der Metainformationen. * * @param $article_id Id des zu generierenden Artikels * @param [$clang ClangId des Artikels] * * @return TRUE bei Erfolg, FALSE wenn eine ungütlige article_id übergeben wird, sonst eine Fehlermeldung */ function rex_generateArticleMeta($article_id, $clang = null) { global $REX, $I18N; foreach ($REX['CLANG'] as $_clang => $clang_name) { if ($clang !== null && $clang != $_clang) { continue; } $CONT = new rex_article(); $CONT->setCLang($_clang); $CONT->getContentAsQuery(); // Content aus Datenbank holen, no cache $CONT->setEval(FALSE); // Content nicht ausfŸhren, damit in Cachedatei gespeichert werden kann if (!$CONT->setArticleId($article_id)) { return FALSE; } // --------------------------------------------------- Artikelparameter speichern $params = array('article_id' => $article_id, 'last_update_stamp' => time()); $class_vars = OORedaxo::getClassVars(); unset($class_vars[array_search('id', $class_vars)]); $db_fields = $class_vars; foreach ($db_fields as $field) { $params[$field] = $CONT->getValue($field); } $content = '<?php' . "\n"; foreach ($params as $name => $value) { $content .= '$REX[\'ART\'][' . $article_id . '][\'' . $name . '\'][' . $_clang . '] = \'' . rex_addslashes($value, '\\\'') . '\';' . "\n"; } $content .= '?>'; $article_file = $REX['INCLUDE_PATH'] . "/generated/articles/{$article_id}.{$_clang}.article"; if (rex_put_file_contents($article_file, $content) === FALSE) { return $I18N->msg('article_could_not_be_generated') . " " . $I18N->msg('check_rights_in_directory') . $REX['INCLUDE_PATH'] . "/generated/articles/"; } // damit die aktuellen änderungen sofort wirksam werden, einbinden! require $article_file; } return TRUE; }