顯示具有 xoops學習 標籤的文章。 顯示所有文章
顯示具有 xoops學習 標籤的文章。 顯示所有文章

2010年9月30日 星期四

修正xoops內預設style.css的table td對網頁版面的影響

在fckeditor內編輯好的文章表格跟文字只要儲存後,文章的呈現就會跟編輯時不同,例如文字的垂直對齊原本在編輯時是置中對齊的,但是儲存後卻會變成向上對齊(valign="top"),這是因為在xoops內預設的style.css第4-5行:table td {padding: 0px; vertical-align: top; }影響了最後呈現的版面。

修正的方法是把這句標注起來使其無法執行,但是標注後會發現,左右兩側的欄位就無法一直向上對齊了!這是因為vertical-align: top也被取消了,解決方法是,在#centercolumn 、#leftcolumn、#rightcolumn後面的描述再加上vertical-align: top; 就可以囉~

2010年9月29日 星期三

解決表單form高度問題

在製作表單時,當要插入表單于表格中時往往會出現表格的高度變大,並不是我們想要的效果,這類出問題出現的原因是<form>標籤出現在了<table>的前面,如下:
程式碼<form name="test" method="post">
<table>
<tr>
<td>
</td>
</tr>
</table>
</form>

解決的方法很簡單:即將<form>放在<table>與<tr>之間,如下:
程式碼<table>
<form name="test" method="post">
<tr>
<td>
</td>
</tr>
</form>
</table>

或者

<table>
<tr>
<form name="test" method="post">
<td>
</td>
</form>
</tr>
</table>

問題是解決了,但同時也帶來其他的問題.那就是當我們用MS的Webdesigner之類的工具再次打開這頁面時,提示標籤錯誤,這類軟體要求<form>標籤要放在<table>的外面...

放在外面就會出現高度增加的情況,反正IE和FF都能正常解釋,所以不用管了,就放在裏面好了.

不過,這不代表問題從根本上得到解決,畢竟這樣的代碼是通過不了驗證的,也就是說不是符合標準的,當w3c不讓我們用table來排版的時候,就需要用其他的方法.讓我們來看看從根本上解決問題的方法:

程式碼

<style>
   form{margin:0}
   </style>

==========================================
收錄自http://hi.baidu.com/yytao/blog/item/3ac6b1de570a2851cdbf1a06.html

2010年9月28日 星期二

解決tadnews模組內fckeditor編輯完表格後無法出現邊框的問題

在xoops下使用tadnews模組內的文章編輯器常會發生從word貼上表格,但是前台無法出現表格框的問題
這通常是預設的style.css裡面的開頭第四行

table td {padding: 0; border-width: 0; vertical-align: top; }

把上面的border-width: 0;刪除或是數值改為1即可

2010年7月20日 星期二

修改tadnews模組的新聞消息顯示欄位排列方式

1.點入文章後的文章列表欄位排列方式原設定如下:
要把排列的欄位左右調換,如所屬分類跟文章標題對調,先找到 主目錄/modules/tadnews/function.php檔案

開啓後修改第297~298行的位置
$all_news=div_3d("","$show_admin_tool_title$all_news
"._MA_TADNEW_NEWS_CATE.""._MA_TADNEW_NEWS_TITLE.""._MD_TADNEW_POSTER.""._MA_TADNEW_START_DATE.""._MD_TADNEW_HOT."
","corners","width:100%");
}
把"._MA_TADNEW_NEWS_CATE." 這些東西前後順序對換就可以調換欄位上的title部份


內容的部份則是修改第263行的位置,把$post_date這些在跟內的東西前後調換,
就可以讓內容的左右也調換了

2010年7月6日 星期二

拿掉tadnews本站最新消息內的「上幾則」、「下幾則」按鈕

進入網站根目錄,並且打開/modules/tadnews/blocks/tadnews_content_block.php

修改第164~166行的
$block.="</table>
<input type='button' style='float:right;' onClick='view_content(1)' value='".sprintf(_TADNEWS_BLOCK_NEXT,$num)."'></div>";
}


把<input type='button' style='float:right;' onClick='view_content(1)' value='".sprintf(_TADNEWS_BLOCK_NEXT,$num)."'>
刪除即可。

xoops的萬用嵌入網頁程式instpage(修正版)

instpage 是一個可以把網路上的任一網頁或網站嵌入您的XOOPS網站中的工具,只要把他解壓縮,並放到XOOPS2的根目錄底下,然後利用瀏覽器執行:「 http://網址/instpage.php 」即可開始設定嵌入網頁。
檔案下載:
instpage(修正版)

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 > 1 ) { $numrows = $numrows-1; mt_srand((double)microtime()*1000000); $bannum = mt_rand(0, $numrows);
} else { 
$bannum = 0;
}
if ( 
$numrows > 0 ) { $bresult = $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE bid = ". $banner_id, 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, $date, time()); $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 > 1 ) { $numrows = $numrows-1; mt_srand((double)microtime()*1000000); $bannum = mt_rand(0, $numrows);
} else { 
$bannum = 0;
}
if ( 
$numrows > 0 ) { $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, $date, time()); $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個廣告隨機輪播。

xoops製作的參考網站

國外參考網站:
http://www.stefanosilvestrini.com/stefanosilvestrini/

xoops架站教學錄影:
http://t167.lfes.tpc.edu.tw/xoops22/t167/xoops207/list.htm

xoops架站步驟與技巧:
http://atn163.com.tw/learn/viewforum.php?f=24

2010年6月24日 星期四

xoops instpage.php連結外部網頁的使用設定

自訂區塊及 instpage.php 萬用插入頁面
將 instpage.php 拷貝到 XOOPS 的根目錄下
1.在[管理區>系統>區塊]
-->新增一個區塊並 設定區塊標題
-->設定顯示於 「所有頁面」
2.使用瀏覽器找到要嵌入網頁的實際網址
拷貝。
3.再輸入 http://網址/instpage.php插入網頁連結工具-->輸入連結名稱及插入連結網址。因為是採用 iframe 的方式嵌入,所以請依嵌入網頁高度設定適當的「高度參數」!
再按下[產生連結]。拷貝產生的程式碼,貼至之前建立的自訂區塊內容中。
----------
補充說明:
新增自訂區塊後,到 [ 群組 設定] 將匿名使用者加入使用的權限

拿掉xoops中央區塊的灰色框框

xoops中央區塊的灰色框框,不是由css控制,而是因為在themes內的theme_blockcenter_c.html內
加上了html的<fieldset>標簽,只要將此標簽加上屬性(藍色文字),把border設為0;padding也設定為0,灰色的框框也就不見了。

<fieldset>與<legend>標籤是搭配使用的,目的是表單分類用。一組<fieldset>可使用一次<legend>

<div style="padding: 1px;">
    <fieldset style="border:0; padding:0;>
        <{if $block.title}>
            <legend class="blockTitle"><{$block.title}></legend>
        <{/if}>
        <div class="blockContent"><{$block.content}></div>
    </fieldset>
</div>

2010年3月29日 星期一

xoopspartners模組版面修改

以下檔案可以修改模組的版面

modules/xoopspartners/templates/xoopspartners_index.html

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

2009年9月8日 星期二

xoops2.3.3修改會員選單內的項目


登入管理員後台,在系統管理的區塊管理內選擇編輯“會員選單“
修改內部各個選單的語法即可