function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // contentObj $cat_data = $this->currentCategoryObj->getData(); $this->contentObj = new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // check existence if ($this->contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $content_data = $this->contentObj->getData(); // permission check (can_delete) if (empty($content_data['can_delete'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_DELETECONTENT); exit; } // delete transaction pico_delete_content($this->mydirname, $request['content_id']); // view $this->is_need_header_footer = false; }
function execute($request) { parent::execute($request); $this->assign['content'] = $this->readWrappedFile($request); // check existence if (empty($this->assign['content'])) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $cat_data = $this->currentCategoryObj->getData(); $this->assign['category'] = $this->currentCategoryObj->getData4html(); // permission check if (empty($this->assign['content']['can_read']) || empty($this->assign['content']['can_readfull'])) { if ($this->uid > 0) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_PERMREADFULL); } else { redirect_header(XOOPS_URL . '/user.php', 2, _MD_PICO_ERR_LOGINTOREADFULL); } exit; } // auto-register if (!empty($this->mod_config['wraps_auto_register']) && @$cat_data['cat_vpath'][0] == '/') { $register_class = empty($this->mod_config['auto_register_class']) ? 'PicoAutoRegisterWraps' : $this->mod_config['auto_register_class']; require_once dirname(__FILE__) . '/' . $register_class . '.class.php'; $register_obj = new $register_class($this->mydirname, $this->mod_config); $affected_rows = $register_obj->registerByCatvpath($cat_data); if ($affected_rows > 0) { // reload if the content is updated header('Location: ' . pico_common_unhtmlspecialchars($this->assign['mod_url']) . '/' . pico_common_unhtmlspecialchars($this->assign['content']['link'])); exit; } } // link for "tell to friends" // (TODO?) if ($this->mod_config['use_taf_module']) { $this->assign['content']['tellafriend_uri'] = XOOPS_URL . '/modules/tellafriend/index.php?target_uri=' . rawurlencode(pico_common_unhtmlspecialchars($this->assign['mod_url'] . '/' . $this->assign['content']['link'])) . '&subject=' . rawurlencode(sprintf(_MD_PICO_FMT_TELLAFRIENDSUBJECT, @$GLOBALS['xoopsConfig']['sitename'])); } else { $this->assign['content']['tellafriend_uri'] = 'mailto:?subject=' . pico_main_escape4mailto(sprintf(_MD_PICO_FMT_TELLAFRIENDSUBJECT, @$GLOBALS['xoopsConfig']['sitename'])) . '&body=' . pico_main_escape4mailto(sprintf(_MD_PICO_FMT_TELLAFRIENDBODY, $this->assign['content']['subject'])) . '%0A' . rawurlencode(pico_common_unhtmlspecialchars($this->assign['mod_url'] . '/' . $this->assign['content']['link'])); } // breadcrumbs $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $breadcrumbsObj->appendPath('', $this->assign['content']['subject']); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = $this->assign['content']['subject']; // views switch ($request['view']) { case 'singlecontent': $this->template_name = 'db:' . $this->mydirname . '_independent_singlecontent.html'; $this->is_need_header_footer = false; break; case 'print': $this->template_name = 'db:' . $this->mydirname . '_independent_print.html'; $this->is_need_header_footer = false; break; default: $this->template_name = $this->mydirname . '_main_viewcontent.html'; $this->is_need_header_footer = true; break; } }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // $categoryObj (not parent) $picoPermission =& PicoPermission::getInstance(); $categoryObj = new PicoCategory($this->mydirname, $request['cat_id'], $picoPermission->getPermissions($this->mydirname)); // check existence if ($categoryObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $cat_data = $categoryObj->getData(); // permission check if (empty($cat_data['isadminormod'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CATEGORYMANAGER); } // cat_id != 0 check if ($cat_data['id'] == 0) { // LANGTD redirect_header(XOOPS_URL . '/', 2, 'top category cannot be deleted'); } // children check if (count($cat_data['redundants']['subcattree_raw']) > 0) { // LANGTD redirect_header(XOOPS_URL . '/', 2, 'child categories exist'); } // delete transaction pico_delete_category($this->mydirname, $request['cat_id']); // view $this->is_need_header_footer = false; }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // initialize $this->cat_id = $request['cat_id']; // $categoryObj (not parent) $picoPermission =& PicoPermission::getInstance(); $categoryObj = new PicoCategory($this->mydirname, $request['cat_id'], $picoPermission->getPermissions($this->mydirname)); // check existence if ($categoryObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $cat_data = $categoryObj->getData(); // permission check if (empty($cat_data['isadminormod'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CATEGORYMANAGER); } // insert a category pico_updatecategory($this->mydirname, $this->cat_id); // view $this->is_need_header_footer = false; }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // contentObj $cat_data = $this->currentCategoryObj->getData(); $this->contentObj = new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // check existence if ($this->contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $content_data = $this->contentObj->getData(); // permission check (isadminormod) if (empty($content_data['isadminormod'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CATEGORYMANAGEMENT); exit; } // copy from waiting eg) body_waiting -> body pico_transact_copyfromwaitingcontent($this->mydirname, $request['content_id']); // view $this->is_need_header_footer = false; }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // initialize $cat_data = $this->currentCategoryObj->getData(); $picoPermission =& PicoPermission::getInstance(); // permission check if (empty($cat_data['can_post'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_MAKECONTENT); } // insert a content $content_id = pico_makecontent($this->mydirname); $content_uri4html = XOOPS_URL . "/modules/{$this->mydirname}/" . pico_common_make_content_link4html($this->mod_config, $content_id, $this->mydirname); // get contentObj $this->contentObj =& new PicoContent($this->mydirname, $content_id, $this->currentCategoryObj); $content_data = $this->contentObj->getData(); // return uri if (!empty($_GET['ret']) && ($ret_uri = pico_main_parse_ret2uri($this->mydirname, $_GET['ret']))) { $ret_uri4html = htmlspecialchars($ret_uri, ENT_QUOTES); } else { $ret_uri4html = $content_uri4html; } // calling a delegate if (class_exists('XCube_DelegateUtils')) { XCube_DelegateUtils::raiseEvent('ModuleClass.Pico.Contentman.InsertSuccess', $this->mydirname, $content_id, $cat_data, $ret_uri4html); } // create extra_tags for notifications $extra_tags = array('CONTENT_URL' => pico_common_unhtmlspecialchars($content_uri4html), 'APPROVAL_URL' => XOOPS_URL . "/modules/{$this->mydirname}/index.php?page=contentmanager&content_id={$content_id}", 'CAT_TITLE' => $cat_data['cat_title'], 'CONTENT_SUBJECT' => $content_data['subject_raw']); // users2notify (can_readfull only) $users2notify = $picoPermission->getUidsFromCatid($this->mydirname, $cat_data['id'], 'can_readfull'); if ($cat_data['post_auto_approved']) { // Notify for new content 'global' pico_main_trigger_event($this->mydirname, 'global', 0, 'newcontent', $extra_tags, $users2notify, 0); // Notify for new content 'category' of all parental categories foreach (array_keys($cat_data['paths_raw']) as $cat_id) { pico_main_trigger_event($this->mydirname, 'category', $cat_id, 'newcontent', $extra_tags, $users2notify, 0); } // message "registered" redirect_header($ret_uri4html, 2, _MD_PICO_MSG_CONTENTMADE); } else { // Notify for new waiting content (only for admin or mod) $users2notify = pico_main_get_moderators($this->mydirname, $cat_data['id']); if (empty($users2notify)) { $users2notify = array(0); } pico_main_trigger_event($this->mydirname, 'global', 0, 'waitingcontent', $extra_tags, $users2notify); // message "waiting approval" redirect_header($ret_uri4html, 2, _MD_PICO_MSG_CONTENTWAITINGREGISTER); } // view $this->is_need_header_footer = false; }
function execute($request) { parent::execute($request); $cat_data = $this->currentCategoryObj->getData(); $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); // get $history_profile from the id $older_profile = pico_get_content_history_profile($this->mydirname, $request['older_history_id']); if (empty($request['newer_history_id'])) { $newer_profile = pico_get_content_history_profile($this->mydirname, 0, intval($older_profile[1])); } else { $newer_profile = pico_get_content_history_profile($this->mydirname, $request['newer_history_id']); } // check each content_ids if ($older_profile[1] != $newer_profile[1]) { die('Differenct content_ids each other'); } $this->contentObj = new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // add breadcrumbs if the content exists if (!$this->contentObj->isError()) { $content_data = $this->contentObj->getData(); $this->assign['content'] = $this->contentObj->getData4html(); $breadcrumbsObj->appendPath(XOOPS_URL . '/modules/' . $this->mydirname . '/' . $this->assign['content']['link'], $this->assign['content']['subject']); $breadcrumbsObj->appendPath(XOOPS_URL . '/modules/' . $this->mydirname . '/index.php?page=contentmanager&content_id=' . $content_data['id'], _MD_PICO_CONTENTMANAGER); } // permission check by 'can_edit' if (empty($cat_data['can_edit'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_EDITCONTENT); exit; } // get diff $diff_from_file4disp = ''; $original_error_level = error_reporting(); error_reporting($original_error_level & ~E_NOTICE & ~E_WARNING); $diff = new Text_Diff(explode("\n", $older_profile[2]), explode("\n", $newer_profile[2])); //$renderer = new Text_Diff_Renderer_unified(); //$diff_str = htmlspecialchars( $renderer->render( $diff ) , ENT_QUOTES ) ; $renderer = new Text_Diff_Renderer_inline(); $this->assign['diff_str'] = $renderer->render($diff); error_reporting($original_error_level); // breadcrumbs $breadcrumbsObj->appendPath('', 'DIFF'); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = _MD_PICO_HISTORY; // view $this->view = $request['view']; switch ($this->view) { case 'diffhistories': $this->template_name = $this->mydirname . '_main_diffhistories.html'; $this->is_need_header_footer = true; break; default: $this->is_need_header_footer = false; break; } }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // contentObj $cat_data = $this->currentCategoryObj->getData(); $this->contentObj =& new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // check existence if ($this->contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $content_data = $this->contentObj->getData(); // permission check if (empty($content_data['can_edit'])) { if ($content_data['locked']) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_LOCKEDCONTENT); exit; } else { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_EDITCONTENT); exit; } } // update the content pico_updatecontent($this->mydirname, $request['content_id'], $cat_data['post_auto_approved'], $cat_data['isadminormod']); $content_uri4html = XOOPS_URL . "/modules/{$this->mydirname}/" . pico_common_make_content_link4html($this->mod_config, $request['content_id'], $this->mydirname); // return uri if (!empty($_GET['ret']) && ($ret_uri = pico_main_parse_ret2uri($this->mydirname, $_GET['ret']))) { $ret_uri4html = htmlspecialchars($ret_uri, ENT_QUOTES); } else { $ret_uri4html = $content_uri4html; } // calling a delegate if (class_exists('XCube_DelegateUtils')) { XCube_DelegateUtils::raiseEvent('ModuleClass.Pico.Contentman.UpdateSuccess', $this->mydirname, $request['content_id'], $cat_data, $ret_uri4html); } if ($cat_data['post_auto_approved']) { // message "modified" redirect_header($ret_uri4html, 2, _MD_PICO_MSG_CONTENTUPDATED); } else { // Notify for new waiting content (only for admin or mod) $users2notify = pico_main_get_moderators($this->mydirname, $cat_data['id']); if (empty($users2notify)) { $users2notify = array(0); } pico_main_trigger_event($this->mydirname, 'global', 0, 'waitingcontent', array('CONTENT_URL' => XOOPS_URL . "/modules/{$this->mydirname}/index.php?page=contentmanager&content_id=" . $request['content_id']), $users2notify); // message "waiting approval" redirect_header($ret_uri4html, 2, _MD_PICO_MSG_CONTENTWAITINGUPDATE); } // view $this->is_need_header_footer = false; }
function execute($request) { parent::execute($request); $categoryHandler = new PicoCategoryHandler($this->mydirname, $this->permissions); $categories = $categoryHandler->getAllCategories(); // auto-register foreach ($categories as $categoryObj) { $mod_config = $categoryObj->getOverriddenModConfig(); $register_class = empty($mod_config['auto_register_class']) ? 'PicoAutoRegisterWraps' : $mod_config['auto_register_class']; require_once dirname(__FILE__) . '/' . $register_class . '.class.php'; if (!empty($mod_config['wraps_auto_register'])) { $register_obj = new $register_class($this->mydirname, $mod_config); $register_obj->registerByCatvpath($categoryObj->getData()); } } $categories4assign = array(); foreach ($categories as $cat_id => $categoryObj) { // assign categories $categories4assign[$cat_id] = $categoryObj->getData4html(); // contents loop $contentObjs = $categoryObj->getContents(true); $private_contents_counter = 0; foreach ($contentObjs as $contentObj) { $content_data = $contentObj->getData(); if (!$content_data['public']) { $private_contents_counter++; } else { if ($content_data['show_in_menu'] && $content_data['can_read']) { $categories4assign[$cat_id]['contents'][] = $contentObj->getData4html(); } } } $categories4assign[$cat_id]['private_contents_counter'] = $private_contents_counter; } $this->assign['categories'] = $categories4assign; // breadcrumbs and pagetitle $lastnode4assign = @$_GET['page'] == 'menu' ? _MD_PICO_MENU : $GLOBALS['xoopsModule']->getVar('name'); $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $breadcrumbsObj->appendPath('', $lastnode4assign); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = $lastnode4assign; // views (no views other than 'menu') $this->template_name = $this->mydirname . '_main_menu.html'; $this->is_need_header_footer = true; }
function execute($request) { // Ticket Check if (!$GLOBALS['xoopsGTicket']->check(true, 'pico')) { redirect_header(XOOPS_URL . '/', 3, $GLOBALS['xoopsGTicket']->getErrors()); } parent::execute($request); // initialize $pcat_data = $this->currentCategoryObj->getData(); // permission check if (empty($pcat_data['can_makesubcategory'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_MAKECATEGORY); } // insert a category $this->new_cat_id = pico_makecategory($this->mydirname); // view $this->is_need_header_footer = false; }
function execute($request) { parent::execute($request); // check existence if ($this->currentCategoryObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCATEGORY); exit; } $cat_data = $this->currentCategoryObj->getData(); $this->assign['category'] = $this->currentCategoryObj->getData4html(); // permission check if (!$cat_data['can_read']) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCATEGORY); exit; } // auto-register if (!empty($this->mod_config['wraps_auto_register']) && @$cat_data['cat_vpath'][0] == '/') { $register_class = empty($this->mod_config['auto_register_class']) ? 'PicoAutoRegisterWraps' : $this->mod_config['auto_register_class']; require_once dirname(__FILE__) . '/' . $register_class . '.class.php'; $register_obj = new $register_class($this->mydirname, $this->mod_config); $register_obj->registerByCatvpath($cat_data); } // contents $this->assign['contents'] = array(); $contentObjs = $this->currentCategoryObj->getContents(); foreach ($contentObjs as $contentObj) { $this->assign['contents'][] = $contentObj->getData4html(); } // subcategories $categoryHandler = new PicoCategoryHandler($this->mydirname, $this->permissions); $subcategoryObjs = $categoryHandler->getSubCategories($request['cat_id']); foreach ($subcategoryObjs as $subcategoryObj) { $this->assign['subcategories'][] = $subcategoryObj->getData4html(); } $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = $this->assign['category']['title']; // views (no views other than 'listcontents') $this->template_name = $this->mydirname . '_main_listcontents.html'; $this->is_need_header_footer = true; }
function execute($request) { parent::execute($request); $cat_data = $this->currentCategoryObj->getData(); $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $this->contentObj =& new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // add breadcrumbs if the content exists if (!$this->contentObj->isError()) { $content_data = $this->contentObj->getData(); $this->assign['content'] = $this->contentObj->getData4html(); $breadcrumbsObj->appendPath(XOOPS_URL . '/modules/' . $this->mydirname . '/' . $this->assign['content']['link'], $this->assign['content']['subject']); $breadcrumbsObj->appendPath(XOOPS_URL . '/modules/' . $this->mydirname . '/index.php?page=contentmanager&content_id=' . $content_data['id'], _MD_PICO_CONTENTMANAGER); } // permission check by 'can_edit' if (empty($cat_data['can_edit'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_EDITCONTENT); exit; } // get $history_profile from the id $this->assign['content_history_id'] = $request['content_history_id']; list(, , $history_body) = pico_get_content_history_profile($this->mydirname, $request['content_history_id']); $this->assign['history_body_raw'] = $history_body; // breadcrumbs $breadcrumbsObj->appendPath('', _MD_PICO_HISTORY); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = _MD_PICO_HISTORY; // view $this->view = $request['view']; switch ($this->view) { case 'viewhistory': $this->template_name = $this->mydirname . '_main_viewhistory.html'; $this->is_need_header_footer = true; break; case 'download': default: $this->is_need_header_footer = false; break; } }
function execute($request) { parent::execute($request); $this->contentObj = new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // check existence if ($this->contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $content_data = $this->contentObj->getData(); // permission check if (empty($content_data['can_read'])) { if ($this->uid > 0) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_PERMREADFULL); } else { redirect_header(XOOPS_URL . '/user.php', 2, _MD_PICO_ERR_LOGINTOREADFULL); } exit; } // check if "use_vote" is on if (empty($this->mod_config['use_vote'])) { redirect_header(XOOPS_URL . "/modules/{$mydirname}/" . pico_common_make_content_link4html($this->config, $content4assign), 0, _MD_PICO_MSG_VOTEDISABLED); exit; } // special check for vote_to_post if (!$this->uid && empty($this->mod_config['guest_vote_interval'])) { redirect_header(XOOPS_URL . "/modules/{$mydirname}/" . pico_common_make_content_link4html($this->config, $content4assign), 0, _MD_PICO_ERR_VOTEPERM); exit; } // get POINT and validation $point = intval(@$_GET['point']); if ($point < 0 || $point > 10) { die(_MD_PICO_ERR_VOTEINVALID . __LINE__); } $this->contentObj->vote($this->uid, @$_SERVER['REMOTE_ADDR'], $point); // view $this->is_need_header_footer = false; }
function execute($request) { parent::execute($request); // check existence if ($this->currentCategoryObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCATEGORY); exit; } $cat_data = $this->currentCategoryObj->getData(); $this->assign['category'] = $this->currentCategoryObj->getData4html(); // permission check if (!$cat_data['can_read']) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCATEGORY); exit; } // contents (order by modified_time DESC) $this->assign['contents'] = array(); $contentObjs = $this->currentCategoryObj->getLatestContents(10, true); foreach ($contentObjs as $contentObj) { $content_data = $contentObj->getData(); if ($content_data['can_read']) { $this->assign['contents'][] = array('body4rss' => htmlspecialchars(xoops_substr(strip_tags($content_data['body_cached']), 0, 255), ENT_QUOTES), 'created_time4rss' => date('r', $content_data['created_time']), 'modified_time4rss' => date('r', $content_data['modified_time'])) + $contentObj->getData4html(); } } // views if ($request['view'] == 'rss') { $this->template_name = 'db:' . $this->mydirname . '_independent_rss20.html'; $this->is_need_header_footer = false; if (function_exists('mb_http_output')) { mb_http_output('pass'); } pico_common_utf8_encode_recursive($this->assign); header('Content-Type:text/xml; charset=utf-8'); } else { $this->template_name = $this->mydirname . '_main_latestcontents.html'; $this->is_need_header_footer = true; } }
function execute($request) { parent::execute($request); $whr = '1'; $queries = array(); // query type "tag" if (!empty($request['tag'])) { $queries[] = array('type' => 'tag', 'value' => $request['tag']); // get content_ids $tag_handler = new PicoTagHandler($this->mydirname); $content_ids_sc = $tag_handler->getContentIdsCS($request['tag']); if ($content_ids_sc) { $whr .= " AND (`content_id` IN (" . $content_ids_sc . "))"; } else { $whr .= " AND 0"; } } // content handler $content_handler = new PicoContentHandler($this->mydirname); // contents (order by modified_time DESC) $this->assign['contents'] = array(); $contents4assign = $content_handler->getContents4assign($whr); foreach ($contents4assign as $content4assign) { $this->assign['contents'][] = $content4assign; } // render $queries $query4assign = $this->renderQueries($queries); $this->assign['query'] = $query4assign; // breadcrumbs $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $breadcrumbsObj->appendPath('', $query4assign['title']); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = $query4assign['title']; // views ('list') $this->template_name = $this->mydirname . '_main_querycontents.html'; $this->is_need_header_footer = true; }
function execute($request) { parent::execute($request); // makecategory/categorymanager $page = empty($request['makecategory']) ? 'categorymanager' : 'makecategory'; // $categoryObj (not parent) $picoPermission =& PicoPermission::getInstance(); $categoryObj = new PicoCategory($this->mydirname, $request['cat_id'], $picoPermission->getPermissions($this->mydirname), $page == 'makecategory', $this->currentCategoryObj); // check existence if ($categoryObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } // fetch data from DB $cat_data = $categoryObj->getData(); $this->assign['category_base'] = $categoryObj->getData4html(true); $this->categoryObjs['category_base'] =& $categoryObj; $this->assign['category'] = $categoryObj->getData4edit(); // permission check if ($page == 'makecategory') { $pcat_data = $this->currentCategoryObj->getData(); if (empty($pcat_data['can_makesubcategory'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CREATECATEGORY); } } else { if (empty($cat_data['isadminormod'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CATEGORYMANAGEMENT); } } // category list can be read for category jumpbox etc. $categoryHandler = new PicoCategoryHandler($this->mydirname, $this->permissions); $categories = $categoryHandler->getAllCategories(); $this->assign['categories_can_post'] = array(); foreach ($categories as $tmpObj) { $tmp_data = $tmpObj->getData(); if (empty($tmp_data['can_makesubcategory'])) { continue; } $this->assign['categories_can_makesubcategory'][$tmp_data['id']] = str_repeat('--', $tmp_data['cat_depth_in_tree']) . $tmp_data['cat_title']; } // breadcrumbs $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); if ($page == 'makecategory') { $breadcrumbsObj->appendPath('', _MD_PICO_LINK_MAKECATEGORY); $this->assign['xoops_pagetitle'] = _MD_PICO_LINK_MAKECATEGORY; } else { // $breadcrumbsObj->appendPath( XOOPS_URL.'/modules/'.$this->mydirname.'/'.$this->assign['category']['link'] , $this->assign['category']['title'] ) ; $breadcrumbsObj->appendPath('', _MD_PICO_CATEGORYMANAGER); $this->assign['xoops_pagetitle'] = _MD_PICO_CATEGORYMANAGER; } $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); // misc assigns $this->assign['page'] = $page; $this->assign['formtitle'] = $page == 'makecategory' ? _MD_PICO_LINK_MAKECATEGORY : _MD_PICO_CATEGORYMANAGER; $this->assign['gticket_hidden'] = $GLOBALS['xoopsGTicket']->getTicketHtml(__LINE__, 1800, 'pico'); $this->assign['category']['option_desc'] = $this->getCategoryOptions4edit(); $this->assign['category']['wraps_directories'] = array('' => '---') + pico_main_get_wraps_directories_recursively($this->mydirname, '/'); // views $this->template_name = $this->mydirname . '_main_category_form.html'; $this->is_need_header_footer = true; }
function execute($request) { parent::execute($request); // makecontent/contentmanager $page = empty($request['makecontent']) ? 'contentmanager' : 'makecontent'; // $contentObj $contentObj = new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj, $page == 'makecontent'); // check existence if ($contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } // fetch data from DB $cat_data = $this->currentCategoryObj->getData(); $this->assign['category'] = $this->currentCategoryObj->getData4html(); $content_data = $contentObj->getData(); $this->assign['content_base'] = $contentObj->getData4html(true); $this->contentObjs['content_base'] =& $contentObj; $this->assign['content'] = $contentObj->getData4edit(); // permission check if ($page == 'makecontent') { if (empty($cat_data['can_post'])) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_CREATECONTENT); } } else { if (empty($content_data['can_edit'])) { redirect_header(XOOPS_URL . '/', 2, $content_data['locked'] ? _MD_PICO_ERR_LOCKEDCONTENT : _MD_PICO_ERR_EDITCONTENT); } } // category list can be read for category jumpbox etc. $categoryHandler = new PicoCategoryHandler($this->mydirname, $this->permissions); $categories = $categoryHandler->getAllCategories(); $this->assign['categories_can_post'] = array(); foreach ($categories as $tmpObj) { $tmp_data = $tmpObj->getData(); if (empty($tmp_data['can_post']) && empty($tmp_data['can_edit'])) { continue; } $this->assign['categories_can_post'][$tmp_data['id']] = str_repeat('--', $tmp_data['cat_depth_in_tree']) . $tmp_data['cat_title']; } // vpath options $this->assign['content']['wraps_files'] = array('' => '---') + pico_main_get_wraps_files_recursively($this->mydirname, '/'); // breadcrumbs $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); if ($page == 'makecontent') { $breadcrumbsObj->appendPath('', _MD_PICO_LINK_MAKECONTENT); $this->assign['xoops_pagetitle'] = _MD_PICO_LINK_MAKECONTENT; } else { $breadcrumbsObj->appendPath(XOOPS_URL . '/modules/' . $this->mydirname . '/' . $this->assign['content']['link'], $this->assign['content']['subject']); $breadcrumbsObj->appendPath('', _MD_PICO_CONTENTMANAGER); $this->assign['xoops_pagetitle'] = _MD_PICO_CONTENTMANAGER; } $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); // misc assigns $this->assign['content_histories'] = pico_get_content_histories4assign($this->mydirname, $content_data['id']); $this->assign['page'] = $page; $this->assign['formtitle'] = $page == 'makecontent' ? _MD_PICO_LINK_MAKECONTENT : _MD_PICO_LINK_EDITCONTENT; $this->assign['gticket_hidden'] = $GLOBALS['xoopsGTicket']->getTicketHtml(__LINE__, 1800, 'pico'); // views $this->template_name = $this->mydirname . '_main_content_form.html'; $this->is_need_header_footer = true; // preview $this->processPreview($request); // editor (wysiwyg etc) $editor_assigns = $this->getEditorAssigns('body', $this->assign['content']['body_raw']); $this->assign['body_wysiwyg'] = $editor_assigns['body']; $this->html_header .= $editor_assigns['header']; }
function execute($request) { parent::execute($request); // $contentObj $contentObj =& new PicoContent($this->mydirname, $request['content_id'], $this->currentCategoryObj); // check existence if ($contentObj->isError()) { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/index.php", 2, _MD_PICO_ERR_READCONTENT); exit; } $cat_data = $this->currentCategoryObj->getData(); $this->assign['category'] = $this->currentCategoryObj->getData4html(); $content_data = $contentObj->getData(); $this->assign['content'] = $contentObj->getData4html(true); $this->contentObjs['content'] =& $contentObj; // permission check if (empty($content_data['can_read']) || empty($content_data['can_readfull'])) { if ($this->uid > 0) { redirect_header(XOOPS_URL . '/', 2, _MD_PICO_ERR_PERMREADFULL); } else { redirect_header(XOOPS_URL . '/user.php', 2, _MD_PICO_ERR_LOGINTOREADFULL); } exit; } // auto-register if (!empty($this->mod_config['wraps_auto_register']) && @$cat_data['cat_vpath'][0] == '/' && $content_data['poster_uid'] == 0 && $content_data['vpath'] != '') { $register_class = empty($this->mod_config['auto_register_class']) ? 'PicoAutoRegisterWraps' : $this->mod_config['auto_register_class']; require_once dirname(dirname(__FILE__)) . '/class/' . $register_class . '.class.php'; $register_obj =& new $register_class($this->mydirname, $this->mod_config); $is_updated = $register_obj->updateContent($content_data['content_id'], $content_data['vpath']); if ($is_updated > 0) { // reload if the content is updated header('Location: ' . pico_common_unhtmlspecialchars($this->assign['mod_url']) . '/' . pico_common_unhtmlspecialchars($this->assign['content']['link'])); exit; } } // prev/next content $prevContentObj =& $contentObj->getPrevContent(); $this->assign['prev_content'] = is_object($prevContentObj) ? $prevContentObj->getData4html() : array(); $this->contentObjs['prev_content'] =& $prevContentObj; $nextContentObj =& $contentObj->getNextContent(); $this->assign['next_content'] = is_object($nextContentObj) ? $nextContentObj->getData4html() : array(); $this->contentObjs['next_content'] =& $nextContentObj; // link for "tell to friends" if ($this->mod_config['use_taf_module']) { $this->assign['content']['tellafriend_uri'] = XOOPS_URL . '/modules/tellafriend/index.php?target_uri=' . rawurlencode(XOOPS_URL . "/modules/{$this->mydirname}/" . pico_common_make_content_link4html($this->mod_config, $content_data)) . '&subject=' . rawurlencode(sprintf(_MD_PICO_FMT_TELLAFRIENDSUBJECT, @$GLOBALS['xoopsConfig']['sitename'])); } else { $this->assign['content']['tellafriend_uri'] = 'mailto:?subject=' . pico_main_escape4mailto(sprintf(_MD_PICO_FMT_TELLAFRIENDSUBJECT, @$GLOBALS['xoopsConfig']['sitename'])) . '&body=' . pico_main_escape4mailto(sprintf(_MD_PICO_FMT_TELLAFRIENDBODY, $content_data['subject'])) . '%0A' . XOOPS_URL . "/modules/{$this->mydirname}/" . rawurlencode(pico_common_make_content_link4html($this->mod_config, $content_data)); } // category list can be read for category jumpbox etc. $categoryHandler =& new PicoCategoryHandler($this->mydirname, $this->permissions); $categories = $categoryHandler->getAllCategories(); $this->assign['categories_can_read'] = array(); foreach ($categories as $tmpObj) { $tmp_data = $tmpObj->getData(); $this->assign['categories_can_read'][$tmp_data['id']] = str_repeat('--', $tmp_data['cat_depth_in_tree']) . $tmp_data['cat_title']; } // count up 'viewed' if ($content_data['modifier_ip'] != @$_SERVER['REMOTE_ADDR']) { $contentObj->incrementViewed(); } // breadcrumbs $breadcrumbsObj =& AltsysBreadcrumbs::getInstance(); $breadcrumbsObj->appendPath('', $this->assign['content']['subject']); $this->assign['xoops_breadcrumbs'] = $breadcrumbsObj->getXoopsbreadcrumbs(); $this->assign['xoops_pagetitle'] = $this->assign['content']['subject']; // views switch ($request['view']) { case 'singlecontent': $this->template_name = 'db:' . $this->mydirname . '_independent_singlecontent.html'; $this->is_need_header_footer = false; break; case 'print': $this->template_name = 'db:' . $this->mydirname . '_independent_print.html'; $this->is_need_header_footer = false; break; default: $this->template_name = empty($this->mod_config['tpl_viewcontent']) ? $this->mydirname . '_main_viewcontent.html' : $this->mod_config['tpl_viewcontent']; $this->is_need_header_footer = true; break; } // htmlheader if (!empty($this->mod_config['allow_each_htmlheader'])) { $this->html_header .= $content_data['htmlheader']; } }