2009年10月27日 星期二

把php的值傳送到flash上

以下範例為將某個資料夾內的檔案數量經由php統計後,再把統計出來的值傳給flash呈現出來:
php的值 參考php計算資料夾內檔案數量的語法

php上的寫法為:
<?php
$dir="要取得檔案數量的資料夾";
$num=count(glob("$dir/*.*"));
echo "&message1=".$num; //把num變數帶入message1,message1是之後在flash上要抓的參數
?>


flash上的寫法為:(先新建一個flash檔案,在理面新增一個動態文字框並命名為message1)
stop();
response_lv = new LoadVars();
response_lv.onLoad = function(success) {
if(success) {
message1.text=this.message1;
}
}
var my_lv = new LoadVars();
my_lv.sendAndLoad("countfile.php",response_lv);


本篇參考出處http://forums.devshed.com/flash-help-38/php-flash-variable-does-not-display-value-75447.html

php列出特定資料夾內所有檔案名稱的語法

<?php
$dirname="想要讀取的資料夾名稱";
$dh=opendir($dirname);
while ($dave=readdir($dh))
{
if ($dave != "." && $dave != "..") {
echo $dave."<br>"; //"br"讓名稱可以斷行排列出來,不會一直排下去
}
}
closedir ($dh);
?>

2009年10月26日 星期一

php計算資料夾內檔案數量的語法

使用php計算某一個資料夾內的檔案數量的語法

<?php
$dir="要計算的資料夾名稱";
$num=count(glob("$dir/*.*"));
//*.*也可以改為特定的副檔名,如 *.jpg 這樣就只會統計該資料夾內所有副檔名為jpg的檔案數量
echo $num;
?>


2017.12.24更新

上面的語法在資料夾內沒有檔案時也會得到數量1的錯誤資訊
正確數量可用以下語法


<?php

    $i = 0; 
    $dir = '資料夾路徑(相對路徑)';
    if ($handle = opendir($dir)) {
        while (($file = readdir($handle)) !== false){
            if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
                $i++;
        }
    }
    echo "資料夾內有 $i 個檔案";

?>

下面的語法也可計算資料夾內的檔案數量
<?php
$Path = '資料夾路徑(相對路徑)'; 
$files = glob($Path . '*', GLOB_MARK); //files 會取得檔案名稱的陣列
echo count($files);
?>

2009年10月25日 星期日

xoops更改tadnews模組新聞文章的排列由新到舊

使用tadnews模組時,遇到發佈出來的新聞,不管怎麼改文章標題都是由舊而新排列的問題,也就是說,最先打得文章應該是排列在晚打得文章後面,但是結果卻是先反的。
再詢問友人後,才得知修改的地方:

Step 1.
xoops下
進入 modules/tadnews/blocks

Step 2.
打開tadnews_page.php
在大約第123行的地方(標記為"//檢查該類別文章"那一段落)

$sql = "select nsn,news_title,start_day,end_day,enable_group,counter from ".$xoopsDB->prefix("tad_news")." where ncsn='{$show_ncsn}' and enable='1' and start_day < '{$today}' and (end_day > '{$today}' or end_day='0000-00-00 00:00:00') order by start_day";
後面加上一個 desc
$sql = "select nsn,news_title,start_day,end_day,enable_group,counter from ".$xoopsDB->prefix("tad_news")." where ncsn='{$show_ncsn}' and enable='1' and start_day < '{$today}' and (end_day > '{$today}' or end_day='0000-00-00 00:00:00') order by start_day desc";

這樣就可以囉!
如果要反向排列就改為 asc

flash語法判斷目前所在頁面的網址

遇到一個情況,在xoops的模組下,要讓主要選單按鈕能夠隨目前所在的頁面,該頁面的連結按鈕能夠改變不同的顏色:除了js語法外,用flash的選單也可以做到這樣的呈現:
STEP 1.
把flash的主選單做好

Step 2.
在主選單的第一格使用ActionScript語法來抓瀏覽器的網址列:
import flash.external.*;
var urlPath;
function geturlhttp() {
urlPath = ExternalInterface.call("window.location.href.toString");
}
geturlhttp();
//設定舞台上的urlText動態文字來呈現目前抓到的網址
_root.urlText.text = urlPath;


Step 3.
接下來只要設定好按鈕的判斷語法就可以了,例如:
this.onEnterFrame=function(){
//如果抓到的網址是http://www.xxxx.com.tw/page1/,那麼btn1就停在第三影格
if(_root.urlText.text=="http://www.xxxx.com.tw/page1/")
{
btn1.gotoAndStop(3);
}

//如果抓到的網址是http://www.xxxx.com.tw/page2/,那麼btn2就停在第三影格
if(_root.urlText.text=="http://www.xxxx.com.tw/page2/")
{
btn2.gotoAndStop(3);
}
}

2009年10月4日 星期日

zen cart上加入flash header的方法

1.先把flash檔案上傳至自己模板的空間,例如:
includes/templates/YOUR_TEMPLATE/images/flash/YOUR_HEADER.swf


2.用Dreamweaver 開新檔案,置入flash檔案,然後存檔,dreamweaver會自動詢問要不要產生swfobject.js的資料夾
跟檔案,按確定儲存。


3.把剛剛由dreamweaver得來的檔案存到自己模板內的空間,如:
includes/templates/YOUR_TEMPLTE/Scripts/swfobject.js 


4.如果先前tpl_header.php檔案沒有被修改過,那麼先複製
includes/templates/template_default/common/tpl_header.php 
這個檔案  到自己的模板資料夾內,如下
include/templates/YOUR_TEMPALTE/common/tpl_header.php


5.打開剛剛複製的tpl_header.php,然後將dreamweaver上的置入flash所需要的code拷貝到適當位置(例如/將code寫在branding display內),如下:


<!--bof-flash_head display-->
<div style="float:left">
<script src="includes/templates/btp/Scripts/swfobject_modified.js" type="text/javascript"></script>
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="680" height="250">
      <param name="movie" value="includes/templates/btp/images/swf/header680x250.swf" />
      <param name="quality" value="high" />
      <param name="wmode" value="opaque" />
      <param name="swfversion" value="6.0.65.0" />
      <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don¡¦t want users to see the prompt. -->
      <param name="expressinstall" value="includes/templates/btp/Scripts/expressInstall.swf" />
      <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="includes/templates/btp/images/header680x250.swf" width="680" height="250">
        <!--<![endif]-->
        <param name="quality" value="high" />
        <param name="wmode" value="opaque" />
        <param name="swfversion" value="6.0.65.0" />
        <param name="expressinstall" value="Scripts/expressInstall.swf" />
        <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
        <div>
          <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
          <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p>
        </div>
        <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
</div>
<!--eof-flash_head display-->



6.修改code內的檔案指向,讓他們指向swf檔案以及Scripts在自定模板資料夾內的位置。



======= END =======