2013-05-21 24 views
0

如何通過ID獲取文章的SEF鏈接?Joomla K2 - 通過ID獲取物品鏈接(SEF)

我想這樣一件事:

$link = get_link(34); // where 34 is the article ID 

<a href="<?php echo $link; ?>">Article link</a> 

UPDATE 我的代碼是這樣(Rikesh代碼更新):

Mysql query: "SELECT id, title, extra_fields FROM xxxxx_k2_items WHERE catid = ".$catid 

$n=0; //counter 
while($row = mysql_fetch_array($result)){ 
    $titles[$n] = $row['title']; 
    $links[$n] = JRoute::_(ContentHelperRoute::getArticleRoute($row['id'], $catid)); 
    $n++; 
} 

好了,現在這個檢索鏈接像/joomla/index.php/currentpage?id=4哪裏4是正確的ID,但鏈接不起作用!它進入了一個錯誤的頁面。我的疑問是:你的代碼也適用於K2文章?因爲我正在使用K2文章而不是默認joomla文章。編輯:是的,我檢查了我的懷疑,你的代碼通過ID鏈接到Joomla文章,但我使用的ID是K2文章! 注意:我需要的海基會鏈接

+1

如果您正在使用K2文章,然後使用K2路由器。有關更多信息,請查看K2內容模塊。 – Shaz

回答

1

你應該包括K2路線

require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'route.php'); 

因爲你需要的信息也從K2,你應該同時更新MySQL查詢和PHP代碼類別表,這裏是一個示例

$db = JFactory::getDBO(); 
$query = ' 
    SELECT 
     a.id AS id, 
     a.extra_fields AS extrafields, 
     a.catid AS catid, 
     a.title AS title, 
     a.introtext AS introtext, 
     a.alias AS alias, 
     c.alias AS catalias 
    FROM 
     #__k2_items AS a 
     LEFT JOIN #__k2_categories AS c ON (a.catid = c.id) 
     WHERE a.published = 1 AND a.catid = '.$catid; 
$db->setQuery($query); 
$articles = $db->loadObjectList(); 
$n=0; 
foreach ($articles as $article) { 
    $titles[$n] = $article->title; 
    $links[$n] = K2HelperRoute::getItemRoute($article->id.':'.urlencode($article->alias),$article->catid.':'.urlencode($article->catalias)); 
    $n++; 
} 
+0

謝謝!它爲我工作;) – Alberto

+0

好的。這工作,但它仍然不看'好'。 我需要這樣的東西:odziecku/ciaza-i-porod/porod/item/86-6-rad-przed-wspolnym-porodem 但是這段代碼生成了這個:odziecku/index.php?option = com_k2&view = item&id = 156 :6-rad-przed-wspolnym-porodem&Itemid = 190 有一些缺失。感謝名單。 –

+0

好的,我知道。它應該是這樣的: $ links [$ n] = JRoute :: _(K2HelperRoute :: getItemRoute($ article-> id。':'。urlencode($ article-> alias),$ article-> catid。 。 ':' 進行urlencode($物品─> catalias))); –