From: <ce...@us...> - 2013-06-22 17:19:32
|
Revision: 11744 http://sourceforge.net/p/xoops/svn/11744 Author: cesag Date: 2013-06-22 17:19:28 +0000 (Sat, 22 Jun 2013) Log Message: ----------- Moving genericdbmodule, GoogleAJAXSearch and googlemaps non english files to XoopsLanguages folder. Added Paths: ----------- XoopsLanguages/french/modules/googlemaps/ XoopsLanguages/french/modules/googlemaps/googlemaps 0.90/ XoopsLanguages/french/modules/googlemaps/googlemaps 0.90/googlemaps/ XoopsLanguages/french/modules/googlemaps/googlemaps 0.90/googlemaps/language/ XoopsLanguages/french/modules/googlemaps/googlemaps 0.90/googlemaps/language/french/ XoopsLanguages/german/modules/googlemaps/ XoopsLanguages/german/modules/googlemaps/googlemaps 0.90/ XoopsLanguages/german/modules/googlemaps/googlemaps 0.90/googlemaps/ XoopsLanguages/german/modules/googlemaps/googlemaps 0.90/googlemaps/language/ XoopsLanguages/german/modules/googlemaps/googlemaps 0.90/googlemaps/language/german/ XoopsLanguages/italian/modules/GoogleAJAXSearch/ XoopsLanguages/italian/modules/GoogleAJAXSearch/GoogleAJAXSearch 1.05/ XoopsLanguages/italian/modules/GoogleAJAXSearch/GoogleAJAXSearch 1.05/GoogleAJAXSearch/ XoopsLanguages/italian/modules/GoogleAJAXSearch/GoogleAJAXSearch 1.05/GoogleAJAXSearch/language/ XoopsLanguages/italian/modules/GoogleAJAXSearch/GoogleAJAXSearch 1.05/GoogleAJAXSearch/language/italian/ XoopsLanguages/japanese/modules/genericdbmodule/ XoopsLanguages/japanese/modules/genericdbmodule/genericdbmodule 0.5/ XoopsLanguages/japanese/modules/genericdbmodule/genericdbmodule 0.5/genericdbmodule/ XoopsLanguages/japanese/modules/genericdbmodule/genericdbmodule 0.5/genericdbmodule/language/ XoopsLanguages/japanese/modules/genericdbmodule/genericdbmodule 0.5/genericdbmodule/language/japanese/ XoopsLanguages/schinese/modules/googlemaps/ XoopsLanguages/schinese/modules/googlemaps/googlemaps 0.90/ XoopsLanguages/schinese/modules/googlemaps/googlemaps 0.90/googlemaps/ XoopsLanguages/schinese/modules/googlemaps/googlemaps 0.90/googlemaps/language/ XoopsLanguages/schinese/modules/googlemaps/googlemaps 0.90/googlemaps/language/schinese/ XoopsLanguages/tchinese/modules/googlemaps/ XoopsLanguages/tchinese/modules/googlemaps/googlemaps 0.90/ XoopsLanguages/tchinese/modules/googlemaps/googlemaps 0.90/googlemaps/ XoopsLanguages/tchinese/modules/googlemaps/googlemaps 0.90/googlemaps/language/ XoopsLanguages/tchinese/modules/googlemaps/googlemaps 0.90/googlemaps/language/tchinese/ XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/ XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/index.html XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/main.php XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/modinfo.php XoopsModules/genericdbmodule/trunk/genericdbmodule/.htaccess XoopsModules/genericdbmodule/trunk/genericdbmodule/add.php XoopsModules/genericdbmodule/trunk/genericdbmodule/admin/ XoopsModules/genericdbmodule/trunk/genericdbmodule/blocks/ XoopsModules/genericdbmodule/trunk/genericdbmodule/class/ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_delete.php XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_edit.php XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_new.php XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_post.php XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_reply.php XoopsModules/genericdbmodule/trunk/genericdbmodule/delete.php XoopsModules/genericdbmodule/trunk/genericdbmodule/detail.php XoopsModules/genericdbmodule/trunk/genericdbmodule/docs/ XoopsModules/genericdbmodule/trunk/genericdbmodule/download.php XoopsModules/genericdbmodule/trunk/genericdbmodule/his_detail.php XoopsModules/genericdbmodule/trunk/genericdbmodule/his_search.php XoopsModules/genericdbmodule/trunk/genericdbmodule/images/ XoopsModules/genericdbmodule/trunk/genericdbmodule/include/ XoopsModules/genericdbmodule/trunk/genericdbmodule/index.php XoopsModules/genericdbmodule/trunk/genericdbmodule/js/ XoopsModules/genericdbmodule/trunk/genericdbmodule/language/ XoopsModules/genericdbmodule/trunk/genericdbmodule/notification_update.php XoopsModules/genericdbmodule/trunk/genericdbmodule/sql/ XoopsModules/genericdbmodule/trunk/genericdbmodule/templates/ XoopsModules/genericdbmodule/trunk/genericdbmodule/update.php XoopsModules/genericdbmodule/trunk/genericdbmodule/xoops_version.php Removed Paths: ------------- XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/italian/ XoopsModules/genericdbmodule/trunk/genericdbmodule/language/ja_utf8/ XoopsModules/genericdbmodule/trunk/genericdbmodule/language/japanese/ XoopsModules/genericdbmodule/trunk/xxxxx/ XoopsModules/googlemaps/trunk/googlemaps/language/french/ XoopsModules/googlemaps/trunk/googlemaps/language/german/ XoopsModules/googlemaps/trunk/googlemaps/language/schinese/ XoopsModules/googlemaps/trunk/googlemaps/language/tchinese/ Added: XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/index.html =================================================================== --- XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/index.html (rev 0) +++ XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/index.html 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Added: XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/main.php =================================================================== --- XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/main.php (rev 0) +++ XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/main.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,9 @@ +<?php +// +// Author: timgno +// +define('_MD_GAJAXS_TITLE','Google AJAX Search'); +define('_MD_GAJAXS_DESC','Google Search for Video, Maps, Blogs and More...'); +define('_MD_GAJAXS_LOAD','Loading...'); + +?> \ No newline at end of file Added: XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/modinfo.php =================================================================== --- XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/modinfo.php (rev 0) +++ XoopsModules/GoogleAJAXSearch/trunk/GoogleAJAXSearch/language/english/modinfo.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,10 @@ +<?php +// +// Author: timgno +// +define('_MI_GAJAXS_NAME','Google AJAX Search'); +define('_MI_GAJAXS_DESC','My Google AJAX Search API Application.'); +define('_MI_GAJAXS_GASTITLE','Preferences textbox'); +define('_MI_GAJAXS_GASDSC','You can leave default, enter another word to start in the search field or leave it blank.'); + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/.htaccess (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/.htaccess) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/.htaccess (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/.htaccess 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,3 @@ +#php_value upload_max_filesize 10M +#php_value post_max_size 10M +#php_value max_input_time 60 Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/add.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/add.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/add.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/add.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,144 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +require_once './include/common.php'; +require_once './class/token.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_add.html'; + +// \xB8\xA2\xB8¥\xC1\xA5\xA7\xA5å\xAF +if ($uid && !checkPerm($gids, $cfg_add_gids)) { + redirect_header($module_url . '/index.php', 5, getMDConst('_PERM_ERR_MSG')); +} elseif (!$uid && !$cfg_add_guest) { + redirect_header($module_url . '/index.php', 5, getMDConst('_PERM_ERR_MSG')); +} + +$op = isset($_POST['op']) ? $_POST['op'] : ''; + +$errors = array(); +$uploaded_file_defs = array(); +$upload_file_names = array(); + +// \xC5\xD0Ͽ\xBD\xE8\xCD\xFD +if ($op == 'add') { + // \xA5ȡ\xBC\xA5\xAF\xA5\xF3\xA5\xC1\xA5\xA7\xA5å\xAF + if (!XoopsMultiTokenHandler::quickValidate($dirname . '_add')) { + $errors[] = getMDConst('_TOKEN_ERR_MSG'); + } + + // \xC6\xFE\xCE\xCF\xC3ͽ\xE9\xB4\xFC\xB2\xBD + foreach ($item_defs as $item_name => $item_def) { + $$item_name = initInput($item_def, $item_name, $item_defs, $uploaded_file_defs, $errors, 'add'); + } + + // \xBD\xC5ʣ\xA5\xC1\xA5\xA7\xA5å\xAF + $dup_item_defs = getDefs($item_defs, 'duplicate'); + if (count($dup_item_defs) > 0) { + foreach ($dup_item_defs as $item_name => $item_def) { + checkDuplicate($$item_name, $item_name, $update_item_defs, $errors); + } + } + + // \xA5\xA8\xA5顼\xA4ʤ\xB7\xA4ξ\xEC\xB9硢\xC5\xD0Ͽ\xBD\xE8\xCD\xFD + if (count($errors) == 0) { + $datetime = date('Y-m-d H:i:s'); + + $insert_data_sql = "INSERT INTO $data_tbl (add_uid, add_date, "; + $insert_his_sql = "INSERT INTO $his_tbl (did, operation, update_uid, update_date, "; + foreach ($item_defs as $item_name => $item_def) { + $insert_data_sql .= $item_name . ', '; + $insert_his_sql .= $item_name . ', '; + } + $insert_data_sql = substr($insert_data_sql, 0, -2) . ") VALUES("; + $insert_his_sql = substr($insert_his_sql, 0, -2) . ") VALUES("; + $insert_data_sql .= "$uid, '$datetime', "; + $insert_his_sql .= "%d, 'add', $uid, '$datetime', "; + foreach ($item_defs as $item_name => $item_def) { + if (($item_def['type'] == 'cbox' || $item_def['type'] == 'mselect') && is_array($$item_name)) { + $insert_data_sql .= "'" . addslashes(array2string($$item_name)) . "', "; + $insert_his_sql .= "'" . addslashes(array2string($$item_name)) . "', "; + } else { + if ($$item_name === '') { + $insert_data_sql .= 'NULL, '; + $insert_his_sql .= 'NULL, '; + } else { + $insert_data_sql .= "'" . addslashes($$item_name) . "', "; + $insert_his_sql .= "'" . addslashes($$item_name) . "', "; + } + } + } + $insert_data_sql = substr($insert_data_sql, 0, -2) . ")"; + $insert_his_sql = substr($insert_his_sql, 0, -2) . ")"; + + // \xC5\xD0ϿSQL\xBD\xE8\xCD\xFD\xC0\xAE\xB8\xF9\xA4ξ\xEC\xB9\xE7 + if ($xoopsDB->query($insert_data_sql)) { + $did = $xoopsDB->getInsertId(); + + // \xB9\xB9\xBF\xB7\xCD\xFA\xCE\xF2\xC4ɲ\xC3 + $insert_his_sql = sprintf($insert_his_sql, $did); + $xoopsDB->query($insert_his_sql); + + // \xA5ե\xA1\xA5\xA4\xA5롢\xB2\xE8\xC1\x{24B248A4}\xEB\xBE\xEC\xB9\xE7 + if (count($uploaded_file_defs) > 0) { + $update_sql = "UPDATE $data_tbl SET "; + foreach ($uploaded_file_defs as $item_name => $item_def) { + $file_name = $_FILES[$item_name]['name']; + $enc_file_name = getRealFileName($did, $item_name, $file_name); + $update_sql .= "$item_name = '" . addslashes($file_name) . "', "; + if (!move_uploaded_file($_FILES[$item_name]['tmp_name'], $module_upload_dir . '/' . $enc_file_name)) { + $errors[] = sprintf(getMDConst('_FILE_TYPE_ERR_MSG'), $myts->htmlSpecialChars($_FILES[$item_name]['type']), $item_def['caption']); + $item_defs[$item_name]['error'] = '<br />' . sprintf(getMDConst('_FILE_TYPE_ERR_MSG'), $myts->htmlSpecialChars($_FILES[$item_name]['type']), $item_def['caption']); + break; + } else { + $upload_file_names[] = $enc_file_name; + if ($item_def['type'] == 'image') { + resizeImage($module_upload_dir . '/' . $enc_file_name, $item_def['max_image_size']); + } + } + } + + // \xA5ե\xA1\xA5\xA4\xA5\xEB\xB4ط\xB8\xA4ν\xE8\xCD\xFD\xA4ǥ\xA8\xA5顼\xA4ʤ\xB7\xA4ξ\xEC\xB9\xE7 + if (count($errors) == 0) { + $update_sql = substr($update_sql, 0, -2) . " WHERE did = $did"; + if (!$xoopsDB->query($update_sql)) { + $xoopsDB->query("DELETE FROM $main_tbl WHERE did = $did"); + } + } else { + // \xC5\xD0Ͽ\xBD\xE8\xCD\xFD\xBC\xBA\xC7Ԥξ\xEC\xB9硢\xA5\xA2\xA5åץ\x{D87C}\xA5ɤ\xB5\xA4줿\xA5ե\xA1\xA5\xA4\xA5\xEB\xA4\xF2\xBA\xEF\xBD\xFC + foreach ($upload_file_names as $upload_file_name) { + @unlink($module_upload_dir . '/' . $upload_file_name); + } + } + } + + // \xBEܺٲ\xE8\xCC̤إ\xEA\xA5\xC0\xA5\xA4\xA5쥯\xA5\xC8 + $extra_tags = array('DID' => $did); + $notification_handler = &xoops_gethandler('notification'); + $notification_handler->triggerEvent('global', 0, 'add', $extra_tags); + + redirect_header($module_url . '/detail.php?did=' . $did, 5, getMDConst('_ADD_MSG')); + } else { + // \xC5\xD0ϿSQL\xBD\xE8\xCD\xFD\xBC\xBA\xC7Ԥξ\xEC\xB9\xE7 + $errors[] = getMDConst('_SYSTEM_ERR_MSG'); + } + } +} else { + // \xBD\xE9\xB4\xFCɽ\xBC\xA8\xBD\xE8\xCD\xFD + foreach ($item_defs as $item_name => $item_def) { + $$item_name = $item_def['default']; + $item_defs[$item_name]['raw'] = $$item_name; + } +} + +// \xA5ȡ\xBC\xA5\xAF\xA5\xF3\xC0\xB8\xC0\xAE +$token = &XoopsMultiTokenHandler::quickCreate($dirname . '_add'); +$xoopsTpl->assign('token', $token->getHtml()); + +// \xA5ե\xA9\xA1\xBC\xA5\xE0\xC0\xB8\xC0\xAE +makeInputForms($item_defs); +$xoopsTpl->assign('item_defs', $item_defs); +$xoopsTpl->assign('errors', $errors); + +require_once XOOPS_ROOT_PATH . '/footer.php'; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_delete.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/comment_delete.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_delete.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_delete.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,6 @@ +<?php + +include '../../mainfile.php'; +include XOOPS_ROOT_PATH . '/include/comment_delete.php'; + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_edit.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/comment_edit.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_edit.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_edit.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,6 @@ +<?php + +include '../../mainfile.php'; +include XOOPS_ROOT_PATH . '/include/comment_edit.php'; + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_new.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/comment_new.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_new.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_new.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,6 @@ +<?php + +include '../../mainfile.php'; +include XOOPS_ROOT_PATH . '/include/comment_new.php'; + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_post.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/comment_post.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_post.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_post.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,6 @@ +<?php + +include '../../mainfile.php'; +include XOOPS_ROOT_PATH . '/include/comment_post.php'; + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_reply.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/comment_reply.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_reply.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/comment_reply.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,6 @@ +<?php + +include '../../mainfile.php'; +include XOOPS_ROOT_PATH . '/include/comment_reply.php'; + +?> \ No newline at end of file Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/delete.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/delete.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/delete.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/delete.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,78 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +require_once './include/common.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_delete.html'; + +$op = isset($_POST['op']) ? $_POST['op'] : ''; +$did = isset($_POST['did']) ? intval($_POST['did']) : 0; + +// ¸\xBAߥ\xC1\xA5\xA7\xA5å\xAF +$sql = "SELECT d.*, u.uname FROM $data_tbl AS d LEFT OUTER JOIN $users_tbl AS u ON d.add_uid = u.uid WHERE d.did = $did"; +$res = $xoopsDB->query($sql); +if ($xoopsDB->getRowsNum($res) == 0) { + redirect_header($module_url . '/index.php', 5, getMDConst('_NO_ERR_MSG')); +} + +// \xB8\xA2\xB8¥\xC1\xA5\xA7\xA5å\xAF +$row = $xoopsDB->fetchArray($res); +if (!checkPerm($gids, $cfg_manage_gids) && $uid != $row['add_uid']) { + redirect_header($module_url . '/index.php', 5, getMDConst('_PERM_ERR_MSG')); +} + +$errors = array(); +if ($op == 'delete') { + // \xA5ȡ\xBC\xA5\xAF\xA5\xF3\xA5\xC1\xA5\xA7\xA5å\xAF + if (!XoopsMultiTokenHandler::quickValidate($dirname . '_delete')) { + $errors[] = getMDConst('_TOKEN_ERR_MSG'); + } else { + if (!$xoopsDB->query("DELETE FROM $data_tbl WHERE did = $did")) { + $errors[] = getMDConst('_SYSTEM_ERR_MS'); + } else { + // \xB9\xB9\xBF\xB7\xCD\xFA\xCE\xF2\xC4ɲ\xC3 + $datetime = date('Y-m-d H:i:s'); + $insert_his_sql = "INSERT INTO $his_tbl (did, operation, update_uid, update_date"; + foreach ($item_defs as $item_name => $item_def) { + $insert_his_sql .= ', ' . $item_name; + } + $insert_his_sql .= ") VALUES($did, 'delete', $uid, '$datetime'"; + foreach ($item_defs as $item_name => $item_def) { + if ($row[$item_name] !== '') { + $insert_his_sql .= ", NULL"; + } else { + $insert_his_sql .= ", '" . $row[$item_name] . "'"; + } + } + $insert_his_sql .= ')'; + $xoopsDB->query($insert_his_sql); + + foreach ($item_defs as $item_name => $item_def) { + if ($item_def['type'] == 'file' || $item_def['type'] == 'image') { + @unlink($module_upload_dir . '/' . getRealFileName($did, $item_name, $row[$item_name])); + } + } + + $extra_tags = array('DID' => $did); + $notification_handler = &xoops_gethandler('notification'); + $notification_handler->triggerEvent('change', $did, 'delete', $extra_tags); + $notification_handler->unsubscribeByItem($xoopsModule->getVar('mid'), 'change', $did); + + redirect_header($module_url . '/index.php', 5, getMDConst('_DELETE_MSG')); + } + } +} else { + // ɽ\xBC\xA8\xC3ͳ\xE4\xA4\xEA\xC5\xF6\xA4\xC6 + assignDetail($row, $item_defs, $dirname); + $xoopsTpl->assign('item_defs', $item_defs); +} + +// \xA5ȡ\xBC\xA5\xAF\xA5\xF3\xC0\xB8\xC0\xAE +$token = &XoopsMultiTokenHandler::quickCreate($dirname . '_delete'); +$xoopsTpl->assign('token', $token->getHtml()); + +$xoopsTpl->assign('errors', $errors); + +require_once XOOPS_ROOT_PATH . '/footer.php'; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/detail.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/detail.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/detail.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/detail.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,33 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +include XOOPS_ROOT_PATH . '/include/comment_view.php'; +require_once './include/common.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_detail.html'; + +// ¸\xBAߥ\xC1\xA5\xA7\xA5å\xAF +$did = isset($_GET['did']) ? intval($_GET['did']) : 0; +$sql = "SELECT d.*, u.uname FROM $data_tbl AS d LEFT OUTER JOIN $users_tbl AS u ON d.add_uid = u.uid WHERE d.did = $did"; +$res = $xoopsDB->query($sql); +if ($xoopsDB->getRowsNum($res) == 0) { + redirect_header($module_url . '/index.php', 5, getMDConst('_NO_ERR_MSG')); +} + +// ɽ\xBC\xA8\xC3ͳ\xE4\xA4\xEA\xC5\xF6\xA4\xC6 +$row = $xoopsDB->fetchArray($res); +assignDetail($row, $item_defs, $dirname); +$xoopsTpl->assign('item_defs', $item_defs); + +$perm = checkPerm($gids, $cfg_manage_gids) || $uid == $row['add_uid'] ? true : false; +$xoopsTpl->assign('perm', $perm); + +$his_perm = false; +if ($uid && checkPerm($gids, $cfg_his_gids)) $his_perm = true; +elseif (!$uid && $cfg_his_guest) $his_perm = true; +$xoopsTpl->assign('his_perm', $his_perm); +if ($his_perm) $xoopsTpl->assign('histories', getHistories($did)); + +require_once XOOPS_ROOT_PATH . '/footer.php'; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/download.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/download.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/download.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/download.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,56 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +require_once './include/common.php'; + +$did = 0; +$col_name = ''; +if (isset($_GET['did'])) $did = intval($_GET['did']); +foreach ($item_defs as $item_name => $item_def) { + if ($item_name === $_GET['col_name']) $col_name = $_GET['col_name']; +} +if ($did < 1 || $col_name == '') { + header("HTTP/1.1 404 Not Found"); + exit; +} + +if (!isset($item_defs[$col_name])) { + header("HTTP/1.1 404 Not Found"); + exit; +} + +$sql = "SELECT $col_name FROM $data_tbl WHERE did = $did"; +$res = $xoopsDB->query($sql); +if ($xoopsDB->getRowsNum($res) == 0) { + header("HTTP/1.1 404 Not Found"); + exit; +} +list($file_name) = $xoopsDB->fetchRow($res); +$browser = getenv("HTTP_USER_AGENT"); +if (preg_match("/MSIE/i", $browser)) { + $original_file_name = mb_convert_encoding($file_name, 'Shift_JIS', _CHARSET); +} else { + $original_file_name = mb_convert_encoding($file_name, 'UTF-8', _CHARSET); +} + +$file_name = getRealFileName($did, $col_name, $file_name); +$filepath = XOOPS_ROOT_PATH . "/uploads/$dirname/$file_name"; +if (!file_exists($filepath)) { + header("HTTP/1.1 404 Not Found"); + exit; +} + +header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); +header("Content-Disposition: attachment; filename=\"$original_file_name\""); +header("Content-Length: " . filesize($filepath)); +header("Content-Type: application/octet-stream;"); + +$fp = fopen($filepath, "r"); +while (!feof($fp)) + echo fgets($fp, 1024); +fclose($fp); + +exit; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/his_detail.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/his_detail.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/his_detail.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/his_detail.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,56 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +include XOOPS_ROOT_PATH . '/include/comment_view.php'; +require_once './include/common.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_his_detail.html'; + +// \xB8\xA2\xB8¥\xC1\xA5\xA7\xA5å\xAF +if ($uid && !checkPerm($gids, $cfg_his_gids)) { + redirect_header($module_url . '/index.php', 5, getMDConst('_PERM_ERR_MSG')); +} elseif (!$uid && !$cfg_his_guest) { + redirect_header($module_url . '/index.php', 5, getMDConst('_PERM_ERR_MSG')); +} + +if (isset($_POST['op'])) $op = $_POST['op']; +elseif (isset($_GET['op'])) $op = $_GET['op']; +else $op = ''; +$xoopsTpl->assign('op', $myts->htmlSpecialChars($op)); + +// ¸\xBAߥ\xC1\xA5\xA7\xA5å\xAF +$hid = isset($_GET['hid']) ? intval($_GET['hid']) : 0; +$his_sql = "SELECT h.*, u.uname FROM $his_tbl AS h LEFT OUTER JOIN $users_tbl AS u ON h.update_uid = u.uid WHERE h.hid = $hid"; +$his_res = $xoopsDB->query($his_sql); +if ($xoopsDB->getRowsNum($his_res) == 0) { + redirect_header($module_url . '/index.php', 5, getMDConst('_NO_ERR_MSG')); +} + +$his_row = $xoopsDB->fetchArray($his_res); +$did = $his_row['did']; +$xoopsTpl->assign('did', $did); + +$operation_raw = $his_row['operation']; +$xoopsTpl->assign('operation_raw', $myts->htmlSpecialChars($operation_raw)); +$xoopsTpl->assign('operation', $myts->htmlSpecialChars(getOperation($operation_raw))); + +// \xCD\xFA\xCE\xF2\xA4\xCEɽ\xBC\xA8\xC3ͳ\xE4\xA4\xEA\xC5\xF6\xA4\xC6 +assignDetail($his_row, $item_defs, $dirname); +$xoopsTpl->assign('item_defs', $item_defs); + +// \xC1\xE0\xBA\xB9\xB9\xBF\xB7\xA4ξ\xEC\xB9硢\xCAѹ\xB9\xC1\xB0\xA4\xCE\xC6\xE2\xCDƤ\xF2\xB3\xE4\xA4\xEA\xC5\xF6\xA4\xC6 +if ($operation_raw == 'update') { + $bef_his_sql = "SELECT h.*, u.uname "; + $bef_his_sql .= "FROM $his_tbl AS h LEFT OUTER JOIN $users_tbl AS u ON h.update_uid = u.uid "; + $bef_his_sql .= "WHERE h.did = $did AND h.hid < $hid "; + $bef_his_sql .= "ORDER BY hid DESC LIMIT 1"; + $bef_his_res = $xoopsDB->query($bef_his_sql); + $bef_his_row = $xoopsDB->fetchArray($bef_his_res); + + assignDetail($bef_his_row, $item_defs, $dirname); + $xoopsTpl->assign('bef_item_defs', $item_defs); +} + +require_once XOOPS_ROOT_PATH . '/footer.php'; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/his_search.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/his_search.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/his_search.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/his_search.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,303 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +require_once './include/common.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_his_search.html'; + +if (isset($_POST['op'])) $op = $_POST['op']; +elseif (isset($_GET['op'])) $op = $_GET['op']; +else $op = ''; + +$errors = array(); +$search_defs = getDefs($item_defs, 'search'); +$his_search_defs = getHisSearchDefs(); +$search_defs = array_merge($his_search_defs, $search_defs); + +// \xB8\xA1\xBA\xF7\xBD\xE8\xCD\xFD +if ($op == 'search' || $op == 'back_search') { + $queries = 'op=search&'; + if ($op == 'search') unset($_SESSION['search_conds']); + + foreach ($search_defs as $item_name => $item_def) { + $$item_name = initSearchInput($op, $item_name, $search_defs, $errors); + + if ($$item_name !== '') { + if (is_array($$item_name)) { + foreach ($$item_name as $value) { + $queries .= $item_name . '[]=' . urlencode($myts->htmlSpecialChars($value)) . '&'; + } + } else { + $queries .= $item_name . '=' . urlencode($myts->htmlSpecialChars($$item_name)) . '&'; + } + } + + $andor_item_name = $item_name . '_andor'; + $$andor_item_name = ''; + if ($op == 'search') { + if (isset($_POST[$andor_item_name]) && $_POST[$andor_item_name] !== '') { + $$andor_item_name = $_POST[$andor_item_name]; + $_SESSION['search_conds'][$andor_item_name] = $$andor_item_name; + } elseif (isset($_GET[$andor_item_name]) && $_GET[$andor_item_name] !== '') { + $$andor_item_name = $_GET[$andor_item_name]; + $_SESSION['search_conds'][$andor_item_name] = $$andor_item_name; + } + } elseif ($op == 'back_search') { + if (isset($_SESSION['search_conds'][$andor_item_name]) && $_SESSION['search_conds'][$andor_item_name] !== '') { + $$andor_item_name = $_SESSION['search_conds'][$andor_item_name]; + } + } + if ($$andor_item_name !== '') $queries .= $andor_item_name . '=' . urlencode($myts->htmlSpecialChars($$andor_item_name)) . '&'; + } + + $params = array('order_item', 'order', 'start'); + foreach ($params as $param_name) { + if ($op == 'search') { + if (isset($_POST[$param_name]) && $_POST[$param_name] !== '') { + $$param_name = $_POST[$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } elseif (isset($_GET[$param_name]) && $_GET[$param_name] !== '') { + $$param_name = $_GET[$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } else { + $$param_name = ''; + } + } elseif ($op == 'back_search') { + if (isset($_SESSION['search_conds'][$param_name]) && $_SESSION['search_conds'][$param_name] !== '') { + $$param_name = $_SESSION['search_conds'][$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } else { + $$param_name = ''; + } + } + } + + if (count($errors) == 0) { + $sql = "SELECT h.*, u.uname FROM $his_tbl AS h LEFT OUTER JOIN $users_tbl AS u ON h.update_uid = u.uid"; + // WHERE\xB6\xE8\xB0ʹߤΥ\xAF\xA5\xA8\xA5\xEA\xC0\xB8\xC0\xAE + $where = ' WHERE '; + foreach ($search_defs as $item_name => $item_def) { + // \xBF\xF4\xC3\xCD + if ($item_def['type'] == 'number' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + if ($$item_name_or_over !== '') { + if ($item_def['value_type'] == 'int') { + $where .= " $item_name >= '" . addslashes($$item_name_or_over) . "' AND "; + } elseif ($item_def['value_type'] == 'float') { + $where .= " $item_name >= '" . addslashes(floatval($$item_name_or_over) - 0.000001) . "' AND "; + } + } + if ($$item_name_or_less !== '') { + if ($item_def['value_type'] == 'int') { + $where .= " $item_name <= '" . addslashes($$item_name_or_less) . "' AND "; + } elseif ($item_def['value_type'] == 'float') { + $where .= " $item_name <= '" . addslashes(floatval($$item_name_or_less) + 0.000001) . "' AND "; + } + } + } elseif ($item_name == 'update_date') { + // \xBD\xE8\xCD\xFD\xC6\xFC\xBB\xFE + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + if ($$item_name_or_over !== '') { + $where .= " $item_name >= '" . addslashes($$item_name_or_over . ' 00:00:00') . "' AND "; + } + if ($$item_name_or_less !== '') { + $where .= " $item_name <= '" . addslashes($$item_name_or_less . ' 23:59:59') . "' AND "; + } + } elseif ($item_def['type'] == 'date' && !isset($item_def['is_range_item'])) { + // \xC6\xFC\xC9\xD5 + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + if ($$item_name_or_over !== '') { + $where .= " $item_name >= '" . addslashes($$item_name_or_over) . "' AND "; + } + if ($$item_name_or_less !== '') { + $where .= " $item_name <= '" . addslashes($$item_name_or_less) . "' AND "; + } + } elseif ($$item_name !== '') { + // \xBF\xF4\xC3͡\xA2\xC6\xFC\xC9հʳ\xB0\xA4ξ\xEC\xB9\xE7 + $andor_item_name = $item_name . '_andor'; + if ($$andor_item_name === '') $$andor_item_name = intval($item_def['search_cond']); + + // \xA5ƥ\xAD\xA5\xB9\xA5ȥ\xA8\xA5ꥢ(\xA4\xA2\xA4\xA4\xA4ޤ\xA4\xB0\xEC\xC3\xD7) + if ($item_def['type'] == 'tarea' || $item_def['type'] == 'xtarea') { + $where .= " $item_name LIKE '%" . addslashes($$item_name) . "%' AND "; + } elseif ($item_def['type'] == 'text' || $item_def['type'] == 'image' || $item_def['type'] == 'file') { + // \xA5ƥ\xAD\xA5\xB9\xA5ȥܥå\xAF\xA5\xB9(ʸ\xBB\xFA\xCE\xF3)\xA1\xA2\xA5ե\xA1\xA5\xA4\xA5롢\xB2\xE8\xC1\xFC + if ($$andor_item_name) { + $where .= " $item_name = '" . addslashes($$item_name) . "' AND "; + } else { + $where .= " $item_name LIKE '%" . addslashes($$item_name) . "%' AND "; + } + } elseif ($item_def['type'] == 'radio' || $item_def['type'] == 'select') { + // \xA5饸\xA5\xAA\xA5ܥ\xBF\xA5ץ\xEB\xA5\xC0\xA5\xA6\xA5\xF3\xA5\xE1\xA5˥塼 + $where .= ' ('; + foreach ($$item_name as $value) { + $where .= " $item_name = '" . addslashes($value) . "' OR "; + } + $where = substr($where, 0, -4) . ') AND '; + } elseif ($item_def['type'] == 'cbox' || $item_def['type'] == 'mselect') { + // \xA5\xC1\xA5\xA7\xA5å\xAF\xA5ܥå\xAF\xA5\xB9\xA1\xA2\xA5ꥹ\xA5ȥܥå\xAF\xA5\xB9 + if ($$andor_item_name) { + $where .= " $item_name = '"; + foreach ($$item_name as $value) { + $where .= addslashes($value) . '|'; + } + $where = substr($where, 0, -1) . "' AND "; + } else { + $where .= ' ('; + foreach ($$item_name as $value) { + $where .= " $item_name LIKE '%" . addslashes($value) . "%' OR "; + } + $where = substr($where, 0, -4) . ') AND '; + } + } + } + } + if ($where != ' WHERE ') { + $sql .= substr($where, 0, -5); + } + + if (array_key_exists($order_item, $item_defs) && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY h.$order_item $order"; + } elseif ($order_item == 'did' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY h.did $order"; + } elseif ($order_item == 'hid' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY h.hid $order"; + } elseif ($order_item == 'operation' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY h.operation $order"; + } elseif ($order_item == 'uname' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY u.uname $order"; + } elseif ($order_item == 'update_date' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY h.update_date $order"; + } else { + $sql .= " ORDER BY h.hid ASC"; + } + $res = $xoopsDB->query($sql); + $total = $xoopsDB->getRowsNum($res); + + // \xA5ڡ\xBC\xA5\xB8\xC0ڤ\xEA\xC2ؤ\xA8 + $start = intval($start); + $xoopsTpl->assign('start', $start); + if ($queries !== '') $queries = substr($queries, 0, -5); + $xoopsTpl->assign('queries', $queries); + $xoopsTpl->assign('order_item', $order_item); + $xoopsTpl->assign('order', $order); + if ($total > $cfg_result_num) { + require_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenavi = new XoopsPageNav($total, $cfg_result_num, $start, 'start', $queries); + $pagenavi_html = $pagenavi->renderNav(); + $xoopsTpl->assign('pagenavi_html', $pagenavi_html); + $res = $xoopsDB->query($sql, $cfg_result_num, $start); + } + $last = $start + $cfg_result_num; + if ($last > $total) $last = $total; + $pagenavi_info = sprintf(getMDConst('_PAGENAVI_INFO'), number_format($total), number_format($start + 1), number_format($last)); + $xoopsTpl->assign('pagenavi_info', $pagenavi_info); + + // ɽ\xBC\xA8\xC3ͳ\xE4\xA4\xEA\xC5\xF6\xA4\xC6 + while ($row = $xoopsDB->fetchArray($res)) { + $info = array(); + foreach ($row as $key => $value) { + if ($key == 'did' || $key == 'hid' || $key == 'update_uid' || $key == 'uname') { + $info[$key] = $myts->htmlSpecialChars($value); + } elseif ($key == 'update_date') { + $info[$key] = date($cfg_date_format . ' ' . $cfg_time_format, strtotime($value)); + } elseif ($key == 'operation') { + $info[$key] = getOperation($value); + } elseif (!isset($item_defs[$key])) { + continue; + } elseif ($item_defs[$key]['type'] == 'text' || $item_defs[$key]['type'] == 'number' || $item_defs[$key]['type'] == 'radio' || $item_defs[$key]['type'] == 'select' || $item_defs[$key]['type'] == 'date') { + $info[$key] = sanitize($value, $item_defs[$key]); + } elseif ($item_defs[$key]['type'] == 'cbox' || $item_defs[$key]['type'] == 'mselect') { + $values = string2array($value); + $info[$key] = ''; + foreach ($values as $value) { + $info[$key] .= sanitize($value, $item_defs[$key]) . '<br />'; + } + } elseif ($item_defs[$key]['type'] == 'tarea' || $item_defs[$key]['type'] == 'xtarea') { + $info[$key] = $myts->displayTarea($value, $item_defs[$key]['html'], $item_defs[$key]['smily'], $item_defs[$key]['xcode'], $item_defs[$key]['image'], $item_defs[$key]['br']); + } elseif ($item_defs[$key]['type'] == 'image' && $value != '') { + $info[$key] = $myts->htmlSpecialChars($value); + } elseif ($item_defs[$key]['type'] == 'file' && $value != '') { + $info[$key] = $myts->htmlSpecialChars($value); + } + } + $xoopsTpl->append('infos', $info); + } + + $xoopsTpl->assign('item_defs', $item_defs); + + $xoopsTpl->assign('op', 'search'); + } +} else { + foreach ($search_defs as $item_name => $item_def) { + $$item_name = ''; + if ($item_def['type'] == 'text' || $item_def['type'] == 'cbox' || $item_def['type'] == 'mselect' || $item_def['type'] == 'file' || $item_def['type'] == 'image') { + $andor_item_name = $item_name . '_andor'; + $$andor_item_name = $item_def['search_cond']; + } + } +} + +// \xA5ե\xA9\xA1\xBC\xA5\xE0\xC0\xB8\xC0\xAE +foreach ($search_defs as $item_name => $item_def) { + if ($item_def['type'] == 'text' || $item_def['type'] == 'tarea' || $item_def['type'] == 'xtarea' || $item_def['type'] == 'file' || $item_def['type'] == 'image') { + $search_defs[$item_name]['value'] = makeTextForm($item_name, $item_def, $$item_name); + } elseif ($item_def['type'] == 'number' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + $search_defs[$item_name]['value'] = makeTextForm($item_name_or_over, $item_def, $$item_name_or_over); + $search_defs[$item_name]['value'] .= ' ' . getMDConst('_OR_OVER') . ' - '; + $search_defs[$item_name]['value'] .= makeTextForm($item_name_or_less, $item_def, $$item_name_or_less) . ' ' . getMDConst('_OR_LESS'); + if (isset($search_defs[$item_name_or_over]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_over]['error']; + } + if (isset($search_defs[$item_name_or_less]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_less]['error']; + } + } elseif ($item_def['type'] == 'date' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + $search_defs[$item_name]['value'] = makeDateForm($item_name_or_over, $item_def, $$item_name_or_over); + $search_defs[$item_name]['value'] .= ' ' . getMDConst('_SINCE') . ' - '; + $search_defs[$item_name]['value'] .= makeDateForm($item_name_or_less, $item_def, $$item_name_or_less) . ' ' . getMDConst('_UNTIL'); + if (isset($search_defs[$item_name_or_over]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_over]['error']; + } + if (isset($search_defs[$item_name_or_less]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_less]['error']; + } + + } elseif ($item_def['type'] == 'cbox' || $item_def['type'] == 'radio') { + $search_defs[$item_name]['value'] = makeCboxForm($item_name, $item_def, $$item_name); + } elseif ($item_def['type'] == 'select' || $item_def['type'] == 'mselect') { + $search_defs[$item_name]['value'] = makeMSelectForm($item_name, $item_def, $$item_name); + } + + if ($item_def['type'] == 'text' || $item_def['type'] == 'file' || $item_def['type'] == 'image') { + $andor_item_name = $item_name . '_andor'; + $search_defs[$item_name]['condition'] = makeCondForm($andor_item_name, array(getMDConst('_COMP_MATCH') => 1, getMDConst('_PART_MATCH') => 0), $$andor_item_name); + } elseif ($item_def['type'] == 'radio' || $item_def['type'] == 'select') { + $search_defs[$item_name]['condition'] = '<br />' . getMDConst('_COND_LABEL') . ' ' . getMDConst('_OR_MATCH'); + } elseif ($item_def['type'] == 'tarea' || $item_def['type'] == 'xtarea') { + $search_defs[$item_name]['condition'] = '<br />' . getMDConst('_COND_LABEL') . ' ' . getMDConst('_PART_MATCH'); + } elseif ($item_def['type'] == 'cbox' || $item_def['type'] == 'mselect') { + $andor_item_name = $item_name . '_andor'; + $search_defs[$item_name]['condition'] = makeCondForm($andor_item_name, array(getMDConst('_AND_MATCH') => 1, getMDConst('_OR_MATCH') => 0), $$andor_item_name); + } +} +$xoopsTpl->assign('search_defs', $search_defs); +$xoopsTpl->assign('errors', $errors); + +require_once XOOPS_ROOT_PATH . '/footer.php'; + +?> Copied: XoopsModules/genericdbmodule/trunk/genericdbmodule/index.php (from rev 11743, XoopsModules/genericdbmodule/trunk/xxxxx/index.php) =================================================================== --- XoopsModules/genericdbmodule/trunk/genericdbmodule/index.php (rev 0) +++ XoopsModules/genericdbmodule/trunk/genericdbmodule/index.php 2013-06-22 17:19:28 UTC (rev 11744) @@ -0,0 +1,289 @@ +<?php + +require_once '../../mainfile.php'; +require_once XOOPS_ROOT_PATH . '/header.php'; +require_once './include/common.php'; +$xoopsOption['template_main'] = $dirname . '_xgdb_index.html'; + +if (isset($_POST['op'])) $op = $_POST['op']; +elseif (isset($_GET['op'])) $op = $_GET['op']; +else $op = ''; + +$errors = array(); +$search_defs = getDefs($item_defs, 'search'); + +// \xB8\xA1\xBA\xF7\xBD\xE8\xCD\xFD +if ($op == 'search' || $op == 'back_search') { + $queries = 'op=search&'; + if ($op == 'search') unset($_SESSION['search_conds']); + + foreach ($search_defs as $item_name => $item_def) { + $$item_name = initSearchInput($op, $item_name, $search_defs, $errors); + + if ($$item_name !== '') { + if (is_array($$item_name)) { + foreach ($$item_name as $value) { + $queries .= $item_name . '[]=' . urlencode($myts->htmlSpecialChars($value)) . '&'; + } + } else { + $queries .= $item_name . '=' . urlencode($myts->htmlSpecialChars($$item_name)) . '&'; + } + } + + $andor_item_name = $item_name . '_andor'; + $$andor_item_name = ''; + if ($op == 'search') { + if (isset($_POST[$andor_item_name]) && $_POST[$andor_item_name] !== '') { + $$andor_item_name = $_POST[$andor_item_name]; + $_SESSION['search_conds'][$andor_item_name] = $$andor_item_name; + } elseif (isset($_GET[$andor_item_name]) && $_GET[$andor_item_name] !== '') { + $$andor_item_name = $_GET[$andor_item_name]; + $_SESSION['search_conds'][$andor_item_name] = $$andor_item_name; + } + } elseif ($op == 'back_search') { + if (isset($_SESSION['search_conds'][$andor_item_name]) && $_SESSION['search_conds'][$andor_item_name] !== '') { + $$andor_item_name = $_SESSION['search_conds'][$andor_item_name]; + } + } + if ($$andor_item_name !== '') $queries .= $andor_item_name . '=' . urlencode($myts->htmlSpecialChars($$andor_item_name)) . '&'; + } + + $params = array('order_item', 'order', 'start'); + foreach ($params as $param_name) { + if ($op == 'search') { + if (isset($_POST[$param_name]) && $_POST[$param_name] !== '') { + $$param_name = $_POST[$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } elseif (isset($_GET[$param_name]) && $_GET[$param_name] !== '') { + $$param_name = $_GET[$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } else { + $$param_name = ''; + } + } elseif ($op == 'back_search') { + if (isset($_SESSION['search_conds'][$param_name]) && $_SESSION['search_conds'][$param_name] !== '') { + $$param_name = $_SESSION['search_conds'][$param_name]; + $_SESSION['search_conds'][$param_name] = $$param_name; + $queries .= $param_name . '=' . urlencode($myts->htmlSpecialChars($$param_name)) . '&'; + } else { + $$param_name = ''; + } + } + } + + if (count($errors) == 0) { + $sql = "SELECT d.*, u.uname"; + $sql .= " FROM $data_tbl AS d LEFT OUTER JOIN $users_tbl AS u ON d.add_uid = u.uid"; + + // WHERE\xB6\xE8\xB0ʹߤΥ\xAF\xA5\xA8\xA5\xEA\xC0\xB8\xC0\xAE + $where = ' WHERE '; + foreach ($search_defs as $item_name => $item_def) { + // \xBF\xF4\xC3\xCD + if ($item_def['type'] == 'number' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + if ($$item_name_or_over !== '') { + if ($item_def['value_type'] == 'int') { + $where .= " d.$item_name >= '" . addslashes($$item_name_or_over) . "' AND "; + } elseif ($item_def['value_type'] == 'float') { + $where .= " d.$item_name >= '" . addslashes(floatval($$item_name_or_over) - 0.000001) . "' AND "; + } + } + if ($$item_name_or_less !== '') { + if ($item_def['value_type'] == 'int') { + $where .= " d.$item_name <= '" . addslashes($$item_name_or_less) . "' AND "; + } elseif ($item_def['value_type'] == 'float') { + $where .= " d.$item_name <= '" . addslashes(floatval($$item_name_or_less) + 0.000001) . "' AND "; + } + } + } elseif ($item_def['type'] == 'date' && !isset($item_def['is_range_item'])) { + // \xC6\xFC\xC9\xD5 + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + if ($$item_name_or_over !== '') { + $where .= " d.$item_name >= '" . addslashes($$item_name_or_over) . "' AND "; + } + if ($$item_name_or_less !== '') { + $where .= " d.$item_name <= '" . addslashes($$item_name_or_less) . "' AND "; + } + } elseif ($$item_name !== '') { + // \xBF\xF4\xC3͡\xA2\xC6\xFC\xC9հʳ\xB0\xA4ξ\xEC\xB9\xE7 + $andor_item_name = $item_name . '_andor'; + if ($$andor_item_name === '') $$andor_item_name = intval($item_def['search_cond']); + + // \xA5ƥ\xAD\xA5\xB9\xA5ȥ\xA8\xA5ꥢ(\xA4\xA2\xA4\xA4\xA4ޤ\xA4\xB0\xEC\xC3\xD7) + if ($item_def['type'] == 'tarea' || $item_def['type'] == 'xtarea') { + $where .= " d.$item_name LIKE '%" . addslashes($$item_name) . "%' AND "; + } elseif ($item_def['type'] == 'text' || $item_def['type'] == 'image' || $item_def['type'] == 'file') { + // \xA5ƥ\xAD\xA5\xB9\xA5ȥܥå\xAF\xA5\xB9(ʸ\xBB\xFA\xCE\xF3)\xA1\xA2\xA5ե\xA1\xA5\xA4\xA5롢\xB2\xE8\xC1\xFC + if ($$andor_item_name) { + $where .= " d.$item_name = '" . addslashes($$item_name) . "' AND "; + } else { + $where .= " d.$item_name LIKE '%" . addslashes($$item_name) . "%' AND "; + } + } elseif ($item_def['type'] == 'radio' || $item_def['type'] == 'select') { + // \xA5饸\xA5\xAA\xA5ܥ\xBF\xA5ץ\xEB\xA5\xC0\xA5\xA6\xA5\xF3\xA5\xE1\xA5˥塼 + $where .= ' ('; + foreach ($$item_name as $value) { + $where .= " d.$item_name = '" . addslashes($value) . "' OR "; + } + $where = substr($where, 0, -4) . ') AND '; + } elseif ($item_def['type'] == 'cbox' || $item_def['type'] == 'mselect') { + // \xA5\xC1\xA5\xA7\xA5å\xAF\xA5ܥå\xAF\xA5\xB9\xA1\xA2\xA5ꥹ\xA5ȥܥå\xAF\xA5\xB9 + if ($$andor_item_name) { + $where .= " d.$item_name = '"; + foreach ($$item_name as $value) { + $where .= addslashes($value) . '|'; + } + $where = substr($where, 0, -1) . "' AND "; + } else { + $where .= ' ('; + foreach ($$item_name as $value) { + $where .= " d.$item_name LIKE '%" . addslashes($value) . "%' OR "; + } + $where = substr($where, 0, -4) . ') AND '; + } + } + } + } + + if ($where != ' WHERE ') { + $sql .= substr($where, 0, -5); + } + + if (array_key_exists($order_item, $item_defs) && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY d.$order_item $order"; + } elseif ($order_item == 'did' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY d.did $order"; + } elseif ($order_item == 'uname' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY u.uname $order"; + } elseif ($order_item == 'add_date' && ($order == 'desc' || $order == 'asc')) { + $sql .= " ORDER BY d.add_date $order"; + } else { + $sql .= " ORDER BY d.did ASC"; + } + $res = $xoopsDB->query($sql); + $total = $xoopsDB->getRowsNum($res); + + // \xA5ڡ\xBC\xA5\xB8\xC0ڤ\xEA\xC2ؤ\xA8 + $start = intval($start); + $xoopsTpl->assign('start', $start); + if ($queries !== '') $queries = substr($queries, 0, -5); + $xoopsTpl->assign('queries', $queries); + $xoopsTpl->assign('order_item', $order_item); + $xoopsTpl->assign('order', $order); + if ($total > $cfg_result_num) { + require_once XOOPS_ROOT_PATH . '/class/pagenav.php'; + $pagenavi = new XoopsPageNav($total, $cfg_result_num, $start, 'start', $queries); + $pagenavi_html = $pagenavi->renderNav(); + $xoopsTpl->assign('pagenavi_html', $pagenavi_html); + $res = $xoopsDB->query($sql, $cfg_result_num, $start); + } + $last = $start + $cfg_result_num; + if ($last > $total) $last = $total; + $pagenavi_info = sprintf(getMDConst('_PAGENAVI_INFO'), number_format($total), number_format($start + 1), number_format($last)); + $xoopsTpl->assign('pagenavi_info', $pagenavi_info); + + // ɽ\xBC\xA8\xC3ͳ\xE4\xA4\xEA\xC5\xF6\xA4\xC6 + while ($row = $xoopsDB->fetchArray($res)) { + $info = array(); + foreach ($row as $key => $value) { + if ($key == 'did' || $key == 'add_uid' || $key == 'uname') { + $info[$key] = $myts->htmlSpecialChars($value); + } elseif ($key == 'add_date') { + $info[$key] = date($cfg_date_format . ' ' . $cfg_time_format, strtotime($value)); + } elseif (!isset($item_defs[$key])) { + continue; + } elseif ($item_defs[$key]['type'] == 'text' || $item_defs[$key]['type'] == 'number' || $item_defs[$key]['type'] == 'radio' || $item_defs[$key]['type'] == 'select' || $item_defs[$key]['type'] == 'date') { + $info[$key] = sanitize($value, $item_defs[$key]); + } elseif ($item_defs[$key]['type'] == 'cbox' || $item_defs[$key]['type'] == 'mselect') { + $values = string2array($value); + $info[$key] = ''; + foreach ($values as $value) { + $info[$key] .= sanitize($value, $item_defs[$key]) . '<br />'; + } + } elseif ($item_defs[$key]['type'] == 'tarea' || $item_defs[$key]['type'] == 'xtarea') { + $info[$key] = $myts->displayTarea($value, $item_defs[$key]['html'], $item_defs[$key]['smily'], $item_defs[$key]['xcode'], $item_defs[$key]['image'], $item_defs[$key]['br']); + } elseif ($item_defs[$key]['type'] == 'image' && $value != '') { + $item_defs[$key]['width'] = getImageWidth($module_upload_dir . '/' . getRealFileName($row['did'], $key, $value), $cfg_list_img_wd); + $info[$key] = $myts->htmlSpecialChars($value); + } elseif ($item_defs[$key]['type'] == 'file' && $value != '') { + $info[$key] = $myts->htmlSpecialChars($value); + } + } + $xoopsTpl->append('infos', $info); + } + $list_defs = getDefs($item_defs, 'list'); + $xoopsTpl->assign('list_item_num', count($list_defs) + 1); + $xoopsTpl->assign('item_defs', $item_defs); + $xoopsTpl->assign('op', 'search'); + } +} else { + foreach ($search_defs as $item_name => $item_def) { + $$item_name = ''; + if ($item_def['type'] == 'text' || $item_def['type'] == 'cbox' || $item_def['type'] == 'mselect' || $item_def['type'] == 'file' || $item_def['type'] == 'image') { + $andor_item_name = $item_name . '_andor'; + $$andor_item_name = $item_def['search_cond']; + } + } +} + +// \xA5ե\xA9\xA1\xBC\xA5\xE0\xC0\xB8\xC0\xAE +foreach ($search_defs as $item_name => $item_def) { + if ($item_def['type'] == 'text' || $item_def['type'] == 'tarea' || $item_def['type'] == 'xtarea' || $item_def['type'] == 'file' || $item_def['type'] == 'image') { + $search_defs[$item_name]['value'] = makeTextForm($item_name, $item_def, $$item_name); + } elseif ($item_def['type'] == 'number' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + $search_defs[$item_name]['value'] = makeTextForm($item_name_or_over, $item_def, $$item_name_or_over); + $search_defs[$item_name]['value'] .= ' ' . getMDConst('_OR_OVER') . ' - '; + $search_defs[$item_name]['value'] .= makeTextForm($item_name_or_less, $item_def, $$item_name_or_less) . ' ' . getMDConst('_OR_LESS'); + if (isset($search_defs[$item_name_or_over]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_over]['error']; + } + if (isset($search_defs[$item_name_or_less]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_less]['error']; + } + } elseif ($item_def['type'] == 'date' && !isset($item_def['is_range_item'])) { + $item_name_or_over = $item_name . '_or_over'; + $item_name_or_less = $item_name . '_or_less'; + $search_defs[$item_name]['value'] = makeDateForm($item_name_or_over, $item_def, $$item_name_or_over); + $search_defs[$item_name]['value'] .= ' ' . getMDConst('_SINCE') . ' - '; + $search_defs[$item_name]['value'] .= makeDateForm($item_name_or_less, $item_def, $$item_name_or_less) . ' ' . getMDConst('_UNTIL'); + if (isset($search_defs[$item_name_or_over]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_defs[$item_name_or_over]['error']; + } + if (isset($search_defs[$item_name_or_less]['error'])) { + if (!isset($search_defs[$item_name]['error'])) $search_defs[$item_name]['error'] = ''; + $search_defs[$item_name]['error'] .= $search_d... [truncated message content] |