Support à partir de la version 1.5.3
Fin du support officiel depuis le 30 septembre 2011

soucis inserer image

Plus d'informations
02 Sep 2009 18:42 #13 par lavsteph
Réponse de lavsteph sur le sujet Re:soucis inserer image
Bonsoir,

il est possible que tu nous fournisses le code présent de ton post posant problème en éditant ce dernier et l'insérer ici avec la balise code .

Voir au mieux un lien vers le soucis ;)

Fondateur : Aide-joomla.com

Veuillez vous connecter ou vous enregistrer pour rejoindre la conversation.

Plus d'informations
07 Sep 2009 22:14 - 07 Sep 2009 22:22 #14 par ManaGeY
Réponse de ManaGeY sur le sujet Re:soucis inserer image
Bonjour,

Pour la résolution du problème d'image voici le lien du fichier à modifier :
/components/com_kunena/lib/kunena.parser.php

Son contenu :
Code:
<?PHP /** * @version $Id$ * Kunena Component * @package Kunena * * @Copyright (C) 2008 - 2009 Kunena Team All rights reserved * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.kunena.com * * Based on FireBoard Component * @Copyright (C) 2006 - 2007 Best Of Joomla All rights reserved * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.bestofjoomla.com **/ ############################################################################ # CATEGORY: Parser.TagParser DEVELOPMENT DATUM: 13.11.2007 # # VERSION: 00.08.00 LAST EDIT DATUM: 12.12.2007 # # FILENAME: interpreter.Kunena.inc.php # # AUTOR: Miro Dietiker, MD Systems, All rights reserved # # LICENSE: http://www.gnu.org/copyleft/gpl.html GNU/GPL # # CONTACT: m.dietiker@md-systems.ch � 2007 Miro Dietiker 13.11.2007 # ############################################################################ # This parser is based on an earlier CMS parser implementation. # It has been completely rewritten and generalized for Kunena and # was also heavily tested. # However it should be: extensible, fast, ungreedy regarding resources # stateful, enforcing strict output rules as defined # Hope it works ;-) ############################################################################ # implement further extended links (username, ...) defined( '_JEXEC' ) or die('Restricted access'); include_once(KUNENA_PATH_LIB .DS. "kunena.parser.bbcode.php"); class KunenaBBCodeInterpreter extends BBCodeInterpreter { # these are samples... we used the parser to refer to files! # did here a local caching, but using also database lookups - removed var $spoilerid = 0; function &NewTask() { # Builds new Task # RET # object: the task object # TAGPARSER_RET_ERR $task = new KunenaBBCodeParserTask($this); return $task; } function hyperlink($text) { $text = ' '.$text.' '; // match protocol://address:port/path/file.extension?some=variable&another=asf% // match protocol://address/path/file.extension?some=variable&another=asf% // match www.something.domain:port/path/file.extension?some=variable&another=asf% // match www.something.domain/path/file.extension?some=variable&another=asf% $text = preg_replace('/(?<!S)((http(s?):\/\/)|(www\.[a-zA-Z0-9-_]+\.))+([a-zA-Z0-9\/*+-_?&;:%=.,#]+)/', '<a href="http$3://$4$5" target="_blank" rel="nofollow">$4$5</a>', $text); // match name@address $text = preg_replace('/(?<!S)([a-zA-Z0-9_.\-]+\@[a-zA-Z][a-zA-Z0-9_.\-]+[a-zA-Z]{2,6})/', '<a href="mailto:$1">$1</a>', $text); return substr($text, 1, -1); } function PostProcessing(&$task) { $fbConfig =& CKunenaConfig::getInstance(); if ($fbConfig->trimlongurls) { // shorten URL text if they are too long (>65chars) $task->text = preg_replace('/<a href=(\"|\')((http(s?):\/\/)?(([^\'\"]{'.$fbConfig->trimlongurlsfront.'})([^\'\"]{4,})([^\'\"]{'. $fbConfig->trimlongurlsback.'})))\1(.*)>\3?\5<\/a>/', '<a href="\2" \9>\6...\8</a>', $task->text); } if ($fbConfig->autoembedyoutube) { // convert youtube links to embedded player $task->text = preg_replace('/<a href=[^>]+youtube.([^>\/]+)\/watch\?[^>]*v=([^>"&]+)[^>]+>[^<]+<\/a>/', '<object width="425" height="344"><param name="movie" value="http://www.youtube.$1/v/$2&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.$1/v/$2&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>', $task->text); // convert youtube playlists to embedded player $task->text = preg_replace('/<a href=[^>]+youtube.([^>\/]+)\/view_play_list\?[^>]*p=([^>"&]+)[^>]+>[^<]+<\/a>/', '<object width="480" height="385"><param name="movie" value="http://www.youtube.$1/p/$2"></param><embed src="http://www.youtube.$1/p/$2" type="application/x-shockwave-flash" width="480" height="385"></embed></object>', $task->text); } if ($fbConfig->autoembedebay) { // convert ebay item to embedded widget $task->text = preg_replace('/<a href=[^>]+ebay.([^>\/]+)\/[^>]*QQitemZ([0-9]+)[^>]+>[^<]+<\/a>/', '<object width="355" height="300"><param name="movie" value="http://togo.ebay.$1/togo/togo.swf" /><param name="flashvars" value="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid=$2&campid=5336042350" /><embed src="http://togo.ebay.$1/togo/togo.swf" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid=$2&campid=5336042350"></embed></object>', $task->text); $task->text = preg_replace('/<a href=[^>]+ebay.([^>\/]+)\/[^>]*ViewItem[^>"]+Item=([0-9]+)[^>]*>[^<]+<\/a>/', '<object width="355" height="300"><param name="movie" value="http://togo.ebay.$1/togo/togo.swf" /><param name="flashvars" value="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid=$2&campid=5336042350" /><embed src="http://togo.ebay.$1/togo/togo.swf" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid=$2&campid=5336042350"></embed></object>', $task->text); // convert ebay search to embedded widget $task->text = preg_replace('/<a href=[^>]+ebay.([^>\/]+)\/[^>]*satitle=([^>&"]+)[^>]+>[^<]+<\/a>/', '<object width="355" height="300"><param name="movie" value="http://togo.ebay.$1/togo/togo.swf?2008013100" /><param name="flashvars" value="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=search&query=$2&campid=5336042350" /><embed src="http://togo.ebay.$1/togo/togo.swf?2008013100" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=search&query=$2&campid=5336042350"></embed></object>', $task->text); // convert seller listing to embedded widget $task->text = preg_replace('/<a href=[^>]+ebay.([^>\/]+)\/[^>]*QQsassZ([^>&"]+)[^>]*>[^<]+<\/a>/', '<object width="355" height="355"><param name="movie" value="http://togo.ebay.$1/togo/seller.swf?2008013100" /><param name="flashvars" value="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&seller=$2&campid=5336042350" /><embed src="http://togo.ebay.$1/togo/seller.swf?2008013100" type="application/x-shockwave-flash" width="355" height="355" flashvars="base=http://togo.ebay.$1/togo/&lang='.$fbConfig->ebaylanguagecode.'&seller=$2&campid=5336042350"></embed></object>', $task->text); } } function Encode(&$text_new, &$task, $text_old, $context) { # Encode strings for output # Regard interpreter mode if needed # context: 'text' # context: 'tagremove' # RET: # TAGPARSER_RET_NOTHING: No Escaping done # TAGPARSER_RET_REPLACED: Escaping done // special states are liable for encoding (Extended Tag hit) if($task->in_code) { // everything inside [code] is getting converted/encoded by tag delegation return TAGPARSER_RET_NOTHING; } if($task->in_noparse) { // noparse is also needed to get encoded $text_new = kunena_htmlspecialchars($text_old, ENT_QUOTES); return TAGPARSER_RET_REPLACED; } // generally $text_new = $text_old; // pasting " " allows regexp to apply on \s at end // HTMLize from plaintext $text_new = kunena_htmlspecialchars($text_new, ENT_QUOTES); if($context=='text' && ($task->autolink_disable==0)) { // Build links HTML2HTML $text_new = KunenaBBCodeInterpreter::hyperlink($text_new); // Calculate smilies HTML2HTML $text_new = smile::smileParserCallback($text_new, $task->history, $task->emoticons, $task->iconList); } return TAGPARSER_RET_REPLACED; } function TagStandard(&$tns, &$tne, &$task, $tag) { # Function replaces TAGs with corresponding if($task->in_code) { return TAGPARSER_RET_NOTHING; } if($task->in_noparse) { // hits deactivated by default switch(strtolower($tag->name)) { case 'noparse': // specify noparse output - this only strips $tns = ""; $tne = ''; #reenter regular replacements $task->in_noparse = FALSE; return TAGPARSER_RET_REPLACED; break; default: break; } // tagname code is not processed return TAGPARSER_RET_NOTHING; } switch (strtolower($tag->name)) { case 'b': $tns = "<b>"; $tne = '</b>'; return TAGPARSER_RET_REPLACED; break; case 'i': $tns = "<i>"; $tne = '</i>'; return TAGPARSER_RET_REPLACED; break; case 'u': $tns = "<u>"; $tne = '</u>'; return TAGPARSER_RET_REPLACED; break; case 'strike': $tns = "<strike>"; $tne = '</strike>'; return TAGPARSER_RET_REPLACED; break; case 'sub': $tns = "<sub>"; $tne = '</sub>'; return TAGPARSER_RET_REPLACED; break; case 'sup': $tns = "<sup>"; $tne = '</sup>'; return TAGPARSER_RET_REPLACED; break; case 'size': if(!isset($tag->options['default']) || strlen($tag->options['default'])==0) { return TAGPARSER_RET_NOTHING; } $size_css = array(1 => 'fbxs', 'fbs', 'fbm', 'fbl', 'fbxl', 'fbxxl'); if (isset($size_css[$tag->options['default']])) { $tns = '<span class="'.$size_css[$tag->options['default']].'">'; $tne = '</span>'; return TAGPARSER_RET_REPLACED; } $tns = "<span style='font-size:".kunena_htmlspecialchars($tag->options['default'], ENT_QUOTES)."'>"; $tne = '</span>'; return TAGPARSER_RET_REPLACED; break; case 'ol': $tns = "<ol>"; $tne = '</ol>'; return TAGPARSER_RET_REPLACED; break; case 'ul': $tns = "<ul>"; $tne = '</ul>'; return TAGPARSER_RET_REPLACED; break; case 'li': $tns = "<li>"; $tne = '</li>'; return TAGPARSER_RET_REPLACED; break; case 'color': if(!isset($tag->options['default']) || strlen($tag->options['default'])==0) { return TAGPARSER_RET_NOTHING; } $tns = "<span style='color: ".kunena_htmlspecialchars($tag->options['default'], ENT_QUOTES)."'>"; $tne = '</span>'; return TAGPARSER_RET_REPLACED; break; case 'highlight': $tns = "<span style='font-weight: 700;'>"; $tne = '</span>'; return TAGPARSER_RET_REPLACED; break; case 'left': $tns = "<div style='text-align: left'>"; $tne = '</div>'; return TAGPARSER_RET_REPLACED; break; case 'center': $tns = "<div style='text-align: center'>"; $tne = '</div>'; return TAGPARSER_RET_REPLACED; break; case 'right': $tns = "<div style='text-align: right'>"; $tne = '</div>'; return TAGPARSER_RET_REPLACED; break; case 'indent': $tns = "<blockquote>"; $tne = '</blockquote>'; return TAGPARSER_RET_REPLACED; break; case 'email': $task->autolink_disable--; if(isset($tag->options['default'])) { $tempstr = $tag->options['default']; if(substr($tempstr, 0, 7)!=='mailto:') { $tempstr = 'mailto:'.$tempstr; } $tns = "<a href='".kunena_htmlspecialchars($tempstr, ENT_QUOTES)."'>"; $tne = '</a>'; return TAGPARSER_RET_REPLACED; } break; case 'url': $task->autolink_disable--; // www. > http://www. if(isset($tag->options['default'])) { $tempstr = $tag->options['default']; if(substr($tempstr, 0, 4)=='www.') { $tempstr = 'http://'.$tempstr; } $tns = "<a href='".kunena_htmlspecialchars($tempstr, ENT_QUOTES)."' rel=\"nofollow\" target=\"_blank\">"; $tne = '</a>'; return TAGPARSER_RET_REPLACED; } break; default: break; } return TAGPARSER_RET_NOTHING; } function TagExtended(&$tag_new, &$task, $tag, $between) { # Function replaces TAGs with corresponding # Encode was already been called for between $fbConfig =& CKunenaConfig::getInstance(); $kunena_my = &JFactory::getUser(); if($task->in_code) { switch(strtolower($tag->name)) { case 'code:1': // fb ancient compatibility case 'code': $types = array ("php", "mysql", "html", "js", "javascript"); $code_start_html = '<div class="fbcode" style="width:'. $fbConfig->rtewidth .'px;"><table cellspacing="1" cellpadding="3" border="0"><tr><td><b>'._KUNENA_MSG_CODE.'</b></td></tr><tr><td><hr />'; if (!empty($tag->options["type"]) && in_array($tag->options["type"], $types)) { $t_type = $tag->options["type"]; } else { $t_type = "php"; } // make sure we show line breaks $code_start_html .= "<code class=\"{$t_type}\">"; $code_end_html = '</code><hr /></td></tr></table></div>'; // Preserve spaces and tabs in code $codetext = str_replace("\t", "__FBTAB__", $between); $codetext = kunena_htmlspecialchars($codetext, ENT_QUOTES); $codetext = str_replace(" ", "&nbsp;", $codetext); $tag_new = $code_start_html. $codetext .$code_end_html; #reenter regular replacements $task->in_code = FALSE; return TAGPARSER_RET_REPLACED; break; default: break; } return TAGPARSER_RET_NOTHING; } switch(strtolower($tag->name)) { # call html_entity_decode_utf8 if Encode() did not already!!! # in general $between was already Encoded (if not explicitly suppressed!) case 'email': $tempstr = kunena_htmlspecialchars($between, ENT_QUOTES); if(substr($tempstr, 0, 7)=='mailto:') { $between = substr($tempstr, 7); } else { $tempstr = 'mailto:'.$tempstr; } $tag_new = "<a href='".$tempstr."'>".$between.'</a>'; return TAGPARSER_RET_REPLACED; break; case 'url': $tempstr = kunena_htmlspecialchars($between, ENT_QUOTES); if(substr($tempstr, 0, 7)!='http://') { $tempstr = 'http://'.$tempstr; } $tag_new = "<a href='".$tempstr."' rel=\"nofollow\" target=\"_blank\">".$between.'</a>'; return TAGPARSER_RET_REPLACED; break; case 'img': if($between) { static $file_ext = null; $matches = null; if (empty($file_ext)) { $params = &JComponentHelper::getParams( 'com_media' ); $file_ext = explode(',', $params->get('upload_extensions')); } preg_match('/\.([\w\d]+)$/', $between, $matches); if (!in_array(strtolower($matches[1]), $file_ext)) break; $tempstr = kunena_htmlspecialchars($between, ENT_QUOTES); $task->autolink_disable--; # continue autolink conversion // Make sure we add image size if specified and while we are // at it also set maximum image width from text width config. // // NOTICE: image max variables from config are not intended // for formating but to limit the size of uploads, which can // be larger than the available post area to support super- // sized popups. $imgmaxsize = (int)(($fbConfig->rtewidth * 9) / 10); // 90% of text width $imgtagsize = isset($tag->options["size"]) ? (int)kunena_htmlspecialchars($tag->options["size"]) : 0; if($imgtagsize>0 && $imgtagsize<$imgmaxsize) { $imgmaxsize = $imgtagsize; } // Need to check if we are nested inside a URL code if($task->autolink_disable == 0) { $tag_new = "<a href='".$tempstr."' rel=\"lightbox\"><img src='".$tempstr.($imgtagsize ?"' width='".$imgmaxsize:'')."' style='max-width:".$imgmaxsize."px; ' alt='' /></a>"; } else { $tag_new = "<img src='".$tempstr.($imgtagsize ?"' width='".$imgmaxsize:'')."' style='max-width:".$imgmaxsize."px; ' alt='' />"; } return TAGPARSER_RET_REPLACED; } return TAGPARSER_RET_NOTHING; break; case 'file': if($between) { $tempstr = kunena_htmlspecialchars($between, ENT_QUOTES); $task->autolink_disable--; # continue autolink conversion $tag_new = "<div class=\"fb_file_attachment\"><span class=\"contentheading\">"._KUNENA_FILEATTACH."</span><br>"._KUNENA_FILENAME ."<a href='".$tempstr."' target=\"_blank\" rel=\"nofollow\">".(($tag->options["name"])?kunena_htmlspecialchars($tag->options["name"]):$tempstr)."</a><br>"._KUNENA_FILESIZE.kunena_htmlspecialchars($tag->options["size"], ENT_QUOTES)."</div>"; return TAGPARSER_RET_REPLACED; } return TAGPARSER_RET_NOTHING; break; case 'quote': $tag_new = '<span class="fb_quote">'.$between.'</span>'; return TAGPARSER_RET_REPLACED; break; case 'list': $tag_new = '<ul>'; $tag_new .= "\n"; $linearr = explode('[*]', $between); for($i=0; $i<count($linearr); $i++) { $tmp = trim($linearr[$i]); if(strlen($tmp)) { $tag_new .= '<li>'.trim($linearr[$i]).'</li>'; $tag_new .= "\n"; } } $tag_new .= '</ul>'; $tag_new .= "\n"; return TAGPARSER_RET_REPLACED; break; case 'video': $task->autolink_disable--; if (!$between) return TAGPARSER_RET_NOTHING; // --- config start ------------ $vid_minwidth = 20; $vid_minheight = 20; // min. display size //$vid_maxwidth = 640; $vid_maxheight = 480; // max. display size $vid_maxwidth = (int)(($fbConfig->rtewidth * 9) / 10); // Max 90% of text width $vid_maxheight = 480; // max. display size $vid_sizemax = 100; // max. display zoom in percent // --- config end -------------- $vid["type"] = (isset($tag->options["type"]))?kunena_htmlspecialchars(strtolower($tag->options["type"])):''; $vid["param"] = (isset($tag->options["param"]))?kunena_htmlspecialchars($tag->options["param"]):''; if (!$vid["type"]) { $vid_players = array( 'divx' => 'divx', 'flash' => 'swf', 'mediaplayer' => 'avi,mp3,wma,wmv', 'quicktime' => 'mov,qt,qti,qtif,qtvr', 'realplayer', 'rm' ); foreach($vid_players as $vid_player => $vid_exts) foreach(explode(',', $vid_exts) as $vid_ext) if (preg_match('/^(.*\.'.$vid_ext.')$/i', $between) > 0) { $vid["type"] = $vid_player; break 2; } unset($vid_players); } if (!$vid["type"]) { if ($vid_auto = (preg_match('/^http:\/\/.*?([^.]*)\.[^.]*(\/|$)/', $between, $vid_regs) > 0)) { $vid["type"] = strtolower($vid_regs[1]); switch($vid["type"]) { case 'clip': $vid["type"] = 'clip.vn'; break; case 'web': $vid["type"] = 'web.de'; break; case 'wideo': $vid["type"] = 'wideo.fr'; break; } } } $vid_providers = array( 'animeepisodes' => array ('flash', 428, 352, 0, 0, 'http://video.animeepisodes.net/vidiac.swf', '\/([\w\-]*).htm', array(array(6, 'flashvars', 'video=%vcode%'))), 'biku' => array ('flash', 450, 364, 0, 0, 'http://www.biku.com/opus/player.swf?VideoID=%vcode%&embed=true&autoStart=false', '\/([\w\-]*).html'), 'bofunk' => array ('flash', 446, 370, 0, 0, 'http://www.bofunk.com/e/%vcode%', ''), 'break' => array ('flash', 464, 392, 0, 0, 'http://embed.break.com/%vcode%', ''), 'clip.vn' => array ('flash', 448, 372, 0, 0, 'http://clip.vn/w/%vcode%,en,0', '\/watch\/([\w\-]*),vn'), 'clipfish' => array ('flash', 464, 380, 0, 0, 'http://www.clipfish.de/videoplayer.swf?as=0&videoid=%vcode%&r=1&c=0067B3', 'videoid=([\w\-]*)'), 'clipshack' => array ('flash', 430, 370, 0, 0, 'http://clipshack.com/player.swf?key=%vcode%', 'key=([\w\-]*)', array(array(6, 'wmode', 'transparent'))), 'collegehumor' => array ('flash', 480, 360, 0, 0, 'http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=%vcode%&fullscreen=1', '\/video:(\d*)'), 'current' => array ('flash', 400, 400, 0, 0, 'http://current.com/e/%vcode%', '\/items\/(\d*)', array(array(6, 'wmode', 'transparent'))), 'dailymotion' => array ('flash', 420, 331, 0, 0, 'http://www.dailymotion.com/swf/%vcode%', '\/video\/([a-zA-Z0-9]*)'), 'downloadfestival' => array ('flash', 450, 358, 0, 0, 'http://www.downloadfestival.tv/mofo/video/player/playerb003External.swf?rid=%vcode%', '\/watch\/([\d]*)'), 'flashvars' => array ('flash', 480, 360, 0, 0, $between, '', array(array(6, 'flashvars', $vid["param"]))), 'fliptrack' => array ('flash', 402, 302, 0, 0, 'http://www.fliptrack.com/v/%vcode%', '\/watch\/([\w\-]*)'), 'fliqz' => array ('flash', 450, 392, 0, 0, 'http://content.fliqz.com/components/2d39cfef9385473c89939c2a5a7064f5.swf', 'vid=([\w]*)', array( array(6, 'flashvars', 'file=%vcode%&'), array(6, 'wmode', 'transparent'), array(6, 'bgcolor', '#000000'))), 'gametrailers' => array ('flash', 480, 392, 0, 0, 'http://www.gametrailers.com/remote_wrap.php?mid=%vcode%', '\/(\d*).html'), 'gamevideos' => array ('flash', 420, 405, 0, 0, 'http://www.gamevideos.com/swf/gamevideos11.swf?embedded=1&fullscreen=1&autoplay=0&src=http://www.gamevideos.com/video/videoListXML%3Fid%3D%vcode%%26adPlay%3Dfalse', '\/video\/id\/(\d*)', array( array(6, 'bgcolor', '#000000'), array(6, 'wmode', 'window'))), 'glumbert' => array ('flash', 448, 336, 0, 0, 'http://www.glumbert.com/embed/%vcode%', '\/media\/([\w\-]*)', array(array(6, 'wmode', 'transparent'))), 'gmx' => array ('flash', 425, 367, 0, 0, 'http://video.gmx.net/movie/%vcode%', '\/watch\/(\d*)'), 'google' => array ('flash', 400, 326, 0, 0, 'http://video.google.com/googleplayer.swf?docId=%vcode%', 'docid=(\d*)'), 'googlyfoogly' => array ('mediaplayer', 400, 300, 0, 25, 'http://media.googlyfoogly.com/images/videos/%vcode%.wmv', ''), 'ifilm' => array ('flash', 448, 365, 0, 0, 'http://www.ifilm.com/efp', '\/video\/(\d*)', array(array(6, 'flashvars', 'flvbaseclip=%vcode%'))), 'jumpcut' => array ('flash', 408, 324, 0, 0, 'http://jumpcut.com/media/flash/jump.swf?id=%vcode%&asset_type=movie&asset_id=%vcode%&eb=1', '\/\?id=([\w\-]*)'), 'kewego' => array ('flash', 400, 368, 0, 0, 'http://www.kewego.com/p/en/%vcode%.html', '\/([\w\-]*)\.html', array(array(6, 'wmode', 'transparent'))), 'liveleak' => array ('flash', 450, 370, 0, 0, 'http://www.liveleak.com/player.swf', '\/view\?i=([\w\-]*)', array( array(6, 'flashvars', 'autostart=false&token=%vcode%'), array(6, 'wmode', 'transparent'))), 'livevideo' => array ('flash', 445, 369, 0, 0, 'http://www.livevideo.com/flvplayer/embed/%vcode%', ''), 'megavideo' => array ('flash', 432, 351, 0, 0, 'http://www.megavideo.com/v/%vcode%..0', '', array(array(6, 'wmode', 'transparent'))), 'metacafe' => array ('flash', 400, 345, 0, 0, 'http://www.metacafe.com/fplayer/%vcode%/.swf', '\/watch\/(\d*\/[\w\-]*)', array(array(6, 'wmode', 'transparent'))), 'mofile' => array ('flash', 480, 395, 0, 0, 'http://tv.mofile.com/cn/xplayer.swf', '\.com\/([\w\-]*)', array( array(6, 'flashvars', 'v=%vcode%&autoplay=0&nowSkin=0_0'), array(6, 'wmode', 'transparent'))), 'multiply' => array ('flash', 400, 350, 0, 0, 'http://images.multiply.com/multiply/multv.swf', '', array( array(6, 'flashvars', 'first_video_id=%vcode%&base_uri=multiply.com&is_owned=1'))), 'myspace' => array ('flash', 430, 346, 0, 0, 'http://lads.myspace.com/videos/vplayer.swf', 'VideoID=(\d*)', array(array(6, 'flashvars', 'm=%vcode%&v=2&type=video'))), 'myvideo' => array ('flash', 470, 406, 0, 0, 'http://www.myvideo.de/movie/%vcode%', '\/watch\/(\d*)'), 'quxiu' => array ('flash', 437, 375, 0, 0, 'http://www.quxiu.com/photo/swf/swfobj.swf?id=%vcode%', '\/play_([\d_]*)\.htm', array(array(6, 'menu', 'false'))), 'revver' => array ('flash', 480, 392, 0, 0, 'http://flash.revver.com/player/1.0/player.swf?mediaId=%vcode%', '\/video\/([\d_]*)'), 'rutube' => array ('flash', 400, 353, 0, 0, 'http://video.rutube.ru/%vcode%', '\.html\?v=([\w]*)'), 'sapo' => array ('flash', 400, 322, 0, 0, 'http://rd3.videos.sapo.pt/play?file=http://rd3.videos.sapo.pt/%vcode%/mov/1', 'videos\.sapo\.pt\/([\w]*)', array(array(6, 'wmode', 'transparent'))), 'sevenload' => array ('flash', 425, 350, 0, 0, 'http://sevenload.com/pl/%vcode%/425x350/swf', '\/videos\/([\w]*)', array( array(6, 'flashvars', 'apiHost=api.sevenload.com&showFullScreen=1'))), 'sharkle' => array ('flash', 340, 310, 0, 0, 'http://sharkle.com/sharkle.swf?rnd=%vcode%&buffer=3', '', array(array(6, 'wmode', 'transparent'))), 'spikedhumor' => array ('flash', 400, 345, 0, 0, 'http://www.spikedhumor.com/player/vcplayer.swf?file=http://www.spikedhumor.com/videocodes/%vcode%/data.xml&auto_play=false', '\/articles\/([\d]*)'), 'stickam' => array ('flash', 400, 300, 0, 0, 'http://player.stickam.com/flashVarMediaPlayer/%vcode%', 'mId=([\d]*)'), 'streetfire' => array ('flash', 428, 352, 0, 0, 'http://videos.streetfire.net/vidiac.swf', '\/([\w-]*).htm', array(array(6, 'flashvars', 'video=%vcode%'))), 'stupidvideos' => array ('flash', 451, 433, 0, 0, 'http://img.purevideo.com/images/player/player.swf?sa=1&sk=5&si=2&i=%vcode%', '\/\?m=new#([\d_]*)'), 'toufee' => array ('flash', 550, 270, 0, 0, 'http://toufee.com/movies/Movie.swf', 'u=[a-zA-Z]*(\d*)', array(array(6, 'flashvars', 'movieID=%vcode%&domainName=toufee'))), 'tudou' => array ('flash', 400, 300, 0, 0, 'http://www.tudou.com/v/%vcode%', '\/view\/([\w-]*)', array(array(6, 'wmode', 'transparent'))), 'unf-unf' => array ('flash', 425, 350, 0, 0, 'http://www.unf-unf.de/video/flvplayer.swf?file=http://www.unf-unf.de/video/clips/%vcode%.flv', '\/([\w-]*).html', array(array(6, 'wmode', 'transparent'))), 'uume' => array ('flash', 400, 342, 0, 0, 'http://www.uume.com/v/%vcode%_UUME'), '\/play_([\w-]*)', 'veoh' => array ('flash', 540, 438, 0, 0, 'http://www.veoh.com/videodetails2.swf?player=videodetailsembedded&type=v&permalinkId=%vcode%'), '\/videos\/([\w-]*)', 'videoclipsdump' => array ('flash', 480, 400, 0, 0, 'http://www.videoclipsdump.com/player/simple.swf', '', array( array(6, 'flashvars', 'url=http://www.videoclipsdump.com/files/%vcode%.flv&autoplay=0&watermark=http://www.videoclipsdump.com/flv_watermark.php&buffer=10&full=0&siteurl=http://www.videoclipsdump.com&interval=10000&totalrotate=3'))), 'videojug' => array ('flash', 400, 345, 0, 0, 'http://www.videojug.com/film/player?id=%vcode%', ''), 'videotube' => array ('flash', 480, 400, 0, 0, 'http://www.videotube.de/flash/player.swf', '\/watch\/(\d*)', array( array(6, 'flashvars', 'baseURL=http://www.videotube.de/watch/%vcode%'), array(6, 'wmode', 'transparent'))), 'vidiac' => array ('flash', 428, 352, 0, 0, 'http://www.vidiac.com/vidiac.swf', '\/([\w-]*).htm', array(array(6, 'flashvars', 'video=%vcode%'))), 'vidilife' => array ('flash', 445, 369, 0, 0, 'http://www.vidiLife.com/flash/flvplayer.swf?autoStart=0&popup=1&video=http://www.vidiLife.com/media/flash_api.cfm?id=%vcode%&version=8', ''), 'vimeo' => array ('flash', 400, 321, 0, 0, 'http://www.vimeo.com/moogaloop.swf?clip_id=%vcode%&server=www.vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=0&color=', '\.com\/(\d*)'), 'wangyou' => array ('flash', 441, 384, 0, 0, 'http://v.wangyou.com/images/x_player.swf?id=%vcode%', '\/p(\d*).html', array(array(6, 'wmode', 'transparent'))), 'web.de' => array ('flash', 425, 367, 0, 0, 'http://video.web.de/movie/%vcode%', '\/watch\/(\d*)'), 'wideo.fr' => array ('flash', 400, 368, 0, 0, 'http://www.wideo.fr/p/fr/%vcode%.html', '\/([\w-]*).html', array(array(6, 'wmode', 'transparent'))), 'youku' => array ('flash', 480, 400, 0, 0, 'http://player.youku.com/player.php/sid/%vcode%/v.swf', '\/v_show\/id_c.00(.*)\.html'), 'youtube' => array ('flash', 425, 355, 0, 0, 'http://www.youtube.com/v/%vcode%&rel=1', '\/watch\?v=([\w\-]*)', array(array(6, 'wmode', 'transparent'))), '_default' => array ($vid["type"], 480, 360, 0, 25, $between, '') ); list($vid_type, $vid_width, $vid_height, $vid_addx, $vid_addy, $vid_source, $vid_match, $vid_par2) = (isset($vid_providers[$vid["type"]]))?$vid_providers[$vid["type"]]:$vid_providers["_default"]; unset($vid_providers); if (!empty($vid_auto)) { if ($vid_match and (preg_match("/$vid_match/i", $between, $vid_regs) > 0)) $between = $vid_regs[1]; else return TAGPARSER_RET_NOTHING; } $vid_source = preg_replace('/%vcode%/', $between, $vid_source); if (!is_array($vid_par2)) $vid_par2 = array(); $vid_size = isset($tag->options["size"]) ? intval($tag->options["size"]) : 0; if (($vid_size > 0) and ($vid_size < $vid_sizemax)) { $vid_width = (int)($vid_width * $vid_size / 100); $vid_height = (int)($vid_height * $vid_size / 100); } $vid_width += $vid_addx; $vid_height += $vid_addy; if (!isset($tag->options["size"])) { if (isset($tag->options["width"])) $vid_width = intval($tag->options["width"]); if (isset($tag->options["height"])) $vid_height = intval($tag->options["height"]); } if ($vid_width < $vid_minwidth) $vid_width = $vid_minwidth; if ($vid_width > $vid_maxwidth) $vid_width = $vid_maxwidth; if ($vid_height < $vid_minheight) $vid_height = $vid_minheight; if ($vid_height > $vid_maxheight) $vid_height = $vid_maxheight; switch ($vid_type) { case 'divx': $vid_par1 = array( array(1, 'classid', 'clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616'), array(1, 'codebase', 'http://go.divx.com/plugin/DivXBrowserPlugin.cab'), array(4, 'type', 'video/divx'), array(4, 'pluginspage', 'http://go.divx.com/plugin/download/'), array(6, 'src', $vid_source), array(6, 'autoplay', 'false'), array(5, 'width', $vid_width), array(5, 'height', $vid_height)); $vid_allowpar = array('previewimage'); break; case 'flash': $vid_par1 = array( array(1, 'classid', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'), array(1, 'codebase', 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'), array(2, 'movie', $vid_source), array(4, 'src', $vid_source), array(4, 'type', 'application/x-shockwave-flash'), array(4, 'pluginspage', 'http://www.macromedia.com/go/getflashplayer'), array(6, 'quality', 'high'), array(6, 'allowFullScreen', 'true'), array(6, 'allowScriptAccess', 'never'), array(5, 'width', $vid_width), array(5, 'height', $vid_height)); $vid_allowpar = array('flashvars', 'wmode', 'bgcolor', 'quality'); break; case 'mediaplayer': $vid_par1 = array( array(1, 'classid', 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95'), array(1, 'codebase', 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab'), array(4, 'type', 'application/x-mplayer2'), array(4, 'pluginspage', 'http://www.microsoft.com/Windows/MediaPlayer/'), array(6, 'src', $vid_source), array(6, 'autostart', 'false'), array(6, 'autosize', 'true'), array(5, 'width', $vid_width), array(5, 'height', $vid_height)); $vid_allowpar = array(); break; case 'quicktime': $vid_par1 = array( array(1, 'classid', 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'), array(1, 'codebase', 'http://www.apple.com/qtactivex/qtplugin.cab'), array(4, 'type', 'video/quicktime'), array(4, 'pluginspage', 'http://www.apple.com/quicktime/download/'), array(6, 'src', $vid_source), array(6, 'autoplay', 'false'), array(6, 'scale', 'aspect'), array(5, 'width', $vid_width), array(5, 'height', $vid_height)); $vid_allowpar = array(); break; case 'realplayer': $vid_par1 = array( array(1, 'classid', 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'), array(4, 'type', 'audio/x-pn-realaudio-plugin'), array(6, 'src', $vid_source), array(6, 'autostart', 'false'), array(6, 'controls', 'ImageWindow,ControlPanel'), array(5, 'width', $vid_width), array(5, 'height', $vid_height)); $vid_allowpar = array(); break; default: return TAGPARSER_RET_NOTHING; } $vid_par3 = array(); foreach($tag->options as $vid_key => $vid_value) { if (in_array(strtolower($vid_key), $vid_allowpar)) array_push($vid_par3, array(6, $vid_key, kunena_htmlspecialchars($vid_value))); } $vid_object = $vid_param = $vid_embed = array(); foreach(array_merge($vid_par1, $vid_par2, $vid_par3) as $vid_data) { list($vid_key, $vid_name, $vid_value) = $vid_data; if ($vid_key & 1) $vid_object[$vid_name] = ' '.$vid_name.'="'.preg_replace('/%vcode%/', $between, $vid_value).'"'; if ($vid_key & 2) $vid_param[$vid_name] = '<param name="'.$vid_name.'" value="'.preg_replace('/%vcode%/', $between, $vid_value).'" />'; if ($vid_key & 4) $vid_embed[$vid_name] = ' '.$vid_name.'="'.preg_replace('/%vcode%/', $between, $vid_value).'"'; } $tag_new = '<object'; foreach($vid_object as $vid_data) $tag_new .= $vid_data; $tag_new .= '>'; foreach($vid_param as $vid_data) $tag_new .= $vid_data; $tag_new .= '<embed'; foreach($vid_embed as $vid_data) $tag_new .= $vid_data; $tag_new .= ' /></object>'; return TAGPARSER_RET_REPLACED; break; case 'ebay': if($between) { $task->autolink_disable--; # continue autolink conversion $tage_new = ""; if (is_numeric($between)) { // Numeric: we have to assume this is an item id $tag_new .= '<object width="355" height="300"><param name="movie" value="http://togo.ebay.com/togo/togo.swf" /><param name="flashvars" value="base=http://togo.ebay.com/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid='.$between.'&campid=5336042350" /><embed src="http://togo.ebay.com/togo/togo.swf" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.com/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=normal&itemid='.$between.'&campid=5336042350"></embed></object>'; } else { // Non numeric: we have to assume this is a search $tag_new .= '<object width="355" height="300"><param name="movie" value="http://togo.ebay.com/togo/togo.swf?2008013100" /><param name="flashvars" value="base=http://togo.ebay.com/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=search&query='.$between.'&campid=5336042350" /><embed src="http://togo.ebay.com/togo/togo.swf?2008013100" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.com/togo/&lang='.$fbConfig->ebaylanguagecode.'&mode=search&query='.$between.'&campid=5336042350"></embed></object>'; } return TAGPARSER_RET_REPLACED; } return TAGPARSER_RET_NOTHING; break; case 'hide': if($between) { if ($kunena_my->id==0) { // Hide between content from non registered users $tag_new = _KUNENA_BBCODE_HIDDENTEXT; } else { // Display but highlight the fact that it is hidden from guests $tag_new = '<b>' . _KUNENA_BBCODE_HIDE . '</b>' . '<span class="fb_quote">'.$between.'</span>'; } return TAGPARSER_RET_REPLACED; } return TAGPARSER_RET_NOTHING; break; case 'spoiler': if($between) { if ($this->spoilerid==0) { // Only need the script for the first spoiler we find $app =& JFactory::getApplication(); $app->addCustomHeadTag('<script language = "JavaScript" type = "text/javascript">'. 'function fb_showDetail(srcElement) {'. 'var targetID, srcElement, targetElement, imgElementID, imgElement;'. 'targetID = srcElement.id + "_details";'. 'imgElementID = srcElement.id + "_img";'. 'targetElement = document.getElementById(targetID);'. 'imgElement = document.getElementById(imgElementID);'. 'if (targetElement.style.display == "none") {'. 'targetElement.style.display = "";'. 'imgElement.src = "'.KUNENA_JLIVEURL.'/components/com_kunena/template/default/images/english/emoticons/w00t.png";'. '} else {'. 'targetElement.style.display = "none";'. 'imgElement.src = "'.KUNENA_JLIVEURL.'/components/com_kunena/template/default/images/english/emoticons/pinch.png";'. '}} </script>'); } $this->spoilerid++; $randomid = rand(); $tag_new = '<div id="'.$randomid.'" onclick="javascript:fb_showDetail(this);" style="cursor:pointer;"><img id="'.$randomid.'_img"'. 'src="'.KUNENA_JLIVEURL.'/components/com_kunena/template/default/images/english/emoticons/pinch.png" border="0"> <strong>'. (isset($tag->options["title"]) ? ($tag->options["title"]) : (_KUNENA_BBCODE_SPOILER)) . '</strong></div><div id="'. $randomid . '_details" style="display:None;"><span class="fb_quote">' . $between . '</span></div>'; return TAGPARSER_RET_REPLACED; } return TAGPARSER_RET_NOTHING; break; default: break; } return TAGPARSER_RET_NOTHING; } function TagSingle(&$tag_new, &$task, $tag) { # Function replaces TAGs with corresponding // trace states (for parsing & encoding) if($task->in_code) { return TAGPARSER_RET_NOTHING; } if($task->in_noparse) { return TAGPARSER_RET_NOTHING; } switch (strtolower($tag->name)) { case 'code:1': // fb ancient compatibility case 'code': $task->in_code = TRUE; return TAGPARSER_RET_NOTHING; # treat it as unprocessed (to push on stack)! break; case 'noparse': $task->in_noparse = TRUE; return TAGPARSER_RET_NOTHING; # treat it as unprocessed! break; case 'email': case 'url': case 'img': case 'file': case 'video': case 'ebay': $task->autolink_disable++; # stop autolink conversion return TAGPARSER_RET_NOTHING; break; case 'br': $tag_new = "<br />"; return TAGPARSER_RET_REPLACED; // nonrecursive // helper meta-replacement to get it rid from stack appearance // this is later on replaced again from TagExtended (if in [list]) case '*': $tag_new = "[*]"; return TAGPARSER_RET_REPLACED; // nonrecursive break; default: break; } return TAGPARSER_RET_NOTHING; } function TagSingleLate(&$tag_new, &$task, $tag) { # Function replaces TAGs with corresponding if($task->in_code) { return TAGPARSER_RET_NOTHING; } if($task->in_noparse) { return TAGPARSER_RET_NOTHING; } switch (strtolower($tag->name)) { // Replace unclosed img tag case 'img': $task->autolink_disable--; # continue autolink conversion // kunena_htmlspecialchars($tag->options['default'], ENT_QUOTES) if(!isset($tag->options['name'])) break; $tag_new = "<img class='c_img' BORDER='0' src='".kunena_htmlspecialchars($tag->options['name'], ENT_QUOTES)."'"; if(isset($tag->options['width'])) { $tag->options['width'] = (int)$tag->options['width']; $tag_new .= " width='".$tag->options['width']."'"; } if(isset($tag->options['height'])) { $tag->options['height'] = (int)$tag->options['height']; $tag_new .= " height='".$tag->options['height']."'"; } if(isset($tag->options['left'])) { $tag_new .= " align='left'"; } else if(isset($tag->options['right'])) { $tag_new .= " align='right'"; } $tag_new .= " border='0'"; $tag_new .= ">"; return TAGPARSER_RET_REPLACED; break; default: break; } return TAGPARSER_RET_NOTHING; } } class KunenaBBCodeParserTask extends BBCodeParserTask { # stateful task for parser runs # inside link used for autolinkdetection outside var $autolink_disable = 0; // ERROR autolinking don't work after wrong nested elements.. // reason is internal state is wrong after dropping tags (where start occured stateful) // so we should trace this too :-S //emoticon things! var $history = 0; // 1=grey var $emoticons = 1; // true if to be replaced var $iconList = array(); // smilies } class KunenaBBCodeInterpreterPlain extends BBCodeInterpreter { # This class uses standardinterpreter, but removes all formatting outputs! # directly derivated from KunenaBBCodeInterpreter after extensive testing function MyTagInterpreterSearch($references) { # Constructor MyTagInterpreter::MyTagInterpreter(); # use params (references) to load your specific data, access to DB } function Encode(&$text_new, &$task, $text_old, $context) { return TAGPARSER_RET_NOTHING; } function TagStandard(&$tns, &$tne, &$task, $tag) { $tns = ''; $tne = ''; return TAGPARSER_RET_NOTHING; } function TagExtended(&$tag_new, &$task, $tag, $between) { $tag_new = $between; return TAGPARSER_RET_NOTHING; } function TagSingle(&$tag_new, &$task, $tag) { $tag_new = ''; return TAGPARSER_RET_NOTHING; } function TagSingleLate(&$tag_new, &$task, $tag) { $tag_new = ''; return TAGPARSER_RET_NOTHING; } } ?>
Dernière édition: 07 Sep 2009 22:22 par ManaGeY.

Veuillez vous connecter ou vous enregistrer pour rejoindre la conversation.

Modérateurs: serge
Temps de génération de la page : 0.886 secondes
Propulsé par Kunena