git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
247 lines
8.2 KiB
PHP
247 lines
8.2 KiB
PHP
<?php
|
|
/**
|
|
* Element: Title
|
|
* Displays a title with a bunch of extras, like: description, image, versioncheck
|
|
*
|
|
* @package NoNumber! Elements
|
|
* @version 1.2.8
|
|
*
|
|
* @author Peter van Westen <peter@nonumber.nl>
|
|
* @link http://www.nonumber.nl
|
|
* @copyright Copyright (C) 2010 NoNumber! All Rights Reserved
|
|
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
|
|
*/
|
|
|
|
// Ensure this file is being included by a parent file
|
|
defined( '_JEXEC' ) or die( 'Restricted access' );
|
|
|
|
/**
|
|
* Title Element
|
|
*
|
|
* Available extra parameters:
|
|
* title The title
|
|
* description The description
|
|
* message_type none, message, notice, error?
|
|
* image Image (and path) to show on the right
|
|
* show_apply Show an apply tick image on the right (only if the image is not set)
|
|
* url The main url
|
|
* download_url The url of the download location
|
|
* help_url The url of the help page
|
|
* version_url The url to the new version folder (default = [url]/versions/)
|
|
* version_path The path to version folder
|
|
* version_file The filename of the current version file
|
|
*/
|
|
class JElementTitle extends JElement
|
|
{
|
|
/**
|
|
* Element name
|
|
*
|
|
* @access protected
|
|
* @var string
|
|
*/
|
|
var $_name = 'Title';
|
|
|
|
function fetchTooltip( $label, $description, &$node, $control_name, $name )
|
|
{
|
|
$nostyle = $node->attributes( 'nostyle' );
|
|
if ( $nostyle ) {
|
|
return JElement::fetchTooltip( $label, '', $node, $control_name, $name );
|
|
}
|
|
return;
|
|
}
|
|
|
|
function fetchElement( $name, $value, &$node, $control_name )
|
|
{
|
|
$start = $node->attributes( 'start' );
|
|
$end = $node->attributes( 'end' );
|
|
$blocktype = $node->attributes( 'blocktype' );
|
|
|
|
if ( $end ) {
|
|
$html = '';
|
|
if ( $blocktype == 'fieldset' ) {
|
|
$html .= '</fieldset>';
|
|
|
|
}
|
|
$random = rand( 1000, 10000 );
|
|
$html .= '<div id="end-'.$random.'"></div><script>var enddiv = document.getElementById("end-'.$random.'");enddiv.parentNode.style.padding=0;</script>';
|
|
$html .= '</td></tr></table></div></div>';
|
|
return $html;
|
|
}
|
|
|
|
$title = $node->attributes( 'label' );
|
|
$description = $node->attributes( 'description' );
|
|
$lang_folder = $node->attributes( 'language_folder' );
|
|
$message_type = $node->attributes( 'message_type' );
|
|
$image = $node->attributes( 'image' );
|
|
$image_w = $node->attributes( 'image_w' );
|
|
$image_h = $node->attributes( 'image_h' );
|
|
$show_apply = $node->attributes( 'show_apply' );
|
|
$nostyle = $node->attributes( 'nostyle' );
|
|
$toggle = $node->attributes( 'toggle' );
|
|
|
|
$file_root = str_replace( '\\', '/', str_replace( JPATH_SITE, '', dirname( __FILE__ ) ) );
|
|
$document =& JFactory::getDocument();
|
|
$document->addScript( JURI::root(true).$file_root.'/title.js' );
|
|
|
|
if ( $nostyle ) {
|
|
return JText::_( $description );
|
|
}
|
|
|
|
// The main url
|
|
$url = $node->attributes( 'url' );
|
|
$download = $node->attributes( 'download_url' );
|
|
$help = $node->attributes( 'help_url' );
|
|
$version = $node->attributes( 'version' );
|
|
$version_url = $this->def( $node->attributes( 'version_url' ), $url.'/versions/' );
|
|
$version_file = $node->attributes( 'version_file' );
|
|
|
|
$msg = '';
|
|
|
|
if ( $lang_folder ) {
|
|
// Include extra language file
|
|
$lang = JFactory::getLanguage();
|
|
$lang = str_replace( '_', '-', $lang->_lang );
|
|
|
|
if ( strpos( $lang_folder, '/administrator' ) === 0 ) {
|
|
$lang_folder = str_replace( '/', DS, str_replace( '/administrator', JPATH_ADMINISTRATOR, $lang_folder ) );
|
|
} else {
|
|
$lang_folder = JPATH_SITE.str_replace( '/', DS, $lang_folder );
|
|
}
|
|
$lang_file = 'en-GB.inc.php';
|
|
if ( file_exists( $lang_folder.DS.$lang_file ) ) {
|
|
include $lang_folder.DS.$lang_file;
|
|
}
|
|
if ( $lang != 'en-GB' ) {
|
|
$lang_file = $lang.'.inc.php';
|
|
if ( !file_exists( $lang_folder.DS.$lang_file ) ) {
|
|
$include_file = 'en-GB.inc.php';
|
|
}
|
|
if ( file_exists( $lang_folder.DS.$lang_file ) ) {
|
|
include $lang_folder.DS.$lang_file;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( $title ) {
|
|
$title = JText::_( $title );
|
|
}
|
|
|
|
$user = JFactory::getUser();
|
|
if( strlen( $version ) && strlen( $version_file ) && ( $user->usertype == 'Super Administrator' || $user->usertype == 'Administrator' ) ) {
|
|
// Import library dependencies
|
|
require_once dirname( __FILE__ ).DS.'version_check.php';
|
|
|
|
$msg = NoNumberVersionCheck::setMessage( $version, $version_file, $version_url, $download );
|
|
if ( $version ) {
|
|
if ( $title ) {
|
|
$title .= ' v'.$version;
|
|
} else {
|
|
$title = JText::_( 'Version' ).' '.$version;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( $url ) {
|
|
$url = '<a href="'.$url.'" target="_blank" title="'.$title.'">';
|
|
}
|
|
|
|
if ( $image ) {
|
|
$image = str_replace( '/', "\n", str_replace( '\\', '/', $image ) );
|
|
$image = explode( "\n", trim( $image ) );
|
|
if ( $image['0'] == 'administrator' ) {
|
|
$image['0'] = JURI::base(true);
|
|
} else {
|
|
$image['0'] = JURI::root(true).'/'.$image['0'];
|
|
}
|
|
$image = $url.'<img src="'.implode( '/', $image ).'" border="0" style="float:right;margin-left:10px" alt=""';
|
|
if ( $image_w ) {
|
|
$image .= ' width="'.$image_w.'"';
|
|
}
|
|
if ( $image_h ) {
|
|
$image .= ' height="'.$image_h.'"';
|
|
}
|
|
$image .= ' />';
|
|
if ( $url ) { $image .= '</a>'; }
|
|
}
|
|
|
|
if ( $url ) { $title = $url.$title.'</a>'; }
|
|
if ( $description ) { $description = JText::_( $description ); }
|
|
if ( $help ) { $help = '<a href="'.$help.'" target="_blank" title="'.JText::_( '-More info' ).'">'.JText::_( 'More info' ).'...</a>'; }
|
|
|
|
if ( $title ) { $title = html_entity_decoder( $title ); }
|
|
if ( $description ) { $description = html_entity_decoder( $description ); }
|
|
|
|
$html = '';
|
|
if ( $image ) { $html .= $image; }
|
|
if ( $show_apply ) {
|
|
$apply_button = '<a href="#" onclick="submitbutton( \'apply\' );" title="'.JText::_( 'Apply' ).'"><img align="right" border="0" alt="'.JText::_( 'Apply' ).'" src="images/tick.png"/></a>';
|
|
$html .= $apply_button;
|
|
}
|
|
|
|
if ( $toggle && $description ) {
|
|
$el = 'document.getElementById( \''.$control_name.$name.'description\' )';
|
|
$onclick =
|
|
'if( this.innerHTML == \''.JText::_( JText::_( 'Show' ).' '.$title ).'\' ){'
|
|
.$el.'.style.display = \'block\';'
|
|
.'this.innerHTML = \''.JText::_( JText::_( 'Hide' ).' '.$title ).'\';'
|
|
.'}else{'
|
|
.$el.'.style.display = \'none\';'
|
|
.'this.innerHTML = \''.JText::_( JText::_( 'Show' ).' '.$title ).'\';'
|
|
.'}'
|
|
.'this.blur();return false;'
|
|
;
|
|
$html .= '<div class="button2-left" style="margin:0px 0px 5px 0px;"><div class="blank"><a href="javascript://;" onclick="'.$onclick.'">'.JText::_( JText::_( 'Show' ).' '.$title ).'</a></div></div>'."\n";
|
|
$html .= '<br clear="all" />';
|
|
$html .= '<div id="'.$control_name.$name.'description" style="display:none;">';
|
|
} else if ( $title ) {
|
|
if ( $blocktype != 'fieldset' ) {
|
|
$html .= '<h4 style="margin: 0px;">'.$title.'</h4>';
|
|
}
|
|
}
|
|
if ( $description ) { $html .= $description; }
|
|
if ( $help ) { $html .= '<p>'.$help.'</p>'; }
|
|
if ( $toggle && $description ) {
|
|
$html .= '</div>';
|
|
}
|
|
if ( $message_type ) {
|
|
$html = '<dl id="system-message"><dd class="'.$message_type.'"><ul><li>'.html_entity_decoder( $html ).'</li></ul></dd></dl>';
|
|
} else {
|
|
if ( $blocktype != 'fieldset' ) {
|
|
$html = '<div class="panel"><div style="padding: 2px 5px;">'.$html.'<div style="clear: both;"></div>';
|
|
}
|
|
if ( $start ) {
|
|
if ( $blocktype == 'fieldset' ) {
|
|
$html = '<fieldset class="adminform"><legend>'.$title.'</legend>'.$html;
|
|
}
|
|
$html .= '<table width="100%" class="paramlist admintable" cellspacing="1">';
|
|
$html .= '<tr><td style="padding: 0px;" colspan="2">';
|
|
$random = rand( 1000, 10000 );
|
|
$html .= '<div id="end-'.$random.'"></div><script>var enddiv = document.getElementById("end-'.$random.'");enddiv.parentNode.style.padding=0;</script>';
|
|
} else {
|
|
$html .= '</div></div>';
|
|
}
|
|
}
|
|
|
|
if ( $msg ) { $html = $msg.$html; }
|
|
|
|
return $html;
|
|
}
|
|
|
|
function def( $val, $default )
|
|
{
|
|
return ( $val == '' ) ? $default : $val;
|
|
}
|
|
}
|
|
|
|
if( !function_exists( 'html_entity_decoder' ) ) {
|
|
function html_entity_decoder( $given_html, $quote_style = ENT_QUOTES, $charset = 'UTF-8' )
|
|
{
|
|
if( phpversion() < '5.0.0' ) {
|
|
$trans_table = array_flip( get_html_translation_table( HTML_SPECIALCHARS, $quote_style ) );
|
|
$trans_table['''] = "'";
|
|
return ( strtr( $given_html, $trans_table ) );
|
|
}else {
|
|
return html_entity_decode( $given_html, $quote_style, $charset );
|
|
}
|
|
}
|
|
} |