".$echo['delQuestion']." (".count($selected_news).") ?

  "; foreach($selected_news as $newsid){ echo "\n"; } echo "
"; echofooter(); exit; } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Do Mass Delete ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "do_mass_delete"){ if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source == ""){ $news_file = "data/news.txt"; $comm_file = "data/comments.txt";} elseif($source == "postponed"){ $news_file = "data/postponed_news.txt"; $comm_file = "data/comments.txt"; } elseif($source == "unapproved"){ $news_file = "data/unapproved_news.txt"; $comm_file = "data/comments.txt"; } else{ $news_file = "./data/archives/$source.news.arch"; $comm_file = "./data/archives/$source.comments.arch"; } $deleted_articles = 0; // Delete News $old_db = file("$news_file"); $new_db = fopen("$news_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { $have_perm = 0; if(($member_db[1] == 1) or ($member_db[1] == 2)){$have_perm = 1;} elseif($member_db[1] == 3 and $old_db_arr[1] == $member_db[2]) {$have_perm = 1;} if(!$have_perm){ fwrite($new_db,"$old_db_line"); } else{$deleted_articles ++;} // XFields v2.1 - addblock $xfieldsaction = "delete"; $xfieldsid = $old_db_arr[0]; include("xfields.mdu"); // XFields v2.1 - End addblock } } fclose($new_db); // Delete Comments $old_db = file("$comm_file"); $new_db = fopen("$comm_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { $have_perm = 0; if(($member_db[1] == 1) or ($member_db[1] == 2)){$have_perm = 1;} elseif($member_db[1] == 3 and $old_db_arr[1] == $member_db[2]) {$have_perm = 1;} if(!$have_perm){ fwrite($new_db,"$old_db_line"); } else{ /* Do Nothing => Delete :) */ } } } fclose($new_db); if(count($selected_news) == $deleted_articles){ msg("info", $echo['filesDeletedHeader'], $echo['sayAll']." ($deleted_articles) ".$echo['filesDeleted'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } else{ msg("error", $echo['filesDeletedHeader'].$echo['withError'], "$deleted_articles ".$echo['sayFrom'].count($selected_news).$echo['filesDeletedError'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mass Approve ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "mass_approve"){ if($member_db[1] != 1 and $member_db[1] != 2){ msg("error", $echo['error'], $echo['errorAction'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } $news_file = "./data/unapproved_news.txt"; $approved_articles = 0; $old_db = file("$news_file"); $new_db = fopen("$news_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { //Move the article to Active News $all_active_db = file("$cutepath/data/news.txt"); $active_news_file = fopen("$cutepath/data/news.txt", "w"); @flock ($active_news_file,2); fwrite($active_news_file,"$old_db_line"); foreach ($all_active_db as $active_line){ fwrite($active_news_file, "$active_line");} @flock ($active_news_file,3); fclose($active_news_file); $approved_articles++; } } fclose($new_db); if(count($selected_news) == $approved_articles){ msg("info", $echo['newsApprovedHeader'], $echo['sayAll']." ($approved_articles) ".$echo['newsApproved'], "$PHP_SELF?mod=editnews&action=list"); } else{ msg("error", $echo['newsApprovedHeader'].$echo['withError'], "$approved_articles ".$echo['sayFrom'].count($selected_news).$echo['newsApproved'], "$PHP_SELF?mod=editnews&action=list"); } exit; } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mass Move to Cat ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "mass_move_to_cat"){ if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } $orig_cat_lines = file("./data/category.db.php"); //only show allowed categories $allowed_cats = array(); $cat_lines = array(); foreach($orig_cat_lines as $single_line){ $ocat_arr = explode("|", $single_line); $cat[$ocat_arr[0]] = $ocat_arr[1]; if($member_db[1] <= $ocat_arr[3] or ($ocat_arr[3] == '0' || $ocat_arr[3] == '')){ $cat_lines[] = $single_line; $allowed_cats[] = $ocat_arr[0]; } } echoheader("options", $echo['moveToCatHeader']); echo "
".$echo['sayMove']." (".count($selected_news).") ".$echo['choosedToCat'].":"; echo' '; foreach($cat_lines as $single_line){ $cat_arr = explode("|", $single_line); echo" "; $i++; if ($i%4 == 0){ echo''; } } echo"
 

"; foreach($selected_news as $newsid){ echo ""; } echo"  
"; echofooter(); exit; } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DO Mass Move to One Category ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "do_mass_move_to_cat"){ if($member_db[1] != 1){ msg("error", $echo['error'], $echo['errorAction'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } ///// ///Format our categories variable ///// $orig_cat_lines = file("./data/category.db.php"); //only show allowed categories $allowed_cats = array(); $cat_lines = array(); foreach($orig_cat_lines as $single_line){ $ocat_arr = explode("|", $single_line); $cat[$ocat_arr[0]] = $ocat_arr[1]; if($member_db[1] <= $ocat_arr[3] or ($ocat_arr[3] == '0' || $ocat_arr[3] == '')){ $cat_lines[] = $single_line; $allowed_cats[] = $ocat_arr[0]; } } if( is_array($category) ){ //User has selected multiple categories $nice_category = ''; $ccount = 0; foreach($category as $ckey=>$cvalue){ if($ccount==0){ $nice_category = $cvalue; }//first cat else{ $nice_category = $nice_category.','.$cvalue; } $ccount++; } }else{ //Single or Not category //don't format $nice_cats because we have not selected any. $nice_category = $category; } if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source == ""){ $news_file = "./data/news.txt";} elseif($source == "postponed"){ $news_file = "data/postponed_news.txt"; } elseif($source == "unapproved"){ $news_file = "data/unapproved_news.txt"; } else{ $news_file = "./data/archives/$source.news.arch"; } $moved_articles = 0; $old_db = file("$news_file"); $new_db = fopen("$news_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { $have_perm = 0; if(($member_db[1] == 1) or ($member_db[1] == 2)){$have_perm = 1;} elseif($member_db[1] == 3 and $old_db_arr[1] == $member_db[2]) {$have_perm = 1;} if(!$have_perm){ fwrite($new_db,"$old_db_line"); } else{ fwrite($new_db,"$old_db_arr[0]|$old_db_arr[1]|$old_db_arr[2]|$old_db_arr[3]|$old_db_arr[4]|$old_db_arr[5]|$nice_category|||\n"); $moved_articles ++; } } } fclose($new_db); if(count($selected_news) == $moved_articles){ msg("info", $echo['newsMovedHeader'], $echo['sayAll']." ($moved_articles) ".$echo['choosedToCatDone'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } else{ msg("error", $echo['newsMovedHeader'].$echo['withError'], "$moved_articles z ".count($selected_news).$echo['choosedToCatDone'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mass Archive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "mass_archive"){ if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source != ""){ msg("error", $echo['error'], $echo['allreadyInArchive'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } echoheader("options", $echo['movingToArchive']); echo "
".$echo['moveQuestion1']." (".count($selected_news).") ".$echo['moveQuestion2']."

  "; foreach($selected_news as $newsid){ echo"\n"; } echo"
"; echofooter(); exit; } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DO Mass Send To Archive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "do_mass_archive"){ if($member_db[1] != 1){ msg("error", $echo['noAccess'], $echo['errorAction']); } if(!$selected_news){ msg("error", $echo['error'], $echo['noActionChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if(!is_writable("./data/archives/")){ msg("error", $echo['error'], $echo['cannotWriteToFolder']." ./data/archives/. ".$echo['changeCHMOD']); } $news_file = "./data/news.txt"; $comm_file = "./data/comments.txt"; $prepeared_for_archive = array(); $prepeared_comments_for_archive = array(); $archived_news = 0; // Prepear the news for Archiving $old_db = file("$news_file"); $new_db = fopen("$news_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { $have_perm = 0; if( ($member_db[1] == 1) or ($member_db[1] == 2) ){ $have_perm = 1; } elseif( ($member_db[1] == 3) and ($old_db_arr[1] == $member_db[2]) ){ $have_perm = 1; } if( !$have_perm ){ fwrite($new_db,"$old_db_line"); } else{ $prepeared_news_for_archive[] = $old_db_line; $archived_news++; } } } fclose($new_db); if($archived_news == 0){ msg("error", $echo['error'], $echo['newsNotFound']); } // Prepear the comments for Archiving $old_db = file("$comm_file"); $new_db = fopen("$comm_file", w); foreach($old_db as $old_db_line){ $old_db_arr = explode("|", $old_db_line); if(@!in_array($old_db_arr[0], $selected_news)){ fwrite($new_db,"$old_db_line"); } else { $have_perm = 0; if(($member_db[1] == 1) or ($member_db[1] == 2)){$have_perm = 1;} elseif($member_db[1] == 3 and $old_db_arr[1] == $member_db[2]) {$have_perm = 1;} if(!$have_perm){ fwrite($new_db,"$old_db_line"); } else{ $prepeared_comments_for_archive[] = $old_db_line; } } } fclose($new_db); // Start Archiving $arch_name = time()+($config_date_adjust*60); $arch_news = fopen("./data/archives/$arch_name.news.arch", w); foreach($prepeared_news_for_archive as $item){ fwrite($arch_news, "$item"); } fclose($arch_news); $arch_comm = fopen("./data/archives/$arch_name.comments.arch", w); foreach($prepeared_comments_for_archive as $item){ fwrite($arch_comm, "$item"); } fclose($arch_comm); msg("info", $echo['newsArchivedHeader'], $echo['sayAll']." ($archived_news) ".$echo['newsArchived']." ./data/archives/$arch_name.news.arch", "$PHP_SELF?mod=editnews&action=list&source=$source"); } /* ~~~~~~~~~~~~~~~~~~ Mass UN-Archive ~~~~~~~~~~~~~~~~~~~ */ elseif($action == "mass_unarchive"){ if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source == ""){ msg("error", $echo['error'], $echo['isNotArchive'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } echoheader("options", $echo['fromArchiveHeader']); echo "
".$echo['unmoveQuestion1']." (".count($selected_news).") ".$echo['unmoveQuestion2']."

  "; foreach($selected_news as $null => $newsid){ echo"\n"; } echo"
"; echofooter(); exit; } /* ~~~~~~~~~~~~~~~~~~~~~~ DO Mass UN-Archive ~~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "do_mass_unarchive"){ if(!$selected_news){ msg("error", '.$echo["error"].', $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source == ""){ msg("error", $echo['error'], $echo['isNotArchive'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } $moved_articles = 0; // build news $arch_file = "./data/archives/$source.news.arch"; $news_file = "./data/news.txt"; $write_news = ""; $write_arch = ""; $old_arch = file("$arch_file"); foreach($old_arch as $null => $old_arch_line){ $old_arch_arr = explode("|", $old_arch_line); if(in_array($old_arch_arr[0], $selected_news)){ $write_news = str_replace("\n", "", $old_arch_line)."\n".$write_news; $write_arch = $write_arch; $moved_articles ++; } else { $write_news = $write_news; $write_arch = str_replace("\n", "", $old_arch_line)."\n".$write_arch; } } $old_news = file("$news_file"); foreach($old_news as $null => $old_news_line){ $write_news = str_replace("\n", "", $old_news_line)."\n".$write_news; } // write news $news_db = fopen("$news_file", "wb"); $news_sorted = explode("\n", $write_news); rsort($news_sorted); reset($news_sorted); foreach ($news_sorted as $null => $line){ fwrite($news_db, "$line"); if ($line != "") { fwrite($news_db, "\n"); } } fclose($news_db); $arch_db = fopen("$arch_file", "wb"); $arch_sorted = explode("\n", $write_arch); rsort($arch_sorted); reset($arch_sorted); foreach ($arch_sorted as $null => $line){ fwrite($arch_db, "$line"); if ($line != "") { fwrite($arch_db, "\n"); } } fclose($arch_db); // build comments $arch_file = "./data/archives/$source.comments.arch"; $news_file = "./data/comments.txt"; $write_news = ""; $write_arch = ""; $old_arch = file("$arch_file"); foreach($old_arch as $null => $old_arch_line){ $old_arch_arr = explode("|>|", $old_arch_line); if(in_array($old_arch_arr[0], $selected_news)){ $write_news = str_replace("\n", "", $old_arch_line)."\n".$write_news; $write_arch = $write_arch; } else { $write_news = $write_news; $write_arch = str_replace("\n", "", $old_arch_line)."\n".$write_arch; } } $old_news = file("$news_file"); foreach($old_news as $null => $old_news_line){ $write_news = str_replace("\n", "", $old_news_line)."\n".$write_news; } // write comments $news_db = fopen("$news_file", "wb"); $news_sorted = explode("\n", $write_news); rsort($news_sorted); reset($news_sorted); foreach ($news_sorted as $null => $line){ fwrite($news_db, "$line"); if ($line != "") { fwrite($news_db, "\n"); } } fclose($news_db); $arch_db = fopen("$arch_file", "wb"); $arch_sorted = explode("\n", $write_arch); rsort($arch_sorted); reset($arch_sorted); foreach ($arch_sorted as $null => $line){ fwrite($arch_db, "$line"); if ($line != "") { fwrite($arch_db, "\n"); } } fclose($arch_db); //delete the archive when empty $arch_file = "./data/archives/$source.news.arch"; $arch_db_new = file("$arch_file"); if (!$arch_db_new[0]) { if(!$handle = opendir("./data/archives")){ die("
".$echo['cannotOpenFolder']."$cutepath/data/archive "); } while (false !== ($file = readdir($handle))){ if($file == "$source.news.arch" or $file == "$source.comments.arch"){ unlink("./data/archives/$file"); } } closedir($handle); } if(count($selected_news) == $moved_articles){ msg("info", $echo['newsUunarchivedHeader'], $echo['sayAll']." (".$moved_articles.")".$echo['newsUnarchived'], "$PHP_SELF?mod=editnews&action=list"); } else{ msg("error", $echo['newsUunarchivedHeaderError'], "".$moved_articles."".$echo['sayFrom']."".count($selected_news)."".$echo['newsUnarchived'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } } /* ~~~~~~~~~~~~~~~~~~ Mass Newsletter ~~~~~~~~~~~~~~~~~~~~*/ elseif($action == "mass_newsletter"){ if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } echoheader("options", $echo['makeNewsletter']); echo"
".$echo['nlQuestion1']." ".count($selected_news)." ".$echo['nlQuestion2']."

  "; foreach($selected_news as $newsid){ echo "\n"; } echo "
"; echofooter(); exit; } /* ~~~~~~~~~~~~~~~~~~~~ Do Mass Newsletter ~~~~~~~~~~~~~~~~~~~~~~ */ elseif($action == "do_mass_newsletter"){ if(file_exists("./data/tpl/Newsletter.tpl")){ require_once("./data/tpl/Newsletter.tpl"); } $newsletter_file = "./data/newsletter.txt"; $email_file = "./data/emails.txt"; if(!$selected_news){ msg("error", $echo['error'], $echo['notChoosed'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } if($source == ""){ $news_file = "data/news.txt";} else{ $news_file = "./data/archives/$source.news.arch";} $all_news = file("$news_file"); $i = 0; foreach($all_news as $news_line){ $news_arr = explode("|", $news_line); if(in_array($news_arr[0], $selected_news)) { $i++; $toc .= $template_full; $toc = str_replace("{nl-title}", $news_arr[2], $toc); $toc = str_replace("{nl-archive-id}", $source, $toc); $toc = str_replace("{nl-news-id}", $news_arr[0], $toc); $toc = str_replace("{nl-cat-id}", $news_arr[6], $toc); $toc = str_replace("{nl-num}", $i, $toc); $toc = str_replace("{nl-short-story}", replace_news("show", $news_arr[3]), $toc); $toc = str_replace("{nl-full-story}", replace_news("show", $news_arr[4]), $toc); $body .= $template_comment; $body = str_replace("{nl-title}", $news_arr[2], $body); $body = str_replace("{nl-archive-id}", $source, $body); $body = str_replace("{nl-news-id}", $news_arr[0], $body); $body = str_replace("{nl-cat-id}", $news_arr[6], $body); $body = str_replace("{nl-num}", $i, $body); $body = str_replace("{nl-short-story}", replace_news("show", $news_arr[3]), $body); $body = str_replace("{nl-full-story}", replace_news("show", $news_arr[4]), $body); } } $header = $template_active; $header = str_replace("{nl-count}", $i, $header); $footer = $template_form; $footer = str_replace("{nl-count}", $i, $footer); $newsletter = $header.$toc.'

'.$body.$footer; $myfile = fopen($newsletter_file,"w"); fputs($myfile,$newsletter); fclose($myfile); echoheader("options", $echo['doneNewsletterHeader']); echo "".$echo['chooseNews']."  |  ".$echo['sendNewsletter']."  |  ".$echo['mailBase']."

"; echo $echo['sizeNewsletter']." [".formatsize(filesize($newsletter_file))."] ".$echo['doneNewsletter']."

"; echo "$newsletter"; echofooter(); } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If No Action Is Choosed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ else{ msg("info", $echo['chooseActionHeader'], $echo['chooseAction'], "$PHP_SELF?mod=editnews&action=list&source=$source"); } ?>