Code:
<?php defined ('_VALID_MOS') or die('Direct Access to this location is not allowed.');
class CKunenaLink{
function GetMenuid($catid){
switch ($catid){
case 9:
return 236;
case 10:
return 237;
case 13:
return 238;
case 12:
return 239;
default:
return KUNENA_COMPONENT_ITEMID;
}
}
function GetSefHrefLink($link, $name, $title, $rel, $class ='', $anker='', $attr=''){
return '<a '.($class ? 'class="'.$class.'" ' : '').'href="'.sefRelToAbs($link).($anker?('#'.$anker):'').'" title="'.$title.'"'.($rel ? ' rel="'.$rel.'"' : '').($attr ? ' '.$attr : '').'>'.$name.'</a>';
}
function GetSimpleLink($id, $name=''){
return'<a href="'.$id.'">'.$name.'</a>';
}
function GetCreditsLink(){
return CKunenaLink::GetSefHrefLink('http://www.kunena.com', 'Kunena', 'Kunena', 'follow', NULL, NULL, 'target="_blank"');
}
function GetTeamCreditsLink($catid, $name=''){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=credits&catid='.$catid, $name, '', 'follow');
}
function GetKunenaLink($name , $rel='follow'){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL, $name, '', $rel);
}
function GetRSSLink($name , $rel='follow'){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=fb_rss&no_html=1', $name, '', $rel, '', '', 'target="_blank"');
}
function GetCategoryLink($func, $catid, $catname, $rel='follow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid, $catname, '', $rel, $class);
}
function GetCategoryListLink($name, $rel='follow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=listcat', $name, '', $rel, $class);
}
function GetCategoryPageLink($func, $catid, $page, $pagename, $rel='follow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
if ($page == 1 || !is_numeric($page)){
// page 1 is identical to a link to the regular category link
$pagelink = CKunenaLink::GetCategoryLink($func, $catid, $pagename, $rel, $class);
}else{
$pagelink = CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&page='.$page, $pagename, '', $rel, $class);
}
return $pagelink;
}
function GetCategoryReviewListLink($catid, $catname, $rel='nofollow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=review&action=list&catid='.$catid, $catname, '', $rel, $class);
}
function GetThreadLink($func, $catid, $threadid, $threadname, $title, $rel='follow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&id='.$threadid, $threadname, $title, $rel, $class);
}
function GetThreadPageLink($fbConfig, $func, $catid, $threadid, $page, $limit, $name, $anker='', $rel='follow', $class=''){
$Menuid=CKunenaLink::GetMenuid($catid);
if ($page == 1 || !is_numeric($page) || !is_numeric($limit)){
$pagelink = CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&id='.$threadid,$name, '', $rel, $class, $anker);
}else{
$pagelink = CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&id='.$threadid.'&limit='.$limit.'&limitstart='.(($page-1)*$limit), $name, '', $rel, $class, $anker);
}
return $pagelink;
}
function GetThreadPageURL($fbConfig, $func, $catid, $threadid, $page, $limit, $anker=''){
$Menuid=CKunenaLink::GetMenuid($catid);
if ($page == 1 || !is_numeric($page) || !is_numeric($limit)){
$pageURL = htmlspecialchars_decode(KUNENA_LIVEURL).'&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&id='.$threadid;
}else{
$pageURL = htmlspecialchars_decode(KUNENA_LIVEURL).'&Itemid='.$Menuid.'&func='.$func.'&catid='.$catid.'&id='.$threadid.'&limit='.$limit.'&limitstart='.(($page-1)*$limit);
}
return sefRelToAbs($pageURL).($anker?('#'.$anker):'');
}
function GetSamePageAnkerLink($anker, $name, $rel='nofollow'){
return CKunenaLink::GetSefHrefLink(htmlspecialchars(sefRelToAbs('index.php?'.$_SERVER['QUERY_STRING'])), $name, '', $rel, '', $anker);
}
function GetReportMessageLink($catid, $msg_id, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=report&catid='.$catid.'&msg_id='.$msg_id, $name, '', $rel);
}
function GetMessageIPLink($msg_ip, $rel='nofollow'){
if ($msg_ip){
$iplink = '<a href="http://whois.domaintools.com/'.$msg_ip.'" target="_blank">';
$iplink .= 'IP: '.$msg_ip.'</a>';
}else{
$iplink = ' ';
}
return $iplink;
}
function GetMyProfileLink($fbConfig, $userid, $name, $rel='nofollow'){
if($fbConfig->fb_profile == 'jomsocial' || $fbConfig->fb_profile == 'cb'){
return CKunenaLink::GetProfileLink($fbConfig, $userid, $name, $rel);
}else{
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=myprofile&do=show', $name, '', $rel);
}
}
function GetProfileLink($fbConfig, $userid, $name, $rel='nofollow', $class=''){
if ($userid > 0){
if($fbConfig->fb_profile == 'cb') {
$kunenaProfile = CKunenaCBProfile::getInstance();
if ($link = $kunenaProfile->getProfileURL($userid)){
return CKunenaLink::GetSefHrefLink($link, $name, '', $rel, $class);
} else return $name;
} else return CKunenaLink::GetSefHrefLink(KUNENA_PROFILE_LINK_SUFFIX.$userid, $name, '', $rel, $class);
} else return $name;
}
function GetViewLink($func, $id, $catid, $view, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func='.$func.'&id='.$id.'&view='.$view.'&catid='.$catid, $name, '', $rel);
}
function GetPendingMessagesLink($catid, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=review&action=list&catid='.$catid, $name, '', $rel);
}
function GetShowLatestLink($name, $rel='follow'){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=latest', $name, '', $rel);
}
function GetShowLatestURL(){
return sefRelToAbs(KUNENA_LIVEURLREL.'&func=latest');
}
function GetShowMyLatestLink($name, $rel='nofollow'){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=mylatest', $name, '', $rel);
}
function GetShowLatestThreadsLink($period, $name, $rel='nofollow'){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=latest&do=show&sel='.$period, $name, '', $rel);
}
function GetLatestPageLink($func, $page, $rel='follow', $class='', $sel=''){
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func='.$func.'&page='.$page.(($sel)?'&sel='.$sel:''), $page, '', $rel, $class);
}
function GetPostNewTopicLink($catid, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL.'&func=post&do=reply&catid='.$catid, $name, '', $rel);
}
function GetTopicPostLink($do, $catid, $id, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=post&do='.$do.'&catid='.$catid.'&id='.$id, $name, '', $rel);
}
function GetTopicPostReplyLink($do, $catid, $id, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=post&do='.$do.'&catid='.$catid.'&replyto='.$id, $name, '', $rel);
}
function GetEmailLink($email, $name){
return CKunenaLink::GetSimpleLink('mailto:'.stripslashes($email), stripslashes($name));
}
function GetKarmaLink($do, $catid, $pid, $userid, $name, $rel='nofollow'){
$Menuid=CKunenaLink::GetMenuid($catid);
return CKunenaLink::GetSefHrefLink(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=karma&do='.$do.'&userid='.$userid.'&pid='.$pid.'&catid='.$catid, $name, '', $rel);
}
function GetRulesLink($fbConfig, $name, $rel='nofollow'){
$ruleslink = $fbConfig->rules_infb ? KUNENA_LIVEURLREL.'&func=rules' : $fbConfig->rules_link;
return CKunenaLink::GetSefHrefLink($ruleslink, $name, '', $rel);
}
function GetHelpLink($fbConfig, $name, $rel='nofollow'){
$helplink = $fbConfig->help_infb ? KUNENA_LIVEURLREL.'&func=faq' : $fbConfig->help_link;
return CKunenaLink::GetSefHrefLink($helplink, $name, '', $rel);
}
function GetSearchURL($fbConfig, $func, $searchword, $limitstart, $limit, $params=''){
$limitstr = "&limitstart=$limitstart";
if ($limit != $fbConfig->messages_per_page_search) $limitstr .= "&limit=$limit";
return sefRelToAbs(KUNENA_LIVEURLREL."&func={$func}&q={$searchword}{$params}{$limitstr}");
}
function GetSearchLink($fbConfig, $func, $searchword, $limitstart, $limit, $name, $params='', $rel='nofollow'){
$limitstr = "&limitstart=$limitstart";
if ($limit != $fbConfig->messages_per_page_search) $limitstr .= "&limit=$limit";
return CKunenaLink::GetSefHrefLink(KUNENA_LIVEURLREL."&func={$func}&q={$searchword}{$params}{$limitstr}", $name, '', $rel);
}
function GetLatestPostAutoRedirectHTML($fbConfig, $pid, $limit){
global $database;
$database->setQuery('SELECT a.thread AS thread, max(a.id) AS latest_id, max(a.catid) AS catid, count(*) AS totalmessages
FROM #__fb_messages AS a,
(SELECT max(thread) AS thread FROM #__fb_messages WHERE id='.$pid.') AS b
WHERE a.thread = b.thread AND a.hold = 0
GROUP BY a.thread');
$database->loadObject($result);
check_dberror("Unable to retrieve latest post.");
$threadPages = ceil($result->totalmessages / $limit);
$Output = '<div align="center">';
$Output .= CKunenaLink::GetThreadPageLink($fbConfig, 'view', $result->catid, $result->thread, $threadPages, $limit, _POST_SUCCESS_VIEW, $result->latest_id) .'<br />';
$Output .= CKunenaLink::GetCategoryLink('showcat', $result->catid, _POST_SUCCESS_FORUM).'<br />';
$Output .= '</div>';
$Output .= CKunenaLink::GetAutoRedirectHTML(CKunenaLink::GetThreadPageURL($fbConfig, 'view', $result->catid, $result->thread, $threadPages, $limit, $result->latest_id), 3500);
return $Output;
}
function GetLatestPageAutoRedirectURL($fbConfig, $pid, $limit){
global $database;
$database->setQuery('SELECT a.thread AS thread, max(a.id) AS latest_id, max(a.catid) AS catid, count(*) AS totalmessages
FROM #__fb_messages AS a,
(SELECT max(thread) AS thread FROM #__fb_messages WHERE id='.$pid.') AS b
WHERE a.thread = b.thread AND a.hold = 0
GROUP BY a.thread');
$database->loadObject($result);
check_dberror("Unable to retrieve latest post.");
$threadPages = ceil($result->totalmessages / $limit);
return htmlspecialchars_decode(CKunenaLink::GetThreadPageURL($fbConfig, 'view', $result->catid, $result->thread, $threadPages, $limit));
}
function GetLatestCategoryAutoRedirectHTML($catid){
$Menuid=CKunenaLink::GetMenuid($catid);
$Output = '<div id="Kunena_post_result" align="center">';
$Output .= CKunenaLink::GetCategoryLink('showcat', $catid, _POST_SUCCESS_FORUM).'<br />';
$Output .= '</div>';
$Output .= CKunenaLink::GetAutoRedirectHTML(KUNENA_JLIVEURL .'/index.php?option=com_kunena&Itemid='.$Menuid.'&func=showcat&catid=' . $catid, 3500);
return $Output;
}
function GetAutoRedirectHTML($url, $timeout){
$url = htmlspecialchars_decode($url);
$Output = "\n<script type=\"text/javascript\">\n// <![CDATA[\n";
$Output .= "kunenaRedirectTimeout('$url', $timeout);";
$Output .= "\n// ]]>\n</script>\n";
return $Output;
}
}
?>