Example #1
0
 public function onDefault()
 {
     $header['title'] = '图片库';
     page::header($header);
     page::top();
     page::bottom();
     page::footer();
 }
Example #2
0
 public function onInfo()
 {
     $header['title'] = '控制中心';
     page::header($header);
     page::top();
     page::navbar($this->navbar());
     page::bottom();
     page::footer();
 }
Example #3
0
 public function onInfo()
 {
     $header['title'] = '控制中心';
     page::header($header);
     page::top();
     page::navbar(array(array('id' => 'main', 'title' => '首页', 'href' => url::build('zotop/index/main')), array('id' => 'info', 'title' => '系统信息', 'href' => url::build('zotop/index/info'))));
     page::bottom();
     page::footer();
 }
Example #4
0
 public function onDefault()
 {
     $tables = $this->db->table()->get(true);
     $header['title'] = '数据库管理';
     page::header($header);
     page::add('<div id="page" class="clearfix">');
     page::add('<div id="side">');
     block::header('数据库基本信息');
     table::header();
     table::row(array('w60' => '数据库名称', '2' => '' . $this->db->config['database'] . ''));
     table::row(array('w60' => '数据库版本', '2' => '' . $this->db->version(true) . ''));
     table::row(array('w60' => '数据库大小', '2' => '<b>' . $this->db->size() . '</b> '));
     table::row(array('w60' => '数据表个数', '2' => '<b>' . count($tables) . '</b> 个'));
     table::footer();
     block::footer();
     page::add('</div>');
     page::add('<div id="main">');
     page::top();
     page::navbar($this->navbar(), 'table');
     //zotop::dump($tables);
     form::header(array('class' => 'ajax'));
     $column['select'] = '<input name="id" class="selectAll" type="checkbox"/>';
     $column['name'] = '数据表名称';
     $column['size  w60'] = '大小';
     $column['Rows  w60'] = '记录数';
     $column['Engine  w60'] = '类型';
     $column['Collation  w100'] = '整理';
     $column['manage view w60'] = '浏览';
     $column['manage delete'] = '删除';
     table::header('list', $column);
     foreach ($tables as $table) {
         $size = $table['Data_length'] + $table['Index_length'];
         $column = array();
         $column['select'] = '<input name="id[]" class="select" type="checkbox"/>';
         $column['name'] = '<b>' . $table['Name'] . '</b><h5>' . $table['Comment'] . '</h5>';
         $column['size w60'] = (string) format::size($size);
         $column['Rows  w60'] = $table['Rows'];
         $column['Engine  w60'] = $table['Engine'];
         $column['collation  w100'] = $table['Collation'];
         $column['manage view w60'] = '<a href="' . url::build('system/database/table/record') . '">浏览</a>';
         $column['manage delete'] = '<a href="' . url::build('system/database/table/delete') . '" class="confirm">删除</a>';
         table::row($column);
     }
     table::footer();
     page::add('<div style="height:200px;"></div>');
     form::buttons(array('type' => 'select', 'style' => 'width:180px', 'options' => array('check' => '优化', 'delete' => '删除')), array('type' => 'submit', 'value' => '执行操作'));
     form::footer();
     page::bottom();
     page::add('</div>');
     page::add('</div>');
     page::footer();
 }
Example #5
0
 public function onDefault($status = -1)
 {
     $header['title'] = '短消息';
     page::header($header);
     page::top();
     page::navbar(array(array('id' => 'main', 'title' => '短消息列表', 'href' => url::build('zotop/msg')), array('id' => 'send', 'title' => '发送短消息', 'href' => url::build('zotop/msg/send'), 'class' => 'dialog {width:600}')), 'main');
     echo '<div style="padding:4px 15px;">';
     echo '<table class="list">';
     echo '<tr><td class="list-side">程序版本:</td><td>' . zotop::config('zotop.version') . '</td></tr>';
     echo '<tr><td class="list-side">程序设计:</td><td>' . zotop::config('zotop.author') . '</td></tr>';
     echo '<tr><td class="list-side">程序开发:</td><td>' . zotop::config('zotop.authors') . '</td></tr>';
     echo '<tr><td class="list-side">官方网站:</td><td><a href="' . zotop::config('zotop.homepage') . '" target="_blank">' . zotop::config('zotop.homepage') . '</a></td></tr>';
     echo '<tr><td class="list-side">安装时间:</td><td>' . zotop::config('zotop.install') . '</td></tr>';
     echo '</table>';
     echo '</div>';
     page::bottom();
     page::footer();
 }
