Ejemplo n.º 1
0
/**
 * 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;
}
Ejemplo n.º 2
0
 /**
  * 新增或更新一个文章
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * 用户修改信息
  * @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();
     }
 }
Ejemplo n.º 4
0
/**
 * 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;
            }
        }
    }
}