本文整理汇总了PHP中DiscussHelper::accessNestedCategories方法的典型用法代码示例。如果您正苦于以下问题:PHP DiscussHelper::accessNestedCategories方法的具体用法?PHP DiscussHelper::accessNestedCategories怎么用?PHP DiscussHelper::accessNestedCategories使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DiscussHelper
的用法示例。
在下文中一共展示了DiscussHelper::accessNestedCategories方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: accessNestedCategories
public static function accessNestedCategories($arr, &$html, $deep = '0', $default = '0', $type = 'select', $linkDelimiter = '', $disableContainers = false)
{
$config = DiscussHelper::getConfig();
if (isset($arr->childs) && is_array($arr->childs)) {
$sup = '<sup>|_</sup>';
$space = '';
$ld = empty($linkDelimiter) ? '>' : $linkDelimiter;
if ($type == 'select' || $type == 'list') {
$deep++;
for ($d = 0; $d < $deep; $d++) {
$space .= ' ';
}
}
if ($type == 'list' && !empty($arr->childs)) {
$html .= '<ul>';
}
for ($j = 0; $j < count($arr->childs); $j++) {
$child = $arr->childs[$j];
switch ($type) {
case 'select':
$selected = $child->id == $default ? ' selected="selected"' : '';
if (!$default) {
$selected = $child->default ? ' selected="selected"' : '';
}
$disabled = '';
$style = '';
// @rule: Test if the category should just act as a container
if ($disableContainers) {
$disabled = $child->container ? ' disabled="disabled"' : '';
$style = $disabled ? ' style="font-weight:700;"' : '';
}
$html .= '<option value="' . $child->id . '" ' . $selected . $disabled . $style . '>' . $space . $sup . $child->title . '</option>';
break;
case 'list':
$expand = !empty($child->childs) ? '<span onclick="EasyDiscuss.$(this).parents(\'li:first\').toggleClass(\'expand\');">[+] </span>' : '';
$html .= '<li><div>' . $space . $sup . $expand . '<a href="' . DiscussRouter::getCategoryRoute($child->id) . '">' . $child->title . '</a> <b>(' . $child->count . ')</b></div>';
break;
case 'listlink':
$str = '<li><a href="' . DiscussRouter::getCategoryRoute($child->id) . '">';
$str .= empty($html) ? $child->title : $ld . ' ' . $child->title;
$str .= '</a></li>';
$html .= $str;
break;
default:
$str = '<a href="' . DiscussRouter::getCategoryRoute($child->id) . '">';
//str .= (empty($html)) ? $child->title : $ld . ' ' . $child->title;
$str .= empty($html) ? $child->title : $ld . ' ' . $child->title;
$str .= '</a></li>';
$html .= $str;
}
if (!$config->get('layout_category_one_level', 0)) {
DiscussHelper::accessNestedCategories($child, $html, $deep, $default, $type, $linkDelimiter, $disableContainers);
}
if ($type == 'list') {
$html .= '</li>';
}
}
if ($type == 'list' && !empty($arr->childs)) {
$html .= '</ul>';
}
} else {
return false;
}
}
示例2: listings
/**
* Displays a list of recent discussions from a particular category.
*
* @since 3.0
* @access public
*/
public function listings()
{
// Initialise variables
$doc = JFactory::getDocument();
$my = JFactory::getUser();
$config = DiscussHelper::getConfig();
$app = JFactory::getApplication();
$registry = DiscussHelper::getRegistry();
$categoryId = JRequest::getInt('category_id', 0);
// Try to detect if there's any category id being set in the menu parameter.
$activeMenu = $app->getMenu()->getActive();
if ($activeMenu) {
// Load menu params to the registry.
$registry->loadString($activeMenu->params);
// Set the active category id if exists.
$categoryId = $registry->get('category_id') ? $registry->get('category_id') : $categoryId;
}
// Get the current logged in user's access.
$acl = DiscussHelper::getHelper('ACL');
// Todo: Perhaps we should fix the confused naming of filter and sort to type and sort
$activeFilter = JRequest::getString('filter', $registry->get('filter'));
$sort = JRequest::getString('sort', $registry->get('sort'));
// Get the pagination limit
$limit = $registry->get('limit');
$limit = $limit == '-2' ? DiscussHelper::getListLimit() : $limit;
$limit = $limit == '-1' ? DiscussHelper::getJConfig()->get('list_limit') : $limit;
// Get the active category id if there is any
$activeCategory = DiscussHelper::getTable('Category');
$activeCategory->load($categoryId);
DiscussHelper::setPageTitle($activeCategory->title);
// Add breadcrumbs for active category.
if ($activeCategory->id != 0) {
// Test if user is really allowed to access this category.
if (!$activeCategory->canAccess()) {
$app->redirect(DiscussRouter::_('index.php?option=com_easydiscuss&view=index', false), JText::_('COM_EASYDISCUSS_SYSTEM_INSUFFICIENT_PERMISSIONS'));
$app->close();
return;
}
// Add pathway for category here.
DiscussHelper::getHelper('Pathway')->setCategoryPathway($activeCategory);
}
// Add view to this page.
$this->logView();
// Set the meta of the page.
DiscussHelper::setMeta();
$doc = JFactory::getDocument();
$doc->setMetadata('description', strip_tags($activeCategory->getDescription()));
// Add rss feed into headers
DiscussHelper::getHelper('Feeds')->addHeaders('index.php?option=com_easydiscuss&view=index');
// Get list of categories on the site.
$catModel = $this->getModel('Categories');
// Pagination is by default disabled.
$pagination = false;
if ($categoryId) {
$category = DiscussHelper::getTable('Category');
$category->load($categoryId);
$categories[] = $category;
} else {
$categories = $catModel->getCategories($categoryId);
if (count($categories) > 1) {
$ids = array();
foreach ($categories as $row) {
$ids[] = $row->id;
}
// iniCounts should only called in index page.
$category = DiscussHelper::getTable('Category');
$category->initCounts($ids, true);
}
}
// Get the model.
$postModel = DiscussHelper::getModel('Posts');
$authorIds = array();
$topicIds = array();
for ($i = 0; $i < count($categories); $i++) {
$category =& $categories[$i];
// building category childs lickage.
$category->childs = null;
$nestedLinks = '';
// In category page
if ($config->get('layout_show_all_subcategories', '1')) {
// By default show all the subcategories of the selected category
DiscussHelper::buildNestedCategories($category->id, $category, false, true);
} else {
// Show one level of subcategories of the selected category only
$category->childs = $catModel->getChildCategories($category->id);
}
DiscussHelper::accessNestedCategories($category, $nestedLinks, '0', '', 'listlink', ', ');
$category->nestedLink = $nestedLinks;
// Get featured posts from this particular category.
$featured = $postModel->getDiscussions(array('pagination' => false, 'sort' => $sort, 'filter' => $activeFilter, 'category' => $category->id, 'limit' => $config->get('layout_featuredpost_limit', $limit), 'featured' => true));
// Get normal discussion posts.
$posts = $postModel->getDiscussions(array('sort' => $sort, 'filter' => $activeFilter, 'category' => $category->id, 'limit' => $limit, 'featured' => false));
$tmpPostsArr = array_merge($featured, $posts);
if (count($tmpPostsArr) > 0) {
//.........这里部分代码省略.........