вставка video и другие возможности без лишних модулей

Главные вкладки

Аватар пользователя apmeh apmeh 18 марта 2007 в 22:15

для работы нужен только модуль content templates, как проигрыватель внешних FLV файлов использовался flowplayer(его нужно скопировать в корневую директорию drupal), а всё остальное в стандартной поставке drupal.
в следующем примере добавляется возможность (может кому пригодится:) ):

[cut text="супер текст"]этот текст не будет виден в teaser[/cut]
а вот этот будет
[cut text="и видео не видно пока не открыть ноду"][video type=youtube src="NOpqYkQ7XXU"][/cut]
а вот это видео будет вообще всегда видно:
[video type=youtube src="DN4aicbu0tw"]
а это видео просто загрузили:
[video type=flv src="http://www.yoursite.com/video.flv"]
[cut]этот текст не будет виден просто так...

итак:
код для teaser:
<?php
$regexp = array(
"{\[cut text=\"(.*?)\"\](.*?)\[/cut\]}si",
"{\[cut text=\"(.*?)\"\](.*)}si",
"{\[cut\](.*?)\[/cut\]}si",
"{\[cut\](.*)}si",
"{\[img src=\"(.*?)\"\]}si",
"{\[video type=youtube src=\"(.*?)\"\]}si",
"{\[video type=flv src=\"(.*?)\"\]}si"
);
$replace = array(
"<a href=\"?q=node/".$node->nid."\" target=\"_self\">($1)</a>",
"<a href=\"?q=node/".$node->nid."\" target=\"_self\">($1)</a>",
"<a href=\"?q=node/".$node->nid."\" target=\"_self\">(читать дальше)</a>",
"<a href=\"?q=node/".$node->nid."\" target=\"_self\">(читать дальше)</a>",
"<img src=\"$1\">",
"<object width=\"425\" height=\"350\"><param value=\"http://www.youtube.com/v/$1\" name=\"movie\"></param><embed width=\"425\" allowscriptaccess=\"never\" src=\"http://www.youtube.com/v/$1\" type=\"application/x-shockwave-flash\" height=\"350\"></embed></object>",
"<object type=\"application/x-shockwave-flash\" data=\"//FlowPlayer.swf\" width=\"500\" height=\"400\" id=\"FlowPlayer\"> <param name=\"allowScriptAccess\" value=\"sameDomain\" /> <param name=\"movie\" value=\"//FlowPlayer.swf\" /> <param name=\"quality\" value=\"high\" /> <param name=\"scale\" value=\"noScale\" /> <param name=\"wmode\" value=\"transparent\" /> <param name=\"flashvars\" value=\"config={ videoFile: '$1' }\" /></object>"
);
$teaser= preg_replace ($regexp, $replace, $teaser);
print $teaser
?>
код для body:
<?php
$regexp = array(
"{\[cut text=\"(.*?)\"\](.*?)\[/cut\]}si"
"{\[cut text=\"(.*?)\&"\](.*)}si",
"{\[cut\](.*?)\[/cut\]}si",
"{\[cut\](.*)}si",
"{\[img src=\"(.*?)\"\]}si",
"{\[video type=youtube src=\"(.*?)\"\]}si",
"{\[video type=flv src=\"(.*?)\"\]}si"
);
$replace = array(
"$2",
"$2",
"$1",
"$1",
"<img src=\"$1\">",
"<object width=\"425\" height=\"350\"><param value=\"http://www.youtube.com/v/$1\" name=\"movie\"></param><embed width=\"425\" allowscriptaccess=\"never\" src=\"http://www.youtube.com/v/$1\" type=\"application/x-shockwave-flash\" height=\"350\"></embed></object>",
"<object type=\"application/x-shockwave-flash\" data=\"//FlowPlayer.swf\" width=\"500\" height=\"400\" id=\"FlowPlayer\"> <param name=\"allowScriptAccess\" value=\"sameDomain\" /> <param name=\"movie\" value=\"//FlowPlayer.swf\" /> <param name=\"quality\" value=\"high\" /> <param name=\"scale\" value=\"noScale\" /> <param name=\"wmode\" value=\"transparent\" /> <param name=\"flashvars\" value=\"config={ videoFile: '$1' }\" /></object>"
);
$body= preg_replace ($regexp, $replace, $body);
print $body;
?>

Комментарии