⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 field.class.php

📁 phpcms2007很好的cms内容管理系统,操作方便
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php
defined('IN_PHPCMS') or exit('Access Denied');

class field
{
	var $table = '';
	var $fieldtypes = array('varchar', 'int','date', 'text', 'mediumtext', 'longtext');
	var $db;
	var $fieldlist;

    function field($table = '')
    {
		global $db;
        $this->table = $table;
		$this->db = &$db;
		if($this->table) $this->fieldlist = $this->get_list();
    }

    function add($name, $type, $size, $defaultvalue = '', $options = '', $title = '', $note = '', $formtype = '', $inputtool = '', $inputlimit = '', $enablehtml = 1, $enablelist = 1, $enablesearch = 0)
    {
		if(!in_array($type, $this->fieldtypes) || $this->exists($name)) return FALSE;
		$size = intval($size);
		$fieldsize = $type == 'varchar' ? min($size, 255) : ($type == 'int' ? min($size, 10) : 0);
		$fieldtype = strtoupper($type);
		if($fieldsize) $fieldtype .= "( $fieldsize )";
        $this->db->query("ALTER TABLE $this->table ADD $name $fieldtype NOT NULL");
        $this->db->query("INSERT INTO ".TABLE_FIELD."(tablename,name,type,size,defaultvalue,options,title,note,formtype,inputtool,inputlimit,enablehtml,enablelist,enablesearch) VALUES('$this->table','$name','$type','$size','$defaultvalue','$options','$title','$note','$formtype','$inputtool','$inputlimit','$enablehtml','$enablelist','$enablesearch')");
		$result = $this->db->affected_rows();
		$this->cache();
		return $result;
    }

    function edit($fieldid, $type, $size, $defaultvalue = '', $options = '', $title = '', $note = '', $formtype = '', $inputtool = '', $inputlimit = '', $enablehtml = 1, $enablelist = 1, $enablesearch = 0)
    {
		if(!in_array($type, $this->fieldtypes)) return FALSE;
		$fieldid = intval($fieldid);
		$field = $this->get_info($fieldid);
		$name = $field['name'];
		$size = intval($size);
		$fieldsize = $type == 'varchar' ? min($size, 255) : ($type == 'int' ? min($size, 10) : 0);
		$fieldtype = strtoupper($type);
		if($fieldsize) $fieldtype .= "( $fieldsize )";
        $this->db->query("ALTER TABLE `$this->table` CHANGE `$name` `$name` $fieldtype NOT NULL");
        $this->db->query("UPDATE ".TABLE_FIELD." SET title='$title',note='$note',type='$type',size='$size',defaultvalue='$defaultvalue',options='$options',formtype='$formtype',inputtool='$inputtool',inputlimit='$inputlimit',enablehtml='$enablehtml',enablelist='$enablelist',enablesearch='$enablesearch' WHERE fieldid=$fieldid");
		$result = $this->db->affected_rows();
		$this->cache();
		return $result;
	}

    function delete($fieldid)
    {
		$fieldid = intval($fieldid);
		$r = $this->db->get_one("SELECT name FROM ".TABLE_FIELD." WHERE fieldid=$fieldid");
		if(!$r) return FALSE;
		$name = $r['name'];
	    $this->db->query("ALTER TABLE $this->table DROP $name");
        $this->db->query("DELETE FROM ".TABLE_FIELD." WHERE fieldid=$fieldid");
		$result = $this->db->affected_rows();
		$this->cache();
		return $result;
    }

	function get_columns()
	{
		$columns = $s = '';
		$query = $this->db->query("SHOW COLUMNS FROM $this->table like 'my_%' ");
		while($r = $this->db->fetch_row($query))
		{
			$columns .= $s.$r[0];
			$s = ',';
		}
		$this->db->free_result($query);
		return $columns;
	}

	function get_list()
	{
		$rs = array();
		$query = $this->db->query("SELECT * FROM ".TABLE_FIELD." WHERE tablename='$this->table' ORDER BY listorder,fieldid");
		while($r = $this->db->fetch_array($query))
		{
			$rs[] = $r;
		}
		$this->db->free_result($query);
		return $rs;
	}

	function get_info($fieldid)
	{
		$fieldid = intval($fieldid);
		return $this->db->get_one("SELECT * FROM ".TABLE_FIELD." WHERE fieldid=$fieldid");
	}

