function clone_block($bid) { global $xoopsConfig; xoops_cp_header(); $myblock = new XoopsBlock($bid); $db =& Database::getInstance(); $sql = 'SELECT module_id FROM ' . $db->prefix('block_module_link') . ' WHERE block_id=' . intval($bid); $result = $db->query($sql); $modules = array(); while ($row = $db->fetchArray($result)) { $modules[] = intval($row['module_id']); } $is_custom = $myblock->getVar('block_type') == 'C' || $myblock->getVar('block_type') == 'E' ? true : false; $block = array('form_title' => _AM_CLONEBLOCK, 'name' => $myblock->getVar('name'), 'side' => $myblock->getVar('side'), 'weight' => $myblock->getVar('weight'), 'visible' => $myblock->getVar('visible'), 'content' => $myblock->getVar('content', 'N'), 'modules' => $modules, 'is_custom' => $is_custom, 'ctype' => $myblock->getVar('c_type'), 'cachetime' => $myblock->getVar('bcachetime'), 'op' => 'clone_ok', 'bid' => $myblock->getVar('bid'), 'edit_form' => $myblock->getOptions(), 'template' => $myblock->getVar('template'), 'options' => $myblock->getVar('options')); echo '<a href="admin.php?fct=blocksadmin">' . _AM_BADMIN . '</a> <span style="font-weight:bold;">»»</span> ' . _AM_CLONEBLOCK . '<br /><br />'; include XOOPS_ROOT_PATH . '/modules/system/admin/blocksadmin/blockform.php'; $form->display(); xoops_cp_footer(); exit; }
// end of edit_block() GIJ xoops_cp_footer(); exit; } if ($op == 'clone') { xoops_cp_header(); $myblock = new XoopsBlock($bid); $db =& Database::getInstance(); $sql = 'SELECT module_id FROM ' . $db->prefix('block_module_link') . ' WHERE block_id=' . intval($bid); $result = $db->query($sql); $modules = array(); while ($row = $db->fetchArray($result)) { $modules[] = intval($row['module_id']); } $is_custom = $myblock->getVar('block_type') == 'C' || $myblock->getVar('block_type') == 'E' ? true : false; $block = array('form_title' => _AM_CLONEBLOCK, 'name' => $myblock->getVar('name'), 'side' => $myblock->getVar('side'), 'weight' => $myblock->getVar('weight'), 'visible' => $myblock->getVar('visible'), 'content' => $myblock->getVar('content', 'N'), 'title' => $myblock->getVar('title', 'E'), 'modules' => $modules, 'is_custom' => $is_custom, 'ctype' => $myblock->getVar('c_type'), 'cachetime' => $myblock->getVar('bcachetime'), 'op' => 'clone_ok', 'bid' => $myblock->getVar('bid'), 'edit_form' => $myblock->getOptions(), 'template' => $myblock->getVar('template'), 'options' => $myblock->getVar('options'), 'submit_button' => _CLONE); echo '<a href="myblocksadmin.php">' . _AM_BADMIN . '</a> <span style="font-weight:bold;">»»</span> ' . _AM_CLONEBLOCK . '<br /><br />'; include dirname(__FILE__) . '/../admin/myblockform.php'; $form->addElement($xoopsGTicket->getTicketXoopsForm(__LINE__, 1800, 'myblocksadmin')); //GIJ $form->display(); xoops_cp_footer(); exit; } if ($op == 'clone_ok') { // Ticket Check if (!$xoopsGTicket->check(true, 'myblocksadmin')) { redirect_header(XOOPS_URL . '/', 3, $xoopsGTicket->getErrors()); } $block = new XoopsBlock($bid); // block type check
public function test_getOptions() { $instance = new XoopsBlock(); $value = $instance->getOptions(); $this->assertSame(false, $value); $xoops_root_path = \XoopsBaseConfig::get('root-path'); require_once $xoops_root_path . '/modules/page/locale/en_US/en_US.php'; require_once $xoops_root_path . '/modules/page/locale/en_US/locale.php'; $instance->setVar('dirname', 'page'); $instance->setVar('func_file', 'page_blocks.php'); $instance->setVar('edit_func', 'page_blocks_edit'); $instance->setVar('options', 'a|b|c|d|e'); $value = $instance->getOptions(); $this->assertTrue(is_string($value)); $instance->setVar('dirname', 'page'); $instance->setVar('func_file', 'page_blocks.php'); $instance->setVar('edit_func', 'function_not_exists'); $instance->setVar('options', 'a|b|c|d|e'); $value = $instance->getOptions(); $this->assertSame(false, $value); $instance->setVar('dirname', 'page'); $instance->setVar('func_file', 'file_not_found.php'); $instance->setVar('edit_func', 'page_blocks_edit'); $instance->setVar('options', 'a|b|c|d|e'); $value = $instance->getOptions(); $this->assertSame(false, $value); }
/** * getForm - get block edit form * * @param string $mode mode for form, edit or clone * * @return void */ public function getForm($mode = 'edit') { $xoops = Xoops::getInstance(); $xoops->loadLanguage('blocks', 'system'); if ($this->obj->isNew()) { $title = SystemLocale::ADD_BLOCK; $modules = array(-1); $groups = array(FixedGroups::USERS, FixedGroups::ANONYMOUS, FixedGroups::ADMIN); $this->obj->setVar('block_type', 'C'); $this->obj->setVar('visible', 1); $op = 'save'; } else { $title = ''; $modules = array(); // Search modules $blockmodulelink_handler = $xoops->getHandlerBlockmodulelink(); $criteria = new CriteriaCompo(new Criteria('block_id', $this->obj->getVar('bid'))); $blockmodulelink = $blockmodulelink_handler->getObjects($criteria); /* @var $link XoopsBlockmodulelink */ foreach ($blockmodulelink as $link) { $modules[] = $link->getVar('module_id'); } // Search perms $groupperm_handler = $xoops->getHandlerGroupperm(); $groups = $groupperm_handler->getGroupIds('block_read', $this->obj->getVar('bid')); switch ($mode) { case 'edit': $title = SystemLocale::EDIT_BLOCK; break; case 'clone': $title = SystemLocale::CLONE_BLOCK; $this->obj->setVar('bid', 0); if ($this->obj->isCustom()) { $this->obj->setVar('block_type', 'C'); } else { $this->obj->setVar('block_type', 'D'); } break; } $op = 'save'; } parent::__construct($title, 'blockform', 'admin.php', 'post', true); if (!$this->obj->isNew()) { $this->addElement(new Xoops\Form\Label(XoopsLocale::NAME, $this->obj->getVar('name'))); } // Side position $side_select = new Xoops\Form\Select(XoopsLocale::SIDE, 'side', $this->obj->getVar('side')); $side_select->addOptionArray(array(0 => XoopsLocale::LEFT, 1 => XoopsLocale::RIGHT, 3 => SystemLocale::TOP_LEFT, 4 => SystemLocale::TOP_RIGHT, 5 => SystemLocale::TOP_CENTER, 7 => SystemLocale::BOTTOM_LEFT, 8 => SystemLocale::BOTTOM_RIGHT, 9 => SystemLocale::BOTTOM_CENTER)); $this->addElement($side_select); // Order $weight = new Xoops\Form\Text(XoopsLocale::WEIGHT, 'weight', 1, 5, $this->obj->getVar('weight'), ''); $weight->setPattern('^\\d+$', XoopsLocale::E_YOU_NEED_A_POSITIVE_INTEGER); $this->addElement($weight, true); // Display $this->addElement(new Xoops\Form\RadioYesNo(XoopsLocale::VISIBLE, 'visible', $this->obj->getVar('visible'))); // Visible In $mod_select = new Xoops\Form\Select(XoopsLocale::VISIBLE_IN, 'modules', $modules, 5, true); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $module_list = $xoops->getHandlerModule()->getNameList($criteria); $module_list[-1] = XoopsLocale::TOP_PAGE; $module_list[0] = XoopsLocale::ALL_PAGES; ksort($module_list); $mod_select->addOptionArray($module_list); $this->addElement($mod_select); // Title $this->addElement(new Xoops\Form\Text(XoopsLocale::TITLE, 'title', 5, 255, $this->obj->getVar('title')), false); if ($this->obj->isNew() || $this->obj->isCustom()) { $editor_configs = array(); $editor_configs["name"] = "content_block"; $editor_configs["value"] = $this->obj->getVar('content', 'e'); $editor_configs["rows"] = 15; $editor_configs["cols"] = 6; $editor_configs["editor"] = $xoops->getModuleConfig('blocks_editor', 'system'); $this->addElement(new Xoops\Form\Editor(XoopsLocale::CONTENT, "content_block", $editor_configs), true); if (in_array($editor_configs["editor"], array('dhtmltextarea', 'textarea'))) { $ctype_select = new Xoops\Form\Select(SystemLocale::CONTENT_TYPE, 'c_type', $this->obj->getVar('c_type')); $ctype_select->addOptionArray(array('H' => XoopsLocale::HTML, 'P' => SystemLocale::PHP_SCRIPT, 'S' => SystemLocale::AUTO_FORMAT_SMILIES_ENABLED, 'T' => SystemLocale::AUTO_FORMAT_SMILIES_DISABLED)); $this->addElement($ctype_select); } else { $this->addElement(new Xoops\Form\Hidden('c_type', 'H')); } } else { if ($this->obj->getVar('template') != '') { $tplfile_handler = $xoops->getHandlerTplfile(); $btemplate = $tplfile_handler->find($xoops->getConfig('template_set'), 'block', $this->obj->getVar('bid')); if (count($btemplate) > 0) { $this->addElement(new Xoops\Form\Label(XoopsLocale::CONTENT, '<a href="' . \XoopsBaseConfig::get('url') . '/modules/system/admin.php?fct=tplsets&op=edittpl&id=' . $btemplate[0]->getVar('tpl_id') . '">' . SystemLocale::EDIT_TEMPLATE . '</a>')); } else { $btemplate2 = $tplfile_handler->find('default', 'block', $this->obj->getVar('bid')); if (count($btemplate2) > 0) { $this->addElement(new Xoops\Form\Label(XoopsLocale::CONTENT, '<a href="' . \XoopsBaseConfig::get('url') . '/modules/system/admin.php?fct=tplsets&op=edittpl&id=' . $btemplate2[0]->getVar('tpl_id') . '" rel="external">' . SystemLocale::EDIT_TEMPLATE . '</a>')); } } } if ($this->obj->getOptions() != false) { $this->addElement(new Xoops\Form\Label(XoopsLocale::OPTIONS, $this->obj->getOptions())); } else { $this->addElement(new Xoops\Form\Hidden('options', $this->obj->getVar('options'))); } $this->addElement(new Xoops\Form\Hidden('c_type', 'H')); } $cache_select = new Xoops\Form\Select(SystemLocale::CACHE_LIFETIME, 'bcachetime', $this->obj->getVar('bcachetime')); $cache_select->addOptionArray(array('0' => XoopsLocale::NO_CACHE, '30' => sprintf(XoopsLocale::F_SECONDS, 30), '60' => XoopsLocale::ONE_MINUTE, '300' => sprintf(XoopsLocale::F_MINUTES, 5), '1800' => sprintf(XoopsLocale::F_MINUTES, 30), '3600' => XoopsLocale::ONE_HOUR, '18000' => sprintf(XoopsLocale::F_HOURS, 5), '86400' => XoopsLocale::ONE_DAY, '259200' => sprintf(XoopsLocale::F_DAYS, 3), '604800' => XoopsLocale::ONE_WEEK, '2592000' => XoopsLocale::ONE_MONTH)); $this->addElement($cache_select); // Groups $this->addElement(new Xoops\Form\SelectGroup(XoopsLocale::GROUPS, 'groups', true, $groups, 5, true)); $this->addElement(new Xoops\Form\Hidden('block_type', $this->obj->getVar('block_type'))); $this->addElement(new Xoops\Form\Hidden('mid', $this->obj->getVar('mid'))); $this->addElement(new Xoops\Form\Hidden('func_num', $this->obj->getVar('func_num'))); $this->addElement(new Xoops\Form\Hidden('func_file', $this->obj->getVar('func_file'))); $this->addElement(new Xoops\Form\Hidden('show_func', $this->obj->getVar('show_func'))); $this->addElement(new Xoops\Form\Hidden('edit_func', $this->obj->getVar('edit_func'))); $this->addElement(new Xoops\Form\Hidden('template', $this->obj->getVar('template'))); $this->addElement(new Xoops\Form\Hidden('dirname', $this->obj->getVar('dirname'))); $this->addElement(new Xoops\Form\Hidden('name', $this->obj->getVar('name'))); $this->addElement(new Xoops\Form\Hidden('bid', $this->obj->getVar('bid'))); $this->addElement(new Xoops\Form\Hidden('op', $op)); $this->addElement(new Xoops\Form\Hidden('fct', 'blocksadmin')); $button_tray = new Xoops\Form\ElementTray('', ' '); if ($this->obj->isNew() || $this->obj->isCustom()) { $preview = new Xoops\Form\Button('', 'previewblock', XoopsLocale::A_PREVIEW, 'preview'); $preview->setExtra("onclick=\"blocks_preview();\""); $button_tray->addElement($preview); } $button_tray->addElement(new Xoops\Form\Button('', 'submitblock', XoopsLocale::A_SUBMIT, 'submit')); $this->addElement($button_tray); }
function renderCell4BlockOptions($block_data) { $bid = intval($block_data['bid']); $block = new XoopsBlock($bid); return $block->getOptions(); }
function renderCell4BlockOptions($block_data) { $bid = intval($block_data['bid']); //HACK by domifara if (defined('XOOPS_CUBE_LEGACY')) { $handler =& xoops_gethandler('block'); $block =& $handler->create(false); $block->load($bid); } else { $block = new XoopsBlock($bid); } return $block->getOptions(); }