歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 29, 2024, 06:56:23 下午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  外掛程式  |  自己寫的自動播放相簿程式->為什麼隔一段時間就沒有作用了?? « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 自己寫的自動播放相簿程式->為什麼隔一段時間就沒有作用了??  (閱讀 24677 次)
pan
新手見習
*
文章: 15


檢視個人資料
« 於: 七月 13, 2007, 10:41:46 上午 »

 :-S這個問題真是讓我找了好久
我曾經在論壇裡請問大家該怎麼自己寫相簿播放程式
請看http://forum.lifetype.org.tw/index.php?topic=3650.0
公司的blog在http://blog.coa.gov.tw/index.php?blogId=4&op=Template&show=autoalbums
就在最近同事向我反應說相簿都不動了
所以我找來找去~突然發現!!相簿播放程式是沒問題的,可是~~
當我把Templates改一個名,然後再把播放程式的檔名也換一個名字,然後重新上傳
就這樣兩個動作…它就又變正常了

所以,請問各位,為什麼會這樣呀?
是我們公司主機的問題嗎?但我傳別的檔案都不會這樣呀?
請大家幫幫我,謝謝大家
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 七月 13, 2007, 11:07:24 上午 »

你如果沒辦法把你寫的程式放上來,讓我們重製你的問題,這樣實在很難猜。

Mark
已記錄

pan
新手見習
*
文章: 15


檢視個人資料
« 回覆文章 #2 於: 七月 16, 2007, 10:33:16 上午 »

Mark謝謝你
我的程式結構如下
再麻煩大家了

一、autoablums.template
{include file="$blogtemplate/header.template"}
<div id="container">
{include_php file="autoalbums.php"}
</div>
{include file="$blogtemplate/footer.template"}


二、autoalbums.php(相片資料程式)

<?php
//--取得皆為第一層的主目錄
$selectOptions = "";
$strSQL = "select * from blog_gallery_albums where owner_id='".$_REQUEST['blogId']."' and parent_id='0' and show_album='1'";
$sql_result = mysql_query($strSQL);
while ($row = mysql_fetch_array($sql_result)) {
       //echo $row["id"] . "<hr>";
       $selectOptions = setSelectOptions($selectOptions, $row["id"], $row["name"]);
       $selectOptions = getDetailDocument($row["id"],' ',$selectOptions);
}


//--遞迴function
function getDetailDocument($main_id,$underline,$selectOptions){
     $strSQL = "select * from blog_gallery_albums t where t.parent_id='$main_id'";
     $sql_result = mysql_query($strSQL);
     while ($row = mysql_fetch_array($sql_result)) {
          $id = $row["id"];
            $temp =  $underline . $row["name"];         
            //echo $temp . "<br>";
            $selectOptions = setSelectOptions($selectOptions, $id ,$temp);
            //$underline .= '-';
            $selectOptions = getDetailDocument($row["id"],$underline,$selectOptions);
     }
     return $selectOptions;
}

