public function addJsFileRef($js_file, $use_local_js_lib = true) { if ($use_local_js_lib == true) { $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR'); $js_file = __UrlHelper::resolveUrl(__UrlHelper::glueUrlParts($local_js_lib, $js_file)); } else { $js_file = __UrlHelper::resolveUrl($js_file); } $this->_js_files[] = '"' . $js_file . '"'; }
public function startRender(__IComponent &$component) { $properties = array(); $component_id = $component->getId(); $date_format = $component->getDateFormat(); $datebox_button_id = $component_id . '_calbutton'; if (__ResponseWriterManager::getInstance()->hasResponseWriter('datebox')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('datebox'); $jod_setup_response_writer = $jod_response_writer->getResponseWriter('datebox-setup'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('datebox'); $jod_response_writer->addCssFileRef('jscalendar/calendar-green.css'); $jod_response_writer->addJsFileRef('jscalendar/calendar.js'); $jod_response_writer->addLoadCheckingVariable('Calendar'); $jod_language_response_writer = new __JavascriptOnDemandResponseWriter('datebox-language'); $jod_language_response_writer->addJsFileRef('jscalendar/lang/calendar-en.js'); $jod_language_response_writer->addLoadCheckingVariable('Calendar._DN'); $jod_response_writer->addResponseWriter($jod_language_response_writer); $jod_setup_response_writer = new __JavascriptOnDemandResponseWriter('datebox-setup'); $jod_setup_response_writer->addJsFileRef('jscalendar/calendar-setup.js'); $jod_setup_response_writer->addLoadCheckingVariable('Calendar.setup'); $jod_language_response_writer->addResponseWriter($jod_setup_response_writer); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $js_code = <<<CODESET Calendar.setup({ \tinputField:"{$component_id}", \tifFormat:"{$date_format}", \tbutton:"{$datebox_button_id}", \tshowsTime:false }); CODESET; $jod_setup_response_writer->addJsCode($js_code); $component_properties = $component->getProperties(); foreach ($component_properties as $property => $value) { $properties[] = $property . '="' . $value . '"'; } $properties[] = 'type="text"'; $properties[] = 'id="' . $component->getId() . '"'; $properties[] = 'name="' . $component->getName() . '"'; $properties[] = 'value="' . $component->getValue() . '"'; if ($component->getVisible() == false) { $properties[] = 'style = "display : none;"'; } $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR'); $calendar_image_url = __UrlHelper::resolveUrl('jscalendar/calendar.gif', $local_js_lib); $return_value = '<input onchange="this.fire(\'lion:validate\');" ' . implode(' ', $properties) . '> <input type="image" src="' . $calendar_image_url . '" id="' . $datebox_button_id . '" width="16" height="16" border="0">'; return $return_value; }
public function startRender() { if (__FrontController::getInstance()->getRequestType() != REQUEST_TYPE_XMLHTTP) { if (__ApplicationContext::getInstance()->hasProperty('INCLUDE_LION_JS')) { $include_lion_js = __ApplicationContext::getInstance()->getPropertyContent('INCLUDE_LION_JS'); } else { $include_lion_js = true; } if ($include_lion_js) { $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR'); $lion_js_file = __UrlHelper::resolveUrl(__UrlHelper::glueUrlParts($local_js_lib, 'lion.js')); __FrontController::getInstance()->getResponse()->prependContent('<script language="javascript" type="text/javascript" src="' . $lion_js_file . '"></script>' . "\n", 'lion-js'); } } $response_writer_manager = __ResponseWriterManager::getInstance(); if ($response_writer_manager->hasResponseWriter('javascript')) { $javascript_response_writer = $response_writer_manager->getResponseWriter('javascript'); } else { $javascript_response_writer = new __JavascriptOnDemandResponseWriter('javascript'); $response_writer_manager->addResponseWriter($javascript_response_writer); } if (!$javascript_response_writer->hasResponseWriter('setup-client-event-handler')) { $setup_client_event_handler_rw = new __JavascriptOnDemandResponseWriter('setup-client-event-handler'); $js_code = "\n" . '(__ClientEventHandler.getInstance()).setCode("' . __CurrentContext::getInstance()->getId() . '");' . "\n"; if (__Lion::getInstance()->getRuntimeDirectives()->getDirective('DEBUG_MODE')) { $js_code .= "(__ClientEventHandler.getInstance()).setDebug(true);\n"; if (__ApplicationContext::getInstance()->getPropertyContent('DEBUG_AJAX_CALLS') == true) { if (strtoupper(__ApplicationContext::getInstance()->getPropertyContent('DEBUGGER')) == 'ZEND') { $client_ip = $_SERVER['REMOTE_ADDR']; $debug_port = __ApplicationContext::getInstance()->getPropertyContent('ZEND_DEBUG_PORT'); $debug_url = 'index.ajax?' . 'start_debug=1&debug_port=' . $debug_port . '&debug_fastfile=1&debug_host=' . $client_ip . '&send_sess_end=1&debug_stop=1&debug_url=1&debug_new_session=1&no_remote=1'; $js_code .= "(__ClientEventHandler.getInstance()).setUrl('" . $debug_url . "');\n"; } } } if (!__FrontController::getInstance() instanceof __ComponentLazyLoaderFrontController && __FrontController::getInstance()->getRequestType() == REQUEST_TYPE_HTTP) { $url = __FrontController::getInstance()->getRequest()->getUrl(); $encoded_url = base64_encode(serialize($url)); $js_code .= "(__ClientEventHandler.getInstance()).setViewCode('" . $encoded_url . "');\n"; $flow_scope = __ApplicationContext::getInstance()->getFlowScope(); if ($flow_scope != null) { $js_code .= "(__ClientEventHandler.getInstance()).setFlowExecutionKey('" . $flow_scope->getId() . "');\n"; } } $setup_client_event_handler_rw->addJsCode($js_code); $javascript_response_writer->addResponseWriter($setup_client_event_handler_rw); } parent::startRender(); }
public function showDocumentationAction() { $mav = new __ModelAndView('documentation'); if ($this->_page != null && $this->_doc_content != null) { $mav->doc_content = $this->_doc_content; if (strpos($this->_page, '.pkg') !== false || $this->_page == 'index') { $mav->show_toc = true; $doc_toc = LION_DIR . DIRECTORY_SEPARATOR . 'documentation' . DIRECTORY_SEPARATOR . $this->_doc_directory . DIRECTORY_SEPARATOR . 'Lion' . DIRECTORY_SEPARATOR . 'tutorial_Lion.Toc.pkg.html'; if (is_file($doc_toc) && is_readable($doc_toc)) { $toc_content = file_get_contents($doc_toc); $toc_content = str_replace('../', __UrlHelper::resolveUrl('documentation/'), $toc_content); $toc_content = preg_replace('/(\\/documentation\\/.+?)\\.html/', '$1.lion', $toc_content); $mav->toc = $toc_content; } } else { $mav->show_toc = false; } } return $mav; }
private static function _validateRewriteEngine() { $rewrite_engine_working = false; //by default if (__Client::getInstance()->getRequestType() != REQUEST_TYPE_COMMAND_LINE) { $test_url = __UriFactory::getInstance()->createUri()->setRoute('testResponse')->getUrl(); $test_url = __UrlHelper::resolveUrl($test_url, 'http://' . $_SERVER['SERVER_NAME']); if ($stream = @fopen($test_url, 'r')) { // print all the page starting at the offset 10 $test_content = stream_get_contents($stream); fclose($stream); if ($test_content == 'OK') { $rewrite_engine_working = true; } } if ($rewrite_engine_working == false) { throw __ExceptionFactory::getInstance()->createException('Either mod rewrite is not enabled in your server or is not well configured.'); } } }
protected function _readLinks($uri, $source, $level) { $return_value = array(); foreach (DOMDocument::loadHTML($source)->getElementsByTagName('a') as $a) { $a->getAttribute('href'); if (!$a->hasAttribute('rel') || !preg_match('/nofollow/', $a->getAttribute('rel'))) { $href = $a->getAttribute('href'); if (!preg_match('/^javascript/', $href)) { $anchor_text = $a->textContent; $href = __UrlHelper::resolveUrl($a->getAttribute('href'), 'http://' . $_SERVER['HTTP_HOST']); $link = new __SiteMapLink(); $link->setLevel($level); $link->setAnchorText('' . $anchor_text); $link->setHref('' . $href); $return_value[] = $link; unset($link); unset($a); } } } return $return_value; }
public function getUrl() { //Set default values for non-defined variables: foreach ($this->_variable_patterns as $variable_name => $variable_pattern) { if ($this->_url_pattern->getVariableValue($variable_name) === null && !$this->_url_pattern->isOptionalVariable($variable_name)) { $this->_url_pattern->setVariableDefaultValue($variable_name, $this->_getValidValueForVariable($variable_name)); } } //Get the inverse expression (this will be the url without parameters) $return_value = $this->_url_pattern->getREInverse(); if (defined("APP_URL_PATH")) { $url_path = APP_URL_PATH; } else { $url_path = __ApplicationContext::getInstance()->getPropertyContent('APP_URL_PATH'); } $return_value = __UrlHelper::resolveUrl($return_value, $url_path); //Add parameters to the url: if (count($this->_parameters) > 0) { $return_value .= '?' . http_build_query($this->_parameters); } return $return_value; }