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

📄 customfields.php

📁 国外的人才求职招聘最新版
💻 PHP
字号:
<?php/** * OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures * all the essential functionalities required for any enterprise. * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com * * OrangeHRM is free software; you can redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA  02110-1301, USA * */require_once ROOT_PATH.'/lib/dao/DMLFunctions.php';require_once ROOT_PATH.'/lib/dao/SQLQBuilder.php';require_once ROOT_PATH.'/lib/confs/sysConf.php';require_once ROOT_PATH.'/lib/common/CommonFunctions.php';require_once ROOT_PATH . '/lib/common/UniqueIDGenerator.php';class CustomFields {	/**	 * Table Name	 */	const TABLE_NAME = 'hs_hr_custom_fields';	const DB_FIELDS_NUM = 'field_num';	const DB_FIELDS_NAME = 'name';	const DB_FIELDS_TYPE = 'type';	const DB_FIELDS_EXTRA_DATA = 'extra_data';	const FIELD_TYPE_STRING = 0;	const FIELD_TYPE_SELECT = 1;	const MAX_FIELD_NUM = 10;	/**	 * Class Attributes	 */	private $fieldNumber;	private $name;	private $fieldType;	private $extraData;	/**	 *	Setter method followed by getter method for each	 *	attribute	 */	public function setFieldNumber($fieldNumber) {			$this->fieldNumber = $fieldNumber;	}	public function getFieldNumber() {		return $this->fieldNumber;	}	public function setName($name){		$this->name  = 	$name ;	}	public function getName(){		return $this->name;	}	public function setFieldType($type) {		$this->fieldType = $type;	}	public function getFieldType() {		return $this->fieldType;	}	public function setExtraData($extraData) {		return $this->extraData = $extraData;	}	public function getExtraData() {		return $this->extraData;	}	public function getOptions() {		$options = array();		if (($this->fieldType == self::FIELD_TYPE_SELECT) && !empty($this->extraData)) {			$options = explode(',', $this->extraData);		}		for ($i=0; $i<count($options); $i++) {			$options[$i] = trim($options[$i]);		}		return $options;	}	/**	 * Add a new custom field to the database	 */	public function addCustomField() {		$fields[0] = self::DB_FIELDS_NUM;		$fields[1] = self::DB_FIELDS_NAME;		$fields[2] = self::DB_FIELDS_TYPE;		$fields[3] = self::DB_FIELDS_EXTRA_DATA;		$values[0] = $this->fieldNumber;		$values[1] = "'{$this->name}'";		$values[2] = "'{$this->fieldType}'";		$values[3] = "'{$this->extraData}'";		$sqlBuilder = new SQLQBuilder();		$sqlBuilder->table_name = self::TABLE_NAME;		$sqlBuilder->flg_insert = 'true';		$sqlBuilder->arr_insert = $values;		$sqlBuilder->arr_insertfield = $fields;		$sql = $sqlBuilder->addNewRecordFeature2();		$conn = new DMLFunctions();		$result = $conn->executeQuery($sql);		if (!$result || (mysql_affected_rows() != 1)) {			throw new CustomFieldsException("Insert failed. ");		}	}	/**	 * Update the custom field	 */	public	function updateCustomField() {		$fields[0] = self::DB_FIELDS_NUM;		$fields[1] = self::DB_FIELDS_NAME;		$fields[2] = self::DB_FIELDS_TYPE;		$fields[3] = self::DB_FIELDS_EXTRA_DATA;		$values[0] = $this->fieldNumber;		$values[1] = "'{$this->name}'";		$values[2] = "'{$this->fieldType}'";		$values[3] = "'{$this->extraData}'";		$sqlBuilder = new SQLQBuilder();		$sqlBuilder->table_name = self::TABLE_NAME;		$sqlBuilder->flg_update = 'true';		$sqlBuilder->arr_update = $fields;		$sqlBuilder->arr_updateRecList = $values;		$sql = $sqlBuilder->addUpdateRecord1(0);		$conn = new DMLFunctions();		$result = $conn->executeQuery($sql);		// Here we don't check mysql_affected_rows because update may be called		// without any changes.		if (!$result) {			throw new CustomFieldsException("Update failed. SQL=$sql");		}	}	/**	 * Get array of available custom field numbers	 *	 * @return array Array of available custom field numbers	 */	public static function getAvailableFieldNumbers() {		$fields = self::getCustomFieldList();		$available = array();		for ($i=1; $i<=self::MAX_FIELD_NUM; $i++) {			$available[] = $i;		}		foreach($fields as $field) {			$num = $field->getFieldNumber();			$index = array_search($num, $available);			if ($index !== false) {				unset($available[$index]);			}		}		return $available;	}	/**	 * Get a list of custom fields defined in the system	 *	 * @return array  Array of CustomField objects. Returns an empty (length zero) array if none found.	 */	public static function getCustomFieldList() {		$actList = self::_getList();		return $actList;	}	public function getCustomerFieldListForView($pageNO,$schStr,$mode,$sortField = 0, $sortOrder = 'ASC') {		$customerArr = $this->getCustomFieldList();		$arrDispArr = null;		for($i=0; count($customerArr) > $i; $i++) {			$arrDispArr[$i][0] = $customerArr[$i]->getFieldNumber();			$arrDispArr[$i][1] = $customerArr[$i]->getName();			$arrDispArr[$i][2] = $customerArr[$i]->getFieldType();		}		return $arrDispArr;	}	/**	 * Get custom field with given number.	 *	 * @param int $fieldNum The field number of the custom field to return	 *	 * @return CustomField Custom field object with given num or null if not found	 */	public static function getCustomField($fieldNum) {		if (!CommonFunctions::isValidId($fieldNum)) {			throw new CustomFieldsException("Invalid parameters to getCustomField(): fieldNum = $fieldNum");		}		$selectCondition[] = self::DB_FIELDS_NUM . " = $fieldNum";		$actList = self::_getList($selectCondition);		$obj = count($actList) == 0 ? null : $actList[0];		return $obj;	}	/**	 * Deletes the given custom fields	 *	 * @param array $fieldNumbers The list of custom fields to delete	 *	 * @return int Number of custom fields deleted.	 */	public static function deleteFields($fieldNumbers) {		$count = 0;		if (!is_array($fieldNumbers)) {			throw new CustomFieldsException("Invalid parameter to deleteFields(): activityIds should be an array");		}		foreach ($fieldNumbers as $num) {			if (!CommonFunctions::isValidId($num)) {				throw new CustomFieldsException("Invalid parameter to deleteFields(): field num = $num");			}		}		if (!empty($fieldNumbers)) {			$sql = sprintf("DELETE FROM %s WHERE `%s` IN (%s)", self::TABLE_NAME,			                self::DB_FIELDS_NUM, implode(",", $fieldNumbers));			$conn = new DMLFunctions();			$result = $conn->executeQuery($sql);			if ($result) {				$count = mysql_affected_rows();			}		}		return $count;	}	/**	 * Get a list of custom fields with the given conditions.	 *	 * @param array   $selectCondition Array of select conditions to use.	 * @return array  Array of CustomFields objects. Returns an empty (length zero) array if none found.	 */	private static function _getList($selectCondition = null) {		$fields[0] = self::DB_FIELDS_NUM;		$fields[1] = self::DB_FIELDS_NAME;		$fields[2] = self::DB_FIELDS_TYPE;		$fields[3] = self::DB_FIELDS_EXTRA_DATA;		$sqlBuilder = new SQLQBuilder();		$sql = $sqlBuilder->simpleSelect(self::TABLE_NAME, $fields, $selectCondition);		$actList = array();		$conn = new DMLFunctions();		$result = $conn->executeQuery($sql);		while ($result && ($row = mysql_fetch_assoc($result))) {			$actList[] = self::_createFromRow($row);		}		return $actList;	}	/**	 * Creates a CustomFields object from a resultset row	 *	 * @param array $row Resultset row from the database.	 * @return CustomFields Custom Fields object.	 */	private static function _createFromRow($row) {		$tmp = new CustomFields();		$tmp->setFieldNumber($row[self::DB_FIELDS_NUM]);		$tmp->setName($row[self::DB_FIELDS_NAME]);		$tmp->setFieldType($row[self::DB_FIELDS_TYPE]);		$tmp->setExtraData($row[self::DB_FIELDS_EXTRA_DATA]);		return $tmp;	}}class CustomFieldsException extends Exception {}?>

⌨️ 快捷键说明

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