Beispiel #1
0
 public function unbind($event)
 {
     unset($this->bindEv[$event]);
     $this->O->event()->unbind($event);
     $this->change();
 }
Beispiel #2
0
 function remove_after()
 {
     core::event('comment_remove', $this);
 }
Beispiel #3
0
 /**
  * Try base route,
  * otherwise try find out node
  *
  * @todo move stuff to controller
  */
 function route($parts)
 {
     // Try abse routes
     if (parent::route($parts)) {
         return true;
     }
     $uri = implode('/', $parts);
     $in_index = empty($parts);
     if ($in_index) {
         $this->render_index();
         return true;
     }
     $comment_filter = $this->create_filter('sat.comment/modify');
     $this->append_filter('comment_modify', $comment_filter);
     if (!$comment_filter->match_uri($uri)) {
         $comment_filter = null;
     }
     $pagination_filter = $this->create_filter('pagination');
     // append filter for later use
     $this->append_filter('pagination', $pagination_filter);
     $pagination_filter->match_uri($uri);
     // string(54) "14_dvigatel_mehanicheskaya_chast/klapanniy_zazor_2zzge"
     $node_url = '/' . $uri;
     if (strings::substr($node_url, -5) != loader::DOT_HTML) {
         $node_url .= '/';
     }
     $this->_static_node_url = $node_url;
     $c_site_id = $this->context->get_current_site_id();
     $_item = $this->context->get_tree_item($c_site_id, $node_url, tf_sat::TREE_URL);
     if (!$_item) {
         throw new router_exception('Node not found', router_exception::NOT_FOUND);
     }
     /** @var sat_node_item $item */
     $item = $this->context->get_node($_item['id']);
     if (!$item) {
         throw new router_exception('Node item not found', router_exception::NOT_FOUND);
     }
     core::dprint(array('Found node %d, %s ', $item->id, $item->title));
     $tlayout = $item->get_template();
     if (isset($tlayout['site']['order'])) {
         $item->get_children_handle()->set_order($tlayout['site']['order']);
     }
     core::event('sat_route_before', $item);
     /* pagination filter */
     $page = $pagination_filter->get_start();
     try {
         $item->apply_children_filter($page);
     } catch (collection_filter_exception $e) {
         throw new router_exception($e->getMessage(), router_exception::NOT_FOUND);
     }
     $item->get_parent();
     // load secondary, if not disabled
     if (!isset($tlayout["site"]["item"]["deps"]) || $tlayout["site"]["item"]["deps"]) {
         $item->with_deps(@$tlayout["site"]["item"]["deps"]);
         $item->load_secondary(@$tlayout["site"]["item"]["deps"]);
     }
     $this->_current_node = $item;
     // for comments bindings
     $this->context->controller->set_current_item($item);
     if ($comment_filter) {
         $comment_filter->run();
     }
     /** @var tf_renderer */
     $renderer = $this->context->renderer;
     //
     // template alternative layout {layout}.tpl
     //
     if ($tlayout['template']) {
         $renderer->set_page_template($tlayout['template']);
     }
     core::event('sat_render_before', $item);
     $renderer->current->node = $item->render();
     $renderer->current->node_chain = $this->context->get_node_parents($item->id)->render();
     $renderer->set_main_template(($tpl = $this->context->get_controller()->get_template()) ? $tpl : 'sat/node/item');
     return true;
 }
Beispiel #4
0
 /**
  * Out
  */
 public function logout()
 {
     if (!$this->_logged_in) {
         return false;
     }
     core::event('logout', $this->get_user());
     $this->set_user(0);
     $this->_logged_in = false;
     $this->update_session_uid();
     return true;
 }
Beispiel #5
0
 /**
  * Post out
  * Finish output
  */
 private function output_end($tpl, $return = false)
 {
     $this->_buffer = '';
     if ($this->_is_null_template()) {
         return;
     }
     /* display if template given
           or return if $return passed 
           
           skip if template is empty (ajax)         
        */
     if (!empty($tpl)) {
         $tpl .= loader::DOT_TPL;
         // assign data
         $this->get_parser()->assign($this->get_data());
         core::dprint('[RENDER] using ' . $tpl . ' with ' . $this->get_main_template() . ' [' . $this->template_url . ']');
         // in ajax dies silently, if no template found
         try {
             $this->_buffer = $this->get_parser()->fetch($tpl);
         } catch (SmartyException $e) {
             $this->_buffer = '<code>ParserException: ' . $e->getMessage() . (core::is_debug() ? nl2br($e->getTraceAsString()) : '') . '</code>';
         }
         // make some editor magic
         if (core::in_editor()) {
             core::lib('editor')->on_output_before($this->_buffer);
         }
         core::event('core_after_output', $this->_buffer);
         // fix spaces (30260 -> 27611 time 0.0017)
         // $html = preg_replace('#>[\s]{2,}<#smU', '><', $html);
         // $html = str_replace(array("\n", "\r", '  '), '', $html);
         // $this->tpl_parser->display($tpl);
         $this->_buffer = trim($this->_buffer);
         if ($return) {
             return $this->_buffer;
         } else {
             echo $this->_buffer;
         }
     }
 }