0

Joomla 2.5 で Flexslider と組み合わせて PHP スクリプトを使用して、スライドショーごとにコーディングすることなく、フォルダーからスライドショーとサムネイル スライダー ナビゲーションを自動ロードできるようにしようとしています

Joomla 固有のメソッドと PHP だけのメソッドの両方をいくつか実装しようとしましたが、正しく組み込まれていないように感じます。

1)
    $path = JPATH_COMPONENT; 

2)
    $path = JURI::root();

3)
    $path = $_SERVER['DOCUMENT_ROOT'];
4)
    <?php
    define('ROOT_DIR', dirname(__FILE__));
    define('ROOT_URL', substr($_SERVER['PHP_SELF'], 0, - (strlen($_SERVER['SCRIPT_FILENAME']) - strlen(ROOT_DIR))));
    ?> 

誰かがこれらまたは別の方法のいずれかをうまく機能させる方法を教えてくれれば:

$imgdir = 'flex/demo/images/'; //Pick your folder

サブメニュー項目の Joomla のふりをした URL の 1 つが存在しないディレクトリでそれを検索しないようにするには、それはあまりにも素晴らしいことです。

リンクされた記事に示されているように、私が使用しているスクリプト全体は、次のように Jumi 経由でスタックしています。

<link rel="stylesheet" href="flex/flexslider.css" type="text/css" media="screen" /> 

 <!-- jQuery -->
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.min.js">\x3C/script>')</script>

  <!-- FlexSlider -->
  <script defer src="flex/jquery.flexslider.js"></script>

<div id="slider" class="flexslider">
<?php
$imgdir = 'flex/demo/images/'; //Pick your folder
$allowed_types = array('jpg','jpeg','gif'); //Allowed types of files
$dimg = opendir($imgdir);//Open directory
while($imgfile = readdir($dimg))
{
  if( in_array(strtolower(substr($imgfile,-3)),$allowed_types) OR
      in_array(strtolower(substr($imgfile,-4)),$allowed_types) )
/*If the file is an image add it to the array*/
  {$a_img[] = $imgfile;}
}
echo "<ul class=\"slides\" >";

 $totimg = count($a_img);  //The total count of all the images
//Echo out the images and their paths incased in an li.
 for($x=0; $x < $totimg; $x++){echo "<li><img src='" . $imgdir . $a_img[$x] . "' /></li>";}
echo "</ul>";

     echo "</div>";
       echo "<div id=\"carousel\" class=\"flexslider\">";

echo "<ul class=\"slides\" >";

 $totimg = count($a_img);  //The total count of all the images
//Echo out the images and their paths incased in an li.
 for($x=0; $x < $totimg; $x++){echo "<li><img src='" . $imgdir . $a_img[$x] . "' /></li>";}
echo "</ul>";
?>
        </div>

<script>
 $(window).load(function(){
      $('#carousel').flexslider({
        animation: "slide",
        controlNav: false,
        animationLoop: true,
        slideshow: false,
        itemWidth: 210,
        itemMargin: 5,
        asNavFor: '#slider'
      });

      $('#slider').flexslider({
        animation: "slide",
        controlNav: false,
        animationLoop: true,
        slideshow: true,
        sync: "#carousel",
        start: function(slider){
          $('body').removeClass('loading');
        }
      });
    });
  </script>

更新-解決済み

最初に質問の言い方を間違えました。画像のパスではなく、正しい URL を取得するのに問題がありました。ある時点で、画像の目的のディレクトリと画像パスの間にJoomlaで生成されたディレクトリを追加していました。何らかの理由で、それを正しく解釈しなかったか、自然に消えてしまったようです。

先頭に「/」を追加する必要がありましたが、行に追加できませんでした:

$imgdir = 'flex/demo/images/'; //Pick your folder

だから私はこれを変更することで私の問題に対処しました:

//Echo out the images and their paths incased in an li.
 for($x=0; $x < $totimg; $x++){echo "<li><img src='" . $imgdir . $a_img[$x] . "' /></li>";}
echo "</ul>";

に:

//Echo out the images and their paths incased in an li.
 for($x=0; $x < $totimg; $x++){echo "<li><img src='/" . $imgdir . $a_img[$x] . "' /></li>";}
echo "</ul>";

2 つの例では、URL を img src に出力するコードで発生します。

これが他の誰かに役立つことを願っています!

4

1 に答える 1

0

JUri:base() を使用して、Joomla サイトのベースURIを取得してください。

<link rel="stylesheet" href="<?php echo JUri:base(); ?>flex/flexslider.css" type="text/css" media="screen" /> 

変化する

$imgdir = 'flex/demo/images/'; //Pick your folder

$imgdir = JPATH_ROOT.'/flex/demo/images/'; //Pick your folder

これらの定数は、Joomla および拡張機能で使用するために定義されています

于 2013-04-27T02:01:07.217 に答える