本文整理汇总了PHP中KunenaRoute::getCategoryItemid方法的典型用法代码示例。如果您正苦于以下问题:PHP KunenaRoute::getCategoryItemid方法的具体用法?PHP KunenaRoute::getCategoryItemid怎么用?PHP KunenaRoute::getCategoryItemid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KunenaRoute
的用法示例。
在下文中一共展示了KunenaRoute::getCategoryItemid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUri
/**
* @param mixed $category
* @param string $action
*
* @return JUri|null
*/
public function getUri($category = null, $action = null)
{
$category = $category ? KunenaForumCategoryHelper::get($category) : $this->getCategory();
$Itemid = KunenaRoute::getCategoryItemid($category);
if (!$this->exists() || !$category->exists()) {
return null;
}
if ($action instanceof KunenaForumMessage) {
$message = $action;
$action = 'post' . $message->id;
}
$uri = JUri::getInstance("index.php?option=com_kunena&view=topic&catid={$category->id}&id={$this->id}&action={$action}&Itemid={$Itemid}");
if ($uri->getVar('action') !== null) {
$uri->delVar('action');
$mesid = 0;
$limit = max(1, intval(KunenaFactory::getConfig()->messages_per_page));
if (isset($message)) {
$mesid = $message->id;
} elseif ((string) $action === (string) (int) $action) {
if ($action > 0) {
$uri->setVar('limitstart', $action * $limit);
}
} else {
switch ($action) {
case 'first':
$mesid = $this->first_post_id;
break;
case 'last':
$mesid = $this->last_post_id;
break;
case 'unread':
// Special case, improves caching
$uri->setVar('layout', 'unread');
// $mesid = $this->lastread ? $this->lastread : $this->last_post_id;
break;
}
}
if ($mesid) {
if (KunenaUserHelper::getMyself()->getTopicLayout() != 'threaded' && $mesid > 0) {
$uri->setFragment($mesid);
$limitstart = intval($this->getPostLocation($mesid) / $limit) * $limit;
if ($limitstart) {
$uri->setVar('limitstart', $limitstart);
}
} else {
$uri->setVar('mesid', $mesid);
}
}
}
return $uri;
}