From: <be...@us...> - 2014-11-12 12:20:19
|
Revision: 12838 http://sourceforge.net/p/xoops/svn/12838 Author: beckmi Date: 2014-11-12 12:20:01 +0000 (Wed, 12 Nov 2014) Log Message: ----------- Adding eGuide module Added Paths: ----------- XoopsModules/eguide/ XoopsModules/eguide/branches/ XoopsModules/eguide/releases/ XoopsModules/eguide/trunk/ XoopsModules/eguide/trunk/eguide/ XoopsModules/eguide/trunk/eguide/README.txt XoopsModules/eguide/trunk/eguide/admin/ XoopsModules/eguide/trunk/eguide/admin/admin_header.php XoopsModules/eguide/trunk/eguide/admin/conv230.php XoopsModules/eguide/trunk/eguide/admin/help.php XoopsModules/eguide/trunk/eguide/admin/index.php XoopsModules/eguide/trunk/eguide/admin/menu.php XoopsModules/eguide/trunk/eguide/admin/mymenu.php XoopsModules/eguide/trunk/eguide/admin.php XoopsModules/eguide/trunk/eguide/blocks/ XoopsModules/eguide/trunk/eguide/blocks/ev_cat.php XoopsModules/eguide/trunk/eguide/blocks/ev_top.php XoopsModules/eguide/trunk/eguide/blocks/index.html XoopsModules/eguide/trunk/eguide/collect.php XoopsModules/eguide/trunk/eguide/comment_delete.php XoopsModules/eguide/trunk/eguide/comment_edit.php XoopsModules/eguide/trunk/eguide/comment_new.php XoopsModules/eguide/trunk/eguide/comment_post.php XoopsModules/eguide/trunk/eguide/comment_reply.php XoopsModules/eguide/trunk/eguide/const.php XoopsModules/eguide/trunk/eguide/duplicate.php XoopsModules/eguide/trunk/eguide/editdate.php XoopsModules/eguide/trunk/eguide/entry.php XoopsModules/eguide/trunk/eguide/event.php XoopsModules/eguide/trunk/eguide/export.php XoopsModules/eguide/trunk/eguide/functions.php XoopsModules/eguide/trunk/eguide/header.php XoopsModules/eguide/trunk/eguide/images/ XoopsModules/eguide/trunk/eguide/images/calendar.png XoopsModules/eguide/trunk/eguide/images/eguide_slogo2.png XoopsModules/eguide/trunk/eguide/images/printer.png XoopsModules/eguide/trunk/eguide/include/ XoopsModules/eguide/trunk/eguide/include/index.html XoopsModules/eguide/trunk/eguide/include/notification.inc.php XoopsModules/eguide/trunk/eguide/include/search.inc.php XoopsModules/eguide/trunk/eguide/index.php XoopsModules/eguide/trunk/eguide/language/ XoopsModules/eguide/trunk/eguide/language/english/ XoopsModules/eguide/trunk/eguide/language/english/admin.php XoopsModules/eguide/trunk/eguide/language/english/blocks.php XoopsModules/eguide/trunk/eguide/language/english/changes.html XoopsModules/eguide/trunk/eguide/language/english/common.php XoopsModules/eguide/trunk/eguide/language/english/help.html XoopsModules/eguide/trunk/eguide/language/english/index.html XoopsModules/eguide/trunk/eguide/language/english/mail_template/ XoopsModules/eguide/trunk/eguide/language/english/mail_template/accept.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/cancel.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/confirm.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/notify.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/notify_admin_change.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/notify_admin_new.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/notify_user_new.tpl XoopsModules/eguide/trunk/eguide/language/english/mail_template/order.tpl XoopsModules/eguide/trunk/eguide/language/english/main.php XoopsModules/eguide/trunk/eguide/language/english/modinfo.php XoopsModules/eguide/trunk/eguide/language/index.html XoopsModules/eguide/trunk/eguide/module_icon.php XoopsModules/eguide/trunk/eguide/mydirname.php XoopsModules/eguide/trunk/eguide/mylist.php XoopsModules/eguide/trunk/eguide/notification_update.php XoopsModules/eguide/trunk/eguide/notify.inc.php XoopsModules/eguide/trunk/eguide/onupdate.php XoopsModules/eguide/trunk/eguide/perm.php XoopsModules/eguide/trunk/eguide/plugins/ XoopsModules/eguide/trunk/eguide/plugins/dlimit.php XoopsModules/eguide/trunk/eguide/plugins/language/ XoopsModules/eguide/trunk/eguide/plugins/language/english/ XoopsModules/eguide/trunk/eguide/plugins/language/english/dlimit.php XoopsModules/eguide/trunk/eguide/plugins/language/ja_utf8/ XoopsModules/eguide/trunk/eguide/plugins/language/ja_utf8/dlimit.php XoopsModules/eguide/trunk/eguide/plugins.php XoopsModules/eguide/trunk/eguide/print.css XoopsModules/eguide/trunk/eguide/receipt.php XoopsModules/eguide/trunk/eguide/reserv.php XoopsModules/eguide/trunk/eguide/reserv_func.php XoopsModules/eguide/trunk/eguide/sendinfo.php XoopsModules/eguide/trunk/eguide/sql/ XoopsModules/eguide/trunk/eguide/sql/mysql.sql XoopsModules/eguide/trunk/eguide/style.css XoopsModules/eguide/trunk/eguide/templates/ XoopsModules/eguide/trunk/eguide/templates/blocks/ XoopsModules/eguide/trunk/eguide/templates/blocks/eguide_block_category.html XoopsModules/eguide/trunk/eguide/templates/blocks/eguide_block_post.html XoopsModules/eguide/trunk/eguide/templates/blocks/eguide_block_top.html XoopsModules/eguide/trunk/eguide/templates/eguide_admin.html XoopsModules/eguide/trunk/eguide/templates/eguide_collect.html XoopsModules/eguide/trunk/eguide/templates/eguide_confirm.html XoopsModules/eguide/trunk/eguide/templates/eguide_editdate.html XoopsModules/eguide/trunk/eguide/templates/eguide_entry.html XoopsModules/eguide/trunk/eguide/templates/eguide_event.html XoopsModules/eguide/trunk/eguide/templates/eguide_event_print.html XoopsModules/eguide/trunk/eguide/templates/eguide_excel.xml XoopsModules/eguide/trunk/eguide/templates/eguide_index.html XoopsModules/eguide/trunk/eguide/templates/eguide_item.html XoopsModules/eguide/trunk/eguide/templates/eguide_mylist.html XoopsModules/eguide/trunk/eguide/templates/eguide_receipt.html XoopsModules/eguide/trunk/eguide/templates/eguide_receipt_print.html XoopsModules/eguide/trunk/eguide/templates/eguide_userssel.html XoopsModules/eguide/trunk/eguide/templates/index.html XoopsModules/eguide/trunk/eguide/xoops_version.php Added: XoopsModules/eguide/trunk/eguide/README.txt =================================================================== --- XoopsModules/eguide/trunk/eguide/README.txt (rev 0) +++ XoopsModules/eguide/trunk/eguide/README.txt 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1 @@ +Please See, language/*/help.html Added: XoopsModules/eguide/trunk/eguide/admin/admin_header.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/admin_header.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/admin_header.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,19 @@ +<?php +include '../../../include/cp_header.php'; + +$modbase = dirname(dirname(__FILE__)); +if (!defined("_MD_ORDER_DATE")) { + if (class_exists("XCube_Root")) { + $root =& XCube_Root::getSingleton(); + + $root->mLanguageManager->_loadLanguage($xoopsModule->getVar('dirname'), 'common'); + } else { + $modres = $modbase."/language"; + $lang = $xoopsConfig['language']; + if (file_exists("$modres/$lang/common.php")) include_once "$modres/$lang/common.php"; + else include_once "$modres/english/common.php"; + } +} +include "$modbase/const.php"; +include "$modbase/functions.php"; +?> \ No newline at end of file Property changes on: XoopsModules/eguide/trunk/eguide/admin/admin_header.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin/conv230.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/conv230.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/conv230.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,71 @@ +<?php +// convert text serialize before 2.30 +// $Id$ + +include "admin_header.php"; + +// note: search text fields special string as ": \"+"\n" +$res = $xoopsDB->query("SELECT rvid,eid,info FROM ".RVTBL." WHERE info LIKE ".$xoopsDB->quoteString("%: \\\\\n%")); + +$count = $xoopsDB->getRowsNum($res); + +if (isset($_POST['convert'])) { + if ($count) { + $opts = array(); + while (list($rvid, $eid, $info) = $xoopsDB->fetchRow($res)) { + if (!isset($opts[$eid])) { + $ost = $xoopsDB->query("SELECT optfield FROM ".OPTBL." WHERE eid=".$eid); + list($opts[$eid]) = $xoopsDB->fetchRow($ost); + } + $item = $opts[$eid]; + $info = serialize_text(explodeinfo($info, $item)); + $xoopsDB->query("UPDATE ".RVTBL." SET info=".$xoopsDB->quoteString($info)." WHERE rvid=".$rvid); + } + } + redirect_header('index.php', 1, _AM_DBUPDATED); + exit; +} + +xoops_cp_header(); + +echo "<h2>Convert Format before eguide 2.30</h2>"; +echo "<div>"._AM_COUNT.": $count</div>"; +if ($count) { + echo "<form method='post'><input type='submit' name='convert'/></form>"; +} + +xoops_cp_footer(); + +// exploding addional informations. +// older CSV serialize +function explodeinfo($info, $item) { + if (!is_array($item)) $item = explodeopts($item); + $ln = explode("\n", preg_replace('/\r/','',$info)); + $n = 0; + $result = array(); + while ($a = array_shift($ln)) { + $lab = $item[$n]; + if (preg_match("/^".str_replace("/", '\/', quotemeta($lab)).": (.*)$/", $a, $m)) { + $v = isset($m[1])?$m[1]:""; + if ($m[1] == "\\") { + $v = ""; + $x = "/^".(isset($item[$n+1])?quotemeta($item[$n+1]):"\n").": /"; + while (count($ln) && !preg_match($x, $ln[0])) { + $a=array_shift($ln); + $v .= $v?"\n$a":$a; + } + } + $result[$lab] = "$v"; + } else { + global $xoopsConfig; + if (isset($xoopsConfig['debug']) && $xoopsConfig['debug']) { + echo "<span class='error'>".$item[$n].",$a</span>"; + } + break; + } + $n++; + } + return $result; +} + +?> Property changes on: XoopsModules/eguide/trunk/eguide/admin/conv230.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin/help.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/help.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/help.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,82 @@ +<?php +# show language help.html +# $Id$ + +include '../../../include/cp_header.php'; +global $mydirpath, $mydirname; +$mydirpath = dirname(dirname(__FILE__)); +$mydirname = basename($mydirpath); + +// for compat older PHP 4.x +if(!function_exists("file_get_contents")) { + function file_get_contents($filename) { + $fp = fopen($filename, "rb"); + if (!$fp) return false; + $contents = ""; + while (! feof($fp)) { + $contents .= fread($fp, 4096); + } + return $contents; + } +} + +xoops_cp_header(); +include 'mymenu.php'; +if (function_exists('Legacy_function_stylesheet')) { + echo "<link href=\"".XOOPS_URL."/modules/legacyRender/admin/css.php?file=module.css&dirname=legacy\" media=\"all\" type=\"text/css\" rel=\"stylesheet\" />\n"; +} + +$myts =& MyTextSanitizer::getInstance(); +$file = isset($_GET['file'])? + $myts->stripSlashesGPC($_GET['file']):"help.html"; +display_lang_file($file); +xoops_cp_footer(); +exit; + +// show under language/XX/$file only <body> part. +function display_lang_file($file, $link='') { + global $xoopsConfig, $xoopsModule; + if (empty($link)) { + $link = preg_replace('/[&\?]?file=[^&]*|\?$/', '', $_SERVER['REQUEST_URI']); + $link .= preg_match('/\?/', $link)?'&':'?'; + $link .= 'file='; + } + $file = preg_replace('/^\/+/','',preg_replace('/\/?\\.\\.?\/|\/+/', '/', $file)); + $lang = "language/".$xoopsConfig['language']; + $help = "../$lang/$file"; + if (!file_exists($help)) { + $lang = 'language/english'; + $help = "../$lang/$file"; + } + $content = file_get_contents($help); + list($h, $b) = preg_split('/<\/?body>/', $content); + if (empty($b)) $b =& $content; + $murl = XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname'); + + if (preg_match('/<link[^>]*>/', $b, $match)) { + foreach ($match as $item) { + if (preg_match('/href=[\"\']?([^\"\']+)/', $item, $d)) { + $x = preg_replace('/'.preg_quote($d[1],'/').'/', "../$lang/".$d[1], $item); + $b = preg_replace('/'.preg_quote($item, '/').'/', $x, $b); + } + } + } + // link image + // need quote! (sence has protocol) + // follow only 1 level depth folder + $pat = array('/\ssrc=\'([^#][^\':]*)\'/', + '/\ssrc="([^#][^":]*)"/', + '/\shref=\'([^#\\.][^\':]*)\'/', + '/\shref="([^#\\.][^\':]*)"/', + '/\shref=([\'"]?)\\.\\.\\/\\.\\.\\//', + ); + $rep = array(" src='../$lang/\$1'", + " src=\"../$lang/\$1\"", + " href='$link\$1'", + " href=\"$link\$1\"", + " href=$1$murl/", + ); + echo '<div class="help">'.preg_replace($pat, $rep, $b).'</div>'; +} + +?> \ No newline at end of file Property changes on: XoopsModules/eguide/trunk/eguide/admin/help.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin/index.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/index.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/index.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,491 @@ +<?php +// Event Guide global administration +// $Id$ + +include 'admin_header.php'; +include_once XOOPS_ROOT_PATH.'/class/pagenav.php'; +include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; + +$op = param('op', 'events'); +$eid = param('eid'); + +function css_tags() { return array("even","odd"); } +if ($op == 'summary_csv') summary_csv(); + +global $mydirpath, $mydirname; +$mydirpath = dirname(dirname(__FILE__)); +$mydirname = basename($mydirpath); +if( ! empty( $_GET['lib'] ) ) { + // common libs (eg. altsys) + $lib = preg_replace( '/[^a-zA-Z0-9_-]/' , '' , $_GET['lib'] ) ; + $page = preg_replace( '/[^a-zA-Z0-9_-]/' , '' , @$_GET['page'] ) ; + + if( file_exists( XOOPS_TRUST_PATH.'/libs/'.$lib.'/'.$page.'.php' ) ) { + include XOOPS_TRUST_PATH.'/libs/'.$lib.'/'.$page.'.php' ; + } else if( file_exists( XOOPS_TRUST_PATH.'/libs/'.$lib.'/index.php' ) ) { + include XOOPS_TRUST_PATH.'/libs/'.$lib.'/index.php' ; + } else { + die( 'wrong request' ) ; + } + exit; +} + +switch ($op) { +case 'catsave': + $catid=intval($_POST['catid']); + $vals = array(); + foreach (array('catname', 'catdesc', 'catpri', 'weight', 'catimg') as $k) { + $vals[$k] = $xoopsDB->quoteString(param($k,'')); + } + if ($catid) { + foreach ($vals as $k=>$v) { + $vals[$k] = "$k=$v"; + } + $xoopsDB->query("UPDATE ".CATBL." SET ".join(',', $vals)." WHERE catid=$catid"); + } else { + $xoopsDB->query("INSERT INTO ".CATBL."(".join(',', array_keys($vals)).") VALUES (".join(',', $vals).")"); + } + redirect_header("?op=category",1,_AM_DBUPDATED); + exit; + +case 'save': + $status = param('status'); + $uid = param('uid'); + $result = $xoopsDB->query("UPDATE ".EGTBL." SET uid=$uid, status=$status WHERE eid=$eid"); + redirect_header("?op=events",1,_AM_DBUPDATED); + exit; +case 'delnotify': + $dels = array(); + foreach ($_POST['rm'] as $v) { + $dels[] = intval($v); + } + $result = $xoopsDB->queryF($sql = "DELETE FROM ".RVTBL." WHERE eid=0 AND rvid IN (".join(',', $dels).")"); + redirect_header("?op=notifies",1,_AM_DBUPDATED); + exit; + +case 'catdel': + $dels = $_POST['dels']; + foreach (array_keys($dels) as $i) { + $dels[$i] = intval($i); + } + $res = $xoopsDB->query("DELETE FROM ".CATBL." WHERE catid IN (".join(",",$dels).")"); + redirect_header("?op=category",1,_AM_DBUPDATED); + exit; + +case 'impsave': + $mid = param('mid'); + $res = $xoopsDB->query('SELECT * FROM '.$xoopsDB->prefix('newblocks')." WHERE mid=$mid AND func_num=1"); + if (!$res || $xoopsDB->getRowsNum($res)!=1) { + redirect_header('?op=category', 3, _NOPERM); + exit; + } + $block = $xoopsDB->fetchArray($res); + $prefix = preg_replace('/_block_top\.html$/', '', $block['template']); + $xoopsDB->query('DELETE FROM '.CATBL); + function dbquote($x) { + global $xoopsDB; + return $xoopsDB->quoteString($x); + } + $res = $xoopsDB->query('SELECT * FROM '.$xoopsDB->prefix($prefix.'_category')); + while ($data = $xoopsDB->fetchArray($res)) { + if (!$xoopsDB->query('INSERT INTO '.CATBL.' VALUES ('.join(',', array_map('dbquote',$data)).')')) die('DB ERROR'); + } + redirect_header("?op=category", 1, _AM_DBUPDATED); + exit; +case 'resvCtrl': + $rv = isset($_POST['rv'])?$_POST['rv']:array(); + $ck = isset($_POST['ck'])?$_POST['ck']:array(); + $off = $on = ""; + foreach (array_keys($rv) as $k) { + if (isset($ck[$k])) { + if ($on!="") $on .= " OR "; + $on .= "eid=".intval($k); + } else { + if ($off!="") $off .= " OR "; + $off .= "eid=".intval($k); + } + } + if ($on != "") { + $result = $xoopsDB->query("UPDATE ".OPTBL." SET reservation=1 WHERE $on"); + } + if ($off != "") { + $result = $xoopsDB->query("UPDATE ".OPTBL." SET reservation=0 WHERE $off"); + } + redirect_header("?op=events",1,_AM_DBUPDATED); + exit; + +} + +xoops_cp_header(); +include 'mymenu.php'; + +$myts =& MyTextSanitizer::getInstance(); +$tags = css_tags(); + +switch ($op) { +case 'events': + echo "<h3>"._MI_EGUIDE_EVENTS."</h3>"; + echo '<hr /><br />'; + echo "<ul class=\"toptab\"><li class=\"add\"><a href=\"../admin.php\">"._MI_EGUIDE_SUBMIT."</a> </li></ul>\n"; + $result = $xoopsDB->query('SELECT count(eid) FROM '.EGTBL); + list($count) = $xoopsDB->fetchRow($result); + $max = $xoopsModuleConfig['max_list']; + $start = isset($_GET['start'])?intval($_GET['start']):0; + $nav = new XoopsPageNav($count, $max, $start, "start", 'op=events'); + + $result = $xoopsDB->query('SELECT o.*,edate,title,uid,status FROM '.EGTBL. + ' e LEFT JOIN '.OPTBL." o ON e.eid=o.eid ORDER BY e.eid DESC",$max,$start); + $n = 0; + echo "<form method='post'>\n"; + if ($count>$max) echo "<div>".$nav->renderNav()."</div>"; + echo "<table class='outer'>\n"; + echo "<tr><th>"._AM_RESERVATION."</th><th>". + _AM_EVENT_DAY."</th><th>"._AM_TITLE."</th>"; + echo "<th>"._AM_POSTER."</th><th>"._AM_DISP_STATUS."</th>"; + echo "<th>"._AM_OPERATION."</th></tr>\n"; + while ($data = $xoopsDB->fetchArray($result)) { + $bg = $tags[$n++%2]; + $eid = $data['eid']; + $date = eventdate($data['edate']); + $title = "<a href='../event.php?eid=$eid'>".$data['title']."</a>"; + $poster = new XoopsUser($data['uid']); + $u = "<a href='".XOOPS_URL."/userinfo.php?uid=".$poster->uid()."'>".$poster->uname()."</a>"; + $s = $data['status']; + $sn = $ev_stats[$data['status']]; + if ($s == STAT_DELETED) { + $sn = "<a href='../admin.php?op=delete&eid=$eid' class='deleted'>$sn</a>"; + } elseif ($s == STAT_POST) { + $sn = "<strong>$sn</strong>"; + } + $ors = $xoopsDB->query("SELECT reservation FROM ".OPTBL." WHERE eid=$eid"); + if ($xoopsDB->getRowsNum($ors)) { + list($resv) = $xoopsDB->fetchRow($ors); + $mk = "<input type='hidden' name='rv[$eid]' value='on' />"; + $mk .= "<input type='checkbox' name='ck[$eid]' ".($resv?" checked":"")." />"; + } else { + $mk = " "; + } + + $edit = "<a href='../admin.php?eid=$eid' class='edit'>"._EDIT."</a>". + " <a href='?op=edit&eid=$eid' class='status'>"._AM_EDIT."</a>". + " <a href='../admin.php?op=delete&eid=$eid' class='delete'>"._DELETE."</a>"; + echo "<tr class='$bg'><td align='center'>$mk</td><td>$date</td><td>$title</td>"; + echo "<td>$u</td><td>$sn</td><td class='operate'>$edit</td></tr>\n"; + } + echo "<tr><td colspan=\"6\" class=\"foot\">\n"; + echo "<input type='hidden' name='op' value='resvCtrl' />\n"; + echo "<input type='submit' value='"._AM_UPDATE."' />\n"; + echo "</td></tr></table></form>\n"; + $result = $xoopsDB->query("SELECT count(rvid) FROM ".RVTBL." WHERE eid=0"); + if ($result) { + list($n) = $xoopsDB->fetchRow($result); + echo "<ul class=\"toptab\"><li class=\"add\"><a href='?op=notifies'>"._MD_INFO_REQUEST."</a> ".sprintf(_MD_INFO_COUNT, $n)."</li></ul>\n"; + } + CloseTable(); + break; + +case 'notifies': + echo "<h3>"._MD_INFO_REQUEST."</h3>"; + echo '<hr /><br />'; + $cond = "eid=0"; + if (isset($_GET['q'])) { + $q = $_GET['q']; + $cond .= " AND email like '%$q%'"; + } + $result = $xoopsDB->query("SELECT * FROM ".RVTBL." WHERE $cond ORDER BY rdate"); + $n = 0; + $nc = $xoopsDB->getRowsNum($result); + echo "<form method='get'>\n". + _AM_INFO_SEARCH." <input name='q' />". + " <input type='hidden' name='op' value='notifies' />\n". + " <input type='submit' value='"._SUBMIT."' />\n". + "</form>\n"; + echo "<ul class=\"toptab\"><li class=\"add\"><a href='../reserv.php?op=register'>"._MI_EGUIDE_REG."</a></li></ul>\n"; + echo sprintf(_MD_INFO_COUNT, $nc); + if ($nc) { + echo "<form method='post'>\n". + "<input type='hidden' name='op' value='delnotify' />\n". + "<table class='outer'>\n". + "<tr><th></th><th>"._MD_ORDER_DATE."</th>". + "<th>"._AM_EMAIL."</th></tr>\n"; + while ($data = $xoopsDB->fetchArray($result)) { + $bg = $tags[$n++%2]; + $rvid = $data['rvid']; + $date = formatTimestamp($data['rdate'], _AM_POST_FMT); + $email = $data['email']; + if (isset($data['uid'])) { + $uid = $data['uid']; + $uinfo = " (<a href='".XOOPS_URL."/userinfo.php?uid=$uid'>".XoopsUser::getUnameFromId($uid)."</a>)"; + } else { + $uinfo = ""; + } + echo "<tr class='$bg'><td align='center'><input type='checkbox' name='rm[]' value='$rvid' /></td>". + "<td>$date</td><td>$email $uinfo</td></tr>\n"; + } + echo "<tr><td colspan=\"3\" class=\"foot\"><input type='submit' value='"._DELETE."' /> </td></tr>\n"; + echo "</table>"; + } else { + echo "<div class='error'>"._AM_NODATA."</div>"; + } + CloseTable(); + break; + +case 'edit': + $result = $xoopsDB->query("SELECT eid,edate,cdate,title,uid,status FROM ".EGTBL." WHERE eid=$eid"); + $data = $xoopsDB->fetchArray($result); + $date = eventdate($data['edate']); + $title = "<a href='../event.php?eid=$eid'>".$data['title']."</a>"; + $uid = $data['uid']; + $poster = new XoopsUser($uid); + $post = formatTimestamp($data['cdate'], _AM_POST_FMT); + + echo "<h3>"._MI_EGUIDE_EVENTS." >> "._AM_DISP_STATUS."</h3>"; + echo "<hr /><br />"; + echo "<form method='post'>\n"; + echo "<table class='outer'>\n"; + echo "<tr><th colspan=\"2\">"._AM_TITLE." : $title</th></tr>"; + echo "<tr><td class='head'>"._AM_EVENT_DAY."</td><td class='even'>$date</td></tr>\n"; + echo "<tr><td class='head'>"._AM_TITLE."</td><td class='odd'>$title</td></tr>\n"; + echo "<tr><td class='head'>"._AM_POSTER."</td><td class='even'>"; + $result = $xoopsDB->query("SELECT u.uid,groupid,uname". + " FROM ".$xoopsDB->prefix("groups_users_link")." l, ". + $xoopsDB->prefix("users")." u WHERE l.uid=u.uid AND ". + "(groupid=1 OR groupid=".$xoopsModuleConfig['group'].") GROUP BY u.uid ORDER BY uname"); + echo "<select name='uid'>\n"; + while($p=$xoopsDB->fetchArray($result)) { + $ck = ($uid==$p['uid'])?" selected":""; + printf("<option value='%d'$ck>%s</>\n", $p['uid'], $p['uname']); + } + echo "</select></td></tr>\n"; + echo "<tr><td class='head'>"._AM_POSTED."</td><td class='odd'>$post</td></tr>\n"; + echo "<tr><td class='head'>"._AM_DISP_STATUS."</td><td class='even'>\n"; + echo "<select name='status'>\n"; + $status=$data['status']; + foreach ($ev_stats as $i =>$v) { + $ck = ($status == $i)?" selected":""; + echo "<option value='$i'$ck>$v</option>\n"; + } + echo "</select>\n"; + echo "</td></tr>\n"; + echo "<tr><td colspan=\"2\" class=\"foot\"><input type='hidden' name='op' value='save' />"; + echo "<input type='hidden' name='eid' value='$eid' />"; + echo "<input type='submit' value='"._AM_UPDATE."' />"; + echo " <input type='button' value='"._AM_CANCEL."' onclick='javascript:history.go(-1)' />"; + echo "</td></tr></table>\n"; + echo "</form>"; + CloseTable(); + break; + +case 'category': + echo "<h3>"._AM_CATEGORY."</h3>\n"; + echo "<hr /><br />"; + + if (isset($_GET['catid'])) { + edit_category(intval($_GET['catid'])); + } else { + show_categories(); + } + break; + +case 'catimp': + echo "<h3>"._AM_CATEGORY."</h3>\n"; + echo "<hr /><br />"; + + import_category(); + break; + +case 'summary': + echo "<h3>"._AM_SUMMARY."</h3>\n"; + echo "<hr /><br />"; + + $now = time(); + $result = $xoopsDB->query('SELECT count(eid) FROM '.EGTBL.' LEFT JOIN '.EXTBL." ON eid=eidref"); + list($count) = $xoopsDB->fetchRow($result); + $max = $xoopsModuleConfig['max_list']; + $start = isset($_GET['start'])?intval($_GET['start']):0; + $nav = new XoopsPageNav($count, $max, $start, "start", 'op=summary'); + $show = XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/event.php'; + $receipt = XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/receipt.php'; + $result = $xoopsDB->query('SELECT e.eid,if(x.exid,x.exid,0) exid, IF(exdate,exdate,edate) exdate,title,uid,status,persons,IF(x.reserved,x.reserved,o.reserved) reserved FROM '.EGTBL.' e LEFT JOIN '.OPTBL.' o ON e.eid=o.eid LEFT JOIN '.EXTBL." x ON e.eid=eidref ORDER BY exdate DESC,e.eid DESC", $max, $start); + + if ($count>$max) echo $nav->renderNav(); + echo "<ul class=\"toptab\"><li class=\"save\"><a href='index.php?op=summary_csv'>"._MD_CSV_OUT."</a></li></ul>\n"; + + echo "<p>".sprintf(_MD_INFO_COUNT,$start+1)."/$count</p>"; + + echo "<table class='outer'>"; + $n = 0; + echo "<tr><th>ID</th><th>"._MD_EXTENT_DATE."</th><th>"._AM_TITLE."</th>". + "<th>"._AM_POSTER."</th><th>"._MD_RESERV_PERSONS."</th><th>"._AM_RESERVATION."</th></tr>\n"; + while ($data=$xoopsDB->fetchArray($result)) { + $bg = $tags[$n++%2]; + $eid = $data['eid']; + $exid = $data['exid']; + $id = $eid; + if ($exid) $id .= '-'.$exid; + $param = 'eid='.$eid; + if ($exid) $param .= '&sub='.$exid; + $date = eventdate($data['exdate']); + $title = "<a href='$show?$param'>".$myts->makeTboxData4Show($data['title'])."</a>"; + $uname = xoops_getLinkedUnameFromId($data['uid']); + $reserved = $data['reserved']; + if ($reserved) $reserved = "<a href='$receipt?$param'>$reserved</a>"; + echo "<tr class='$bg'><td>$id<td>$date</td><td>$title</td>". + "<td>$uname</td><td align='right'>".$data['persons']. + "</td><td align='right'>$reserved</td></tr>\n"; + } + echo "</table>"; + break; +} + +xoops_cp_footer(); + +function show_categories() { + global $xoopsDB; + $myts =& MyTextSanitizer::getInstance(); + $res = $xoopsDB->query('SELECT c.*,count(topicid) count, if (p.weight, p.weight, c.weight) ord1, if(p.weight IS NULL, -1, c.weight) ord2 FROM '.CATBL.' c LEFT JOIN '.CATBL.' p ON c.catpri=p.catid LEFT JOIN '.EGTBL.' ON c.catid=topicid GROUP BY c.catid ORDER BY ord1,ord2,c.catid'); + + // display entries + $showlist = array('catname'=>_AM_CAT_NAME, 'weight'=>_AM_WEIGHT, + 'catimg' =>_AM_CAT_IMG, 'catdesc'=>_AM_CAT_DESC, + 'count' =>_AM_COUNT, 'op'=>_AM_OPERATION); + + echo " + <ul class=\"toptab\"> + <li class=\"addDir\"> + <a href='index.php?op=category&catid=0'>"._AM_CATEGORY_NEW."</a> + </li> + <li class=\"import\"> + <a href='index.php?op=catimp'>"._AM_CATEGORY_IMPORT."</a> + </li> + </ul>\n"; + + echo "<p class='evnavi'>"._AM_COUNT.' '.$xoopsDB->getRowsNum($res)."</p>"; + + echo "<form action='index.php?op=catdel' method='post'>\n"; + echo "<table class=\"outer\">\n"; + echo "<tr><th>"._DELETE."</th><th>".join('</th><th>', $showlist)."</th></tr>\n"; + $ndel = $n = 0; + while ($data = $xoopsDB->fetchArray($res)) { + $name = $myts->htmlSpecialChars($data['catname']); + $haschild = $data['count']; + if ($data['catpri']) { + $data['catname'] = " -- ".$name; + } else { + if ($haschild==0) { + $sub = $xoopsDB->query("SELECT count(catid) FROM ".CATBL." WHERE catpri=".$data['catid']); + list($haschild) = $xoopsDB->fetchRow($sub); + } + } + $id = $data['catid']; + $desc = $myts->htmlSpecialChars($data['catdesc']); + $img = $data['catimg']; + if (preg_match('/^\//', $img)) $img = XOOPS_URL.$img; + elseif (!empty($img) && !preg_match('/^https?:/', $img)) { + $img = EGUIDE_URL."/$img"; + } else { + $img = ""; + } + if (!empty($img)) $img = "<img src='$img' alt='$name' width='32' />"; + $data['catimg'] = $img; + $data['op'] = "<a href='index.php?op=category&catid=$id'>"._EDIT."</a>"; + if ($haschild) { + $del="-"; + } else { + $del="<input type='checkbox' name='dels[$id] value='$id'/>"; + $ndel++; + } + echo '<tr class="'.($n++%2?'even':'odd')."\"><td align='center'>$del</td>"; + foreach (array_keys($showlist) as $key) { + echo "<td>".$data[$key]."</td>"; + } + echo "</tr>\n"; + } + if ($ndel) echo "<tr><td colspan=\"7\" class=\"foot\"><input type='submit' value='"._DELETE."'/></td></tr>"; + echo "</table></form>\n"; +} + +function edit_category($catid) { + global $xoopsDB; + + $myts =& MyTextSanitizer::getInstance(); + if ($catid) { + $res = $xoopsDB->query('SELECT * FROM '.CATBL." WHERE catid=$catid"); + $data = $xoopsDB->fetchArray($res); + } else { + $data = array('catid'=>0, 'catname'=>'', 'catimg'=>'','catdesc'=>'', + 'catpri'=>0, 'weight'=>0); + } + $form = new XoopsThemeForm($catid?_AM_CATEGORY_EDIT:_AM_CATEGORY_NEW, 'myform', 'index.php'); + $form->addElement(new XoopsFormHidden('catid', $catid)); + $form->addElement(new XoopsFormHidden('op', 'catsave')); + $form->addElement(new XoopsFormText(_AM_CAT_NAME, 'catname', 40, 40, $data['catname']), true); + $form->addElement(new XoopsFormText(_AM_CAT_IMG, 'catimg', 60, 255, $data['catimg'])); + $form->addElement(new XoopsFormDhtmlTextArea(_AM_CAT_DESC, 'catdesc', $data['catdesc'])); + $catpri = new XoopsFormSelect(_AM_CAT_PRIMARY, 'catpri', $data['catpri']); + $catpri->addOption(0, _NONE); + foreach (get_eguide_category(false) as $cat) { + if ($catid != $cat['catid']) { + $catpri->addOption($cat['catid'], $cat['name']); + } + } + $form->addElement($catpri); + $form->addElement(new XoopsFormText(_AM_WEIGHT, 'weight', 4, 4, $data['weight'])); + $form->addElement(new XoopsFormButton('' , 'catsave', _SUBMIT, 'submit')); + $form->display(); +} + +function import_category() { + global $xoopsDB, $xoopsModule; + $mid = $xoopsModule->getVar('mid'); + $res = $xoopsDB->query('SELECT m.mid,m.name,template FROM '.$xoopsDB->prefix('newblocks')." n, ".$xoopsDB->prefix('modules')." m WHERE edit_func='b_event_top_edit' AND func_num=1 AND n.mid<>$mid AND n.mid=m.mid ORDER BY m.weight"); + $mods = array(); + while (list($mid, $name, $temp)=$xoopsDB->fetchRow($res)) { + $mods[] = array('mid'=>$mid, + 'name'=>htmlspecialchars($name), + 'prefix'=>preg_replace('/_block_top\.html$/', '', $temp)); + } + $selmod = new XoopsFormSelect(_AM_CAT_IMPORTFROM, 'mid'); + $selmod->addOption(0, _NONE); + foreach ($mods as $i => $mod) { + $res = $xoopsDB->query('SELECT count(catid) FROM '.$xoopsDB->prefix($mod['prefix'].'_category')); + list($n) = $xoopsDB->fetchRow($res); + $selmod->addOption($mod['mid'], $mod['name']." ("._AM_COUNT."$n)"); + } + $form = new XoopsThemeForm(_AM_CATEGORY_IMPORT, 'myform', 'index.php'); + $form->addElement(new XoopsFormHidden('op', 'impsave')); + $form->addElement($selmod); + $selmod->setDescription(_AM_CAT_IMPORTDESC); + $form->addElement(new XoopsFormButton('' , 'impsave', _SUBMIT, 'submit')); + $form->display(); +} + +function summary_csv() { + global $xoopsDB; + function _q($x) { return '"'.preg_replace('/"/', '""', $x).'"'; } + $file = "eguide_summary_".formatTimestamp(time(),"Ymd").".csv"; + $charset = eguide_form_options('export_charset', _MD_EXPORT_CHARSET); + header("Content-Type: text/plain; Charset=".$charset); + header('Content-Disposition:attachment;filename="'.$file.'"'); + + $result = $xoopsDB->query('SELECT e.eid,if(x.exid,x.exid,0) exid, IF(exdate,exdate,edate) exdate,title,uid,status,persons,IF(x.reserved,x.reserved,o.reserved) reserved FROM '.EGTBL.' e LEFT JOIN '.OPTBL.' o ON e.eid=o.eid LEFT JOIN '.EXTBL." x ON e.eid=eidref ORDER BY exdate DESC,e.eid DESC"); + $out = '"'.join('","',array("ID","",_MD_EXTENT_DATE,_AM_TITLE,_AM_POSTER,_MD_RESERV_PERSONS,_AM_RESERVATION))."\"\n"; + while ($data=$xoopsDB->fetchArray($result)) { + $date = eventdate($data['exdate']); + $poster = XoopsUser::getUnameFromId($data['uid']); + $exid = $data['exid']?$data['exid']:''; + $out .= join(',',array($data['eid'],$exid,_q($date), + _q($data['title']),_q($poster), + $data['persons'],$data['reserved']))."\n"; + } + if ($charset != _CHARSET) { + if (function_exists("mb_convert_encoding")) { + $out = mb_convert_encoding($out, $charset, _CHARSET); + } elseif (function_exists("iconv")) { + $out = iconv($charset, _CHARSET, $out); + } + } + echo $out; + exit; +} +?> \ No newline at end of file Property changes on: XoopsModules/eguide/trunk/eguide/admin/index.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin/menu.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/menu.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/menu.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,32 @@ +<?php +// $Id$ + +$adminmenu[]=array('title' => _MI_EGUIDE_ABOUT, + 'link' => "admin/help.php"); +$adminmenu[]=array('title' => _MI_EGUIDE_EVENTS, + 'link' => "admin/index.php?op=events"); +$adminmenu[]=array('title' => _MI_EGUIDE_NOTIFIES, + 'link' => "admin/index.php?op=notifies"); +$adminmenu[]=array('title' => _MI_EGUIDE_CATEGORY, + 'link' => "admin/index.php?op=category"); +$adminmenu[]=array('title' => _MI_EGUIDE_SUMMARY, + 'link' => "admin/index.php?op=summary"); + + +$path = dirname(dirname(__FILE__)).'/options/menu.php'; + +if (file_exists($path)) include $path; + +$adminmenu4altsys[]= + array('title' => _MD_A_MYMENU_MYTPLSADMIN, + 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mytplsadmin'); +$adminmenu4altsys[]= + array('title' => _MD_A_MYMENU_MYBLOCKSADMIN, + 'link' => 'admin/index.php?mode=admin&lib=altsys&page=myblocksadmin'); +$adminmenu4altsys[]= + array('title' => _MD_A_MYMENU_MYLANGADMIN, + 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mylangadmin'); +$adminmenu4altsys[]= + array('title' => _MD_A_MYMENU_MYPREFERENCES, + 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mypreferences'); +?> Property changes on: XoopsModules/eguide/trunk/eguide/admin/menu.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin/mymenu.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin/mymenu.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin/mymenu.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,110 @@ +<?php + +// Skip for ORETEKI XOOPS +if( defined( 'XOOPS_ORETEKI' ) ) return ; + +global $xoopsModule ; +if( ! is_object( $xoopsModule ) ) die( '$xoopsModule is not set' ) ; + +// language files (modinfo.php) +$language = empty( $xoopsConfig['language'] ) ? 'english' : $xoopsConfig['language'] ; +$mydirpath = dirname(dirname(__FILE__)); +$mydirname = basename($mydirpath); +if( file_exists( "$mydirpath/language/$language/modinfo.php" ) ) { + // user customized language file + include_once "$mydirpath/language/$language/modinfo.php" ; +} else { + // fallback english + include_once "$mydirpath/language/english/modinfo.php" ; +} + +include dirname(__FILE__).'/menu.php' ; + +$use_altsys = file_exists( XOOPS_TRUST_PATH.'/libs/altsys/mytplsadmin.php' ) ; +if( $use_altsys ) { + // mytplsadmin (TODO check if this module has tplfile) + $title = defined( '_MD_A_MYMENU_MYTPLSADMIN' ) ? _MD_A_MYMENU_MYTPLSADMIN : 'tplsadmin' ; + array_push( $adminmenu , array( 'title' => $title , 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mytplsadmin' ) ) ; +} + +if( file_exists( XOOPS_TRUST_PATH.'/libs/altsys/myblocksadmin.php' ) ) { + // myblocksadmin + $title = defined( '_MD_A_MYMENU_MYBLOCKSADMIN' ) ? _MD_A_MYMENU_MYBLOCKSADMIN : 'blocksadmin' ; + array_push( $adminmenu , array( 'title' => $title , 'link' => 'admin/index.php?mode=admin&lib=altsys&page=myblocksadmin' ) ) ; +} + +if( file_exists( XOOPS_TRUST_PATH.'/libs/altsys/mylangadmin.php' ) ) { + // myblocksadmin + $title = defined( '_MD_A_MYMENU_MYLANGADMIN' ) ? _MD_A_MYMENU_MYLANGADMIN : 'langadmin' ; + array_push( $adminmenu , array( 'title' => $title , 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mylangadmin' ) ) ; +} + +// preferences +$config_handler =& xoops_gethandler('config'); +if( count( $config_handler->getConfigs( new Criteria( 'conf_modid' , $xoopsModule->mid() ) ) ) > 0 ) { + if( file_exists( XOOPS_TRUST_PATH.'/libs/altsys/mypreferences.php' ) ) { + // mypreferences + $title = defined( '_MD_A_MYMENU_MYPREFERENCES' ) ? _MD_A_MYMENU_MYPREFERENCES : _PREFERENCES ; + array_push( $adminmenu , array( 'title' => $title , 'link' => 'admin/index.php?mode=admin&lib=altsys&page=mypreferences' ) ) ; + } elseif (defined('XOOPS_CUBE_LEGACY')) { + // system->preferences + array_push( $adminmenu , array( 'title' => _PREFERENCES , 'link' => XOOPS_URL.'/modules/legacy/admin/index.php?action=PreferenceEdit&confmod_id='.$xoopsModule->mid() ) ) ; + } else { + array_push( $adminmenu , array( 'title' => _PREFERENCES , 'link' => XOOPS_URL.'/modules/system/admin.php?fct=preferences&op=showmod&mod='.$xoopsModule->mid() ) ) ; + } +} + +$mymenu_uri = empty( $mymenu_fake_uri ) ? $_SERVER['REQUEST_URI'] : $mymenu_fake_uri ; +$mymenu_link = substr( strstr( $mymenu_uri , '/admin/' ) , 1 ) ; + + + +// highlight +foreach( array_keys( $adminmenu ) as $i ) { + if( $mymenu_link == $adminmenu[$i]['link'] ) { + $adminmenu[$i]['selected'] = true ; + $adminmenu_hilighted = true ; + $GLOBALS['altsysAdminPageTitle'] = $adminmenu[$i]['title'] ; + } else { + $adminmenu[$i]['selected'] = false ; + } +} +if( empty( $adminmenu_hilighted ) ) { + $maxlen = 0; + foreach( array_keys( $adminmenu ) as $i ) { + $link = $adminmenu[$i]['link']; + if( $maxlen < strlen($link) && stristr( $mymenu_uri , $link )) { + if ($maxlen) $last = false; + $maxlen = strlen($link); + $adminmenu[$i]['selected'] = true; + $last = &$adminmenu[$i]['selected']; + $GLOBALS['altsysAdminPageTitle'] = $adminmenu[$i]['title'] ; + } + } +} + +// link conversion from relative to absolute +foreach( array_keys( $adminmenu ) as $i ) { + if( stristr( $adminmenu[$i]['link'] , XOOPS_URL ) === false ) { + $adminmenu[$i]['link'] = XOOPS_URL."/modules/$mydirname/" . $adminmenu[$i]['link'] ; + } +} + +if ( $use_altsys ) { + // display + require_once XOOPS_ROOT_PATH.'/class/template.php' ; + $tpl =& new XoopsTpl() ; + $tpl->assign( array( + 'adminmenu' => $adminmenu , + ) ) ; + $tpl->display( 'db:altsys_inc_mymenu.html' ) ; + } else { + // display (you can customize htmls) + echo "<div style='text-align:left;width:98%;'>" ; + foreach( $adminmenu as $menuitem ) { + echo "<div style='float:left;height:1.5em;'><nobr><a href='".htmlspecialchars($menuitem['link'],ENT_QUOTES)."' style='background-color:".($menuitem['selected']?"#FFCCCC":"#DDDDDD").";font:normal normal bold 9pt/12pt;'>".htmlspecialchars($menuitem['title'],ENT_QUOTES)."</a> | </nobr></div>\n" ; + } + echo "</div>\n<hr style='clear:left;display:block;' />\n" ; + } + +?> \ No newline at end of file Property changes on: XoopsModules/eguide/trunk/eguide/admin/mymenu.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/admin.php =================================================================== --- XoopsModules/eguide/trunk/eguide/admin.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/admin.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,510 @@ +<?php +// Event Administration by Poster +// $Id$ + +include 'header.php'; +include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php'; +include_once 'notify.inc.php'; + +require 'perm.php'; + +$eid = param('eid'); +$op = param('op', $eid?'edit':'new'); + +if (isset($_POST['save'])) $op = 'save'; +elseif (isset($_POST['preview'])) $op = 'preview'; +elseif (isset($_POST['editdate'])) $op = 'date'; +elseif (empty($op)) $op = 'new'; + +// store in database +$adm = $xoopsUser->isAdmin($xoopsModule->mid()); +$uid = $xoopsUser->getVar('uid'); + +// set form data +$iargs = array('reservation', 'strict', 'autoaccept', 'notify', + 'persons', 'style'); // integer value default '0' +$targs = array('title', 'summary', 'body', 'optfield', 'before'); +define("_EG_OPTDEFS", "redirect="._MD_RESERV_REDIRECT.",text\n"); + +$myts =& MyTextSanitizer::getInstance(); +$xoopsOption['template_main'] = EGPREFIX.'_admin.html'; + +if ($op=='new') { + // default value in post form + $data = array('lang_event_edit'=>_MD_NEWTITLE, + 'reservation' => 1, // reservation: 0=disable, 1=enable + 'style' => 1, // edit text: 0=html, 1=CRLF, 2=plain + 'autoaccept' => 1, // order to: 0=confirm, 1=accepted + 'notify' => 1, // notify to poster: 0=nothing, 1=send + 'strict' => 1, // order when full: 0=continue, 1=stop + 'persons' => $xoopsModuleConfig['default_persons'], + // how many persons/sheet in room + 'optfield' => + $xoopsModuleConfig['member_only']? + _MD_RESERV_DEFAULT_MEMBER:_MD_RESERV_DEFAULT_ITEM, + 'title' => '', // contents + 'summary' => '', + 'body' => '', + 'counter' => 0, + 'reserved' => 0, + 'edate' => time()+3600*24, // now + a day + 'event' => '', + 'expire' => $xoopsModuleConfig['expire_after']*60, + 'closetime' => $xoopsModuleConfig['close_before']*60, + 'optvars' => '', + 'topicid' => 1); +} else { + if ($eid) { + $result = $xoopsDB->query('SELECT * FROM '.EGTBL.' e LEFT JOIN '.OPTBL.' o ON e.eid=o.eid LEFT JOIN '.CATBL." ON topicid=catid WHERE e.eid=$eid"); + $data = $xoopsDB->fetchArray($result); + $edate = $data['edate']; + } else { + $data = array(); + } + $data['lang_event_edit'] = _MD_EDITARTICLE; + if ($op == 'preview' || $op == 'save' || $op == 'date') { + $edate = getDateField("edate"); + if (isset($_POST['expire'])) { + $expire = empty($_POST['expire'])?time_to_sec($_POST['expire_text']):intval($_POST['expire']); + } else { + $expire = getDateField('expire'); + } + $data['ldate'] = $data['edate'] = $edate; + $data['expire'] = $expire; + $data['topicid'] = param('topicid', 1); + foreach ($iargs as $name) { + $data[$name] = param($name); + } + foreach ($targs as $name) { + $data[$name] = param($name, ""); + } + $data['ldate'] = 0; + $data['closetime'] = time_to_sec($data['before']); + if ($adm) $data['status'] = param('status'); + $data['optvars'] = post_optvars(_EG_OPTDEFS); + } +} +if (!isset($data['status'])) { + $data['status']=$xoopsModuleConfig['auth']?STAT_POST:STAT_NORMAL; +} + +$extent_sets = array(); +if (isset($_POST['extent_sets'])) { + $init = false; + $sets = $_POST['extent_sets']; +} else { + $init = true; +} +$input_extent = ''; +if ($eid) { // already exists extents + $result = $xoopsDB->query('SELECT rvid FROM '.RVTBL." WHERE eid=$eid AND exid=0", 1); + if ($xoopsDB->getRowsNum($result)==0) { + $save = _MD_EDIT_EXTENT."("._MD_SAVE.")"; + $input_extent = "<input type='submit' name='editdate' value='$save'/> + <a href='editdate.php?eid=$eid'>"._MD_EDIT_EXTENT."</a>"; + } + $result = $xoopsDB->query('SELECT * FROM '.EXTBL.' WHERE eidref='.$eid.' ORDER BY exdate'); + while ($ext = $xoopsDB->fetchArray($result)) { + $n = $ext['exid']; + $ext['date'] = eventdate($ext['exdate']); + $ext['no'] = $n; + $ext['disable'] = true; + $extent_sets[] = $ext; + } +} else { + $extents = param('extents',"none"); + $repeat = param('repeat',1); + $input_extent = select_list('extents', $ev_extents, $extents); + $input_extent .= ' '._MD_EXTENT_REPEAT." <input size='2' value='$repeat' name='repeat'/>"; + $step = 86400; // sec/day + switch ($extents) { + case 'weekly': + $step = $step * 7; + case 'daily': + for ($n=0, $i=$edate; $n<$repeat; $n++, $i += $step) { + $v = $init?true:isset($sets[$n]); + $extent_sets[] = + array('exdate'=>$i, 'no'=>$n, + 'date'=>eventdate($i), 'checked'=>$v); + $sets[$n]=$v?$i:0; + } + break; + case 'monthly': + list($y, $m, $d, $h, $mi) = split(' ', formatTimestamp($edate, "Y m j G i")); + for ($n=0; $n<$repeat; $n++) { + $i = userTimeToServerTime(mktime($h,$mi, 0, $m+$n, $d, $y)); + $v = $init?true:isset($sets[$n]); + $extent_sets[] = + array('exdate'=>$i, 'no'=>$n, + 'date'=>eventdate($i), 'checked'=>$v); + $sets[$n]=$v?$i:0; + } + default: + break; + } +} + +$now = time(); + +if ($op=='save' || $op=='date') { + // database field names + $updated = ""; + $fields = array('title'=>_MD_TITLE, 'edate'=>_MD_EVENT_DATE, + 'expire'=>_MD_EVENT_EXPIRE, 'summary'=>_MD_INTROTEXT, + 'body'=>_MD_EXTEXT, 'style'=>_MD_EVENT_STYLE, + 'status'=>$ev_stats[STAT_NORMAL], 'topicid'=>_MD_EVENT_CATEGORY); + if ($eid) { + $cond = $adm?"":" AND uid=$uid"; // condition update by poster + $result = $xoopsDB->query('SELECT * FROM '.EGTBL." WHERE eid=$eid"); + $pdata = $xoopsDB->fetchArray($result); + $buf = "mdate=$now"; + foreach ($fields as $name=>$label) { + if ($pdata[$name] != $data[$name]) { + $buf .= ", $name=".$xoopsDB->quoteString($data[$name]); + if ($name=='edate') { + $label .= " ".formatTimestamp($pdata[$name], _MD_POSTED_FMT)." -> ".formatTimestamp($data[$name], _MD_POSTED_FMT); + } + $updated .= " ".$label."\n"; + } + } + $xoopsDB->query('UPDATE '.EGTBL.' SET '.$buf." WHERE eid=$eid $cond"); + $delta = $edate - $pdata['edate']; + if ($delta) { + $xoopsDB->query('UPDATE '.EXTBL." SET exdate=exdate+'$delta' WHERE eidref=$eid AND exdate>$now"); + } + } else { + $pdata = array('status'=>STAT_POST); + $flist = "uid, cdate, mdate"; + $buf = "$uid, $now, $now"; + foreach (array_keys($fields) as $name) { + $flist .= ", $name"; + $buf .= ', '.$xoopsDB->quoteString($data[$name]); + } + $xoopsDB->query('INSERT INTO '.EGTBL."($flist) VALUES($buf)"); + $data['eid'] = $eid = $xoopsDB->getInsertId(); + $data['uid'] = $uid; + if (!empty($sets)) { + foreach ($sets as $v) { + if ($v) $xoopsDB->query('INSERT INTO '.EXTBL."(eidref, exdate) VALUES($eid, $v)"); + } + } + event_notify('new', $data); + } + if (empty($eid)) { + echo "<div class='error'>Internal Error: eguide/admin.php</div>\n"; + exit(); + } + if ($pdata['status']!=$data['status']) user_notify($eid); + $result = $xoopsDB->query("SELECT * FROM ".OPTBL." WHERE eid=$eid"); + + $ofields = array('reservation'=>_MD_RESERV_DESC, + 'strict'=>_MD_RESERV_STOPFULL, + 'autoaccept'=>_MD_RESERV_AUTO, + 'notify'=>_MD_RESERV_NOTIFYPOSTER, + 'persons'=>_MD_RESERV_PERSONS, + 'optfield'=>_MD_RESERV_ITEM, + 'closetime'=>_MD_CLOSEDATE, + 'optvars'=>_MD_OPTION_VARS); + if ($xoopsDB->getRowsNum($result)) { + $pdata = $xoopsDB->fetchArray($result); + $buf = ""; + foreach ($ofields as $name=>$label) { + if ($pdata[$name]!=$data[$name]) { + $buf .= (empty($buf)?'':', ').$name.'='.$xoopsDB->quoteString($data[$name]); + switch ($name) { + case 'persons': + $label .= ' '.$pdata[$name].' -> '.$data[$name]; + break; + case 'closetime': + $label .= ' '.time_to_str($pdata[$name]).' -> '.time_to_str($data[$name]); + case 'reservation': + case 'strict': + case 'autoaccept': + case 'notify': + $label .= ' '.($data[$name]?_YES:_NO); + break; + } + $updated = " ".$label."\n"; + } + } + $xoopsDB->query('UPDATE '.OPTBL." SET $buf WHERE eid=$eid"); + } else { + $keys = array_keys($ofields); + $flist = 'eid, '.join(', ', $keys); + $buf = $eid; + foreach ($keys as $name) { + $buf .= ', '.$xoopsDB->quoteString($data[$name]); + } + $xoopsDB->query("INSERT INTO ".OPTBL."($flist) VALUES($buf)"); + } + if ($updated && $data['status']==STAT_NORMAL) { + $dirname = basename(dirname(__FILE__)); + $tags = array( + 'uid'=>$data['uid'], + 'URL_EVENTS' => $data['title']."\n".XOOPS_URL."/modules/$dirname/event.php?eid=".$eid, + 'UPDATED' => $updated, + 'DO_UNAME' => $xoopsUser->getVar('uname')); + event_notify('update', $tags); + } + if ($op == 'date') { + header('Location: '.EGUIDE_URL.'/editdate.php?eid='.$eid); + } else { + redirect_header(EGUIDE_URL."/event.php?eid=$eid",2,_MD_DBUPDATED); + } + exit; +} elseif ($op=='confirm') { + if ($adm) { // delete by admin + $result = $xoopsDB->query('DELETE FROM '.EGTBL." WHERE eid=$eid"); + $result = $xoopsDB->query('DELETE FROM '.OPTBL." WHERE eid=$eid"); + $result = $xoopsDB->query('DELETE FROM '.RVTBL." WHERE eid=$eid"); + $result = $xoopsDB->query('DELETE FROM '.EXTBL." WHERE eidref=$eid"); + } else { // delete by poster + $result = $xoopsDB->query('UPDATE '.EGTBL.' SET status='.STAT_DELETED." WHERE eid=$eid AND uid=$uid"); + } + redirect_header(EGUIDE_URL."/index.php",2,_MD_DBDELETED); + exit(); +} + + +include(XOOPS_ROOT_PATH."/header.php"); + +assign_module_css(); + +// DHTML calendar +include_once XOOPS_ROOT_PATH.'/language/'.$xoopsConfig['language'].'/calendar.php'; +if (!empty($ev_week)) $xoopsTpl->assign('weekname', $ev_week); +if (!empty($ev_month)) $xoopsTpl->assign('monthname', $ev_month); +$y = formatTimestamp(time(), 'Y'); +$xoopsTpl->assign('calrange', array($y-10,$y+10)); + +$check = array('title'=>_MD_TITLE, 'summary'=>_MD_INTROTEXT); +foreach ($check as $k=>$v) { + $check[$k] = sprintf(_FORM_ENTER, $v); +} +$xoopsTpl->assign('check', $check); +$xoopsTpl->assign('use_fckeditor', eguide_form_options('use_fckeditor', 0)); +$xoopsTpl->assign('enable_copy', eguide_form_options('enable_copy', 0)); +$timetable = array(); +$tstr = $xoopsModuleConfig['time_defs']; +if ($tstr) { + foreach (explode(',',$tstr) as $value) { + if (strpos($value, '=')) { + list($value, $label)=explode('=', $value); + } else { + $label=$value; + } + $timetable[] = array('label'=>$label, 'value'=>$value); + } +} +$xoopsTpl->assign('timetable', $timetable); + +if ($eid && $op=='delete') { + $xoopsOption['template_main'] = EGPREFIX.'_event.html'; + edit_eventdata($data); + unset($data['eid']); // disable control link + $xoopsTpl->assign('event', $data); + $xoopsTpl->assign('message', "<div><form action='admin.php' method='post'> +<input type='hidden' name='op' value='confirm' /> +<input type='hidden' name='eid' value='$eid' /> +<input type='submit' value='"._DELETE."' /> +</form><b>"._MD_EVENT_DEL_DESC."</b></div>\n". +(($adm)?"<div class='evnote'>"._MD_EVENT_DEL_ADMIN."</div>\n":'')); +} else { + $expire = $data['expire']>$data['edate']?$data['expire']-$data['edate']:$data['expire']; + $str = isset($expire_set["+$expire"])?"":htmlspecialchars(time_to_str($expire)); + $input_expire = "<input name='expire_text' size='8' value='$str' onchange='document.evform.expire.selectedIndex=0' /> ". + select_list('expire', $expire_set, $expire); + + $cats = get_eguide_category(); + if (count($cats) > 1) { + $input_category = select_list('topicid', $cats, $data['topicid']); + } else { + $input_category = ''; + } + + if ($op == 'preview') { + $views = array('edate', 'cdate', 'title', 'summary', 'body', + 'persons', 'reserved', 'closetime', + 'style', 'uid', 'counter', 'catid', 'catimg', 'catname'); + $event = array(); + if (empty($data['cdate'])) { + $data['cdate'] = $now; + $data['reserved'] = 0; + $data['counter'] = 0; + $data['uid'] = $uid; + $data['catid'] = 1; + } + $result = $xoopsDB->query('SELECT catname, catimg FROM '.CATBL.' WHERE catid='.$data['topicid']); + list($data['catname'], $data['catimg']) = $xoopsDB->fetchRow($result); + foreach ($views as $name) { + $event[$name] = $data[$name]; + } + edit_eventdata($event); + $form = eventform($data); + $form['submit_opts'] = 'disabled'; + $xoopsTpl->assign('form', $form); + $xoopsTpl->assign('event',$event); + } else { + $xoopsTpl->assign('event',''); + } + + $input_status = $adm?select_list('status', $ev_stats, $data['status']):''; + if (empty($data['before'])) { + $data['before']=time_to_str($data['closetime']); + } + edit_eventdata($data); + $data['optfield'] = htmlspecialchars($data['optfield']); + $xoopsTpl->assign($data); + + class myFormDhtmlTextArea extends XoopsFormDhtmlTextArea + { + function _renderSmileys() {} // only disable smileys + } + $summary = isset($data['summary'])?$data['summary']:''; + $textarea = new myFormDhtmlTextArea('', 'summary', $summary, 10, 60); + $nlab = eguide_form_options('label_persons'); + if ($nlab) $nlab = sprintf(_MD_RESERV_LABEL_DESC, $nlab); + $edate = $data['edate']; + $xoopsTpl->assign(array('input_edate'=>datefield('edate',$edate), + 'input_edatetime'=>timefield('edate',$edate), + 'edatetime'=>formatTimestamp($edate, 'H:i'), + 'input_expire'=>$input_expire, + 'input_category'=>$input_category, + 'input_extent'=>$input_extent, + 'input_status'=>$input_status, + 'extent_sets'=>$extent_sets, + 'label_desc'=>$nlab, + 'summary_textarea'=>$textarea->render(), + 'input_style'=>select_list('style', $edit_style, $data['style']), + 'edata' =>$data, + )); + if ($data['optvars']) { + $optvars = unserialize_vars($data['optvars']); + $xoopsTpl->assign('optvars', $optvars); + foreach (explode("\n", _EG_OPTDEFS) as $item) { + list($fname) = explode("=", $item); + unset($optvars[$fname]); + } + $others = ""; + foreach ($optvars as $k=>$v) { + $others .= "$k=$v\n"; + } + $xoopsTpl->assign('opt_others', $others); + } + $xoopsTpl->assign(array('input_edate'=>datefield('edate',$edate), + 'input_edatetime'=>timefield('edate',$edate), + 'edatetime'=>formatTimestamp($edate, 'H:i'), + 'input_expire'=>$input_expire, + 'input_category'=>$input_category, + 'input_extent'=>$input_extent, + 'input_status'=>$input_status, + 'extent_sets'=>$extent_sets, + 'label_desc'=>$nlab, + 'summary_textarea'=>$textarea->render(), + 'input_style'=>select_list('style', $edit_style, $data['style']), + )); +} + +$paths = array(); +if ($eid) { + $cid = $data['topicid']; + $paths[$data['title']] = "event.php?eid=$eid"; + if ($op == 'delete') { + $paths[_DELETE] = "admin.php?op=delete&eid=$eid"; + } else { + $paths[_EDIT] = "admin.php?eid=$eid"; + } +} else { + $cid = 0; + $paths[_MD_NEWTITLE] = 'admin.php'; +} +set_eguide_breadcrumbs($cid, $paths); + +include(XOOPS_ROOT_PATH."/footer.php"); + +// make to unix time from separate fields. +function getDateField($p) { + global $xoopsUser; + if (empty($_POST["${p}ymd"])) return 0; + list($y, $m, $d) = split('-', $_POST["${p}ymd"]); + if (isset($_POST["${p}time"])) { // accept 'HH:mm' format + list($hour, $min) = split(':', $_POST["${p}time"]); + } else { + $hour = $_POST["${p}hour"]; + $min = $_POST["${p}min"]; + } + return userTimeToServerTime(mktime($hour, $min, 0, $m, $d, $y), $xoopsUser->getVar("timezone_offset")); +} + +function datefield($prefix, $time, $hastime=true) { + $buf = "<input id='${prefix}ymd' name='${prefix}ymd' size='12' value='".formatTimestamp($time, "Y-m-d")."'/> "; + $buf .= "<script language='javascript'><!-- +document.write('<input type=\"button\" value=\""._MD_CAL."\" onClick=\"showCalendar(\\'${prefix}ymd\\')\">'); +--></script>\n"; + return $buf; +} + +function timefield($prefix, $time) { + list($h, $i) = split(' ', formatTimestamp($time, "G i")); + $buf = select_value("%02d", "${prefix}hour", 0, 23, $h); + $buf .= " : "; + + $buf .= select_value("%02d", "${prefix}min", 0, 59, $i, 5); + $buf .= " : 00\n"; + return $buf; +} + +function select_value($fmt, $name, $from, $to, $def=0, $step=1) { + $buf = "<select name='$name' id='$name'>\n"; + for ($i = $from; $i<=$to; $i+=$step) { + $buf .= "<option value='$i'".($i==$def?" selected='selected'":"").">".sprintf($fmt, $i)."</option>\n"; + } + $buf .= "</select>\n"; + return $buf; +} + +function select_list($name, $options, $def=1) { + $buf = "<select name='$name'>\n"; + foreach ($options as $i => $v) { + if (is_array($v)) $v = $v['name']; + $buf .= "<option value='$i'".($i==$def?" selected='selected'":"").">$v</option>\n"; + } + $buf .= "</select>\n"; + return $buf; +} + +function time_to_str($sec) { + $unit = split(',',_MD_TIME_UNIT); + if ((abs($sec) >= 86400) && ($sec % 86400) == 0) { // days + return ($sec / 86400).$unit[0]; + } elseif ((abs($sec) >= 3600) && ($sec % 3600 == 0)) { // hours + return ($sec / 3600).$unit[1]; + } + return intval($sec / 60).$unit[2]; +} + +function time_to_sec($str) { + $unit = split(',',_MD_TIME_REG); + $v = intval($str); + if (preg_match('/^-?\d+'.$unit[0].'$/i', $str)) { + return $v * 86400; + } elseif (preg_match('/^-?\d+'.$unit[1].'?$/i', $str)) { + return $v * 3600; + } + return $v * 60; +} + +function post_optvars($defs) { + $vars = array(); + foreach (explode("\n", $defs) as $item) { + list($fname) = explode("=", $item); + $v = param($fname, ''); + if (!empty($v)) $vars[$fname] = "$fname=$v"; + } + $fname = 'opt_others'; + $v = param($fname, ''); + if (!empty($v)) $vars[$fname] = $v; + return join("\n", $vars); +} + +?> \ No newline at end of file Property changes on: XoopsModules/eguide/trunk/eguide/admin.php ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: XoopsModules/eguide/trunk/eguide/blocks/ev_cat.php =================================================================== --- XoopsModules/eguide/trunk/eguide/blocks/ev_cat.php (rev 0) +++ XoopsModules/eguide/trunk/eguide/blocks/ev_cat.php 2014-11-12 12:20:01 UTC (rev 12838) @@ -0,0 +1,41 @@ +<?php +# Event category select block +# $Id$ + +include dirname(dirname(__FILE__))."/mydirname.php"; + +eval ( ' +function b_'.$myprefix.'_select_show( $options ) +{ + return b_event_select_base( "'.$egdirname.'" , "'.$myprefix.'" ,$options ) ; +} +' ) ; + +if (!function_exists("b_event_select_base")) { + +function b_event_select_base($dirname, $prefix, $options) { + global $xoopsDB, $xoopsUser; + $cat = $xoopsDB->prefix($prefix.'_category'); + $cats = $options[0]; + $opt = preg_match('/^(\d+,)*\d+$/', $cats)?" WHERE p.catid IN ($cats)":""; + $result = $xoopsDB->query("SELECT c.catid, c.catname AS name, c.catimg AS image,if (p.weight, p.weight, c.weight) ord1, if(p.weight IS NULL, -1, c.weight) ord2,c.catpri, c.catdesc FROM $cat c LEFT JOIN $cat p ON c.catpri=p.catid $opt ORDER BY ord1,ord2,catid"); + $list = array(); + $catid = isset($_GET['cat'])... [truncated message content] |