	function get_form($style = '<tr><td class="tablerow"><strong>$title</strong></td><td class="tablerow">$input $tool $note</td></tr>')
	{
		if(!$this->fieldlist) return FALSE;
		$string = '';
		foreach($this->fieldlist as $field)
		{
			if(isset($GLOBALS[$field['name']])) $field['defaultvalue'] = $GLOBALS[$field['name']];
			if($field['inputlimit'] == 'unique' && $field['defaultvalue']) continue;
			if($field['type'] == 'date' && $field['defaultvalue'] == '0000-00-00') $field['defaultvalue'] = ''; 
			if($field['formtype'] == 'text')
			{
				$input = '<input type="text" size="40" name="'.$field['name'].'" id="'.$field['name'].'" value="'.$field['defaultvalue'].'" class="'.$field['name'].'" /> ';
			}
			elseif($field['formtype'] == 'textarea')
			{
				$input = '<textarea name="'.$field['name'].'" id="'.$field['name'].'" rows="8" cols="50" class="'.$field['name'].'">'.$field['defaultvalue'].'</textarea>';
			}
			elseif($field['formtype'] == 'select')
			{
				$input = "<select name='".$field['name']."' id='".$field['name']."' class='".$field['name']."'>\n";
				$options = explode("\n",$field['options']);
				foreach($options as $option)
				{
					if(strpos($option, '|'))
					{
						list($name, $value) = explode('|', trim($option));
					}
					else
					{
						$name = $value = trim($option);
					}
					$selected = $field['defaultvalue'] == $value ? 'selected' : '';
					$input .= "<option value='".$value."' ".$selected.">".$name."</option>\n";
				}
				$input .= "</select>\n";
			}
			elseif($field['formtype'] == 'radio')
			{
				$input = '';
				$options = explode("\n",$field['options']);
				foreach($options as $option)
				{
					if(strpos($option, '|'))
					{
						list($name, $value) = explode('|', trim($option));
					}
					else
					{
						$name = $value = trim($option);
					}
					$checked = $field['defaultvalue'] == $value ? 'checked' : '';
					$input .= '<input type="radio" name="'.$field['name'].'" value="'.$value.'" class="'.$field['name'].'" '.$checked.'> '.$name.' ';
				}
			}
			elseif($field['formtype'] == 'checkbox')
			{
				$field['defaultvalue'] = strpos($field['defaultvalue'], ',') ? explode(',', $field['defaultvalue']) : array($field['defaultvalue']);
				$input = '';
				$options = explode("\n",$field['options']);
				foreach($options as $option)
				{
					if(strpos($option, '|'))
					{
						list($name, $value) = explode('|', trim($option));
					}
					else
					{
						$name = $value = trim($option);
					}
					$checked = in_array($value, $field['defaultvalue']) ? 'checked' : '';
					$input .= '<input type="checkbox" name="'.$field['name'].'[]" value="'.$value.'" class="'.$field['name'].'" '.$checked.'> '.$name.' ';
				}
			}
			elseif($field['formtype'] == 'password')
			{
				$input = '<input type="password" name="'.$field['name'].'" id="'.$field['name'].'" value="'.$field['defaultvalue'].'" class="'.$field['name'].'" /> ';
			}
			elseif($field['formtype'] == 'hidden')
			{
				$input = '<input type="hidden" name="'.$field['name'].'" id="'.$field['name'].'" value="'.$field['defaultvalue'].'"/> ';
			}
		    $title = $field['title'];
		    $note = $field['note'];
			$tool = $this->get_tool($field['inputtool'], $field['name'], $field['defaultvalue']);
            $string .= str_replace(array('$title','$input','$tool','$note'), array($title,$input,$tool,$note), $style);
		}
        return $string;
	}

	function get_tool($inputtool, $name, $value = '')
	{
		global $LANG;
		if(empty($inputtool))
		{
			return '';
		}
		elseif($inputtool == 'dateselect')
		{
	        global $iscalendarinit;
			if($value == '0000-00-00') $value = '';
			$id = str_replace(array('[',']'), array('',''), $name);
			$str = '';
			if(!$iscalendarinit)
			{
				$iscalendarinit = 1;
				$str .= "<script language=\"javascript\">var imgDir = \"".PHPCMS_PATH."include/calendar/\";</script>\n<script language=\"javascript\" src=\"".PHPCMS_PATH."include/calendar/calendar.js\"></script>\n";
			}
			$str .= '&nbsp;<img src="'.PHPCMS_PATH.'include/calendar/date_selector.gif" border="0" align="absMiddle" style="cursor:pointer" onclick="popUpCalendar(this,document.getElementById(\''.$id.'\'),\'yyyy-mm-dd\');">';
			return $str;
		}
		elseif($inputtool == 'fileupload')
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -