2011年8月24日 星期三

解決設定開學設定後無法修改的問題


第一次使用開學設定 (X核心/班級與課程/開學設定)發生了下面的狀況
按下儲存後卻變成這樣
如果點選課程設定或是任教科目就會造成錯誤
解決方法是
點選開學設定(X核心/班級與課程/開學設定)
輸入 100學年度第1學期 按下變更學期
然後將底下的開學日改成 今天的日期(含)以前的日期
按下儲存就大功告成了。


2011年8月23日 星期二

utycx修改紀錄5

1. 初次設定開學設定,必須把設定時間包含在開學期間,否則學年度會往前跑。
2. ck_update的檢查全部刪除,原因是轉換後的資料庫是最新版的。

3. 內建的列印報表大致上沒有問題。

2011年8月22日 星期一

utycx修改紀錄4

就是如果學生的生日是空白的話,那麼資料庫裡是0000-00-
00,這是正確的,但是http://163.30.142.8/utycx/modules/x_base/tyc_reg.php 顯示出來卻是1999-11-30
為什麼會這樣顯示,我把欄位改成null就變成顯示當天的日期也不對。
後來發現是XoopsFormTextDateSelect的問題,然後改成下面的樣子就可以了

修改XoopsFormTextDateSelect
紅字部份為增加的code

class XoopsFormTextDateSelect extends XoopsFormText

