function createChildComponents() { $entityTypeService = $this->_application->retrieveProxy('movio.modules.ontologybuilder.service.EntityTypeService'); $properties = $entityTypeService->getEntityTypeAttributeProperties(__Request::get('entityTypeId'), $this->_parent->getId()); $moduleId = $properties['entity_properties_params']; $this->_content['title'] = $this->data->text; $c =& org_glizy_ObjectFactory::createComponent('org.glizy.components.Text', $this->_application, $this, 'glz:Text', 'title', 'title'); $this->addChild($c); $this->_content['url'] = __Routing::makeUrl($moduleId, array('document_id' => $this->data->id, 'title' => $this->data->text)); $c =& org_glizy_ObjectFactory::createComponent('org.glizy.components.Text', $this->_application, $this, 'glz:Text', 'url', 'url'); $this->addChild($c); $module = org_glizy_Modules::getModule($moduleId); $ar = org_glizy_ObjectFactory::createModel($module->classPath . '.models.Model'); $ar->load($this->data->id); if ($ar->fieldExists('image')) { $this->_content['__image'] = $ar->image; $c =& org_glizy_ObjectFactory::createComponent('org.glizy.components.Image', $this->_application, $this, 'glz:Image', '__image', '__image'); $c->setAttribute('width', __Config::get('THUMB_WIDTH')); $c->setAttribute('height', __Config::get('THUMB_HEIGHT')); $c->setAttribute('crop', true); $this->addChild($c); } else { $c =& org_glizy_ObjectFactory::createComponent('movio.modules.ontologybuilder.views.components.NoImage', $this->_application, $this, 'glz:Image', '__image', '__image'); $c->setAttribute('width', __Config::get('THUMB_SMALL_WIDTH')); $c->setAttribute('height', __Config::get('THUMB_SMALL_HEIGHT')); $this->addChild($c); } }
public function findTerm($fieldName, $model, $query, $term, $proxyParams = null) { $model = org_glizy_Modules::getModule($proxyParams->moduleId); $it = org_glizy_ObjectFactory::createModelIterator($model->classPath . '.models.Model')->where('title', '%' . $term . '%', 'ILIKE')->orderBy('title'); $result = array(); foreach ($it as $ar) { $result[] = array('id' => $ar->getId(), 'text' => $ar->title); } return $result; }
/** * @param string $route * @param array $queryVars * @param array $addParam * * @return mixed|string */ static function _makeURL_SEF($route = '', $queryVars = array(), $addParam = array()) { if (!isset($addParam['__modal__']) && __Request::exists('__modal__')) { $addParam['__modal__'] = __Request::get('__modal__'); } $url = ''; if (!empty($route)) { $configArray =& org_glizy_Routing::_getValuesArray(); /** @var org_glizy_application_Application $application */ $application =& org_glizy_ObjectValues::get('org.glizy', 'application'); /** @var org_glizy_application_SiteMap $siteMap */ $siteMap =& $application->getSiteMap(); $isApplicationDB = $siteMap->getType() == 'db'; // TODO // controllare se il route richiesto esiste. // // TODO // ci sono molte classi che usano lo stesso concetto di memorizzare // i dati in un array statico // conviene fare una classe base e estendere questa // $routing = $configArray[strtolower($route)]; if (isset($routing[0])) { foreach ($routing as $v) { if ($queryVars[$v['keyName']] == $v['keyValue'] || empty($v['keyValue'])) { $url = $v['value']; break; } } } else { $url = $routing['value']; } if (strpos($url, 'http://') !== false) { return $url; } $pageId = 0; preg_match_all("|\\{(.*)\\}|U", $url, $match, PREG_PATTERN_ORDER); for ($i = 0; $i < count($match[0]); $i++) { $sanitize = true; $value = ''; $value2 = ''; $command = explode('=', $match[1][$i]); switch ($command[0]) { case 'language': $value = isset($queryVars['language']) ? $queryVars['language'] : $application->getLanguage(); break; case '*': case 'currentMenu': $page =& $application->getCurrentMenu(); $value = $page->id; $value2 = $page->title; unset($page); break; case 'currentMenuId': $page =& $application->getCurrentMenu(); $value = $page->id; unset($page); break; case 'pageId': // ricerca la pagina da linkare if (count($command) > 1) { if (is_numeric($command[1])) { $page = $siteMap->getNodeById($command[1]); } else { $page = $siteMap->getMenuByPageType($command[1]); if (is_null($page)) { $module = org_glizy_Modules::getModule($command[1]); if (!is_null($module) && $module->pageType) { $page = $siteMap->getMenuByPageType($module->pageType); } } } $value = $page->id; $value2 = $isApplicationDB ? $page->title : ''; } else { $pageId = @$queryVars[$command[0]]; if (empty($pageId)) { $page =& $application->getCurrentMenu(); $pageId = $page->id; unset($page); } $value = $pageId; $value2 = ''; } break; case 'pageTitle': // ricerca la pagina da linkare if (!isset($queryVars['title'])) { // TODO // non deve instanziare un nuovo menù altrimenti rilegge tutto dal db ogni volta $page = $siteMap->getNodeById($pageId); $value = $page->title; } else { $value = $queryVars['title']; } break; case 'value': case 'integer': $value = isset($queryVars[$command[1]]) ? $queryVars[$command[1]] : __Request::get($command[1], ''); break; case 'static': $value = ''; break; case 'config': $sanitize = false; $value = __Config::get($command[1]); break; default: $value = $command[1]; break; } if (is_string($value) && empty($value)) { $url = str_replace($match[0][$i] . '/', '', $url); $url = str_replace($match[0][$i], '', $url); continue; } if ($sanitize) { $value = glz_sanitizeUrlTitle($value) . ($value2 != '' ? '/' : ''); $value2 = glz_sanitizeUrlTitle($value2); } $url = str_replace($match[0][$i], $value . $value2, $url); } // aggiunge in coda i valori della query string che non sono usati if (is_array($addParam) && count($addParam)) { $url .= self::$baseUrlParam; foreach ($addParam as $k => $v) { $url .= '&' . $k . '=' . urlencode($v); } } else { if (is_string($addParam)) { $url .= $addParam; } } } $url = !empty($url) ? $url : $route; return !preg_match('/^(javascript:|http:|https:)/', $url) ? self::$baseUrl . $url : $url; }
/** * @param DOMElement $param * @param $name * @param bool $child */ private function compileNode(&$param, $name, $child, $prefix, $middleware) { $value = $param->hasAttribute('value') ? $param->getAttribute('value') : $param->firstChild->nodeValue; $value = !$param->hasAttribute('method') && !$param->hasAttribute('skipLanguage') ? $this->language . $prefix . $value : $prefix . $value; $parseUrl = $param->hasAttribute('parseUrl') ? $param->getAttribute('parseUrl') : 'true'; $keyName = $param->hasAttribute('keyName') ? $param->getAttribute('keyName') : ''; $keyValue = $param->hasAttribute('keyValue') ? $param->getAttribute('keyValue') : ''; $method = $param->hasAttribute('method') ? strtolower($param->getAttribute('method')) : ''; $child = $child ? '[]' : ''; $urlPattern = ''; $urlValues = array(); $staticValues = array(); if ($middleware) { $staticValues['__middleware__'] = $middleware; } if ($parseUrl == 'true') { $attributeToSkip = array('name', 'value', 'parseUrl', 'keyValue', 'keyValue'); foreach ($param->attributes as $index => $attr) { // NOTA: su alcune versioni di PHP (es 5.1) empty( $attr->prefix ) non viene valutato in modo corretto $prefix = $attr->prefix == "" || is_null($attr->prefix) ? "" : $attr->prefix . ":"; $attrName = $prefix . $attr->name; if (!in_array($attrName, $attributeToSkip)) { $staticValues[$attrName] = $attr->value; } } /** @var org_glizy_application_Application $application */ $application =& org_glizy_ObjectValues::get('org.glizy', 'application'); $siteMap =& $application->getSiteMap(); $isApplicationDB = $siteMap && $siteMap->getType() == 'db'; $urlPattern = str_replace('/', '\\/', $value); preg_match_all("|\\{(.*)\\}|U", $urlPattern, $match, PREG_PATTERN_ORDER); for ($i = 0; $i < count($match[0]); $i++) { $command = explode('=', $match[1][$i]); $urlValuesKey = $command[count($command) - 1]; switch ($command[0]) { case 'language': $urlPartValue = '(.{2})'; break; case '*': case 'currentMenu': $urlPartValue = '(.*)'; $urlValuesKey = 'pageId'; break; case 'pageId': if (count($command) > 1 && is_object($siteMap)) { if (is_numeric($command[1])) { $page = $siteMap->getNodeById($command[1]); } else { $page = $siteMap->getMenuByPageType($command[1]); if (is_null($page)) { $module = org_glizy_Modules::getModule($command[1]); if (!is_null($module) && $module->pageType) { $page = $siteMap->getMenuByPageType($module->pageType); } } } if ($isApplicationDB) { $urlPartValue = strtolower('(' . $page->id . '\\/[^\\/]*?)'); } else { $urlPartValue = strtolower('(' . str_replace('/', '\\/', $page->id) . ')'); } } else { $urlPartValue = '([^\\/]*)'; } $urlValuesKey = $command[0]; break; case 'pageTitle': $urlPartValue = '([^\\/]*)'; break; case 'value': $urlPartValue = '([^\\/]*)'; break; case 'integer': $urlPartValue = '(\\d*)'; break; case 'static': $urlPartValue = ''; $urlValuesKey = $command[1]; break; case 'state': $urlPartValue = '(' . $command[1] . ')'; $urlValuesKey = $command[0]; break; case 'config': $urlPartValue = ''; $urlValuesKey = ''; break; default: $urlPartValue = '(' . (count($command) > 1 ? $command[1] : $command[0]) . ')'; $urlValuesKey = $command[0]; break; } if (empty($urlPartValue)) { $urlPattern = str_replace(array($match[0][$i] . '\\/', $match[0][$i]), '()', $urlPattern); $urlValues[$urlValuesKey] = $command[2]; continue; } $urlValues[$urlValuesKey] = ''; $urlPattern = str_replace($match[0][$i], $urlPartValue, $urlPattern); if (strpos($urlPattern, '#') !== false) { list($urlPattern) = explode('#', $urlPattern); } } $urlPattern = rtrim($urlPattern, '\\/'); $urlPattern = '|^' . $urlPattern . '(\\/?)$|i'; } $this->output .= '$configArray["' . $name . '"]' . $child . ' = array("value" => "' . addslashes($value) . '", "urlPattern" => "' . addcslashes($urlPattern, '"\\') . '", "urlValues" => "' . addcslashes(serialize($urlValues), '"\\') . '", "staticValues" => "' . addcslashes(serialize($staticValues), '"\\') . '", "parseUrl" => ' . $parseUrl . ', "keyName" => "' . $keyName . '", "keyValue" => "' . $keyValue . '", "method" => "' . $method . '" )' . GLZ_COMPILER_NEWLINE; }