예제 #1
0
 /**
  * _setupCategoryManager
  *
  * @param   string  $dataname
  *
  * @return  void
  **/
 protected function _setupCategoryManager($dataname)
 {
     $moduleDirname = isset($this->mObject->mMaintable) ? $this->mObject->mMaintable->getDirname() : $this->mAsset->mDirname;
     $server = Xcck_Utils::getAccessController($moduleDirname);
     if ($server instanceof XoopsModule) {
         $serverDirname = $server->dirname();
     }
     //get server's role
     $handler = xoops_gethandler('module');
     if (!isset($serverDirname) || !($module = $handler->getByDirname($serverDirname))) {
         require_once XCCK_TRUST_PATH . '/class/NoneCategoryManager.class.php';
         $this->mCategoryManager = new Xcck_NoneCategoryManager(null, $moduleDirname, $dataname);
         return;
     }
     $role = $module->get('role');
     switch ($role) {
         case 'cat':
             require_once XCCK_TRUST_PATH . '/class/CatCategoryManager.class.php';
             $this->mCategoryManager = new Xcck_CatCategoryManager($serverDirname, $moduleDirname, $dataname);
             break;
         case 'group':
             require_once XCCK_TRUST_PATH . '/class/GroupCategoryManager.class.php';
             $this->mCategoryManager = new Xcck_GroupCategoryManager($serverDirname, $moduleDirname, $dataname);
             break;
         default:
             require_once XCCK_TRUST_PATH . '/class/NoneCategoryManager.class.php';
             $this->mCategoryManager = new Xcck_NoneCategoryManager($serverDirname, $moduleDirname, $dataname);
             break;
     }
 }
 /**
  * getModuleName
  * 
  * @param	string $dirname	//xcck dirname
  * 
  * @return	string
  **/
 public function getModuleName()
 {
     if ($this->mType === 'cat' || $this->mType === 'group') {
         $accessController = Xcck_Utils::getAccessController($this->_mDirname);
         if ($accessController instanceof XoopsModule) {
             return $accessController->name();
         }
     }
 }
예제 #3
0
function smarty_function_xcck_search_form($params, &$smarty)
{
    define('_XCCK_TAG_INPUT', '<input type="text" name="%s[%d][0]" value="%s" size="%d" />' . "\n");
    define('_XCCK_TAG_HIDDEN', '<input type="hidden" name="%s[%d][1]" value="%s" />' . "\n");
    define('_XCCK_TAG_CHECKBOX', '<input type="checkbox" name="%s" value="1"%s />' . "\n");
    define('_XCCK_TAG_DATE', '<input type="text" name="%s[%d][0]" value="%s" size="%d" maxlength="%d" class="%s" />' . "\n");
    define('_XCCK_TAG_SELECT', '<select name="%s">%s</select>' . "\n");
    define('_XCCK_TAG_OPTION', '<option value="%s"%s>%s</option>' . "\n");
    $html = null;
    //parameters
    $def = $params['def'];
    if (!isset($params['condition'])) {
        $condition = Xcck_Cond::EQ;
    } elseif ($params['condition'] === '*') {
        $condition = $params['condition'];
    } else {
        $condition = Xcck_Cond::getValue($params['condition']);
    }
    $default = isset($params['default']) ? $params['default'] : null;
    $num = isset($params['num']) ? intval($params['num']) : 0;
    $option = isset($params['option']) ? $params['option'] : null;
    //main
    switch ($def->get('field_type')) {
        case Xcck_FieldType::STRING:
        case Xcck_FieldType::TEXT:
        case Xcck_FieldType::URI:
            $html .= sprintf(_XCCK_TAG_INPUT, $def->get('field_name'), $num, $default, 20);
            if ($condition == '*') {
                $html .= Xcck_Utils::makeCondSelector($def, $num, array(Xcck_Cond::EQ, Xcck_Cond::NE, Xcck_Cond::LIKE));
            } else {
                $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            }
            break;
        case Xcck_FieldType::INT:
        case Xcck_FieldType::FLOAT:
            $html .= sprintf(_XCCK_TAG_INPUT, $def->get('field_name'), $num, $default, 5);
            if ($condition == '*') {
                $html .= Xcck_Utils::makeCondSelector($def, $num, array(Xcck_Cond::EQ, Xcck_Cond::NE, Xcck_Cond::LT, Xcck_Cond::LE, Xcck_Cond::GT, Xcck_Cond::GE));
            } else {
                $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            }
            break;
        case Xcck_FieldType::DATE:
            if ($option === 'yyyy') {
                //input year
                $html .= sprintf(_XCCK_TAG_DATE, $def->get('field_name'), $num, $default, 10, 4, 'year');
            } elseif ($option === 'yyyymm') {
                //input year-month
                $html .= sprintf(_XCCK_TAG_DATE, $def->get('field_name'), $num, $default, 10, 7, 'year');
            } elseif ($option === 'yyyymmdd') {
                //input year-month-day
                $html .= sprintf(_XCCK_TAG_DATE, $def->get('field_name'), $num, $default, 10, 10, 'datepicker');
            } elseif (isset($option['yyyy']) || $option['yyyymm']) {
                //select year
                $optionHtml = null;
                $options = isset($option['yyyy']) ? $option['yyyy'] : $option['yyyymm'];
                $selected = null;
                foreach (array_keys($options) as $k) {
                    //$k is value
                    $selected = $k == $default ? ' selected="selected"' : null;
                    $optionHtml .= sprintf(_XCCK_TAG_OPTION, $k, $selected, $option[$k]);
                }
                $html = sprintf(_XCCK_TAG_SELECT, $def->get('field_name'), $optionHtml);
                $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            }
            if ($condition == '*') {
                $html .= Xcck_Utils::makeCondSelector($def, $num, array(Xcck_Cond::EQ, Xcck_Cond::LIKE, Xcck_Cond::LE, Xcck_Cond::GE));
            } else {
                $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            }
            break;
        case Xcck_FieldType::CHECKBOX:
            $checked = isset($default) ? ' checked="checked"' : null;
            $html = sprintf(_XCCK_TAG_CHECKBOX, $def->get('field_name'), $checked);
            break;
        case Xcck_FieldType::SELECTBOX:
            $optionHtml = null;
            $options = $def->getOptions();
            foreach ($options as $opt) {
                $selected = $opt == $default ? ' selected="selected"' : null;
                $optionHtml .= sprintf(_XCCK_TAG_OPTION, $opt, $selected, $opt);
            }
            $html = sprintf(_XCCK_TAG_SELECT, $def->get('field_name'), $optionHtml);
            $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            break;
        case Xcck_FieldType::CATEGORY:
            $tree = null;
            $category = Xcck_Utils::getAccessController($def->getDirname());
            XCube_DelegateUtils::call('Legacy_Category.' . $category->dirname() . '.GetTree', new XCube_Ref($tree));
            require_once "function.legacy_category_select.php";
            $params = array('tree' => $tree);
            $html .= smarty_function_legacy_category_select($params, null);
            $html .= sprintf(_XCCK_TAG_HIDDEN, $def->get('field_name'), $num, $condition);
            break;
    }
    print $html;
}
예제 #4
0
 /**
  * execute
  * 
  * @param   void
  * 
  * @return  void
  * 
  * @public
  **/
 function execute()
 {
     $root =& XCube_Root::getSingleton();
     $render =& $this->getRenderTarget();
     $render->setTemplateName($this->_mBlock->get('template'));
     $render->setAttribute('block', $this->_mObject);
     $render->setAttribute('bid', $this->_mBlock->get('bid'));
     $render->setAttribute('dirname', $this->_mBlock->get('dirname'));
     $renderSystem =& $root->getRenderSystem($this->getRenderSystemName());
     $list = array();
     $category = Xcck_Utils::getAccessController($this->_mBlock->get('dirname'));
     if ($category) {
         XCube_DelegateUtils::call('Legacy_Category.' . $category->get('dirname') . '.GetTitleList', new XCube_Ref($list), $category->get('dirname'));
     }
     $render->setAttribute('catTitleList', $list);
     $renderSystem->renderBlock($render);
 }
