Example #1
0
 public function call($group, $hook, $parameters = null, $action = null)
 {
     if (!isset($action)) {
         $action = 'execute';
     }
     if (!isset($this->hooks[$this->site][$group][$hook][$action])) {
         $this->register($group, $hook, $action);
     }
     $calls = [];
     if (isset($this->hooks[$this->site][$group][$hook][$action])) {
         $calls = $this->hooks[$this->site][$group][$hook][$action];
     }
     if (isset($this->watches[$this->site][$group][$hook][$action])) {
         $calls = array_merge($calls, $this->watches[$this->site][$group][$hook][$action]);
     }
     $result = [];
     foreach ($calls as $code) {
         $bait = null;
         if (is_string($code)) {
             $class = Apps::getModuleClass($code, 'Hooks');
             $obj = new $class();
             $bait = $obj->{$action}($parameters);
         } else {
             $ref = new \ReflectionFunction($code);
             if ($ref->isClosure()) {
                 $bait = $code($parameters);
             }
         }
         if (!empty($bait)) {
             $result[] = $bait;
         }
     }
     return $result;
 }
Example #2
0
 function __construct($module = '')
 {
     global $PHP_SELF;
     $this->lang = Registry::get('Language');
     if (defined('MODULE_PAYMENT_INSTALLED') && tep_not_null(MODULE_PAYMENT_INSTALLED)) {
         $this->modules = explode(';', MODULE_PAYMENT_INSTALLED);
         $include_modules = array();
         if (tep_not_null($module) && (in_array($module . '.' . substr($PHP_SELF, strrpos($PHP_SELF, '.') + 1), $this->modules) || in_array($module, $this->modules))) {
             $this->selected_module = $module;
             if (strpos($module, '\\') !== false) {
                 $class = Apps::getModuleClass($module, 'Payment');
                 $include_modules[] = ['class' => $module, 'file' => $class];
             } else {
                 $include_modules[] = array('class' => $module, 'file' => $module . '.php');
             }
         } else {
             foreach ($this->modules as $value) {
                 if (strpos($value, '\\') !== false) {
                     $class = Apps::getModuleClass($value, 'Payment');
                     $include_modules[] = ['class' => $value, 'file' => $class];
                 } else {
                     $class = basename($value, '.php');
                     $include_modules[] = array('class' => $class, 'file' => $value);
                 }
             }
         }
         for ($i = 0, $n = sizeof($include_modules); $i < $n; $i++) {
             if (strpos($include_modules[$i]['class'], '\\') !== false) {
                 Registry::set('Payment_' . str_replace('\\', '_', $include_modules[$i]['class']), new $include_modules[$i]['file']());
             } else {
                 $this->lang->loadDefinitions('modules/payment/' . pathinfo($include_modules[$i]['file'], PATHINFO_FILENAME));
                 include 'includes/modules/payment/' . $include_modules[$i]['file'];
                 $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class']();
             }
         }
         // if there is only one payment method, select it as default because in
         // checkout_confirmation.php the $_SESSION['payment'] variable is being assigned the
         // $_POST['payment'] value which will be empty (no radio button selection possible)
         if (tep_count_payment_modules() == 1 && (!isset($_SESSION['payment']) || $_SESSION['payment'] != $include_modules[0]['class'])) {
             $_SESSION['payment'] = $include_modules[0]['class'];
         }
         if (tep_not_null($module) && (in_array($module . '.' . substr($PHP_SELF, strrpos($PHP_SELF, '.') + 1), $this->modules) || in_array($module, $this->modules))) {
             if (strpos($module, '\\') !== false) {
                 $OSCOM_PM = Registry::get('Payment_' . str_replace('\\', '_', $module));
                 if (isset($OSCOM_PM->form_action_url)) {
                     $this->form_action_url = $OSCOM_PM->form_action_url;
                 }
             } elseif (isset($GLOBALS[$module]->form_action_url)) {
                 $this->form_action_url = $GLOBALS[$module]->form_action_url;
             }
         }
     }
 }
