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;
- }
- }
- ?>
|