2016-04-29 13 views
0

私は現在、コンテンツをonContentAfterSaveにキャッチして、新しく保存した記事をURL短縮機能に投稿してソーシャルネットワークで使用するためのJoomlaプラグインを開発しています。Joomla:記事を取得ID:

記事詳細ビュー(メニューエントリなし)への適切なSEF URLを計算する方法を教えてもらえますか? URLは次のようにする必要があります

http://<domain>.<tld>/<category-id>-<category-title>/<article-id>-<article-title>.html

私はthis postを読んだが、それは本当に解決策を提供していません。

答えて

0

私はこの記事で、この問題を解決することができました: https://joomla.stackexchange.com/questions/36/how-do-i-generate-a-sef-url-in-a-custom-module-instead-of-the-real-url

提供ソリューションは、次のとおりです。

$rootURL = rtrim(JURI::base(),'/'); 
$subpathURL = JURI::base(true); 
if(!empty($subpathURL) && ($subpathURL != '/')) { 
    $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL)); 
} 
$url = $rootURL.JRoute::_(ContentHelperRoute::getArticleRoute($article->id, $article->catid)); 

このソリューションの本当に良い部分は、それはまたに含まれているインストールで動作すること、ですサブディレクトリ。

0

JRouteを使用して、SEF以外のパラメータベースのURLをSEFに変換します。

標準Joomlaの記事へのリンクの場合、それは次の情報が必要になります。

$url = JRoute::_('index.php?option=com_content&view=article&id='.$article->id); 

$ article-> IDあなたは他の$の記事オブジェクトの何かを求めているかもしれませんが、onContentAfterSaveを介して利用可能ですこの場合、必要に応じて名前を変更します。

記事のメニュー項目がある場合、メニュー項目のidのItemidパラメータを追加すると、そのメニュー項目に関連するモジュールが読み込まれます。

+0

ログに感謝しますが、私が探していたものではないと思います。このURLはhttp:// のように生成されました。 /<1st-level-menu>/<2nd-level-menu>.html?id= 、これは404エラーにつながります。その間、私はうまく機能する解決策を見つけることができました。下記の私の答えを見てください。 – Windwalker

関連する問題