public function __construct($route, $args = array()) { $path = ''; // Break apart the route $parts = explode('/', str_replace('../', '', (string) $route)); foreach ($parts as $part) { $path .= $part; if (is_dir(Client::getDir() . 'controller/' . $path)) { $path .= '/'; array_shift($parts); continue; } $file = Client::getDir() . 'controller/' . str_replace(array('../', '..\\', '..'), '', $path) . '.php'; if (is_file($file)) { $this->file = $file; $this->class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', $path); array_shift($parts); break; } } if ($args) { $this->args = $args; } $method = array_shift($parts); if ($method) { $this->method = $method; } else { $this->method = 'index'; } }
public function output($file, $data) { if (Client::isAdmin()) { $output = $this->view($file . '.tpl', $data); } else { if (file_exists(Client::getDir() . 'view/theme/' . $this->config->get('config_template') . '/template/' . $file . '.tpl')) { $output = $this->view($this->config->get('config_template') . '/template/' . $file . '.tpl', $data); } else { $output = $this->view('default/template/' . $file . '.tpl', $data); } } return $output; }
public function model($model) { $file = Client::getDir() . 'model/' . $model . '.php'; $class = 'Model' . preg_replace('/[^a-zA-Z0-9]/', '', $model); if (file_exists($file)) { $this->trigger->fire('pre.load.model', $model); include_once $file; $model_class = new $class($this->registry); $this->registry->set('model_' . str_replace('/', '_', $model), $model_class); $this->trigger->fire('post.load.model', $model_class); } else { trigger_error('Error: Could not load model ' . $file . '!'); exit; } }
function modification($filename) { if (Client::isCatalog()) { $file = DIR_MODIFICATION . 'catalog/' . substr($filename, strlen(Client::getDir())); } else { $file = DIR_MODIFICATION . 'admin/' . substr($filename, strlen(Client::getDir())); } if (substr($filename, 0, strlen(DIR_SYSTEM)) == DIR_SYSTEM) { $file = DIR_MODIFICATION . 'system/' . substr($filename, strlen(DIR_SYSTEM)); } if (is_file($file)) { return $file; } return $filename; }
public function deleteEvent($code) { $this->filesystem->remove(Client::getDir() . 'event/app/' . $code . '.php'); }
public function override($filename) { $_ = array(); $file = Client::getDir() . 'language/' . 'override/' . $this->directory . '/' . $filename . '.php'; if (file_exists($file)) { require $file; } $this->data = array_merge($this->data, $_); return $this->data; }
public function getCallbackListeners() { $listeners = array(); $folder = $this->getCallbackFolder(); if (empty($folder) or !file_exists(Client::getDir() . 'event/' . $folder . '/')) { return $listeners; } $files = new Finder(); $files->files()->in(Client::getDir() . 'event/' . $folder . '/'); $files->files()->name('*.php'); foreach ($files as $file) { $file_name = str_replace('\\', '/', $file->getRelativePathname()); $file_name = str_replace('.php', '', $file_name); $listeners[] = $folder . '/' . $file_name; } return $listeners; }
public function getCallbackListeners() { $listeners = array(); $files = new Finder(); $files->files()->in(Client::getDir() . 'event/app/'); $folder = $this->getCallbackFolder(); if (!empty($folder) and file_exists(Client::getDir() . 'event/' . $folder . '/')) { $files->files()->in(Client::getDir() . 'event/' . $folder . '/'); } $files->files()->name('*.php'); foreach ($files as $file) { $file_name = str_replace('\\', '/', $file->getRelativePathname()); $file_name = str_replace('.php', '', $file_name); $listeners[] = $folder . '/' . $file_name; // System triggers $file = Client::getDir() . 'event/app/' . $file_name . '.php'; if (file_exists($file) and !in_array('app/' . $file_name, $listeners)) { $listeners[] = 'app/' . $file_name; } } return $listeners; }