// get menu $menu_params = JSite::getMenu()->getParams($Itemid); // retrieve item id from menu item if (!isset($query['submission_id'])) { $query['submission_id'] = $menu_params->get('submission'); $query['type_id'] = $menu_params->get('type'); $query['item_id'] = $menu_params->get('item_id'); $query['submission_hash'] = ''; } if ($query['layout'] == 'submission') { $title[] = $task; $title[] = $query['layout']; $title[] = SubmissionHelper::translateIDToAlias((int) $query['submission_id']); $title[] = $query['type_id']; $title[] = $query['submission_hash']; $title[] = ItemHelper::translateIDToAlias((int) @$query['item_id']); shRemoveFromGETVarsList('layout'); shRemoveFromGETVarsList('submission_id'); shRemoveFromGETVarsList('type_id'); shRemoveFromGETVarsList('submission_hash'); shRemoveFromGETVarsList('item_id'); } else { if ($query['layout'] == 'mysubmissions') { $title[] = $task; $title[] = $query['layout']; $title[] = SubmissionHelper::translateIDToAlias((int) $query['submission_id']); shRemoveFromGETVarsList('layout'); shRemoveFromGETVarsList('submission_id'); } } break;
function ZooBuildRoute(&$query) { // init vars $segments = array(); // frontpage $task = 'frontpage'; if (@$query['task'] == $task || @$query['view'] == $task) { $segments[] = $task; unset($query['task']); unset($query['view']); // pagination if (isset($query['page'])) { $segments[] = $query['page']; unset($query['page']); } } // category $task = 'category'; if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['category_id'])) { $segments[] = $task; $segments[] = CategoryHelper::translateIDToAlias((int) $query['category_id']); unset($query['task']); unset($query['view']); unset($query['category_id']); // pagination if (isset($query['page'])) { $segments[] = $query['page']; unset($query['page']); } } // alpha index $task = 'alphaindex'; if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['alpha_char']) && isset($query['app_id'])) { $segments[] = $task; $segments[] = ApplicationHelper::translateIDToAlias((int) $query['app_id']); $segments[] = $query['alpha_char']; unset($query['task']); unset($query['view']); unset($query['alpha_char']); unset($query['app_id']); // pagination if (isset($query['page'])) { $segments[] = $query['page']; unset($query['page']); } } // tag $task = 'tag'; if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) { $segments[] = $task; $segments[] = ApplicationHelper::translateIDToAlias((int) $query['app_id']); $segments[] = $query['tag']; unset($query['task']); unset($query['view']); unset($query['tag']); unset($query['app_id']); // pagination if (isset($query['page'])) { $segments[] = $query['page']; unset($query['page']); } } // item $task = 'item'; if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['item_id'])) { $segments[] = $task; $segments[] = ItemHelper::translateIDToAlias((int) $query['item_id']); unset($query['task']); unset($query['view']); unset($query['item_id']); } // feed $task = 'feed'; if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['type']) && isset($query['category_id'])) { $segments[] = $task; $segments[] = $query['type']; $segments[] = ApplicationHelper::translateIDToAlias((int) $query['app_id']); $segments[] = CategoryHelper::translateIDToAlias((int) $query['category_id']); unset($query['task']); unset($query['view']); unset($query['type']); unset($query['app_id']); unset($query['category_id']); } // submission $task = 'submission'; $layout = 'submission'; if ((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == $layout) { $segments[] = $task; $segments[] = $layout; $segments[] = SubmissionHelper::translateIDToAlias((int) $query['submission_id']); $segments[] = $query['type_id']; $segments[] = $query['submission_hash']; $segments[] = ItemHelper::translateIDToAlias((int) @$query['item_id']); unset($query['task']); unset($query['view']); unset($query['layout']); unset($query['submission_id']); unset($query['type_id']); unset($query['submission_hash']); unset($query['item_id']); } // submission mysubmissions $task = 'submission'; $layout = 'mysubmissions'; if ((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == $layout) { $segments[] = $task; $segments[] = $layout; $segments[] = SubmissionHelper::translateIDToAlias((int) $query['submission_id']); unset($query['task']); unset($query['view']); unset($query['layout']); unset($query['submission_id']); } return $segments; }
protected function _itemToXML(Item $item) { $attributes = array(); foreach (self::$item_attributes as $attribute) { if (isset($item->{$attribute})) { $attributes[$attribute] = $item->{$attribute}; } } $attributes['author'] = JFactory::getUser($item->created_by)->username; $item_xml = $this->_buildItem($item->alias, $item->name, $attributes); foreach ($item->getRelatedCategoryIds() as $category_id) { $alias = ''; if (empty($category_id)) { $alias = '_root'; } else { if (isset($this->categories[$category_id])) { $alias = $this->categories[$category_id]->alias; } } if (!empty($alias)) { $this->_addItemCategory($item_xml, $alias); } } foreach ($item->getTags() as $tag) { $this->_addItemTag($item_xml, $tag); } foreach ($item->getElements() as $element) { $xml = YXML::loadString('<wrapper>' . $element->toXML() . '</wrapper>'); foreach ($xml->children() as $element_xml) { $element_xml->addAttribute('name', $element->getConfig()->get('name')); $this->_addItemData($item_xml, $element_xml); } } $metadata = array(); foreach ($item->getParams()->get('metadata.', array()) as $key => $value) { $metadata[preg_replace('/^metadata\\./', '', $key)] = $value; } if (!empty($metadata)) { $this->_addItemMetadata($item_xml, $metadata); } // sanitize relateditems elements $related_item_xmls = $item_xml->xpath('data/relateditems/item'); if ($related_item_xmls) { foreach ($related_item_xmls as $related_item_xml) { $item_xml->replaceChild(YXMLElement::create('item', ItemHelper::translateIDToAlias((string) $related_item_xml), true), $related_item_xml); } } return $item_xml; }