| Current Path : /home/w/u/e/wuectly/www/03cbe/ |
| Current File : /home/w/u/e/wuectly/www/03cbe/default_class.php.tar |
home/wuectly/www/components/com_xmap/views/html/tmpl/default_class.php 0000604 00000014670 15245630220 0022406 0 ustar 00 <?php
/**
* @version $Id$
* @copyright Copyright (C) 2005 - 2009 Joomla! Vargas. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* @author Guillermo Vargas (guille@vargas.co.cr)
*/
// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once(JPATH_COMPONENT.'/displayer.php');
class XmapHtmlDisplayer extends XmapDisplayer {
var $level = -1;
var $_openList = '';
var $_closeList = '';
var $_closeItem = '';
var $_childs;
var $_width;
var $live_site = 0;
function __construct ($config, $sitemap) {
$this->view = 'html';
parent::__construct($config, $sitemap);
$this->_parent_children=array();
$this->_last_child=array();
$this->live_site = substr_replace(JURI::root(), "", -1, 1);
$user = JFactory::getUser();
}
function setJView($view)
{
parent::setJView($view);
$columns = $this->sitemap->params->get('columns',0);
if( $columns > 1 ) { // calculate column widths
$total = count($view->items);
$columns = $total < $columns? $total : $columns;
$this->_width = (100 / $columns) - 1;
$this->sitemap->params->set('columns',$columns);
}
}
/**
* Prints one node of the sitemap
*
*
* @param object $node
* @return boolean
*/
function printNode( &$node )
{
$out = '';
if ($this->isExcluded($node->id,$node->uid) && !$this->canEdit) {
return FALSE;
}
// To avoid duplicate children in the same parent
if ( !empty($this->_parent_children[$this->level][$node->uid]) ) {
return FALSE;
}
//var_dump($this->_parent_children[$this->level]);
$this->_parent_children[$this->level][$node->uid] = true;
$out .= $this->_closeItem;
$out .= $this->_openList;
$this->_openList = "";
$out .= '<li>';
if( !isset($node->browserNav) )
$node->browserNav = 0;
if ($node->browserNav != 3) {
$link = JRoute::_($node->link, true, @$node->secure);
}
$node->name = htmlspecialchars($node->name);
switch( $node->browserNav ) {
case 1: // open url in new window
$ext_image = '';
if ( $this->sitemap->params->get('exlinks') ) {
$ext_image = ' <img src="'. $this->live_site .'/components/com_xmap/assets/images/'. $this->sitemap->params->get('exlinks') .'" alt="' . JText::_('COM_XMAP_SHOW_AS_EXTERN_ALT') . '" title="' . JText::_('COM_XMAP_SHOW_AS_EXTERN_ALT') . '" border="0" />';
}
$out .= '<a href="'. $link .'" title="'. htmlspecialchars($node->name) .'" target="_blank">'. $node->name . $ext_image .'</a>';
break;
case 2: // open url in javascript popup window
$ext_image = '';
if( $this->sitemap->params->get('exlinks') ) {
$ext_image = ' <img src="'. $this->live_site .'/components/com_xmap/assets/images/'. $this->sitemap->params->get('exlinks') .'" alt="' . JText::_('COM_XMAP_SHOW_AS_EXTERN_ALT') . '" title="' . JText::_('COM_XMAP_SHOW_AS_EXTERN_ALT') . '" border="0" />';
}
$out .= '<a href="'. $link .'" title="'. $node->name .'" target="_blank" '. "onClick=\"javascript: window.open('". $link ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false;\">". $node->name . $ext_image."</a>";
break;
case 3: // no link
$out .= '<span>'. $node->name .'</span>';
break;
default: // open url in parent window
$out .= '<a href="'. $link .'" title="'. $node->name .'">'. $node->name .'</a>';
break;
}
$this->_closeItem = "</li>\n";
$this->_childs[$this->level]++;
echo $out;
if ($this->canEdit) {
if ( $this->isExcluded($node->id,$node->uid) ) {
$img = '<img src="'.$this->live_site.'/components/com_xmap/assets/images/unpublished.png" alt="v" title="'.JText::_('JUNPUBLISHED').'">';
$class= 'xmapexclon';
} else {
$img = '<img src="'.$this->live_site.'/components/com_xmap/assets/images/tick.png" alt="x" title="'.JText::_('JPUBLISHED').'" />';
$class= 'xmapexcloff';
}
echo ' <a href= "#" class="xmapexcl '.$class.'" rel="{uid:\''.$node->uid.'\',itemid:'.$node->id.'}">'.$img.'</a>';
}
$this->count++;
$this->_last_child[$this->level] = $node->uid;
return TRUE;
}
/**
* Moves sitemap level up or down
*/
function changeLevel( $level ) {
if ( $level > 0 ) {
# We do not print start ul here to avoid empty list, it's printed at the first child
$this->level += $level;
$this->_childs[$this->level]=0;
$this->_openList = "\n<ul class=\"level_".$this->level."\">\n";
$this->_closeItem = '';
// If we are moving up, then lets clean the children of this level
// because for sure this is a new set of links
if ( empty ($this->_last_child[$this->level-1]) || empty ($this->_parent_children[$this->level]['parent']) || $this->_parent_children[$this->level]['parent'] != $this->_last_child[$this->level-1] ) {
$this->_parent_children[$this->level]=array();
$this->_parent_children[$this->level]['parent'] = @$this->_last_child[$this->level-1];
}
} else {
if ($this->_childs[$this->level]){
echo $this->_closeItem."</ul>\n";
}
$this->_closeItem ='</li>';
$this->_openList = '';
$this->level += $level;
}
}
function startMenu(&$menu) {
if( $this->sitemap->params->get('columns') > 1 ) // use columns
echo '<div style="float:left;width:'.$this->_width.'%;">';
if( $this->sitemap->params->get('show_menutitle') ) // show menu titles
echo '<h2 class="menutitle">'.$menu->name.'</h2>';
}
function endMenu(&$menu) {
$sitemap=&$this->sitemap;
$this->_closeItem='';
if( $sitemap->params->get('columns')> 1 ) {
echo "</div>\n";
}
}
}
home/wuectly/www/components/com_xmap/views/xml/tmpl/default_class.php 0000604 00000017601 15245657777 0022271 0 ustar 00 <?php
/**
* @version $Id$
* @copyright Copyright (C) 2005 - 2009 Joomla! Vargas. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* @author Guillermo Vargas (guille@vargas.co.cr)
*/
// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once(JPATH_COMPONENT . '/displayer.php');
class XmapXmlDisplayer extends XmapDisplayer
{
/**
*
* @var array Stores the list of links that have been already included in
* the sitemap to avoid duplicated items
*/
var $_links;
/**
*
* @var string
*/
var $view = 'xml';
protected $showTitle = false;
protected $showExcluded = false;
/**
*
* @var int Indicates if this is a google news sitemap or not
*/
var $isNews = 0;
/**
*
* @var int Indicates if this is a google news sitemap or not
*/
var $isImages = 0;
function __construct($config, $sitemap)
{
parent::__construct($config, $sitemap);
$this->uids = array();
$this->defaultLanguage = strtolower(JFactory::getLanguage()->getTag());
if (preg_match('/^([a-z]+)-.*/',$this->defaultLanguage,$matches) && !in_array($this->defaultLanguage, array(' zh-cn',' zh-tw')) ) {
$this->defaultLanguage = $matches[1];
}
$this->showTitle = JRequest::getBool('filter_showtitle', 0);
$this->showExcluded = JRequest::getBool('filter_showexcluded', 0);
$db = JFactory::getDbo();
$this->nullDate = $db->getNullDate();
}
/**
* Prints an XML node for the sitemap
*
* @param stdclass $node
*/
function printNode($node)
{
$node->isExcluded = false;
if ($this->isExcluded($node->id,$node->uid)) {
if (!$this->showExcluded || !$this->canEdit) {
return false;
}
$node->isExcluded = true;
}
if ($this->isNews && (!isset($node->newsItem) || !$node->newsItem)) {
return true;
}
// For images sitemaps only display pages with images
if ($this->isImages && (!isset($node->images) || !count($node->images))) {
return true;
}
// Get the item's URL
$link = JRoute::_($node->link, true, @$node->secure == 0 ? (JFactory::getURI()->isSSL() ? 1 : -1) : $node->secure);
if (!isset($node->browserNav))
$node->browserNav = 0;
if ($node->browserNav != 3 // ignore "no link"
&& empty($this->_links[$link])) { // ignore links that have been added already
$this->count++;
$this->_links[$link] = 1;
if (!isset($node->priority))
$node->priority = "0.5";
if (!isset($node->changefreq))
$node->changefreq = 'daily';
// Get the chancefrequency and priority for this item
$changefreq = $this->getProperty('changefreq', $node->changefreq, $node->id, 'xml', $node->uid);
$priority = $this->getProperty('priority', $node->priority, $node->id, 'xml', $node->uid);
echo '<url>' . "\n";
echo '<loc>', $link, '</loc>' . "\n";
if ($this->canEdit) {
if ($this->showTitle) {
echo '<title><![CDATA['.$node->name.']]></title>' . "\n";
}
if ($this->showExcluded) {
echo '<rowclass>',($node->isExcluded? 'excluded':''),'</rowclass>';
}
echo '<uid>', $node->uid, '</uid>' . "\n";
echo '<itemid>', $node->id, '</itemid>' . "\n";
}
$modified = (isset($node->modified) && $node->modified != FALSE && $node->modified != $this->nullDate && $node->modified != -1) ? $node->modified : NULL;
if (!$modified && $this->isNews) {
$modified = time();
}
if ($modified && !is_numeric($modified)){
$date = new JDate($modified);
$modified = $date->toUnix();
}
if ($modified) {
$modified = gmdate('Y-m-d\TH:i:s\Z', $modified);
}
// If this is not a news sitemap
if (!$this->isNews) {
if ($this->isImages) {
foreach ($node->images as $image) {
echo '<image:image>', "\n";
echo '<image:loc>', $image->src, '</image:loc>', "\n";
if ($image->title) {
$image->title = str_replace('&', '&', html_entity_decode($image->title, ENT_NOQUOTES, 'UTF-8'));
echo '<image:title>', $image->title, '</image:title>', "\n";
} else {
echo '<image:title />';
}
if (isset($image->license) && $image->license) {
echo '<image:license>',str_replace('&', '&',html_entity_decode($image->license, ENT_NOQUOTES, 'UTF-8')),'</image:license>',"\n";
}
echo '</image:image>', "\n";
}
} else {
if ($modified){
echo '<lastmod>', $modified, '</lastmod>' . "\n";
}
echo '<changefreq>', $changefreq, '</changefreq>' . "\n";
echo '<priority>', $priority, '</priority>' . "\n";
}
} else {
if (isset($node->keywords)) {
$keywords = htmlspecialchars($node->keywords);
} else {
$keywords = '';
}
if (!isset($node->language) || $node->language == '*') {
$node->language = $this->defaultLanguage;
}
echo "<news:news>\n";
echo '<news:publication>'."\n";
echo ' <news:name>'.(htmlspecialchars($this->sitemap->params->get('news_publication_name'))).'</news:name>'."\n";
echo ' <news:language>'.$node->language.'</news:language>'."\n";
echo '</news:publication>'."\n";
echo '<news:publication_date>', $modified, '</news:publication_date>' . "\n";
echo '<news:title><![CDATA['.$node->name.']]></news:title>' . "\n";
if ($keywords) {
echo '<news:keywords>', $keywords, '</news:keywords>' . "\n";
}
echo "</news:news>\n";
}
echo '</url>', "\n";
} else {
return empty($this->_links[$link]);
}
return true;
}
/**
*
* @param string $property The property that is needed
* @param string $value The default value if the property is not found
* @param int $Itemid The menu item id
* @param string $view (xml / html)
* @param int $uid Unique id of the element on the sitemap
* (the id asigned by the extension)
* @return string
*/
function getProperty($property, $value, $Itemid, $view, $uid)
{
if (isset($this->jview->sitemapItems[$view][$Itemid][$uid][$property])) {
return $this->jview->sitemapItems[$view][$Itemid][$uid][$property];
}
return $value;
}
/**
* Called on every level change
*
* @param int $level
* @return boolean
*/
function changeLevel($level)
{
return true;
}
/**
* Function called before displaying the menu
*
* @param stdclass $menu The menu node item
* @return boolean
*/
function startMenu($menu)
{
return true;
}
/**
* Function called after displaying the menu
*
* @param stdclass $menu The menu node item
* @return boolean
*/
function endMenu($menu)
{
return true;
}
}