예제 #5
0
 /**
  * _setupObject
  * 
  * @param   void
  * 
  * @return  bool
  * 
  * @private
  **/
 protected function _setupObject()
 {
     $objects = array();
     $accessController = Xcck_Utils::getAccessController($this->_mBlock->get('dirname'));
     if (!$accessController instanceof XoopsModule) {
         return false;
     }
     $this->_mHandler = Legacy_Utils::getModuleHandler('page', $this->_mBlock->get('dirname'));
     XCube_DelegateUtils::call('Legacy_Category.' . $accessController->get('dirname') . '.GetTree', new XCube_Ref($this->_mObject), $accessController->get('dirname'), 'view', $this->getBlockOption('catId'));
     foreach (array_keys($this->_mObject) as $key) {
         $this->_mCount[$key] = $this->_mHandler->countPageByCategory($this->_mObject[$key]->get('cat_id'));
     }
     return true;
 }
예제 #6
0
 public static function getBreadcrumbs($breadcrumbs, $dirname, $page = null)
 {
     $categoryDirname = null;
     //module name set
     $modHandler = xoops_gethandler('module');
     $module = $modHandler->getByDirname($dirname);
     $breadcrumbs[] = array('name' => $module->getVar('name'), 'url' => Legacy_Utils::renderUri($dirname));
     //catetgory name set
     if ($page instanceof Xcck_PageObject) {
         if ($page->get('category_id') > 0) {
             $accessController = Xcck_Utils::getAccessController($dirname);
             if ($accessController instanceof XoopsModule) {
                 $categoryDirname = $accessController->getVar('dirname');
             }
             switch ($accessController->getInfo('role')) {
                 case 'cat':
                     $catArr = array();
                     XCube_DelegateUtils::call('Legacy_Category.' . $categoryDirname . '.GetCatPath', new XCube_Ref($catArr), $categoryDirname, $page->get('category_id'), 'ASC');
                     foreach (array_keys($catArr['title']) as $key) {
                         $breadcrumbs[] = array('name' => $catArr['title'][$key], 'url' => Legacy_Utils::renderUri($dirname, 'page', 0, null, 'category_id=' . $catArr['cat_id'][$key]));
                     }
                     break;
                 case 'group':
                     $groupName = null;
                     XCube_DelegateUtils::call('Legacy_Category.' . $categoryDirname . '.GetTitle', new XCube_Ref($groupName), $categoryDirname, $page->get('category_id'));
                     $breadcrumbs[] = array('name' => $groupName, 'url' => Legacy_Utils::renderUri($dirname, 'page', 0, null, 'category_id=' . $page->get('category_id')));
                     break;
                 default:
             }
         }
         //parent page set
         $pageIdArr = array_reverse($page->mPath['page_id']);
         $titleArr = array_reverse($page->mPath['title']);
         foreach (array_keys($pageIdArr) as $key) {
             $breadcrumbs[] = array('name' => $titleArr[$key], 'url' => Legacy_Utils::renderUri($dirname, null, $pageIdArr[$key]));
         }
     }
 }