// Add overall news $news_index = array(); $draft_index = array(); $archive_index = array(); foreach ($files as $news_file) { $dt = cn_touch_get(cn_path_construct(SERVDIR, 'cdata', 'news') . $news_file); foreach ($dt as $id => $data) { // checks news existing in archive if ($afn = is_news_inarchive($id, $archive_data)) { $archive_index[$afn][$id] = db_index_create($data); } // checks draft if ($data['st'] == 'd') { $draft_index[$id] = db_index_create($data); } else { $news_index[$id] = db_index_create($data); } } } db_index_save($draft_index, 'draft'); db_index_save($news_index); db_index_update_overall(); foreach ($archive_index as $file => $ind) { db_index_save($ind, 'archive-' . $file); $min = min(array_keys($ind)); $max = max(array_keys($ind)); $cnt = count($ind); db_archive_meta_update($file, $min, $max, $cnt); db_index_update_overall('archive-' . $file); } echo "UPDATE SUCCESS." . PHP_EOL;
function edit_news_delete() { cn_dsi_check(); if (!test('Nud')) { msg_info("Unable to delete news: no permission"); } $FlatDB = new FlatDB(); list($id, $source) = GET('id, source', 'GET'); $ida = db_index_load($source); $nloc = db_get_nloc($id); $db = db_news_load($nloc); // ------ $FlatDB->cn_remove_categories($db[$id]['c'], $db[$id]['id']); $FlatDB->cn_update_date(0, $db[$id]['id']); $FlatDB->cn_user_sync($db[$id]['u'], 0, $db[$id]['id']); $FlatDB->cn_remove_tags($db[$id]['tg'], $db[$id]['id']); // ------ unset($db[$id]); unset($ida[$id]); // Remove from meta-index $_ts_id = bt_get_id($id, 'nts_id'); bt_del_id($id, 'nts_id'); bt_del_id($_ts_id, 'nid_ts'); // Remove page alias $_ts_pg = bt_get_id($id, 'ts_pg'); bt_del_id($id, 'ts_pg'); bt_del_id($_ts_pg, 'pg_ts'); // save block db_save_news($db, $nloc); db_index_save($ida, $source); db_index_update_overall($source); cn_relocation(cn_url_modify(array('reset'), 'mod=editnews', "source={$source}")); $FlatDB->cache_clean(); }