Beispiel #1
0
 /**
  * 构造函数
  * @param string $tablename 表名
  * @param string $postid 表单提交的区分ID
  */
 function __construct($tablename, $postid = '')
 {
     if (get_class($this) == 'Model') {
         $this->YYUCSYS_isorgin = true;
     } else {
         $this->YYUCSYS_isorgin = false;
     }
     $this->YYUCSYS_postid = $postid;
     $this->YYUCSYS_post_id = strlen($postid) === 32 ? $postid : md5('YYUC_' . $postid);
     $this->YYUCSYS_db = DB::get_db();
     $this->YYUCSYS_tablename = $tablename;
     $this->YYUCSYS_real_tablename = Conf::$db_tablePrefix . $tablename;
     //填充一些有默认值的字段和字段描述
     if (!isset(self::$YYUCSYS_FIELD_LABLE[$this->YYUCSYS_tablename])) {
         self::$YYUCSYS_FIELD_LABLE[$this->YYUCSYS_tablename] = array();
         self::$YYUCSYS_FIELD_DATA[$this->YYUCSYS_tablename] = array();
         self::$YYUCSYS_FIELD_TYPE[$this->YYUCSYS_tablename] = array();
         self::$YYUCSYS_FIELD_DEFAULT[$this->YYUCSYS_tablename] = array();
         self::$YYUCSYS_FIELD_CANNULL[$this->YYUCSYS_tablename] = array();
         $defaults = $this->YYUCSYS_db->get_fields_array($this->YYUCSYS_real_tablename);
         foreach ($defaults as $default) {
             if (trim($default['Default']) != '') {
                 //存储默认值
                 self::$YYUCSYS_FIELD_DEFAULT[$this->YYUCSYS_tablename][$default['Field']] = $default['Default'];
             }
             if (trim($default['Null']) == 'NO') {
                 //是否允许非空
                 self::$YYUCSYS_FIELD_CANNULL[$this->YYUCSYS_tablename][$default['Field']] = false;
             } else {
                 self::$YYUCSYS_FIELD_CANNULL[$this->YYUCSYS_tablename][$default['Field']] = true;
             }
             if (strpos($default['Type'], 'enum') === 0) {
                 self::$YYUCSYS_FIELD_TYPE[$this->YYUCSYS_tablename][$default['Field']] = 'enum';
                 //存储枚举类型的数据
                 $dataarray = array();
                 $tempstr = substr($default['Type'], 6, strlen($default['Type']) - 8);
                 $arr1 = explode("','", $tempstr);
                 $arr2 = explode(",", $default['Comment']);
                 if (count($arr1) === count($arr2)) {
                     $temparr2 = explode(':', $arr2[0]);
                     if (count($temparr2) > 1) {
                         //存储该字段的lable
                         self::$YYUCSYS_FIELD_LABLE[$this->YYUCSYS_tablename][$default['Field']] = $temparr2[0];
                     }
                     $arr2[0] = $temparr2[count($temparr2) - 1];
                     foreach ($arr1 as $k => $v) {
                         $dataarray[$v] = $arr2[$k];
                     }
                 } else {
                     foreach ($arr1 as $v) {
                         $dataarray[$v] = $v;
                     }
                     //存储该字段的lable
                     self::$YYUCSYS_FIELD_LABLE[$this->YYUCSYS_tablename][$default['Field']] = $default['Comment'];
                 }
                 //存储该字段的候选数据
                 self::$YYUCSYS_FIELD_DATA[$this->YYUCSYS_tablename][$default['Field']] = $dataarray;
             } else {
                 //存储该字段的lable
                 self::$YYUCSYS_FIELD_TYPE[$this->YYUCSYS_tablename][$default['Field']] = $default['Type'];
                 self::$YYUCSYS_FIELD_LABLE[$this->YYUCSYS_tablename][$default['Field']] = $default['Comment'];
             }
         }
     }
     //该表Model数据已经初始化过 给各个字段赋初始值
     $defaults =& self::$YYUCSYS_FIELD_DEFAULT[$this->YYUCSYS_tablename];
     foreach ($defaults as $field => $default) {
         $this->{$field} = $default;
     }
     //如果不是原始模型 增加各个字段的验证信息供页面form标签使用
     if (!$this->YYUCSYS_isorgin && !isset(self::$YYUCSYS_FIELD_FORMVAL[$this->YYUCSYS_tablename])) {
         self::$YYUCSYS_FIELD_FORMVAL[$this->YYUCSYS_tablename] = array();
         self::$YYUCSYS_first_valset[$this->YYUCSYS_tablename] = true;
         $this->validate();
         self::$YYUCSYS_first_valset[$this->YYUCSYS_tablename] = false;
     }
     //默认的field字段写入
     $fields = $this->YYUCSYS_db->list_fields($this->YYUCSYS_real_tablename);
     $this->YYUCSYS_select = '`' . implode('`,`', $fields) . '`';
 }
Beispiel #2
0
	require_once('install/classes/class.filesystem.php');
	$filesystem = new filesystem($config['ftp_server'], $config['ftp_user'], $config['ftp_pw'], $config['ftp_port']);
	$filesystem->set_wd($config['ftp_path'], $config['fpath']);
}

echo "- FTP class loaded and initialized.<br />";

if (!class_exists('DB')) {
	require_once('install/classes/database/'.$config['dbsystem'].'.inc.php');
	$db = new DB($config['host'], $config['dbuser'], $config['dbpw'], $config['database'], $config['dbprefix']);
	$db->setPersistence($config['pconnect']);
}

echo "- Database class loaded and initialized.<br />";

$fields = array_map('strtolower', $db->list_fields($db->pre.'forums'));
if (!in_array('post_order', $fields)) {
	$db->query("ALTER TABLE `{$db->pre}forums` ADD `post_order` enum('-1','0','1') NOT NULL DEFAULT '-1'");
}
echo "- Database structure updated.<br />";

// Config
$c = new manageconfig();
$c->getdata('data/config.inc.php');
$c->updateconfig('version', str, VISCACHA_VERSION);
$c->updateconfig('post_order', int, 0);
$c->savedata();
echo "- Configuration updated.<br />";


// Languages