/** * POST数据提前处理 * @return array * @author jry <*****@*****.**> */ function format_data($data = null) { //解析数据类似复选框类型的数组型值 if (!$data) { $data = $_POST; } foreach ($data as $key => $val) { if (is_array($val)) { $data[$key] = implode(',', $val); } else { if (check_date_time($val)) { $data[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d H:i')) { $data[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d')) { $data[$key] = strtotime($val); } } } } } return $data; }
/** * 新增或更新一个文章 * @author jry <*****@*****.**> */ public function update() { //解析数据类似复选框类型的数组型值 foreach ($_POST as $key => $val) { if (is_array($val)) { $_POST[$key] = implode(',', $val); } else { if (check_date_time($val)) { $_POST[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d H:i')) { $_POST[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d')) { $_POST[$key] = strtotime($val); } } } } } //调用create方法构造数据 $cid = I('post.cid'); $category_info = D('Article/Category')->find($cid); $doc_type_info = D('Article/Type')->where(array('id' => $category_info['doc_type']))->find(); $_POST['doc_type'] = $doc_type_info['id']; $base_data = $this->create(); if ($base_data) { //获取当前分类 $extend_table_object = D('Article/Article' . ucfirst($doc_type_info['name'])); $extend_data = $extend_table_object->create(); //子模型数据验证 if (!$extend_data) { $this->error = $extend_table_object->getError(); } if ($extend_data) { if (empty($base_data['id'])) { //新增基础内容 $base_id = $this->add(); if ($base_id) { $extend_data['id'] = $base_id; $extend_id = $extend_table_object->add($extend_data); if (!$extend_id) { $this->delete($base_id); $this->error = '新增扩展内容出错!'; return false; } return $base_id; } else { $this->error = '新增基础内容出错!'; return false; } } else { $status = $this->save(); //更新基础内容 if ($status) { $status = $extend_table_object->save(); //更新基础内容 if (false === $status) { $this->error = '更新扩展内容出错!'; return false; } return $extend_data; } else { $this->error = '更新基础内容出错!'; return false; } } } } return false; }
/** * 用户修改信息 * @author jry <*****@*****.**> */ public function profile() { if (IS_POST) { // 强制设置用户ID $uid = $this->is_login(); $_POST['uid'] = $uid; //解析数据类似复选框类型的数组型值 foreach ($_POST as $key => $val) { if (is_array($val)) { $_POST[$key] = implode(',', $val); } else { if (check_date_time($val)) { $_POST[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d H:i')) { $_POST[$key] = strtotime($val); } else { if (check_date_time($val, 'Y-m-d')) { $_POST[$key] = strtotime($val); } } } } } // 获取用户信息 $user_object = D('User/User'); $user_info = $user_object->find($uid); // 保存信息 $type = $user_info['user_type']; $map['user_type'] = array('eq', $type); $count = D('User/Attribute')->where($map)->count(); if ($count) { $user_type_name = D('User/Type')->where(array('id' => $user_info['user_type']))->getField('name'); $user_extend_object = M('User' . ucfirst($user_type_name)); $extend_data = $user_extend_object->create(); $extend_info = $user_extend_object->find($uid); if ($extend_info) { $result = $user_extend_object->save($extend_data); } else { $result = $user_extend_object->add($extend_data); } if ($result === false) { $this->error('扩展信息修改失败' . $user_extend_object->getError()); } else { $this->success('信息修改成功'); } } } else { // 获取当前用户 $user_object = D('User/User'); $user_info = $user_object->detail($this->is_login()); $type = $user_info['user_type']; $user_type_info = D('User/Type')->find($type); // 获取扩展字段 $map['user_type'] = array('eq', $type); $attribute_list[$type] = D('User/Attribute')->where($map)->order('id asc')->select(); // 解析字段options $new_attribute_list_sort['user']['type'] = 'group'; if ($attribute_list[$type]) { foreach ($attribute_list[$type] as $attr) { $attr['options'] = parse_attr($attr['options']); $new_attribute_list[$type][$attr['id']] = $attr; $new_attribute_list[$type][$attr['id']]['value'] = $user_info[$attr['name']]; } $new_attribute_list_sort['user']['options']['group_extend']['title'] = $user_type_info['title'] . '信息'; $new_attribute_list_sort['user']['options']['group_extend']['options'] = $new_attribute_list[$type]; } // 使用FormBuilder快速建立表单页面。 $builder = new \Common\Builder\FormBuilder(); $builder->setMetaTitle('修改信息')->setPostUrl(U(''))->setExtraItems($new_attribute_list_sort)->setTemplate('form')->display(); } }
/** * Grab all the versioning data regarding the $file inside the $directory * * @param string $directory * @param string $file */ function GetFileVersionInfo($directory, $file) { global $files; $filefullpath = $directory . '/' . $file; // Read the first 2k of the file, which should be enough to grab the $fileheader $fp = @fopen($directory . '/' . $file, 'rb'); if ($fp) { $fileheader = fread($fp, 2048); fclose($fp); } $files[$directory][$file]['local']['versionFile'] = $file; if (!($files[$directory][$file]['local']['versionMD5'] = md5_file($filefullpath))) { $files[$directory][$file]['local']['versionMD5'] = 0; } // Example of the SVN $Id string: // * $Id: rosterdiag.lib.php 2312 2011-03-26 21:41:38Z c.treyce@gmail.com $ // ~|Descr |Ver |Date |Author|~ if (check_if_image($file)) { $files[$directory][$file]['local']['versionDesc'] = 'N/A'; $files[$directory][$file]['local']['versionRev'] = 'N/A'; $files[$directory][$file]['local']['versionAuthor'] = 'N/A'; if (!($files[$directory][$file]['local']['versionDate'] = filemtime($filefullpath))) { $files[$directory][$file]['local']['versionDate'] = 0; } } else { // String to match in SVN: $Id: rosterdiag.lib.php 2312 2011-03-26 21:41:38Z c.treyce@gmail.com $ if (preg_match('~\\s\\$Id\\:\\s(.+?)\\s(.+?)\\s(.+?)\\s(.+?)\\s(.+?)\\s\\$~', $fileheader, $local_version) > 0 || preg_match('~\\s\\$Id\\:\\s(.+?)\\,v\\s(.+?)\\s(.+?)\\s(.+?)\\s(.+?)\\sExp\\s\\$~', $fileheader, $local_version) > 0) { $files[$directory][$file]['local']['versionDesc'] = $local_version[1]; $files[$directory][$file]['local']['versionRev'] = $local_version[2]; $files[$directory][$file]['local']['versionDate'] = check_date_time($local_version[3], $local_version[4]); $tmpdate = explode("/", $local_version[3]); $tmptime = explode(":", $local_version[4]); // $files[$directory][$file]['local']['versionDate'] = gmmktime($tmptime[0], $tmptime[1], $tmptime[2], $tmpdate[1], $tmpdate[2], $tmpdate[0]); $files[$directory][$file]['local']['versionAuthor'] = $local_version[5]; } else { // Check if we have a version entry for the Date string and also capture the brief indication of which addon this is if (preg_match('~\\$versions\\[\'versionDate\'\\]\\[\'(.+?)\'\\]\\s\\=\\s\'\\$Date\\:\\s(.+?)\\s\\$\'\\;~', $fileheader, $local_version) == 1) { $files[$directory][$file]['local']['versionDesc'] = $local_version[1]; $tmpdatetime = explode(" ", $local_version[2]); $tmpdate = explode("/", $tmpdatetime[0]); if (isset($tmpdatetime[1])) { $tmptime = explode(":", $tmpdatetime[1]); if (is_int($tmptime[0])) { $files[$directory][$file]['local']['versionDate'] = gmmktime($tmptime[0], $tmptime[1], $tmptime[2], $tmpdate[1], $tmpdate[2], $tmpdate[0]); } } } else { $files[$directory][$file]['local']['versionDesc'] = 0; $files[$directory][$file]['local']['versionDate'] = 0; } // Check if we have a version entry for the Revision string if (preg_match('~\\$versions\\[\'versionRev\'\\]\\[\'(.+?)\'\\]\\s\\=\\s\'\\$Revision\\:\\s(.+?)\\s\\$\'\\;~', $fileheader, $local_version) == 1) { $files[$directory][$file]['local']['versionRev'] = $local_version[2]; } else { $files[$directory][$file]['local']['versionRev'] = 0; } // Check if we have a version entry for the Author string if (preg_match('~\\$versions\\[\'versionAuthor\'\\]\\[\'(.+?)\'\\]\\s\\=\\s\'\\$Author\\:\\s(.+?)\\$\'\\;~', $fileheader, $local_version) == 1) { $files[$directory][$file]['local']['versionAuthor'] = $local_version[2]; } else { $files[$directory][$file]['local']['versionAuthor'] = 0; } } } }