Example #1
0
 /**
  * handle add
  */
 public function addComment($values)
 {
     $request = Request::getInstance();
     $view = ViewManager::getInstance();
     $values['active'] = 1;
     try {
         $id = $this->insert($values);
         $calendar = $this->plugin->getObject(Calendar::TYPE_DEFAULT);
         $calendarDetail = $calendar->getDetail(array('id' => $values['cal_id']));
         $url = new Url();
         $url->setPath($this->director->tree->getPath($calendarDetail['tree_id']));
         $url->setParameter('id', $calendarDetail['id']);
         $url->setParameter($view->getUrlId(), Calendar::VIEW_DETAIL);
         // notify insert
         $ip = $request->getValue('REMOTE_ADDR', Request::SERVER);
         $template = new TemplateEngine($this->getPath() . "templates/calendarcommentemail.tpl");
         $template->setVariable($values);
         $template->setVariable('calendarName', $calendarDetail['name']);
         $template->setVariable('href_detail', $url->getUrl());
         $template->setVariable('siteTitle', $this->director->tree->getTreeName());
         $template->setVariable('domain', $request->getDomain());
         $template->setVariable('protocol', $request->getProtocol());
         $template->setVariable('ip', $ip);
         $template->setVariable('host', gethostbyaddr($ip));
         $template->setVariable('client', $request->getValue('HTTP_USER_AGENT', Request::SERVER));
         $this->director->systemUser->notify($calendarDetail['tree_id'], 'Comment added at ' . $request->getDomain(), $template->fetch());
     } catch (Exception $e) {
         $template = new TemplateEngine();
         $template->setVariable('commentError', $e->getMessage(), false);
         $template->setVariable('cmtValues', $values, false);
     }
 }
Example #2
0
 /**
  * Calls the template engine's fetch() method without pre-assigning template variables.
  * Assumes that the template variables have already been set.
  *
  * @param string $template_name The name of the template to display
  * @return string The content of the template
  */
 public function fetch_unassigned($template_name)
 {
     return $this->template_engine->fetch($template_name);
 }
Example #3
0
 private function notify($record)
 {
     $request = Request::getInstance();
     $template = new TemplateEngine($this->getPath() . "templates/intrusionemail.tpl");
     $template->setVariable($record);
     $template->setVariable('domain', $request->getDomain());
     $template->setVariable('host', gethostbyaddr($record['ip']));
     $template->setVariable('client', $request->getValue('HTTP_USER_AGENT', Request::SERVER));
     $this->director->systemUser->notify(NULL, 'Intrusion detected at ' . $request->getDomain(), $template->fetch());
 }
Example #4
0
 /**
  * send email
  */
 private function sendMail($mailto, $mailfrom, $subject, $settings, $link)
 {
     $recepients = explode(",", $mailto);
     $template_content = new TemplateEngine($settings['content'], false);
     $template_content->setVariable($settings);
     $template_content->setVariable('password_url', $link);
     $template = new TemplateEngine($this->getPath() . "templates/" . $this->templateEmail);
     $template->setVariable('tpl_content', $template_content);
     $template->setVariable('settings', $settings);
     $request = Request::getInstance();
     $ip = $request->getValue('REMOTE_ADDR', Request::SERVER);
     $template->setVariable('ip', $ip);
     $template->setVariable('host', gethostbyaddr($ip));
     $template->setVariable('client', $request->getValue('HTTP_USER_AGENT', Request::SERVER));
     $mail = new PHPMailer();
     $mail->From = $mailfrom;
     $mail->FromName = $mailfrom;
     foreach ($recepients as $email) {
         $mail->AddAddress(trim($email));
     }
     $mail->WordWrap = 80;
     $mail->Subject = $subject;
     $mail->Body = $template->fetch();
     if (!$mail->Send()) {
         throw new Exception("Error sending message: " . $mail->ErrorInfo);
     }
     if (!$this->log->isInfoEnabled()) {
         return;
     }
     $this->log->info("login info sent to {$mailto}");
 }
Example #5
0
 /**
  * A static function for invoking the smarty template engine given the 
  * template and the data variables.
  * 
  * @param string $template
  * @param string $data
  */
 public static function render($template, $data)
 {
     $t = new TemplateEngine();
     $t->assign($data);
     return $t->fetch("file:/" . getcwd() . "/{$template}");
 }