Example #3
0
 function __construct($module = '')
 {
     global $PHP_SELF;
     $this->lang = Registry::get('Language');
     if (defined('MODULE_SHIPPING_INSTALLED') && tep_not_null(MODULE_SHIPPING_INSTALLED)) {
         $this->modules = explode(';', MODULE_SHIPPING_INSTALLED);
         $include_modules = array();
         $code = null;
         if (isset($module) && is_array($module) && isset($module['id'])) {
             if (strpos($module['id'], '\\') !== false) {
                 list($vendor, $app, $module) = explode('\\', $module['id']);
                 list($module, $method) = explode('_', $module);
                 $code = $vendor . '\\' . $app . '\\' . $module;
             } elseif (strpos($module['id'], '_') !== false) {
                 $code = substr($module['id'], 0, strpos($module['id'], '_'));
             }
         }
         if (isset($code) && (in_array($code . '.' . substr($PHP_SELF, strrpos($PHP_SELF, '.') + 1), $this->modules) || in_array($code, $this->modules))) {
             if (strpos($code, '\\') !== false) {
                 $class = Apps::getModuleClass($code, 'Shipping');
                 $include_modules[] = ['class' => $code, 'file' => $class];
             } else {
                 $include_modules[] = ['class' => $code, 'file' => $code . '.' . substr($PHP_SELF, strrpos($PHP_SELF, '.') + 1)];
             }
         } else {
             foreach ($this->modules as $value) {
                 if (strpos($value, '\\') !== false) {
                     $class = Apps::getModuleClass($value, 'Shipping');
                     $include_modules[] = ['class' => $value, 'file' => $class];
                 } else {
                     $class = substr($value, 0, strrpos($value, '.'));
                     $include_modules[] = ['class' => $class, 'file' => $value];
                 }
             }
         }
         for ($i = 0, $n = sizeof($include_modules); $i < $n; $i++) {
             if (strpos($include_modules[$i]['class'], '\\') !== false) {
                 Registry::set('Shipping_' . str_replace('\\', '_', $include_modules[$i]['class']), new $include_modules[$i]['file']());
             } else {
                 $this->lang->loadDefinitions('modules/shipping/' . pathinfo($include_modules[$i]['file'], PATHINFO_FILENAME));
                 include 'includes/modules/shipping/' . $include_modules[$i]['file'];
                 $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class']();
             }
         }
     }
 }
Example #4
0
 function __construct()
 {
     $this->lang = Registry::get('Language');
     if (defined('MODULE_ORDER_TOTAL_INSTALLED') && tep_not_null(MODULE_ORDER_TOTAL_INSTALLED)) {
         $this->modules = explode(';', MODULE_ORDER_TOTAL_INSTALLED);
         foreach ($this->modules as $value) {
             if (strpos($value, '\\') !== false) {
                 $class = Apps::getModuleClass($value, 'OrderTotal');
                 Registry::set('OrderTotal_' . str_replace('\\', '_', $value), new $class());
             } else {
                 $this->lang->loadDefinitions('modules/order_total/' . pathinfo($value, PATHINFO_FILENAME));
                 include 'includes/modules/order_total/' . $value;
                 $class = substr($value, 0, strrpos($value, '.'));
                 $GLOBALS[$class] = new $class();
             }
         }
     }
 }
Example #5
0
 public function call($group, $hook, $action = 'execute', $flatten = false)
 {
     if (!isset($this->hooks[$this->site][$group][$hook][$action])) {
         $this->register($group, $hook, $action);
     }
     $result = [];
     foreach ($this->hooks[$this->site][$group][$hook][$action] as $code) {
         $class = Apps::getModuleClass($code, 'Hooks');
         $regclass = 'Hook_' . str_replace(['/', '\\'], '_', $code);
         if (!Registry::exists($regclass)) {
             Registry::set($regclass, new $class());
         }
         $bait = Registry::get($regclass)->{$action}();
         if (!empty($bait)) {
             $result[] = $bait;
         }
     }
     if ($flatten === true) {
         $result = implode('', $result);
     }
     return $result;
 }
    echo OSCOM::getDef('table_heading_group');
    ?>
</td>
                <td class="dataTableHeadingContent"><?php 
    echo OSCOM::getDef('table_heading_sort_order');
    ?>
</td>
                <td class="dataTableHeadingContent" align="right"><?php 
    echo OSCOM::getDef('table_heading_action');
    ?>
&nbsp;</td>
              </tr>
