| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | 
							- <?php
 
- class pay_method  {
 
- 	
 
- 	public function __construct($modules_path) {
 
- 		$this->db = pc_base::load_model('pay_payment_model');
 
- 		$this->modules_path = $modules_path;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 获取支付类型列表
 
- 	 */
 
- 	public function get_list() {
 
- 		$list = $this->get_payment();
 
- 		$install = $this->get_intallpayment();
 
- 		if(is_array($list)) {
 
- 		foreach ($list as $code => $payment ) {
 
- 			if (isset($install[$code])) {
 
- 				$install[$code]['pay_desc'] = $list[$code]['pay_desc'];
 
- 				unset($list[$code]);
 
- 			}
 
- 		}
 
- 		}
 
- 		$all = @array_merge($install, $list);
 
- 		return array('data' => $all,
 
- 						array(
 
- 								'all' => count($all),
 
- 								'install' => count($install)
 
- 								)
 
- 					);
 
- 	 }
 
- 	 		
 
- 	/**
 
- 	 * 获取插件目录信息
 
- 	 * @param unknown_type $code
 
- 	 */
 
- 	public function get_payment( $code = '') {
 
- 		$modules = $this->read_payment($this->modules_path.DIRECTORY_SEPARATOR.'classes');
 
- 		foreach($modules as $payment) {
 
- 			if ( empty($code) || $payment['code']) {
 
- 				$config = array();
 
- 				foreach ($payment['config'] as $conf) {
 
- 					$name = $conf['name'];
 
- 					$conf['name'] = L($name);
 
- 					if ($conf['type'] == 'select') {
 
- 						$conf['range'] = L($name.'_range');
 
- 					}
 
- 					$config[$name] = $conf;
 
- 				}
 
- 			}			
 
- 			$payment_info[$payment['code']] = array(
 
- 				"pay_id" => 0,
 
- 				"pay_code" => $payment['code'],
 
- 				"pay_name" => $payment['name'],
 
- 				"pay_desc" => $payment['desc'],
 
- 				"pay_fee" => '0',
 
- 				"config" => $config,
 
- 				"is_cod" => $payment['is_cod'],
 
- 				"is_online" => $payment['is_online'],
 
- 				"enabled" => '0',
 
- 				"sort_order" => "",
 
- 				"author" => $payment['author'],
 
- 				"website" => $payment['website'],
 
- 				"version" => $payment['version']
 
- 				);			
 
- 		}
 
- 		if (empty($code)) {
 
- 			return $payment_info;
 
- 		} else {
 
- 			return $payment_info[$code];
 
- 		}		
 
- 	}
 
- 	/**
 
- 	 * 取得数据库中的支付列表
 
- 	 * @param $code
 
- 	 */
 
- 	public function get_intallpayment($code = '')
 
- 	{
 
- 		if (empty($code)) {
 
- 			$intallpayment = array();
 
- 			$result = $this->db->select();
 
- 			foreach($result as $r) {
 
- 				$r['pay_code'] = ucwords($r['pay_code']);
 
- 				$intallpayment[$r['pay_code']] = $r;
 
- 			}
 
- 			return $intallpayment;
 
- 		} else {
 
- 			return  $this->db->get_one(array('pay_code'=>ucwords($code)));
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 读取插件目录中插件列表
 
- 	 * @param unknown_type $directory
 
- 	 */
 
- 	public function read_payment($directory = ".") {
 
- 		$dir = @opendir($directory);
 
- 		$set_modules = true;
 
- 		$modules = array();
 
- 		while (($file = @readdir($dir))!== false) {
 
- 		 	if ( preg_match( "/^[A-Z]{1}.*?\\.class.php\$/", $file ) ) {
 
- 		 		include_once( $directory.DIRECTORY_SEPARATOR.$file );
 
- 		 	}
 
- 		}
 
- 		@closedir($dir);
 
- 		foreach ($modules as $key => $value ) {
 
- 				asort($modules[$key] );
 
- 		 }
 
- 		asort( $modules );		
 
- 		return $modules;
 
- 	}		
 
- }
 
- ?>
 
 
  |