Example #6
0
 /**
  * Returns protected var $oberserver.
  * @param string observer key
  * @return array
  */
 public function getUserList($search)
 {
     try {
         if (!array_key_exists('tree_id', $search)) {
             throw new Exception('Tree node not set');
         }
         if (!array_key_exists('tag', $search)) {
             throw new Exception('Template tag not set');
         }
         if (!array_key_exists('date', $search)) {
             throw new Exception('Date not set');
         }
         if (!array_key_exists('hour', $search)) {
             throw new Exception('Hour not set');
         }
         $maxpage = 10;
         $page = array_key_exists('page', $search) ? intval($search['page']) : 0;
         $hour = $search['hour'];
         $date = $search['date'] ? $search['date'] : date('Y-m-d');
         $authentication = Authentication::getInstance();
         $user = $authentication->getUserId();
         $usr_id = $user['id'];
         $canEdit = $authentication->canEdit($search['tree_id']);
         $canView = $authentication->canView($search['tree_id']);
         if (!$canEdit && !$canView) {
             throw new Exception('Access denied');
         }
         $subObj = $this->getObject(self::TYPE_DEFAULT);
         $settingObj = $this->getObject(self::TYPE_SETTINGS);
         $settings = $settingObj->getSettings($search['tree_id'], $search['tag']);
         // get linked users
         $userLink = new ReservationUserLink();
         $list = $userLink->getList(array('own_id' => $usr_id));
         $userList = array($usr_id);
         foreach ($list['data'] as $item) {
             $userList[] = $item['usr_id'];
         }
         $vipCount = $subObj->getVipCount($search);
         $legitimateUserList = $canEdit ? array() : $subObj->getLegitimateUserList($userList, $settings['max_subscribe']);
         // check if there are any users that are allowed to make a reservation
         if (!$legitimateUserList && !$canEdit) {
             throw new Exception("Reservation count exceeded.");
         }
         // user is super user, let him be able to make reservations for his self
         //if(!$legitimateUserList) $legitimateUserList = array($usr_id); // COMMENTED OUT BECAUSE SUPER USER CAN MAKE RESERVATIONS FOR ALL MEMBERS
         $userSearch = array('id' => $legitimateUserList);
         //if($vipCount >= $settings['vip_slots']) $userSearch['no_grp_id'] = $settings['vip_grp_id']; // vip_grp_id is not used anymore
         // add search string for user
         if (array_key_exists('user', $search) && $search['user']) {
             $userSearch['search'] = $search['user'];
         }
         $userObj = $this->director->systemUser;
         // backup pager url
         $tmppagerUrl = $userObj->getPagerUrl();
         $tmppagerKey = $userObj->getPagerKey();
         $url = new JsUrl();
         $url->setPath('javascript:userSearch');
         $url->setParameter('date', "'{$date}'");
         $url->setParameter('hour', $hour);
         $url->setParameter('user', "'{$search['user']}'");
         $userObj->setPagerUrl($url);
         $users = $userObj->getList($userSearch, $maxpage, $page);
         // restore pager url
         $userObj->setPagerUrl($tmppagerUrl);
         $userObj->setPagerKey($tmppagerKey);
         $template = new TemplateEngine($this->getPath() . "templates/reservationuserselect.tpl");
         $template->setVariable('users', $users);
         $template->setVariable('date', $date);
         $template->setVariable('hour', $hour);
         $template->setVariable('htdocs_path', $this->getHtdocsPath(false));
         $template->setVariable('include_vip', $vipCount < $settings['vip_slots']);
         $template->setVariable('usersearch', array_key_exists('user', $search) ? $search['user'] : '');
         return $template->fetch();
     } catch (Exception $e) {
         return $e->getMessage();
     }
 }
