2018年3月11日 星期日

沒有執行自動安裝的功能


  1. 空白模組,複製開發案子,但模組執行安裝,一直沒有出「自動安裝的功能」
  2. 結果是「xoops_version.php」

    //---模組自動功能---//
    // $modversion['onInstall'] = "include/onInstall.php";
    // $modversion['onUpdate'] = "include/onUpdate.php";
    // $modversion['onUninstall'] = "include/onUninstall.php";

    這裡的檔名,沒有對應到,include/ 底下的檔名
    已修正
  3. 若有執行成功,則會出現

2018年2月9日 星期五

$xoopsModule模組物件

$xoopsModule模組物件
$xoopsModule->mid() 取得模組代號
$xoopsModule->dirname() 取得模組目錄名稱
$xoopsModule->name() 取得模組名稱
$xoopsModule->getInfo($name=null) 取得模組所有訊息,是個陣列
在這裡你一樣可以用$xoopsModule->getVar('mid')的方式取得存在的相關資料,mid可以換成你想要取得的資料,如
$xoopsModule->getVar('isactive') 判斷模組是否啟用
取得目前的所有模組
$module_handler = & xoops_gethandler('module');
$modules=$module_handler->getList();
根據目錄名稱顯示模組資訊
$module_handler = & xoops_gethandler('module');
$module=$module_handler->getByDirName($dirname);

//判斷是否為管理員
if ($xoopsUser) {
$isAdmin = $xoopsUser->isAdmin($module_id);
}

2013年12月18日 星期三

ugm_contact_us 20131218

【關於 ugm_contact_us 聯絡我們 2.0】

 1.後台界面全面重寫,套入BootStrap界面
 2.增加「聯絡單位」
 3.改變mail通知方式(使用xoops內建的xoopsMailer物件)、
 4.加入xoops 「Token」安全機制及使用xoops內建圖型驗證、



【關於 ugm_contact_us 聯絡我們

這是一個小型的模組,主要用來與訪客聯絡事誼。
它是小弟我的第一個開發的模組,架構是用tad老師的「XOOPS 模組製造機」所產生。
它也可以用來當做小型的購物車,
範例網站:新享城鵝肉店

【更新資訊】

ugm_contact_us 2.0 版更新項目(2013-12-18 釋出)
  1. 增加「聯絡單位」,可以設定多個管理員,每一個聯絡單位,可以設定多個收信信箱
  2. 寄信工具使用使用xoops內建的xoopsMailer物件,只要xoops可以寄信,本模組亦可。
  3. 全面導入BoootStrap

【下載檔案】

ugm_contact_us 2.0模組 2.0 正式版(2013-12-18)(需搭配 Tad Tools 1.18 以上版本)

【環境需求】

  1. XOOPS 2.0.x~2.5.x 都可安裝
  2. PHP 5 以上
  3. 需要 Tad Tools 工具包

【安裝方法】

  1. 將新模組解壓,把ugm_contact_us 目錄上傳到modules下。
  2. 需搭配 Tad Tools工具包詳細安裝方法請按此連結
  3. 進入後台「模組→系統」進行模組安裝。

【更新方法】

  1. 更新時,請先登入,並進到「模組管理」畫面,以便上傳完後,可以立即進行更新動作。
  2. 將新模組解壓,把ugm_contact_us 目錄上傳到modules下,直接覆蓋即可(把舊的ugm_contact_us 整個刪除,上傳新的,這樣更好)。
  3. 若沒有 Tad Tools工具包 或版本太舊,則需下載安裝 Tad Tools工具包詳細安裝方法請按此連結
  4. 進入後台「模組→系統」進行模組更新。

2013年11月15日 星期五

chainedSelects 連動選單

參考網站
參考網站

連動選單

script

//---引入Js

//-----------------------------------------------------------
  
  

OP


  //連動選單
  case "get_ugm_search_class_json":
  $get_ugm_search_class_json[] = get_ugm_search_class_json($_GET['_value']);
  echo json_encode($get_ugm_search_class_json);
  exit;
  # ------------------------------------------------------------------------

  //選項
  function get_ugm_search_class_json($kind_sn="0"){
    global $xoopsDB;
    $sql = "select * from ".$xoopsDB->prefix("ugm_search_class")." where `kind_sn`='{$kind_sn}' order by `sn`";
    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
    //$opt[]="請選擇";
    while(list($sn,$kind_sn,$title)=$xoopsDB->fetchRow($result)){
      $opt[$sn]=$title;
    }
     return $opt;    
  }