<?php 
    foreach ($modules['installed'] as $m) {
        if (strpos($m['code'], '\\') !== false) {
            $class = Apps::getModuleClass($m['code'], 'Content');
            $module = new $class();
            $module->code = $m['code'];
        } else {
            $module = new $m['code']();
        }
        if ((!isset($_GET['module']) || isset($_GET['module']) && $_GET['module'] == $module->code) && !isset($mInfo)) {
            $module_info = array('code' => $module->code, 'title' => $module->title, 'description' => $module->description, 'signature' => isset($module->signature) ? $module->signature : null, 'api_version' => isset($module->api_version) ? $module->api_version : null, 'sort_order' => (int) $module->sort_order, 'keys' => array());
            foreach ($module->keys() as $key) {
                $key = HTML::sanitize($key);
                $Qkeys = $OSCOM_Db->get('configuration', ['configuration_title', 'configuration_value', 'configuration_description', 'use_function', 'set_function'], ['configuration_key' => $key]);
                $module_info['keys'][$key] = ['title' => $Qkeys->value('configuration_title'), 'value' => $Qkeys->value('configuration_value'), 'description' => $Qkeys->value('configuration_description'), 'use_function' => $Qkeys->value('use_function'), 'set_function' => $Qkeys->value('set_function')];
            }
            $mInfo = new \ArrayObject($module_info, \ArrayObject::ARRAY_AS_PROPS);
        }
        if (isset($mInfo) && is_object($mInfo) && $module->code == $mInfo->code) {
Example #7
0
                <td class="dataTableHeadingContent" align="right"><?php 
echo OSCOM::getDef('table_heading_sort_order');
?>
</td>
                <td class="dataTableHeadingContent" align="right"><?php 
echo OSCOM::getDef('table_heading_action');
?>
&nbsp;</td>
              </tr>
<?php 
$installed_modules = array();
for ($i = 0, $n = sizeof($directory_array); $i < $n; $i++) {
    $file = $directory_array[$i];
    if (strpos($file, '\\') !== false) {
        $file_extension = '';
        $class = Apps::getModuleClass($file, $appModuleType);
        $module = new $class();
        $module->code = $file;
        $class = $file;
    } else {
        $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
        $OSCOM_Language->loadDefinitions($module_site . '/modules/' . $module_type . '/' . pathinfo($file, PATHINFO_FILENAME));
        include $module_directory . $file;
        $class = substr($file, 0, strrpos($file, '.'));
        if (class_exists($class)) {
            $module = new $class();
        }
    }
    if (isset($module)) {
        if ($module->check() > 0) {
            if ($module->sort_order > 0 && !isset($installed_modules[$module->sort_order])) {
Example #8
0
<h2><i class="fa fa-home"></i> <a href="<?php 
echo OSCOM::link(FILENAME_DEFAULT);
?>
"><?php 
echo STORE_NAME;
?>
</a></h2>

<?php 
if (defined('MODULE_ADMIN_DASHBOARD_INSTALLED') && tep_not_null(MODULE_ADMIN_DASHBOARD_INSTALLED)) {
    $adm_array = explode(';', MODULE_ADMIN_DASHBOARD_INSTALLED);
    $col = 0;
    foreach ($adm_array as $adm) {
        if (strpos($adm, '\\') !== false) {
            $class = Apps::getModuleClass($adm, 'AdminDashboard');
        } else {
            $class = substr($adm, 0, strrpos($adm, '.'));
            if (!class_exists($class)) {
                $OSCOM_Language->loadDefinitions('modules/dashboard/' . pathinfo($adm, PATHINFO_FILENAME));
                include 'includes/modules/dashboard/' . $class . '.php';
            }
        }
        $ad = new $class();
        if ($ad->isEnabled()) {
            $col += 1;
            if ($col === 1) {
                echo '<div class="row">';
            }
            echo '<div class="col-md-6">' . $ad->getOutput() . '</div>';
            if ($col === 2) {
Example #9
0
 function getContent($group)
 {
     if (!class_exists('tp_' . $group) && file_exists(DIR_WS_MODULES . 'pages/tp_' . $group . '.php')) {
         include DIR_WS_MODULES . 'pages/tp_' . $group . '.php';
     }
     if (class_exists('tp_' . $group)) {
         $template_page_class = 'tp_' . $group;
         $template_page = new $template_page_class();
         $template_page->prepare();
     }
     foreach ($this->getContentModules($group) as $module) {
         if (strpos($module, '\\') !== false) {
             $class = Apps::getModuleClass($group . '/' . $module, 'Content');
             $mb = new $class();
             if ($mb->isEnabled()) {
                 $mb->execute();
             }
         } else {
             if (!class_exists($module)) {
                 if (file_exists(DIR_WS_MODULES . 'content/' . $group . '/' . $module . '.php')) {
                     if (file_exists(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/content/' . $group . '/' . $module . '.php')) {
                         include DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/content/' . $group . '/' . $module . '.php';
                     }
                     include DIR_WS_MODULES . 'content/' . $group . '/' . $module . '.php';
                 }
             }
             if (class_exists($module)) {
                 $mb = new $module();
                 if ($mb->isEnabled()) {
                     $mb->execute();
                 }
             }
         }
     }
     if (class_exists('tp_' . $group)) {
         $template_page->build();
     }
     if ($this->hasContent($group)) {
         return implode("\n", $this->_content[$group]);
     }
 }
Example #10
0
 function getContent($group)
 {
     if (!class_exists('tp_' . $group) && is_file('includes/modules/pages/tp_' . $group . '.php')) {
         include 'includes/modules/pages/tp_' . $group . '.php';
     }
     if (class_exists('tp_' . $group)) {
         $template_page_class = 'tp_' . $group;
         $template_page = new $template_page_class();
         $template_page->prepare();
     }
     foreach ($this->getContentModules($group) as $module) {
         if (strpos($module, '\\') !== false) {
             $class = Apps::getModuleClass($group . '/' . $module, 'Content');
             $mb = new $class();
             if ($mb->isEnabled()) {
                 $mb->execute();
             }
         } else {
             if (!class_exists($module)) {
                 if (is_file('includes/modules/content/' . $group . '/' . $module . '.php')) {
                     if ($this->lang->definitionsExist('modules/content/' . $group . '/' . $module)) {
                         $this->lang->loadDefinitions('modules/content/' . $group . '/' . $module);
                     }
                     include 'includes/modules/content/' . $group . '/' . $module . '.php';
                 }
             }
             if (class_exists($module)) {
                 $mb = new $module();
                 if ($mb->isEnabled()) {
                     $mb->execute();
                 }
             }
         }
     }
     if (class_exists('tp_' . $group)) {
         $template_page->build();
     }
     if ($this->hasContent($group)) {
         return implode("\n", $this->_content[$group]);
     }
 }