Example #7
0
 /**
  * A utility method to load a controller. This method loads the controller
  * and fetches the contents of the controller into the Controller::$contents
  * variable if the get_contents parameter is set to true on call. If a controller
  * doesn't exist in the module path, a ModelController is loaded to help
  * manipulate the contents of the model. If no model exists in that location,
  * it is asumed to be a package and a package controller is loaded.
  *
  * @param $path         The path for the model to be loaded.
  * @param $get_contents A flag which determines whether the contents of the
  *                        controller should be displayed.
  * @return Controller
  */
 public static function load($path, $get_contents = true)
 {
     global $redirectedPackage;
     global $packageSchema;
     $controller_path = "";
     $controller_name = "";
     $redirected = false;
     $redirect_path = "";
     $package_name = "";
     $package_main = "";
     //Go through the whole path and build the folder location of the system
     for ($i = 0; $i < count($path); $i++) {
         $p = $path[$i];
         $baseClassName = $package_name . Application::camelize("{$controller_path}/{$p}", "/");
         if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/{$baseClassName}Controller.php")) {
             $controller_class_name = $baseClassName . "Controller";
             $controller_name = $p;
             $controller_path .= "/{$p}";
             $controller_type = Controller::TYPE_MODULE;
             add_include_path("app/modules/{$controller_path}/");
             break;
         } else {
             if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/{$p}.php")) {
                 $controller_name = $p;
                 $controller_path .= "/{$p}";
                 $controller_type = Controller::TYPE_MODULE;
                 break;
             } else {
                 if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/{$baseClassName}Model.php")) {
                     $controller_name = $p;
                     $controller_path .= "/{$p}";
                     $controller_type = Controller::TYPE_MODEL;
                     break;
                 } else {
                     if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/model.xml")) {
                         $controller_name = $p;
                         $controller_path .= "/{$p}";
                         $controller_type = Controller::TYPE_MODEL;
                         break;
                     } else {
                         if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/report.xml")) {
                             $controller_name = $p;
                             $controller_path .= "/{$p}";
                             $controller_type = Controller::TYPE_REPORT;
                             break;
                         } else {
                             if (file_exists(SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/package_redirect.php")) {
                                 include SOFTWARE_HOME . "app/modules/{$controller_path}/{$p}/package_redirect.php";
                                 $redirected = true;
                                 $previousControllerPath = $controller_path . "/{$p}";
                                 $controller_path = "";
                                 $redirectedPackage = $package_path;
                                 $packageSchema = $package_schema;
                             } else {
                                 if ($redirected === true && file_exists(SOFTWARE_HOME . "{$redirect_path}/{$controller_path}/{$p}/report.xml")) {
                                     $controller_name = $p;
                                     $controller_path .= "/{$p}";
                                     $controller_type = Controller::TYPE_REPORT;
                                     break;
                                 } else {
                                     if ($redirected === true && file_exists(SOFTWARE_HOME . "{$redirect_path}/{$controller_path}/{$p}/{$baseClassName}Controller.php")) {
                                         $controller_class_name = $baseClassName . "Controller";
                                         $controller_name = $p;
                                         $controller_path .= "/{$p}";
                                         $controller_type = Controller::TYPE_MODULE;
                                         $package_main .= $p;
                                         add_include_path("{$redirect_path}/{$controller_path}/");
                                         break;
                                     } else {
                                         $controller_path .= "/{$p}";
                                         if ($redirected) {
                                             $package_main .= "{$p}.";
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     // Check the type of controller and load it.
     switch ($controller_type) {
         case Controller::TYPE_MODULE:
             // Load a module controller which would be a subclass of this
             // class
             if ($controller_class_name == "") {
                 require_once SOFTWARE_HOME . "app/modules{$controller_path}/{$controller_name}.php";
                 $controller = new $controller_name();
             } else {
                 $controller_name = $controller_class_name;
                 $controller = new $controller_class_name();
                 $controller->redirected = $redirected;
                 $controller->redirectPath = $redirect_path;
                 $controller->redirectedPackage = $package_path;
                 $controller->mainRedirectedPackage = $package_main;
                 $controller->redirectedPackageName = $package_name;
             }
             break;
         case Controller::TYPE_MODEL:
             // Load the ModelController wrapper around an existing model class.
             $model = substr(str_replace("/", ".", $controller_path), 1);
             $controller_name = "ModelController";
             $controller = new ModelController($model, $package_path);
             break;
         case Controller::TYPE_REPORT:
             $controller = new XmlDefinedReportController($redirect_path . $controller_path . "/report.xml", $redirected);
             $controller_name = "XmlDefinedReportController";
             break;
         default:
             // Load a package controller for this folder
             if (is_dir("app/modules{$controller_path}")) {
                 $controller = new PackageController($path);
                 $controller_name = "PackageController";
                 $get_contents = true;
                 $force_output = true;
             } else {
                 if ($redirected === true && is_dir(SOFTWARE_HOME . "{$redirect_path}/{$controller_path}")) {
                     $controller = new PackageController($path);
                     $controller_name = "PackageController";
                     $get_contents = true;
                     $force_output = true;
                 } else {
                     $controller = new ErrorController();
                     $controller_name = "ErrorController";
                 }
             }
     }
     // If the get contents flag has been set return all the contents of this
     // controller.
     $controller->path = $previousControllerPath . $controller_path;
     if ($get_contents) {
         if ($i == count($path) - 1 || $force_output) {
             $ret = $controller->getContents();
         } else {
             if (method_exists($controller, $path[$i + 1])) {
                 $controller_class = new ReflectionClass($controller_name);
                 $method = $controller_class->GetMethod($path[$i + 1]);
                 $ret = $method->invoke($controller, array_slice($path, $i + 2));
             } else {
                 $ret = "<h2>Error</h2> Method does not exist. [" . $path[$i + 1] . "]";
             }
         }
         if (is_array($ret)) {
             $t = new TemplateEngine();
             $t->assign('controller_path', $controller_path);
             $t->assign($ret["data"]);
             $controller->content = $t->fetch(isset($ret["template"]) ? $ret["template"] : $path[$i + 1] . ".tpl");
         } else {
             if (is_string($ret)) {
                 $controller->content = $ret;
             }
         }
     }
     return $controller;
 }
Example #8
0
 public function fetch()
 {
     $includeFile = is_file($this->getSource());
     $template = new TemplateEngine($this->getSource(), $includeFile);
     $template->setVariable($this->vars, null, false);
     return $template->fetch();
 }
Example #9
0
 /**
  * Renders a given smarty template and returns the output as a string.
  * The template passed to this function could either be a string or a file.
  * The type of template is specified through the $proto parameter. If a
  * protocol is not specified the render function reads in a file.
  * 
  * @param string $template Template string or path to template
  * @param array $data The data to render the template with.
  * @param string $proto The type of template. 'file' for files and 'string' for strings.
  *
  * @return string
  */
 public static function render($template, $data, $proto = 'file')
 {
     $t = new TemplateEngine();
     $t->assign($data);
     return @$t->fetch("{$proto}:" . ($proto === 'file' ? getcwd() . "/" : '') . "{$template}");
 }
Example #10
0
 case 'galeria':
     // $galerias = $db->select('pagina_galeria',"galeria_pagina_id=$pagina_id",'galeria_id,galeria_nombre,galeria_descripcion');
     $galerias = $db->select_sql("SELECT galeria_id,galeria_nombre,galeria_descripcion,(SELECT imagen_url from pagina_galeria_imagen where imagen_galeria_id = galeria_id LIMIT 1) as foto FROM pagina_galeria WHERE galeria_pagina_id = {$pagina_id} ");
     $tpl->galerias = $galerias;
     $id = get('id');
     //	Si solo hay una galería... los mandamos a esa!
     //	Dejamos esto pendiente
     if (count($galerias) == 1 && $id == '') {
         $unica_galeria = $db->field("SELECT galeria_id from galeria WHERE galeria_pagina_id = {$pagina_id}");
         // header('Location:'.$base_pagina."?p=galeria&id=".$unica_galeria);
     }
     if ($id != '') {
         $imagenes = $db->select('pagina_galeria_imagen', "imagen_galeria_id = {$id}", 'imagen_url,imagen_titulo');
         $tpl->imagenes = $imagenes;
     }
     $tpl->fetch('galeria.tpl');
     break;
 case 'publicacion':
     $id = get('id');
     if ($id != '') {
         $db->query("UPDATE pagina_publicacion set publicacion_visitas = publicacion_visitas+1 WHERE publicacion_id = {$id}");
         $publicacion = $db->select('pagina_publicacion', "publicacion_id={$id}", 'publicacion_id,publicacion_titulo,publicacion_contenido,publicacion_fecha,publicacion_video,publicacion_imagen');
         $tpl->publicacion = $publicacion[0];
         $tpl->meta_description = strip_tags(substr($publicacion[0]['publicacion_titulo'] . $publicacion[0]['publicacion_contenido'], 0, 140));
         $publicaciones = $db->select_sql("SELECT publicacion_id, publicacion_titulo,LEFT(publicacion_contenido, 140) AS publicacion_resumen, publicacion_fecha,publicacion_imagen,publicacion_comentarios FROM pagina_publicacion WHERE publicacion_pagina_id = {$pagina_id} ORDER BY publicacion_fecha DESC LIMIT 5");
         $tpl->publicaciones = $publicaciones;
         $tpl->fetch('post.tpl');
     }
     break;
 case 'blog':
     $publicaciones = $db->select_sql("SELECT publicacion_id, publicacion_titulo,LEFT(publicacion_contenido, 140) AS publicacion_resumen, publicacion_fecha,publicacion_imagen FROM pagina_publicacion WHERE publicacion_pagina_id = {$pagina_id} ORDER BY publicacion_fecha DESC");