html

 $main=" 

 
    "._MA_UGMSEARCH_KIND_SN."
   
      
    
  

 
 
    "._MA_UGMSEARCH_CLASS_SN."
   
      
    
  "

2013年11月3日 星期日

PHP EXCEL 匯出

設定寬度

# 設定 A 欄 寬度(一次只能一個欄)
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(0)->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension("A")->setWidth(20);

2013年11月1日 星期五

MYSQL 排名

參考來源:http://www.1keydata.com/tw/sql/sql-rank.html



SELECT a1.Name, a1.Sales, COUNT(a2.Sales) Sales_Rank 
FROM Total_Sales a1, Total_Sales a2 
WHERE a1.Sales < a2.Sales OR (a1.Sales=a2.Sales AND a1.Name = a2.Name) 
GROUP BY a1.Name, a1.Sales 
ORDER BY a1.Sales DESC, a1.Name DESC;


  # ------------------------------------------- 
 $sql="
 select a.term_class_student_sn, a.avg1, count(b.avg1) rank 
 from 
   (select sn as term_class_student_sn ,avg1
    from ".$xoopsDB->prefix("ugm_scroeqry_term_class_student")."  
    where term_class_sn='{$term_class_sn}' and enable='1') a, 
   
   (select sn as term_class_student_sn ,avg1
   from ".$xoopsDB->prefix("ugm_scroeqry_term_class_student")."  
   where term_class_sn='{$term_class_sn}' and enable='1') b 
   
   where a.avg1 < b.avg1 or (a.avg1=b.avg1 and a.term_class_student_sn = b.term_class_student_sn) 
   group by a.term_class_student_sn, a.avg1 
   order by a.avg1 desc, a.term_class_student_sn desc;
 ";die($sql);
  # ----http://www.1keydata.com/tw/sql/sql-rank.html     

2013年10月30日 星期三

編輯器_插入圖片

1.在新增文章/編輯文章,選擇「影像」工具鈕


2.如圖 



3.如圖  


4.可拖曳上傳數個圖檔,請先將檔名更換為英文檔名  


5.挑選圖片


6.如圖 



7.編輯圖片:對圖片按右鍵



8.可調整寬度、高度、邊框,靠右 ....



2013年10月19日 星期六

更新資料結構 (模組更新)

市場攤販管理,更改資料表結構
function xoops_module_update_ugm_market(&$module, $old_version) {
    GLOBAL $xoopsDB;
    if(!chk_ugm1()) go_ugm1();   # ---- 更改結構為 `e_last` -> DECIMAL( 10, 2 )
    if(!chk_ugm2()) go_ugm2();   # ---- 更改結構為 `e_now` -> DECIMAL( 10, 2 )
    return true;
}

# -------------------- ugm --------------------------------------------------*/

# ---- 更改結構 ugm_market_utility_main  `e_last`  120->130----
function chk_ugm1(){
 global $xoopsDB;
  $sql="select `e_last` from ".$xoopsDB->prefix("ugm_market_utility_main")."";
  $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
  if(mysql_field_type($result,0)=='int')return false ;
  return true;
}
function go_ugm1(){
 global $xoopsDB;
 $sql="ALTER TABLE ".$xoopsDB->prefix("ugm_market_utility_main")." CHANGE `e_last` `e_last` DECIMAL( 10, 2 ) UNSIGNED NOT NULL COMMENT '上期用電度數'";
 $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
 return true;
}
# -----------------------------------------
# ---- 更改結構 ugm_market_utility_main  `e_now`  120->130-----
function chk_ugm2(){
 global $xoopsDB;
  $sql="select `e_now` from ".$xoopsDB->prefix("ugm_market_utility_main")."";
  $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
  if(mysql_field_type($result,0)=='int')return false ;
  return true;
}
function go_ugm2(){
 global $xoopsDB;
 $sql="ALTER TABLE ".$xoopsDB->prefix("ugm_market_utility_main")." CHANGE `e_now` `e_now` DECIMAL( 10, 2 ) UNSIGNED NOT NULL COMMENT '本期用電度數'";
 $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
 return true;
}
# -----------------------------------------