簡體   English   中英

將opendir與Joomla 1.5的PHP Pages組件一起使用

[英]Using opendir with PHP Pages Component for Joomla 1.5

我有一個在Joomla上運行的網站! 1.5(由於模板問題無法升級)。
在此站點上,我有一個頁面,成員可以在其中找到一些重要文件,這些文件是我們俱樂部會員所需的。

我將這些文件排列在一些文件夾中,所有文件都使用相同的命名約定(* yyyy-mm-dd_documentName *)。

為了簡化操作,我想使用某種格式自動列出文件。

由於Joomla不允許在文章中輸入PHP,因此我安裝了PHP Pages Component
該組件允許您創建頁面並通過例如菜單欄鏈接到它們。

要列出這些文件,我想使用PHP的opendir函數,打開該文件夾並在該文件夾上運行以讀取文件名並設置其格式。
這是我為此使用的代碼:

if($handle = opendir('/media/files/')) {
  while(false !== ($entry = readdir($handle))) {
    echo $entry;
  }

  closedir($handle);
}

由於組件從其自己的目錄開始每個相對路徑,因此由於某種原因而忽略了第一個/,這產生了一個錯誤。
因此,我嘗試通過輸入完整的URL(從http://開始)來解決此問題。

仍然沒有解決,現在的新錯誤是(bestanden.php是PHP頁面)

警告: opendir( http://www.example.com/media/files )[function.opendir]:無法打開dir:在/home/user/public_html/components/com_php/files/bestanden.php中未實現38

有人建議我使用ftp-handlet(也受支持)。
相應地,語法為ftp:// user:password@ftp.example.com
我為此做了一個單獨的說明,立即結束於正確的目錄,以防止跨目錄攻擊。 如果我在瀏覽器中手動嘗試此操作(確實仍然要求提供憑據),則此方法確實可行。
但這也不起作用。

我的想法不多了。
誰能幫我?

感謝@Lodder

<ul>
<?php

  $path = JPATH_SITE . '/media/files/nieuwsbrieven/'; 
  $files = JFolder::files($path);  
  foreach ($files as $file) {
    // Strip extension and save name to display it
    $name = substr($file, 0, strrpos($file, '.'));
    // Exclude the index I placed inside the dir to prevent direct surfing to the folder
    if($name != "index") {
      echo "<li><a href='/media/files/nieuwsbrieven/" . $file . "' title='Nieuwsbrief " . $name . "' target='_blank'>Nieuwsbrief " . $name . "</a></li>";
    }
  }

?>
</ul>

結果

  • Nieuwsbrief 2013-04-03
  • Nieuwsbrief 2013-04-19
  • Nieuwsbrief 2013年5月16日
  • Nieuwsbrief 2013年6月19日
  • Nieuwsbrief 2013-07-17
  • Nieuwsbrief 2013-08-28

試用時,您應該真正查看Joomla文檔。 Joomla擁有自己的類,用於讀取文件夾中的文件。 您可以使用以下命令顯示文件夾中的所有文件:

$path = JPATH_SITE . '/media/files';
$files = JFolder::files($path);

foreach ($files as $file) {
    echo $file;
}

要使用此代碼,請忘記允許您使用自定義PHP的組件之類的東西,我強烈建議您使用名為Sourcerer的插件,該插件允許在文章中使用PHP或JS。

有關Joomla文件系統類的更多信息,請閱讀以下內容:

http://docs.joomla.org/How_to_use_the_filesystem_package#Read_files_from_folder

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM