2010年6月29日 星期二

把xoops的廣告banner任意放在網頁上的區塊

來源網站:http://www.xoops.org/modules/news/article.php?storyid=5095

----------------------------------------------------------------------------------------------------------
以下的方法可以讓你把任何你想要的banner放在你想要的地方,
有三種選擇的方式可以使用:
Step 1.
找到xoops安裝路徑
xoops root_directory/include/
然後打開 functions.php檔案
在檔案的最後結尾?>符號前輸入以下語法:
<code>
function getbanner_from_id_banner($banner_id)
###### Hack by www.stefanosilvestrini.com ###### global $xoopsConfig$db =& Database::getInstance(); $bresult $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE bid = "$banner_id);
list (
$numrows) = $db->fetchRow($bresult);
if ( 
$numrows ) { $numrows $numrows-1mt_srand((double)microtime()*1000000); $bannum mt_rand(0$numrows);
} else { 
$bannum 0;
}
if ( 
$numrows ) { $bresult $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE bid = "$banner_id1$bannum);
list (
$bid$cid$imptotal$impmade$clicks$imageurl$clickurl$date$htmlbanner$htmlcode) = $db->fetchRow($bresult);
if (
$xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) { // EMPTY } else { $db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u"$db->prefix("banner"), $bid));
/* Check if this impression is the last one and print the banner */ if ( $imptotal == $impmade ) { $newid $db->genId($db->prefix("bannerfinish")."_bid_seq"); $sql sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)"$db->prefix("bannerfinish"), $newid$cid$impmade$clicks$datetime()); $db->queryF($sql); $db->queryF(sprintf("DELETE FROM %s WHERE bid = %u"$db->prefix("banner"), $bid));
}
if (
$htmlbanner){ $bannerobject $htmlcode;
}else{ 
$bannerobject '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" rel="nofollow">';
if (
stristr($imageurl'.swf')) { $bannerobject $bannerobject .'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'.'<param name="movie" value="'.$imageurl.'"></param>' .'<param name="quality" value="high"></param>' .'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">' .'</embed>' .'</object>';
} else { 
$bannerobject $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject $bannerobject.'</a></div>';
}
return 
$bannerobject;
}
}

function 
getbanner_from_id_client($client_id)
###### Hack by www.stefanosilvestrini.com ###### global $xoopsConfig$db =& Database::getInstance(); $bresult $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE cid = "$client_id);
list (
$numrows) = $db->fetchRow($bresult);
if ( 
$numrows ) { $numrows $numrows-1mt_srand((double)microtime()*1000000); $bannum mt_rand(0$numrows);
} else { 
$bannum 0;
}
if ( 
$numrows ) { $bresult $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE cid = "$client_id ." ORDER BY rand()"1$bannum);
list (
$bid$cid$imptotal$impmade$clicks$imageurl$clickurl$date$htmlbanner$htmlcode) = $db->fetchRow($bresult);
if (
$xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) { // EMPTY } else { $db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u"$db->prefix("banner"), $bid));
/* Check if this impression is the last one and print the banner */ if ( $imptotal == $impmade ) { $newid $db->genId($db->prefix("bannerfinish")."_bid_seq"); $sql sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)"$db->prefix("bannerfinish"), $newid$cid$impmade$clicks$datetime()); $db->queryF($sql); $db->queryF(sprintf("DELETE FROM %s WHERE bid = %u"$db->prefix("banner"), $bid));
}
if (
$htmlbanner){ $bannerobject $htmlcode;
}else{ 
$bannerobject '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" rel="nofollow">';
if (
stristr($imageurl'.swf')) { $bannerobject $bannerobject .'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'.'<param name="movie" value="'.$imageurl.'"></param>' .'<param name="quality" value="high"></param>' .'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">' .'</embed>' .'</object>';
} else { 
$bannerobject $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject $bannerobject.'</a></div>';
}
return 
$bannerobject;
}
}

</code>
然後把檔案儲存關閉。


以下有三種簡單的方法可以選擇:
方法一:
在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo xoops_getbanner();貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量)

方法二:

在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo getbanner_from_id_banner(ID_BANNER);貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量),ID_BANNER就是廣告的ID號碼,
用,用這個語法,可以新增不同的區塊,然後再不同的區塊,顯示不同的廣告

方法三:
在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo getbanner_from_id_client(ID_CLIENT);貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量),ID_CLIENT就是廣告的客戶名稱,如果該客戶有10個廣告,那麼區塊就只會針對這個客戶的10個廣告隨機輪播。

用css製作表格隔行換底色的方法

方法ㄧ:用CSS快速製作Table表格隔行換底色的方法(IE7、8 不支援) CSS部分 html部分 上述的方法可以快速的用CSS達成表格隔行換色,但是....IE7、8 就不支援,所以請見下方方法二 方法二:透過jquery達成 在html的內加入 //jquery js檔案的位置 這樣文件內加入的表格的行列背景色就會自動轉換

用css的span標籤做點選

快來<span onClick=alert('跳出的警告視窗!')>按我</span>吧!

測試:
[按我]

應該是onClick加在table裡面也可以吧!



2010年6月28日 星期一

界面設計概念

界面設計最主要的就是「可用性 (Usability)」,原則如下:
a. 清楚性:i.界面文字、圖示、語音、影像,ii.功能列示,iii.隱喻。
b. 容易學習:通常包括熟悉度、單純性、一致性、容易預測等等特質。
c. 直接操弄:操作界面的直覺性很重要。
d. 操作簡單
e. 多樣性、完善之功能
f. 健全之操作輔助,充足的操作範本
g. 容易記憶或是不須記憶
h. 使用者設定 (Configurability):容許使用者修改部份設定以儘量符合使用者個人的心智模型。
i. 使用者友善性:以使用者的邏輯來思考操作方法。
j. 控制性
k. 資料安全性
l. 容許使用者犯錯
m. 界面彈性與適應性
n. 高效率
o. 低錯誤
p. 整體美感
q. 透通性 (transparency):界面本身的表現不應該讓使用者由他的工作內容分心來注意,界面是讓使用者完全投入在他要完成的工作上。

舉些實際的界面例子,
1)電腦軟體操作,鍵盤和滑鼠,如WORD軟體上的所有圖形,和整體佈置安排。
2)手機,按鍵,如手機內的電話簿,鈴聲設定.....
3)汽車的儀表面板、開車程序.....

產品<=軟體程式、操作程序<=界面設計=>人的眼、耳、鼻、舌、身體=>閱讀、運動、心理滿足