{
var $_setspace;
function XoopsFormTextDateSelect($caption, $name, $size = 15, $value= 0)
{
if ($value==-1) $this->_setspace=true; else $this->_setspace=false;
$value = !is_numeric($value) ? time() : intval($value);
$this->XoopsFormText($caption, $name, $size, 25, $value);
}


function render()
{

$ele_name = $this->getName();
$ele_value = $this->getValue(false);
$jstime = formatTimestamp( $ele_value, 'F j Y, H:i:s' );
include_once XOOPS_ROOT_PATH.'/include/calendarjs.php';
if ($this->_setspace)
return "<input type='text' name='".$ele_name."' id='".$ele_name."' size='".$this->getSize()."' maxlength='".$this-<getMaxlength()."' value='".''."'".$this->getExtra()." />>input type='reset' value=' ... ' onclick='return showCalendar(\"".$ele_name."\");'>";
else
return "<input type='text' name='".$ele_name."' id='".$ele_name."' size='".$this->getSize()."' maxlength='".$this->getMaxlength()."' value='".date("Y-m-d", $ele_value)."'".$this->getExtra()." /<>input type='reset' value=' ... ' onclick='return showCalendar(\"".$ele_name."\");'>";

}

但是想一想,動到Xoops的核心class好像不好,於是創造了
class.form.php
內容是
class sxsFormTextDateSelect extends XoopsFormText

{
var $_setspace;
function sxsFormTextDateSelect($caption, $name, $size =15, $value= '')
{
if ($value=='0000-00-00') $this->_setspace=true; else $this->_setspace=false;
$value = ($value=='') ? time() : strtotime($value);
$this->XoopsFormText($caption, $name, $size, 25, $value);
}


function render()
{

$ele_name = $this->getName();
$ele_value = $this->getValue(false);
$jstime = formatTimestamp( $ele_value, 'F j Y, H:i:s' );
include_once XOOPS_ROOT_PATH.'/include/calendarjs.php';
if ($this->_setspace)
return "<input type='text' name='".$ele_name."' id='".$ele_name."' size='".$this->getSize()."' maxlength='".$this->getMaxlength()."' value='".''."'".$this->getExtra()." /><input type='reset' value=' ... ' onclick='return showCalendar(\"".$ele_name."\");'>";
else
return "<input type='text' name='".$ele_name."' id='".$ele_name."' size='".$this->getSize()."' maxlength='".$this->getMaxlength()."' value='".date("Y-m-d", $ele_value)."'".$this->getExtra()." /><input type='reset' value=' ... ' onclick='return showCalendar(\"".$ele_name."\");'>";
}
}
然後配合
$tt1 = new sxsFormTextDateSelect("date_title", 'stud_birth', 15, $stud_base['stud_birth']);
呼叫
$tt1->render()使用
就可以了
tyc_tea_class.php 也一併修改。

2011年8月19日 星期五

utycx修改紀錄3

sxsbase_class.php line 1230
//$tp_sn_arr[$i]=$rs->fields['tp_sn'];
根本沒有tp_sn這欄位

tyc_tea_class.php
連結到舊的 teacher_base.php teacher_post.php 改成 tyc_tea_base.php, tyc_tea_post.php

tyc_tea_list.php line 79 解決 無 loginname的環境
$t[$i]['uname']=@$tea_data['loginname']?$tea_data['loginname']:$tea_data['uname'];

tyc_tea_csv.php
修改匯入範例檔
修改longinname欄位的問題

header.php 修改標題為教師基本資料匯入 (language/tchinese_utf8/main.php)



tycxadmin模組

xls.php沒複製到,已加入了
教師新增和教師列表的修正
add_teacher.php
修正 不存在 "教師" 這個群組時的錯誤
teacher_list.php
修正tyc_tea_base和tyc_tea_post的連結



2011年8月18日 星期四

utycx 修改紀錄2

xoops2.4.5 的 langauge/tchinese-utf8/loggor.php 有些翻譯不好,有些有漏掉
define('_LOGGER_QUERIES', "查詢");
define('_LOGGER_DEPRECATED', "不適用");

這是靠
find . -name "*.php" | xargs grep '問題'
找到的

index.php 加上
if (!isset($_GET['act'])) $guestView=1; else $guestView=0;
header.php 加上
if(!$xoopsUser && !$guestView ) redirect_header(XOOPS_URL,3,_NOPERM);
讓x核心模組變成可起始模組,但無帳號者(guest)僅能看到模組的圖示,點選後呈現無權限。

school.php
修正$_POST[get]的錯誤,刪除setcookie四項

admin/tyc_usr_mag.php
刪掉 loginname相關的部份,把uname轉成帳號,減去1欄

tyc_tea_base.php
把 loginname的部份 全部轉移到 uname

全部模組都上傳了

在xoops2.4.5裡,這個程式碼可以加入jquery,~為xoops的網址,即是XOOPS_URL


運用在 sxs_interface則是
(default)
$xoopsTpl->assign('xoops_module_header', str_replace('~',XOOPS_URL,'<script src="~/browse.php?Frameworks/jquery/jquery.js" type="text/javascript"></script>'));

(user)
$all.= str_replace('~',XOOPS_URL,'<script src="~/browse.php?Frameworks/jquery/jquery.js" type="text/javascript"></script>');

utycx修改紀錄

x_base
仍然用convertz去轉換,language的部份還是把tchinese改成tchinese_utf8

刪除惱人的CVS
tree -dfi | grep "CVS" | xargs -i rm -f -r {}

把database_update的資料規零
刪掉 admin/datebase_update.php.inc 的內容
刪掉 sql/mysql.sql 裡 insert 列中 包含 data_base_update的

修正language中重複的

修改 sxsbase.php
包括第3列 tchinese->tchinese_utf8
include_once(XOOPS_ROOT_PATH."/modules/x_base/language/tchinese_utf8/main.php");

23列
去掉建構函式的 &

許多列的無預設值或index者加上@,抑制錯誤不輸出

修改 admin/database_update.php
增加56列
$main = 'UTF-8 basic 版';

修改 admin/tw_field.php
數個尚未初始化加上@ 抑制錯誤

修改 admin/menu.php 並增加圖示
$adminmenu[3]['title'] = _MI_SXS_MENU3;
$adminmenu[3]['link'] = "admin/update_database.php";
$adminmenu[3]['icon'] = "admin/images/update_database.png";