services.php

来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 221 行

PHP
221
字号
<?php/*  $Id: $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2007 osCommerce  This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License v2 (1991)  as published by the Free Software Foundation.*/  class osC_Content_Services extends osC_Template {/* Private variables */    var $_module = 'services',        $_page_title,        $_page_contents = 'main.php';/* Class constructor */    function osC_Content_Services() {      global $osC_Language, $osC_MessageStack;      $this->_page_title = $osC_Language->get('heading_title');      if ( !isset($_GET['action']) ) {        $_GET['action'] = '';      }      $this->_installed = explode(';', MODULE_SERVICES_INSTALLED);      if ( !empty($_GET['action']) ) {        switch ( $_GET['action'] ) {          case 'save':            $this->_page_contents = 'edit.php';            if ( isset($_POST['subaction']) && ($_POST['subaction'] == 'confirm') ) {              $data = array('configuration' => $_POST['configuration']);              if ( $this->_save($data) ) {                $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_success_action_performed'), 'success');              } else {                $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error');              }              osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module));            }            break;          case 'install':            if ( $this->_install($_GET['module']) ) {              $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_success_action_performed'), 'success');            } else {              $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error');            }            osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module));            break;          case 'uninstall':            $this->_page_contents = 'uninstall.php';            if ( isset($_POST['subaction']) && ($_POST['subaction'] == 'confirm') ) {              if ( $this->_uninstall($_GET['module']) ) {                $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_success_action_performed'), 'success');              } else {                $osC_MessageStack->add_session($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error');              }              osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module));            }            break;        }      }    }/* Private methods */    function _save($data) {      global $osC_Database;      $error = false;      $osC_Database->startTransaction();      foreach ( $data['configuration'] as $key => $value ) {        $Qsu = $osC_Database->query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');        $Qsu->bindTable(':table_configuration', TABLE_CONFIGURATION);        $Qsu->bindValue(':configuration_value', $value);        $Qsu->bindvalue(':configuration_key', $key);        $Qsu->setLogging($_SESSION['module']);        $Qsu->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        $osC_Database->commitTransaction();        osC_Cache::clear('configuration');        return true;      }      $osC_Database->rollbackTransaction();      return false;    }    function _install($module_key) {      global $osC_Database;      include('includes/modules/services/' . $module_key . '.php');      $class = 'osC_Services_' . $module_key . '_Admin';      $module = new $class();      $module->install();      if ( isset($module->depends) ) {        if ( is_string($module->depends) && ( ( $key = array_search($module->depends, $this->_installed) ) !== false ) ) {          if ( isset($this->_installed[$key+1]) ) {            array_splice($this->_installed, $key+1, 0, $module_key);          } else {            $this->_installed[] = $module_key;          }        } elseif ( is_array($module->depends) ) {          foreach ( $module->depends as $depends_module ) {            if ( ( $key = array_search($depends_module, $this->_installed) ) !== false ) {              if ( !isset($array_position) || ( $key > $array_position ) ) {                $array_position = $key;              }            }          }          if ( isset($array_position) ) {            array_splice($this->_installed, $array_position+1, 0, $module_key);          } else {            $this->_installed[] = $module_key;          }        }      } elseif ( isset($module->precedes) ) {        if ( is_string($module->precedes) ) {          if ( ( $key = array_search($module->precedes, $this->_installed) ) !== false ) {            array_splice($this->_installed, $key, 0, $module_key);          } else {            $this->_installed[] = $module_key;          }        } elseif ( is_array($module->precedes) ) {          foreach ( $module->precedes as $precedes_module ) {            if ( ( $key = array_search($precedes_module, $this->_installed) ) !== false ) {              if ( !isset($array_position) || ( $key < $array_position ) ) {                $array_position = $key;              }            }          }          if ( isset($array_position) ) {            array_splice($this->_installed, $array_position, 0, $module_key);          } else {            $this->_installed[] = $module_key;          }        }      } else {        $this->_installed[] = $module_key;      }      $Qsu = $osC_Database->query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');      $Qsu->bindTable(':table_configuration', TABLE_CONFIGURATION);      $Qsu->bindValue(':configuration_value', implode(';', $this->_installed));      $Qsu->bindValue(':configuration_key', 'MODULE_SERVICES_INSTALLED');      $Qsu->execute();      if ( !$osC_Database->isError() ) {        osC_Cache::clear('configuration');        return true;      }      return false;    }    function _uninstall($module_key) {      global $osC_Database;      include('includes/modules/services/' . $module_key . '.php');      $class = 'osC_Services_' . $module_key . '_Admin';      $module = new $class();      $module->remove();      unset($this->_installed[array_search($module_key, $this->_installed)]);      $Qsu = $osC_Database->query('update :table_configuration set configuration_value = :configuration_value where configuration_key = :configuration_key');      $Qsu->bindTable(':table_configuration', TABLE_CONFIGURATION);      $Qsu->bindValue(':configuration_value', implode(';', $this->_installed));      $Qsu->bindValue(':configuration_key', 'MODULE_SERVICES_INSTALLED');      $Qsu->execute();      if ( !$osC_Database->isError() ) {        osC_Cache::clear('configuration');        return true;      }      return false;    }  }?>

⌨️ 快捷键说明

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