Example #6
0
 public function onEdit($file)
 {
     if (form::isPostBack()) {
         $content = request::post('source');
         msg::success('保存测试', '测试,继续编辑或者返回' . zotop::dump($content, true), 'reload');
     }
     $source = file::read(ROOT . $file);
     $page['title'] = '文件编辑器';
     page::header($page);
     page::top();
     page::navbar($this->navbar());
     form::header(array('class' => 'sourceEditor'));
     form::field(array('type' => 'label', 'label' => zotop::t('文件名称'), 'name' => 'filename', 'value' => $file, 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'source', 'label' => zotop::t('文件内容'), 'name' => 'source', 'value' => $source, 'valid' => 'required:true', 'description' => zotop::t('')));
     form::buttons(array('type' => 'submit', 'value' => '保存文件'), array('type' => 'back'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #7
0
 public function onDefault()
 {
     $header['title'] = '测试表单';
     page::header($header);
     page::top();
     page::navbar(array(array('id' => 'form', 'title' => '测试表单', 'href' => url::build('system/test')), array('id' => 'info', 'title' => '系统信息', 'href' => url::build('system/index/info'))), 'form');
     form::header(array('class' => 'ajax'));
     block::header(array('title' => '基本信息', 'action' => 'more'));
     form::add(array('type' => 'checkbox', 'label' => t('多选框'), 'name' => 'test1', 'options' => array('1' => 'a1', '2' => 'a2', '3' => 'a1', '4' => 'a2', '5' => 'a1', '6' => 'a2'), 'value' => array('1', '2'), 'description' => '最多只允许选择三项'));
     form::add(array('type' => 'checkbox', 'label' => t('多选框'), 'name' => 'test11', 'options' => array('1' => 'a1', '2' => 'a2', '3' => 'a1'), 'value' => array('1', '2'), 'class' => 'block', 'description' => '最多只允许选择三项'));
     form::add(array('type' => 'select', 'label' => '下拉列表', 'name' => 'test22', 'options' => array('1' => 'a1', '2' => 'a2', '3' => 'a1', '4' => 'a2', '5' => 'a1', '6' => 'a2'), 'value' => array('2', '4'), 'description' => '提示信息'));
     form::add(array('type' => 'select', 'label' => '下拉列表', 'name' => 'test2', 'options' => array('1' => 'a1', '2' => 'a2', '3' => 'a1', '4' => 'a2', '5' => 'a1', '6' => 'a2'), 'value' => '2', 'description' => '提示信息'));
     form::add(array('type' => 'text', 'label' => '文本框', 'name' => 'test3', 'value' => '2的飞洒的发生地', 'description' => '提示信息'));
     block::footer();
     block::header(array('title' => '高级信息', 'action' => 'more'));
     form::add(array('type' => 'image', 'label' => '上传图片', 'name' => 'test4', 'value' => '2的飞洒的发生地', 'valid' => 'required:true', 'description' => '提示信息'));
     form::add(array('type' => 'textarea', 'label' => '文本框', 'name' => 'test32', 'value' => '2的飞洒的发生地', 'valid' => 'required:true,maxlength:500', 'description' => '提示信息'));
     form::add(array('label' => '组合', 'type' => 'group', 'fields' => array(array('label' => '年', 'name' => 'year', 'type' => 'text'), array('label' => '月', 'name' => 'month', 'type' => 'text'), array('label' => '日', 'name' => 'day', 'type' => 'text')), 'description' => '生成一个复合控件'));
     block::footer();
     form::buttons(array('type' => 'submit'), array('type' => 'reset'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #8
0
 public function onBackup()
 {
     $header['title'] = '数据库管理 <i>></i> 数据表设置:' . $tablename . ' ';
     page::header($header);
     page::top();
     page::navbar($this->navbar(), 'backup');
     form::header();
     form::field(array('type' => 'select', 'options' => array('all' => '全部数据', 'custom' => '自定义备份'), 'name' => 'type', 'label' => '备份类型', 'value' => 'all', 'valid' => '{required:true}'));
     form::field(array('type' => 'text', 'name' => 'length', 'label' => '分卷长度', 'value' => '2048', 'description' => '分卷备份时文件长度限制,单位:<b>KB</b>', 'valid' => '{required:true}'));
     form::field(array('type' => 'text', 'name' => 'filename', 'label' => '备份文件名', 'value' => '', 'valid' => '{required:true}'));
     form::buttons(array('type' => 'submit'), array('type' => 'button', 'value' => '返回前页', 'class' => 'back', 'onclick' => 'history.go(-1);'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #9
0
 public function onAdd()
 {
     if (form::isPostBack()) {
         $module = zotop::model('zotop.module');
         $post = form::post();
         $result = $module->insert($post);
         if ($result) {
             msg::success('保存成功', '添加成功,正在刷新页面,请稍后……', zotop::url('zotop/module'));
         }
     }
     $page['title'] = '新建模块';
     page::header($page);
     page::top();
     page::navbar($this->navbar());
     form::header();
     block::header('基本信息');
     form::field(array('type' => 'text', 'label' => '模块ID', 'name' => 'id', 'value' => $data['id'], 'valid' => 'required:true,minlength:3,maxlength:32,remote:"' . zotop::url('zotop/module/checkid') . '"', 'description' => '允许使用数字、英文字符(不区分大小写)或者下划线,不允许使用其它特殊字符,3~32位'));
     form::field(array('type' => 'text', 'label' => '模块名称', 'name' => 'name', 'value' => $data['name'], 'valid' => 'required:true', 'description' => ''));
     form::field(array('type' => 'radio', 'options' => array('system' => '核心模块', 'plugin' => '插件模块'), 'label' => '模块类型', 'name' => 'type', 'value' => $data['type'], 'valid' => 'required:true', 'description' => ''));
     form::field(array('type' => 'text', 'label' => '访问地址', 'name' => 'url', 'value' => $data['url'], 'valid' => 'url:true', 'description' => '可以为模块绑定访问域名,如:http://bbs.***.com/ 如果不绑定域名,请留空'));
     form::field(array('type' => 'textarea', 'label' => '模块说明', 'name' => 'description', 'value' => $data['description'], 'valid' => '', 'description' => ''));
     block::footer();
     block::header('开发者信息');
     form::field(array('type' => 'text', 'label' => '开发者', 'name' => 'author', 'value' => $data['author'], 'valid' => 'required:true', 'description' => ''));
     form::field(array('type' => 'text', 'label' => '电子邮件', 'name' => 'email', 'value' => $data['email'], 'valid' => 'required:true,email:true', 'description' => ''));
     form::field(array('type' => 'text', 'label' => '官方网站', 'name' => 'site', 'value' => $data['site'], 'valid' => 'required:true', 'description' => ''));
     block::footer();
     form::buttons(array('type' => 'submit'), array('type' => 'back'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #10
0
 public function onDefault($dir = '')
 {
     $path = ROOT . DS . trim($dir, DS);
     $path = path::clean($path);
     $folders = dir::folders($path);
     $files = dir::files($path);
     $fileext = array('php', 'css', 'js', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'psd', 'html', 'htm', 'tpl', 'rar', 'zip', 'mp3');
     $page['title'] = '文件管理器';
     page::header($page);
     page::add('<div id="page" class="clearfix">');
     page::add('<div id="main">');
     page::add('<div id="main-inner">');
     page::top();
     page::navbar($this->navbar(), 'default');
     $column = array();
     $column['select'] = '';
     $column['name'] = '名称';
     $column['type'] = '类型';
     $column['size w60'] = '大小';
     $column['atime w120'] = '创建时间';
     $column['mtime w120'] = '修改时间';
     $column['manage rename w80'] = '重命名';
     $column['manage edit w80'] = '编辑';
     $column['manage delete'] = '删除';
     table::header('list', $column);
     foreach ($folders as $folder) {
         $column = array();
         $column['select w20 center'] = html::image(url::theme() . '/image/fileext/folder.gif');
         $column['name'] = '<a href="' . zotop::url('filemanager/index/default', array('dir' => $dir . DS . $folder)) . '"><b>' . $folder . '</b></a>';
         $column['type w60'] = '文件夹';
         $column['size w60'] = '--';
         $column['atime w120'] = time::format(@fileatime($path . DS . $folder));
         $column['mtime w120'] = time::format(@filemtime($path . DS . $folder));
         $column['manage rename w80'] = '<a>重命名</a>';
         $column['manage edit w80'] = '<a class="disabled">编辑</a>';
         $column['manage delete'] = '<a>删除</a>';
         table::row($column);
     }
     foreach ($files as $file) {
         $column = array();
         $column['select w20 center'] = in_array(file::ext($file), $fileext) ? html::image(url::theme() . '/image/fileext/' . file::ext($file) . '.gif') : html::image(url::theme() . '/image/fileext/unknown.gif');
         $column['name'] = '<a href="' . zotop::url('filemanager/index/default', array('dir' => $dir . DS . $file)) . '"><b>' . $file . '</b></a>';
         $column['type w60'] = '文件';
         $column['size w60'] = format::byte(@filesize($path . DS . $file));
         $column['atime w120'] = time::format(@fileatime($path . DS . $file));
         $column['mtime w120'] = time::format(@filemtime($path . DS . $file));
         $column['manage rename w80'] = '<a>重命名</a>';
         $column['manage edit w80'] = '<a href="' . zotop::url('filemanager/file/edit', array('filename' => $dir . DS . $file, 'dir' => '***')) . '">编辑</a>';
         $column['manage delete'] = '<a>删除</a>';
         table::row($column);
     }
     table::footer();
     page::bottom();
     page::add('</div>');
     page::add('</div>');
     page::add('<div id="side">');
     block::header('快捷操作');
     echo '<ul class="list">';
     echo '<li class="file"><a href="' . zotop::url('zotop/file/newfile') . '" class="dialog">新建文件</a></li>';
     echo '<li class="folder"><a href="' . zotop::url('zotop/file/newfolder') . '" class="dialog">新建文件夹</a></li>';
     echo '<li class="folder"><a href="' . zotop::url('zotop/file/upload') . '" class="dialog">文件上传</a></li>';
     echo '</ul>';
     block::footer();
     block::header('其他位置');
     echo '<ul class="list">';
     echo '<li class="root"><a>根目录</a></li>';
     echo '<li class="root"><a>模板目录</a></li>';
     echo '<li class="root"><a>模块目录</a></li>';
     echo '<li class="root"><a>缓存目录</a></li>';
     echo '</ul>';
     block::footer();
     page::add('</div>');
     page::add('</div>');
     page::footer();
 }
Example #11
0
 public function onChangeInfo($id)
 {
     $user = zotop::model('zotop.user');
     $user->id = (int) $id;
     if (form::isPostBack()) {
         $post = form::post();
         $update = $user->update($post, $user->id);
         if ($update) {
             msg::success('保存成功', '资料设置成功,正在刷新页面,请稍后……', zotop::url('zotop/user'));
         }
     }
     $data = $user->read();
     $data['updatetime'] = TIME;
     $page['title'] = '修改我的资料';
     page::header($page);
     page::top();
     page::navbar($this->navbar());
     form::header();
     block::header('账户信息');
     form::field(array('type' => 'label', 'label' => zotop::t('账户名称'), 'name' => 'username', 'value' => $data['username'], 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'text', 'label' => zotop::t('安全问题'), 'name' => 'question', 'value' => $data['question'], 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'text', 'label' => zotop::t('安全答案'), 'name' => 'answer', 'value' => $data['answer'], 'valid' => '', 'description' => zotop::t('')));
     block::footer();
     block::header('个人信息');
     form::field(array('type' => 'text', 'label' => zotop::t('真实姓名'), 'name' => 'name', 'value' => $data['name'], 'valid' => 'required:true', 'description' => zotop::t('')));
     form::field(array('type' => 'radio', 'options' => array('男' => '男', '女' => '女'), 'label' => zotop::t('性别'), 'name' => 'gender', 'value' => $data['gender'], 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'image', 'label' => zotop::t('头像'), 'name' => 'image', 'value' => $data['image'], 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'text', 'label' => zotop::t('电子邮件'), 'name' => 'email', 'value' => $data['email'], 'valid' => 'required:true,email:true', 'description' => zotop::t('')));
     form::field(array('type' => 'textarea', 'label' => zotop::t('个人签名'), 'name' => 'sign', 'value' => $data['sign'], 'valid' => '', 'description' => zotop::t('')));
     form::field(array('type' => 'hidden', 'label' => zotop::t('更新时间'), 'name' => 'updatetime', 'value' => $data['updatetime'], 'valid' => '', 'description' => zotop::t('')));
     block::footer();
     form::buttons(array('type' => 'submit'), array('type' => 'back'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #12
0
 public function onEdit($tablename, $fieldname)
 {
     if (form::isPostBack()) {
         $field = array();
         $field['name'] = request::post('name');
         $field['length'] = request::post('len');
         $field['type'] = request::post('type');
         $field['collation'] = request::post('collation');
         $field['null'] = request::post('null');
         $field['default'] = request::post('default');
         $field['attribute'] = request::post('attribute');
         $field['extra'] = request::post('extra');
         $field['comment'] = request::post('comment');
         $field['position'] = request::post('position');
         $fieldname = request::post('fieldname');
         $result = zotop::db()->table($tablename)->field($fieldname)->rename($field['name']);
         $result = zotop::db()->table($tablename)->modify($field);
         if ($result) {
             msg::success('修改成功', '<h2>字段修改成功</h2>', form::referer());
         }
     }
     $tables = zotop::db()->tables(true);
     $table = $tables[$tablename];
     $fields = array();
     if (isset($table)) {
         $fields = zotop::db()->table($tablename)->fields(true);
     }
     $field = $fields[$fieldname];
     if (!isset($field)) {
         zotop::error(-10, '字段不存在,请勿修改浏览器参数');
     }
     $positions = array();
     $positions[-1] = '位于表头';
     if ($fields) {
         foreach ($fields as $key => $val) {
             $positions[$key] = '位于 ' . $key . ' 之后';
         }
     }
     $positions[0] = ' ';
     $header['title'] = '<a href="' . zotop::url('zotop/database') . '">数据库管理</a> <i>></i> <a href="' . zotop::url('system/database/fields/', array('table' => $tablename)) . '">数据表 [ ' . $tablename . ' ] </a>  <i>></i> 字段修改';
     page::header($header);
     page::top();
     page::navbar($this->navbar($tablename), 'edit');
     form::header();
     form::field(array('type' => 'hidden', 'name' => 'fieldname', 'label' => '字段名称', 'value' => $field['name'], 'valid' => '{required:true}'));
     form::field(array('type' => 'text', 'name' => 'name', 'label' => '字段名称', 'value' => $field['name'], 'valid' => '{required:true}', 'description' => '请输入字段的名称,3到32位,请勿使用特殊字符'));
     form::field(array('type' => 'text', 'name' => 'type', 'label' => '字段类型', 'value' => $field['type'], 'valid' => '{required:true}'));
     form::field(array('type' => 'text', 'name' => 'len', 'label' => '长度/值', 'value' => $field['length'], 'valid' => '{number:true,min:1}', 'description' => '请输入字段的长度,如果字段无须定义长度,请保持空值'));
     form::field(array('type' => 'hidden', 'name' => 'collation', 'label' => '整理', 'value' => $field['collation'], 'valid' => '', 'description' => '默认使用 <b>utf8_general_ci</b>: Unicode (多语言), 不区分大小写'));
     form::field(array('type' => 'select', 'options' => array('' => ' ', 'UNSIGNED' => 'UNSIGNED', 'UNSIGNED ZEROFILL' => 'UNSIGNED ZEROFILL', 'ON UPDATE CURRENT_TIMESTAMP' => 'ON UPDATE CURRENT_TIMESTAMP'), 'name' => 'attribute', 'label' => '属性', 'value' => $field['attribute'], 'valid' => ''));
     form::field(array('type' => 'select', 'options' => array('' => 'NULL', 'NOT NULL' => 'NOT NULL'), 'name' => 'null', 'label' => 'null', 'value' => $field['null'], 'valid' => ''));
     form::field(array('type' => 'text', 'name' => 'default', 'label' => '默认值', 'value' => $field['default'], 'valid' => '', 'description' => '如果需要可以为字段设置一个默认值'));
     form::field(array('type' => 'select', 'options' => array('' => '', 'AUTO_INCREMENT' => 'AUTO_INCREMENT'), 'name' => 'extra', 'label' => '额外', 'value' => $field['extra'], 'valid' => '', 'description' => '设置为自动增加:<b>AUTO_INCREMENT</b>时,该字段必须为数字类型'));
     form::field(array('type' => 'text', 'name' => 'comment', 'label' => '注释', 'value' => $field['comment'], 'valid' => ''));
     form::field(array('type' => 'select', 'name' => 'position', 'options' => $positions, 'label' => zotop::t('字段位置'), 'value' => $position, 'description' => ''));
     form::buttons(array('type' => 'submit'), array('type' => 'reset'));
     form::footer();
     page::bottom();
     page::footer();
 }
Example #13
0
 public function onPhpInfo()
 {
     ob_start();
     phpinfo();
     $phpinfo = ob_get_contents();
     ob_clean();
     if (preg_match('/<body><div class="center">([\\s\\S]*?)<\\/div><\\/body>/', $phpinfo, $match)) {
         $phpinfo = $match[1];
     }
     $phpinfo = str_replace('class="e"', 'style="color:#ff6600;"', $phpinfo);
     $phpinfo = str_replace('class="v"', '', $phpinfo);
     $phpinfo = str_replace('<table', '<table class="table list" style="table-layout:fixed;"', $phpinfo);
     $phpinfo = str_replace('<tr class="h">', '<tr class="title">', $phpinfo);
     $phpinfo = preg_replace('/<a href="http:\\/\\/www.php.net\\/"><img(.*)alt="PHP Logo" \\/><\\/a><h1 class="p">(.*)<\\/h1>/', "<h1>\\2</h1>", $phpinfo);
     $page['title'] = 'PHP探针';
     page::header($page);
     page::top();
     page::navbar($this->navbar());
     echo $phpinfo;
     page::bottom();
     page::footer();
 }
Example #14
0
 public function onEdit($id)
 {
     $role = zotop::model('zotop.role');
     $role->id = (int) $id;
     if (form::isPostBack()) {
         $post = form::post();
         $result = $role->update($post);
         if ($result) {
             msg::success('操作成功', '保存成功,正在刷新页面,请稍后……', zotop::url('zotop/role'));
         }
     }
     $fields = $role->read();
     $page['title'] = '编辑系统角色';
     page::header($page);
     page::top();
     page::navbar($this->navbar());
     form::header();
     form::field(array('type' => 'text', 'label' => '角色名称', 'name' => 'name', 'value' => $fields['name'], 'valid' => 'required:true,maxlength:50', 'description' => zotop::t('')));
     form::field(array('type' => 'textarea', 'label' => '角色说明', 'name' => 'description', 'value' => $fields['description'], 'valid' => '', 'description' => ''));
     form::buttons(array('type' => 'submit'), array('type' => 'back'));
     form::footer();
     page::bottom();
     page::footer();
 }