Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
 /**
  * @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;
 }