2017-08-01 9 views
0

に本文の内容を取得する方法を私は、Joomlaのサイトのページ内のすべての画像を見つけようとしています。私は、変数$pageBodyにページの<body>内容を割り当てることができた場合は、上記のコードが動作するだろうと信じていJoomlaのサイト

preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $pageBody, $imageArray);

:私は、次のコードを使用する予定。しかし、私はそれを行う正しい方法を見つけることができません。

私はJApplicationWebJApplicationSiteを見つけたが、私はそれを行うことができませんでした。

私はJoomlaの3.7.4を使用しています。

+0

なぜあなたはすべての画像を取得したいのですか?イメージを変更したい場合(例えば、スケールする)、コンテンツプラグインを作成してイメージを修正するか、テンプレートオーバーライドを書いて出力をオーバーライドするのが最善の方法です。すべての画像の一覧が必要な場合は、onBeforeRenderのシステムプラグインで行うことができます。私は、ページ内の画像は、オープングラフタグ(FacebookやTwitterなど)に追加できるように取得したいあなたがあなたのイメージ... – jonasfh

+0

でやりたい手の込んだしてください。 – EnduranceCode

+0

@jonasfhは、私は、ページ内の画像は、オープングラフタグ(FacebookやTwitterなど)に追加できるように取得したいです。 – EnduranceCode

答えて

1

あなたのシステムタイププラグインのonAfterRenderイベントを探しているようです。

Creating a Plugin for Joomla

あなたはプラグインを作成し、イベントの上に追加する必要があります。これは、以下のアプローチと同様のものです。

class plgSystemCustomplugin extends JPlugin 
{ 


     /** 
     * 
     * @return boolean 
     * @throws Exception 
     */ 
     public function onAfterRender() 
     { 
       $app = JFactory::getApplication(); 
       $sHtml = $app->getBody(); 

       // Modify $sHtml 

       // Set body back 
       $app->setBody($sHtml); 
     } 
} 
+0

私はプラグインなしでそれをやりたかった(私はテンプレートを作っている)。以前の間違いは 'onAfterRender'イベントなしで' $ app-> getBody() 'を使っていたことです。これは唯一の方法ですか?私が本当にやってみたいのは、現在のJoomlaのページで画像を見つけて、それをOpen Graphタグ( 'og:image')として使うことです。 – EnduranceCode

+1

私はこの方法しか知りません。すべての文書がない限り、画像を検索することはできません。 – Irfan

+0

ありがとうございます。あなたの助けは大いに感謝されました。 – EnduranceCode

関連する問題