// // ------------------------------------------------------------------------- // if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ; include_once( '../../../include/cp_header.php' ) ; include_once( 'mygrouppermform.php' ) ; include_once( XOOPS_ROOT_PATH.'/class/xoopsblock.php' ) ; include_once "../include/gtickets.php" ; $xoops_system_path = XOOPS_ROOT_PATH . '/modules/system' ; // language files $language = $xoopsConfig['language'] ; if( ! file_exists( "$xoops_system_path/language/$language/admin/blocksadmin.php") ) $language = 'english' ; // to prevent from notice that constants already defined $error_reporting_level = error_reporting( 0 ) ; include_once( "$xoops_system_path/constants.php" ) ; include_once( "$xoops_system_path/language/$language/admin.php" ) ; include_once( "$xoops_system_path/language/$language/admin/blocksadmin.php" ) ; error_reporting( $error_reporting_level ) ; $group_defs = file( "$xoops_system_path/language/$language/admin/groups.php" ) ; foreach( $group_defs as $def ) { if( strstr( $def , '_AM_ACCESSRIGHTS' ) || strstr( $def , '_AM_ACTIVERIGHTS' ) ) eval( $def ) ; } // check $xoopsModule if( ! is_object( $xoopsModule ) ) redirect_header( XOOPS_URL.'/user.php' , 1 , _NOPERM ) ; // set target_module if specified by $_GET['dirname'] $module_handler =& xoops_gethandler('module'); if( ! empty( $_GET['dirname'] ) ) { $target_module =& $module_handler->getByDirname($_GET['dirname']); }/* else if( ! empty( $_GET['mid'] ) ) { $target_module =& $module_handler->get( intval( $_GET['mid'] ) ); }*/ if( ! empty( $target_module ) && is_object( $target_module ) ) { // specified by dirname $target_mid = $target_module->getVar( 'mid' ) ; $target_mname = $target_module->getVar( 'name' ) . " " . sprintf( "(%2.2f)" , $target_module->getVar('version') / 100.0 ) ; $query4redirect = '?dirname='.urlencode(strip_tags($_GET['dirname'])) ; } else if( isset( $_GET['mid'] ) && $_GET['mid'] == 0 || $xoopsModule->getVar('dirname') == 'blocksadmin' ) { $target_mid = 0 ; $target_mname = '' ; $query4redirect = '?mid=0' ; } else { $target_mid = $xoopsModule->getVar( 'mid' ) ; $target_mname = $xoopsModule->getVar( 'name' ) ; $query4redirect = '' ; } // check access right (needs system_admin of BLOCK) $sysperm_handler =& xoops_gethandler('groupperm'); if (!$sysperm_handler->checkRight('system_admin', XOOPS_SYSTEM_BLOCK, $xoopsUser->getGroups())) redirect_header( XOOPS_URL.'/user.php' , 1 , _NOPERM ) ; // get blocks owned by the module (Imported from xoopsblock.php then modified) $db =& Database::getInstance(); $sql = "SELECT bid,name,show_func,func_file,template FROM ".$db->prefix("newblocks")." WHERE mid='$target_mid'"; $result = $db->query($sql); $block_arr = array(); while( list( $bid , $bname , $show_func , $func_file , $template ) = $db->fetchRow( $result ) ) { $block_arr[$bid] = array( 'name' => $bname , 'show_func' => $show_func , 'func_file' => $func_file , 'template' => $template ) ; } // for 2.2 function list_blockinstances() { global $query4redirect , $block_arr , $xoopsGTicket ; $myts =& MyTextSanitizer::getInstance() ; // cachetime options $cachetimes = array('0' => _NOCACHE, '30' => sprintf(_SECONDS, 30), '60' => _MINUTE, '300' => sprintf(_MINUTES, 5), '1800' => sprintf(_MINUTES, 30), '3600' => _HOUR, '18000' => sprintf(_HOURS, 5), '86400' => _DAY, '259200' => sprintf(_DAYS, 3), '604800' => _WEEK, '2592000' => _MONTH); // displaying TH echo "
\n" ; // get block instances $crit = new Criteria("bid", "(".implode(",",array_keys($block_arr)).")", "IN"); $criteria = new CriteriaCompo($crit); $criteria->setSort('visible DESC, side ASC, weight'); $instance_handler =& xoops_gethandler('blockinstance'); $instances =& $instance_handler->getObjects($criteria, true, true); //Get modules and pages for visible in $module_list[_AM_SYSTEMLEVEL]["0-2"] = _AM_ADMINBLOCK; $module_list[_AM_SYSTEMLEVEL]["0-1"] = _AM_TOPPAGE; $module_list[_AM_SYSTEMLEVEL]["0-0"] = _AM_ALLPAGES; $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $module_handler =& xoops_gethandler('module'); $module_main =& $module_handler->getObjects($criteria, true, true); if (count($module_main) > 0) { foreach (array_keys($module_main) as $mid) { $module_list[$module_main[$mid]->getVar('name')][$mid."-0"] = _AM_ALLMODULEPAGES; $pages = $module_main[$mid]->getInfo("pages"); if ($pages == false) { $pages = $module_main[$mid]->getInfo("sub"); } if (is_array($pages) && $pages != array()) { foreach ($pages as $id => $pageinfo) { $module_list[$module_main[$mid]->getVar('name')][$mid."-".$id] = $pageinfo['name']; } } } } // blocks displaying loop $class = 'even' ; $block_configs = get_block_configs() ; foreach( array_keys( $instances ) as $i ) { $sseln = $ssel0 = $ssel1 = $ssel2 = $ssel3 = $ssel4 = ""; $scoln = $scol0 = $scol1 = $scol2 = $scol3 = $scol4 = "#FFFFFF"; $weight = $instances[$i]->getVar("weight") ; $title = $instances[$i]->getVar("title") ; $bcachetime = $instances[$i]->getVar("bcachetime") ; $bid = $instances[$i]->getVar("bid") ; $name = $myts->makeTboxData4Edit( $block_arr[$bid]['name'] ) ; $visiblein = $instances[$i]->getVisibleIn(); // visible and side if ( $instances[$i]->getVar("visible") != 1 ) { $sseln = " checked='checked'"; $scoln = "#FF0000"; } else switch( $instances[$i]->getVar("side") ) { default : case XOOPS_SIDEBLOCK_LEFT : $ssel0 = " checked='checked'"; $scol0 = "#00FF00"; break ; case XOOPS_SIDEBLOCK_RIGHT : $ssel1 = " checked='checked'"; $scol1 = "#00FF00"; break ; case XOOPS_CENTERBLOCK_LEFT : $ssel2 = " checked='checked'"; $scol2 = "#00FF00"; break ; case XOOPS_CENTERBLOCK_RIGHT : $ssel4 = " checked='checked'"; $scol4 = "#00FF00"; break ; case XOOPS_CENTERBLOCK_CENTER : $ssel3 = " checked='checked'"; $scol3 = "#00FF00"; break ; } // bcachetime $cachetime_options = '' ; foreach( $cachetimes as $cachetime => $cachetime_name ) { if( $bcachetime == $cachetime ) { $cachetime_options .= "\n" ; } else { $cachetime_options .= "\n" ; } } $module_options = '' ; foreach( $module_list as $mname => $module ) { $module_options .= "\n" ; foreach( $module as $mkey => $mval ) { if( in_array( $mkey , $visiblein ) ) { $module_options .= "\n" ; } else { $module_options .= "\n" ; } } $module_options .= "\n" ; } // delete link if it is cloned block $delete_link = "
"._DELETE."" ; // displaying part echo " \n" ; $class = ( $class == 'even' ) ? 'odd' : 'even' ; } // list block classes for add (not instances) foreach( $block_arr as $bid => $block ) { $description4show = '' ; foreach( $block_configs as $bconf ) { if( $block['show_func'] == $bconf['show_func'] && $block['func_file'] == $bconf['file'] && ( empty( $bconf['template'] ) || $block['template'] == $bconf['template'] ) ) { if( ! empty( $bconf['description'] ) ) $description4show = $myts->makeTboxData4Show( $bconf['description'] ) ; } } echo " \n" ; $class = ( $class == 'even' ) ? 'odd' : 'even' ; } echo "
"._AM_TITLE." "._AM_SIDE." "._AM_WEIGHT." "._AM_VISIBLEIN." "._AM_BCACHETIME." "._AM_ACTION."
$name
-
-


 
"._NONE."
"._EDIT."{$delete_link}
".$myts->makeTboxData4Edit($block['name'])." $description4show
".$xoopsGTicket->getTicketHtml( __LINE__ , 1800 , 'myblocksadmin' )."
\n" ; } // for 2.2 function list_groups2() { global $target_mid , $target_mname , $xoopsDB ; $result = $xoopsDB->query( "SELECT i.instanceid,i.title FROM ".$xoopsDB->prefix("block_instance")." i LEFT JOIN ".$xoopsDB->prefix("newblocks")." b ON i.bid=b.bid WHERE b.mid='$target_mid'" ) ; $item_list = array() ; while( list( $iid , $title ) = $xoopsDB->fetchRow( $result ) ) { $item_list[ $iid ] = $title ; } $form = new MyXoopsGroupPermForm( _MD_AM_ADGS , 1 , 'block_read' , '' ) ; if( $target_mid > 1 ) { $form->addAppendix( 'module_admin' , $target_mid , $target_mname . ' ' . _AM_ACTIVERIGHTS ) ; $form->addAppendix( 'module_read' , $target_mid , $target_mname .' ' . _AM_ACCESSRIGHTS ) ; } foreach( $item_list as $item_id => $item_name) { $form->addItem( $item_id , $item_name ) ; } echo $form->render() ; } if( ! empty( $_POST['submit'] ) ) { if ( ! $xoopsGTicket->check( true , 'myblocksadmin' ) ) { redirect_header(XOOPS_URL.'/',3,$xoopsGTicket->getErrors()); } include( "mygroupperm.php" ) ; redirect_header( XOOPS_URL."/modules/".$xoopsModule->dirname()."/admin/myblocksadmin.php$query4redirect" , 1 , _MD_AM_DBUPDATED ); } xoops_cp_header() ; if( file_exists( './mymenu.php' ) ) include( './mymenu.php' ) ; echo "

$target_mname

\n" ; if( ! empty( $block_arr ) ) { echo "

"._AM_BADMIN."

\n" ; list_blockinstances() ; } list_groups2() ; xoops_cp_footer() ; ?>