//--串連所有下拉選單內的資料夾
function setSelectOptions($opt, $value ,$name){
     if ($_REQUEST['albums'] == $value)
     {
        $set = "selected";
     }else{
        $set = "";
     }
      $selectOptions = $opt. "<option value='$value' $set>$name</option>";
      return $selectOptions;
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>漂鳥相片欣賞</title>
<script language="javascript">
function changeURL(){
   var url;
   url = document.goForm.action + "&albums=" + document.goForm.albums.value;
   location.href = url;
}
</script>
</head>
<body>
<form name='goForm' action='http://blog.coa.gov.tw/index.php?blogId=4&op=Template&show=autoalbums' method='post'>
<table width="100%" border="0" cellpadding="1">
<?php    
   echo "我們的相簿 :"."<select name='albums' onchange='changeURL()'>";
   echo "<option value=''>-請選擇相簿-</option>";
   echo $selectOptions;
   echo "</select>";
      
   if ($_REQUEST['albums']) { //--選擇某相簿      
      //include('photo_auto.php');
      //echo $_REQUEST['get_albums']."<hr>";
      include('photo_auto.php');
      loadDirectIMG($_REQUEST['blogId'],$_REQUEST['albums']);
    }
?>         
</table>
</form>
</body>
</html>


三、photo_auto.php(播放程式)

<?php
//--取出圖片檔
function loadDirectIMG($owner_id, $album_id){
   $Pstr = "select * from  blog_gallery_resources where owner_id='$owner_id' and album_id='$album_id'";
   //echo $Pstr."<hr>";
   $Presult = mysql_query($Pstr);
   
   $x=0;
   while($Prow = mysql_fetch_array($Presult, MYSQL_ASSOC)) {          
      $file_len = strlen($Prow['file_name']);                     
      $start_len = $file_len - 3;
      $get_file_name = substr($Prow['file_name'],$start_len,$file_len);
      $file_name = "gallery/4/".$Prow['owner_id']."-".$Prow['id'].".".$get_file_name;
      $dec_name = ($Prow["description"]<>'')? $Prow["description"]:'未命名';
      
      $p_id[$x]   = $Prow["id"];
      $p_name[$x]   = $file_name;
      $p_description[$x] = $dec_name;
   $x++;
   }
?>


   <script language="javascript1.3" type=text/javascript src="js/photo_auto.js"></script>
   <script language="javascript1.3">
   <?
   $imgName = "";
   $imgDesc = "";
   for($i=0; $i<count($p_id); $i++){
      if($i==0){
         $imgName = $p_name[$i];
         $imgDesc = $p_description[$i];
      }else{
         $imgName = $imgName . "," . $p_name[$i];
         $imgDesc = $imgDesc . "," . $p_description[$i];
      }   
   }
   
   ?>
   
   var autoTime = 5000;      //照片替換時間(1/1000秒)
   var transNum = 23;         //預設轉換效果(0-23)
   var isReplay = 0;         //是否重覆播放(1:是,0:否)
   var msgImg = "照片欣賞";   //最先開始的標題
   //var imgName = "";
   
   
   //圖片來源(圖片與圖片間以,隔開)
   var imgSrcStr = "<?=$imgName?>";
   //圖片名稱(圖片與圖片間以,隔開)
   var imgNameStr = "<?=$imgDesc?>";
   //預設動作回應名稱(也可換成圖片路徑)
   var msgImgStr = "自動播放,播放完畢,下一張,最後一張,上一張,第一張,暫停";
   
   </script>
   
   <script>initImg();   //速度控制項</script>
   <script>setImg();   //效果控制項</script>
   <script>setAuto(); //播放控制項</script>
   
   
   <table border="0" align="center" cellpadding="0" cellspacing="0"  bordercolor="#000000" style="border-collapse:collapse;">
     <tr bgcolor="#66CC00">
      <td height="41" align="left" valign="top" bgcolor="#ffffff">
        <table border="0" cellspacing="0" cellpadding="0">
        <tr>
         <td height="34"><a href="javascript:void(0);" onClick="setAuto();"><img src="imgs/album/auto.png" alt="自動播放" border="0"></a></td>
         <td><a href="javascript:void(0);" onClick="backImg();"><img src="imgs/album/back.png" alt="上一張" border="0"></a></td>
         <td><a href="javascript:void(0);" onClick="stopImg();"><img src="imgs/album/stop.png" alt="暫停" border="0"></a></td>
         <td><a href="javascript:void(0);" onClick="nextImg();"><img src="imgs/album/next.png" alt="下一張" border="0"></a></td>
         <td>
      <script>setSpeedOpt();   //速度控制項</script>
      <script>setTransOpt();   //效果控制項</script>
      <script>setReplayOpt(); //播放控制項</script></td>
        </tr>   
      </table>   </td>
     </tr>
     <tr bgcolor="#ffffff">
      <td align="center">
      <img src="<?=$p_name[0]?>" name="myImageZZ" STYLE="filter:revealtrans(duration=1)" onload="Javascript:resizeImage(this)" >
   
     </tr>
     <tr bgcolor="#66CC00">
      <td align="center" bgcolor="#ffffff"><div id="myImageTitle"></div></td>
     </tr>
      
   </table>

<?
}
?>
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 七月 17, 2007, 12:29:54 上午 »

以你的程式來看,應該不會有你說的相簿不能動的問題啊!因為你只是很單純的把照片取出來,然後組成 Javascript,最後秀在 sidebar 上。

因為你也不是透過 LifeType 來取的相簿的資訊,所以也不應該會有 Object Cache 的問題。

唯一可能會有的問題是, lifetype 會作 page cache。

你在相簿不能動的時候,有看到任何 javascript 錯誤嗎?

Mark
已記錄

pan
新手見習
*
文章: 15


檢視個人資料
« 回覆文章 #4 於: 七月 19, 2007, 08:19:17 上午 »

Mark
很謝謝你費心看我的程式
就你講的javascript的錯誤訊息
我確認就相簿播放這段javascript是沒有問題的
不過我的blog在一開始就有這個javascript的錯誤(橘色字部份)
但我覺得似乎不影響整個blog的運作
因為目前就只有我自己寫的這個功能不能運作而己

警告: 應該要有特性 (property) 的結束值但卻出現了「0px」。  分析特性「border」的值時發生錯誤。  中斷宣告。
原始檔: http://blog.coa.gov.tw/templates/3-column-liquid/style_default.css
行: 2


Mark我請教你,你說的page cache會有什麼情形嗎?
那我又應該去那裡找這個page cache呢?
先謝謝你了 微笑
已記錄
jase
新手見習
*
文章: 32



檢視個人資料 個人網站
« 回覆文章 #5 於: 七月 19, 2007, 10:09:44 上午 »



二、autoalbums.php(相片資料程式)

<form name='goForm' action='http://blog.coa.gov.tw/index.php?blogId=4&op=Template&show=autoalbums' method='post'>
都是在 blogId=4 的部落格下的相簿 ?

三、photo_auto.php(播放程式)

      $file_name = "gallery/4/".$Prow['owner_id']."-".$Prow['id'].".".$get_file_name;
相簿路徑都在 gallery/4/ ?

已記錄
pan
新手見習
*
文章: 15


檢視個人資料
« 回覆文章 #6 於: 七月 19, 2007, 02:45:40 下午 »

jase
你提的這兩個問題
我有確認一次
都是對的

請問你還有沒有覺得那些是我沒注意到的
謝謝你
已記錄
jase
新手見習
*
文章: 32



檢視個人資料 個人網站
« 回覆文章 #7 於: 七月 19, 2007, 11:05:21 下午 »



二、autoalbums.php(相片資料程式)


   if ($_REQUEST['albums']) { //--選擇某相簿      
      //include('photo_auto.php');
      //echo $_REQUEST['get_albums']."<hr>";
      include('photo_auto.php');
      loadDirectIMG($_REQUEST['blogId'],$_REQUEST['albums']);
    }

三、photo_auto.php(播放程式)
   $Pstr = "select * from  blog_gallery_resources where owner_id='$owner_id' and album_id='$album_id'";


1. 我看頁面原始碼看不到 photo_auto.php 產生出來的 javascript,
要不要試試看改成  $Pstr = "select * from  blog_gallery_resources where owner_id='".$owner_id."' and album_id='".$album_id."' ";

2. 看要不要把 photo_auto.js 也貼出來看看

3. 我也覺得應該不是 page cache 的關係,不過妳可以清看看 lifetype/tmp/ 下的檔案,再試試看..

4. 要注意一下相簿跟相片的中文檔名或是檔案路徑抓不到檔案都會會造成 javascript error,
妳要在 double check 一下。


已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #8 於: 七月 20, 2007, 02:36:08 上午 »

我會說是 page cache 的原因是因為他這一句話:
引用
當我把Templates改一個名,然後再把播放程式的檔名也換一個名字,然後重新上傳
就這樣兩個動作…它就又變正常了

超詭異的動作。

Mark
已記錄

jase
新手見習
*
文章: 32



檢視個人資料 個人網站
« 回覆文章 #9 於: 七月 20, 2007, 10:14:35 上午 »

我會說是 page cache 的原因是因為他這一句話:
引用
當我把Templates改一個名,然後再把播放程式的檔名也換一個名字,然後重新上傳
就這樣兩個動作…它就又變正常了

超詭異的動作。

Mark

依照現有資訊看起來,他還是有透過 lt 的架構到 autoablums.template。
不過不知道有沒有在 view 裡面做了什麼,所以可能還是有 page cache。

但是他主要的功能都還是 javascript,所以還是要看他用 php 抓資料庫的資料出來的訊息有沒有影響到 javascript。
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #10 於: 七月 20, 2007, 10:42:05 上午 »

我們少問了一個問題,什麼是『像簿不動了?』?是?

1. 照片連秀都沒有秀
2. 第一張照片有秀出來,沒有輪撥
3. 照片輪撥一次後,就沒有輪撥?

Pan 你要不要把問題講清楚一點。
已記錄

pan
新手見習
*
文章: 15


檢視個人資料
« 回覆文章 #11 於: 七月 20, 2007, 10:59:48 上午 »

很謝謝大家,不過公司的blog在換主機
呀~~我暫時沒辦法測試兩位講的這些方法了

我先說說我所謂"不動"的情況
不正常的話:
就是選擇下拉選單後,有去執行form,而且url的串接值也都在,且正確
例如:http://blog.coa.gov.tw/index.php?blogId=4&op=Template&show=autoalbums&albums=56
但是,我的下拉選單就是沒有定住,而且播放器也出不來了


如果是在正常狀態下:
當我選擇下拉選單時,就會送值(相簿的id)出去,我是用串值在url的方式送出
然後,正確執行的話,應該在下拉選單的文字就會出現我剛剛選擇的那一本相簿的名稱
並且播放器就會開始將秀出第一張照片,然後你就可以做上一張、下一張、自動播放這些動作
以上都是正常的運作


這就是我覺得奇怪的原因,為什麼url的值有送出去,但它就是不執行
另外,我真的很確定,當我把Templates改了檔名,再把播放程式的檔名也換檔名,然後重新上傳
就這樣兩個動作…它就又變正常了

真的請大家幫我想想辦法~~什麼方式我都要試試看
不過…居然在這個時候要換主機~~ X)




已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  外掛程式  |  自己寫的自動播放相簿程式->為什麼隔一段時間就沒有作用了?? « 上篇主題 下篇主題 »
    前往: