https://xoops.org/modules/newbb/viewtopic.php?post_id=356724#forumpost356724
<script>history.go(-1);</script>
<?php
class MytsSoundcloud extends MyTextSanitizerExtension
{
function encode($textarea_id)
{
$config = parent::loadConfig( dirname(__FILE__) );
$code = "<img src='{$this->image_path}/soundcloud.png' alt='SoundCloud' onclick='xoopsCodeSoundCloud("{$textarea_id}","" . htmlspecialchars('Enter SoundCloud Profile URL', ENT_QUOTES) . "");' onmouseover='style.cursor="hand"'/> ";
$javascript = <<<EOH
function xoopsCodeSoundCloud(id, enterSoundCloud)
{
var selection = xoopsGetSelect(id);
if (selection.length > 0) {
var text = selection;
} else {
var text = prompt(enterSoundCloud, "");
}
var domobj = xoopsGetElementById(id);
xoopsInsertText(domobj, "[soundcloud]"+text+"[/soundcloud]");
domobj.focus();
}
EOH;
return array($code, $javascript);
}
function load(&$ts)
{
$ts->patterns[] = "/[soundcloud](http[s]?://[^"'<>]*)(.*)[/soundcloud]/esU";
$ts->replacements[] = __CLASS__ . "::decode('\1\2')";
}
function decode($url)
{
$config = parent::loadConfig(dirname(__FILE__));
if (!preg_match("/^http://(www.)?soundcloud.com/(.*)/i", $url, $matches)) {
trigger_error("Not matched: {$url}", E_USER_WARNING);
return "";
}
$code = '<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url='.$url.'&g=bb">';
$code .= '</param><param name="allowscriptaccess" value="always"></param>';
$code .= '<embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url='.$url.'&g=bb" type="application/x-shockwave-flash" width="100%"></embed></object>';
$code .= '<a href="'.$url.'">'.$url.'</a>';
return $code;
}
}
?>
"extensions" => array(
"iframe" => 0,
"image" => 1,
"flash" => 1,
"youtube" => 1,
"mp3" => 0,
"wmp" => 0,
// If other module is used, please modify the following detection and 'link' in /wiki/config.php
"wiki" => is_dir(XOOPS_ROOT_PATH . '/modules/mediawiki/'),
"mms" => 0,
"rtsp" => 0,
"soundcloud" => 1,
"ul" => 1,
"li" => 1),
// XOOPS
// 1 : webmasters group
// 2 : members group
// 3 : anonymous group
// 4 : your 1st custom group
// ...
global $xoopsUser;
$allowed_groups_upload=array(1,2); // id des groupes autorisés en upload
$allowed_groups_createfolder=array(1); // id des groupes autorisés create folder
$upload_files = false;
$create_folders = false;
if (is_object($xoopsUser)) {
$usergroups = $xoopsUser->getGroups();
$result_upload = array_intersect($usergroups, $allowed_groups_upload);
if(!empty($result_upload)){
$upload_files = true;
}
$result_createfolder = array_intersect($usergroups, $allowed_groups_createfolder);
if(!empty($result_createfolder)){
$create_folders = true;
}
}
// XOOPS