function delTopic() { global $xoopsDB, $xoopsModule; if (!isset($_POST['ok'])) { xoops_cp_header(); echo '<h4>' . _AM_NW_CONFIG . '</h4>'; $xt = new XoopsTopic( $xoopsDB->prefix('nw_topics'), intval($_GET['topic_id'])); xoops_confirm(array( 'op' => 'delTopic', 'topic_id' => intval($_GET['topic_id']), 'ok' => 1), 'index.php', _AM_NW_WAYSYWTDTTAL . '<br />' . $xt->topic_title('S')); } else { xoops_cp_header(); $xt = new XoopsTopic($xoopsDB->prefix('nw_topics'), intval($_POST['topic_id'])); if(isset($_SESSION['items_count'])) { $_SESSION['items_count'] = -1; } // get all subtopics under the specified topic $topic_arr = $xt->getAllChildTopics(); array_push( $topic_arr, $xt ); foreach( $topic_arr as $eachtopic ) { // get all stories in each topic $story_arr = nw_NewsStory :: getByTopic( $eachtopic -> topic_id() ); foreach( $story_arr as $eachstory ) { if (false != $eachstory->delete()) { xoops_comment_delete( $xoopsModule -> getVar( 'mid' ), $eachstory -> storyid() ); xoops_notification_deletebyitem($xoopsModule->getVar('mid'), 'story', $eachstory->storyid()); } } // all stories for each topic is deleted, now delete the topic data $eachtopic -> delete(); // Delete also the notifications and permissions xoops_notification_deletebyitem( $xoopsModule -> getVar( 'mid' ), 'category', $eachtopic -> topic_id ); xoops_groupperm_deletebymoditem($xoopsModule->getVar('mid'), 'nw_approve', $eachtopic -> topic_id); xoops_groupperm_deletebymoditem($xoopsModule->getVar('mid'), 'nw_submit', $eachtopic -> topic_id); xoops_groupperm_deletebymoditem($xoopsModule->getVar('mid'), 'nw_view', $eachtopic -> topic_id); } nw_updateCache(); redirect_header( 'index.php?op=topicsmanager', 1, _AM_NW_DBUPDATED ); exit(); } }