Тег audio [Решено]

Доброго времени суток господа.

Занялась прикручиванием аудио к сайту, посредством uppod. Есть некоторая маленькая проблема, хотелось бы что бы тег был не просто <audio>ссылка</audio> а вида <audio=«текст»>ссылка</audio> дабы можно было приписывать к аудио еще и имя трека. Пустые плееры смотрятся негоже.

Вот мой код из Text.class.php
$sText = preg_replace('/<audio>(.*)<\/audio>/Ui', '<object id="audioplayer954" type="application/x-shockwave-flash" data="/player/uppod.swf" width="305" height="36"><param name="wmode" value="opaque"></param><param name="bgcolor" value="#ffffff"></param><param name="allowScriptAccess" value="always"></param><param name="movie" value="/player/uppod.swf"></param><param name="flashvars" value="comment=&st=/player/st/audio103-767.txt&file=$1"></param></object>


Пожалуйста подскажите как добавить такую возможность.



Решила дописать полное решение, вдруг кому-то пригодится.
Благодарность за помощь: PSNet
Код плеера здесь на основе uppod. Значит в самом коде плеера замените данные на свои (audio103-767.txt и прочие).

1. Открываем config/jevix.php

В список разрешенных тегов «cfgAllowTags» добавляем 'audio'
В список преформатированных тегов «cfgSetTagPreformatted» добавляем 'audio'
К разрешенным параметрам тегов «cfgAllowTagParams» добавляем:
array(
	'audio',
	array('title')
),


2. Добавляем в /engine/modules/text/Text.class.php
$sText = preg_replace(
'#<audio( title="([^"]+)")?>(.*)<\/audio>#iuU',
'<object type="application/x-shockwave-flash" data="/player/uppod.swf" width="305" height="36"><param name="wmode" value="opaque"></param></param><param name="allowScriptAccess" value="always"></param><param name="movie" value="/player/uppod.swf"></param><param name="flashvars" value="comment=$2&st=/player/st/audio103-767.txt&file=$3"></param></object>', $sText);


Теперь вам доступен тег
<audio title="название трека">ссылка</audio>

8 комментариев

avatar
Не могу понять людей, которые хотят сделать то, что реализовано в дешевом платном плагине, причем их реализация в затратах (человеко-часах или реальных деньгах) будет больше, чем бы они купили готовый рабочий плагин в каталоге.

Вы об этом:
'/<audio>(.*)<\/audio>/Ui'

->
'#<audio(?: title="[^"]+")?>(.*)<\/audio>#iuU'
avatar
Большое Вас спасибо.
Не ругайтесь, в частности ковыряние в коде для меня хобби.
avatar
*Вам
Ко всему, если не секрет, как сделать что бы она значение из title подставляла к comment= в коде плеера?
avatar
$sText = preg_replace(
    '#<audio( title="([^"]+)")?>(.*)<\/audio>#iuU',
    '<object id="audioplayer954" type="application/x-shockwave-flash" data="/player/uppod.swf" width="305" height="36"><param name="wmode" value="opaque"></param><param name="bgcolor" value="#ffffff"></param><param name="allowScriptAccess" value="always"></param><param name="movie" value="/player/uppod.swf"></param><param name="flashvars" value="comment=$2&st=/player/st/audio103-767.txt&file=$3"></param></object>'
);

в движок все ставить — атата.
avatar
Уважаемый @PSNet подскажите пожалуйста как к этому коду добавить еще одно поле под названием «uid=»

'#<audio( title="([^"]+)")?>(.*)<\/audio>#iuU', '<div class="player-title">$2</div><div id="audioplayer" class="player-style" ></div><script type="text/javascript">this.audioplayer = new Uppod({m:"audio",uid:"audioplayer",comment:"$2",file:"$3",st:"uppodaudio"});</script>


И как при этом правильно расставить все эти $3. Суть в том, что в код «uid:»audioplayer"" будет приписываться значение из поля uid=

Заранее большое спасибо.
avatar
я не понял вопроса
avatar
Мне надо добавить еще одно поле uid
<audio uid="число которое я напишу" title="название которое я напишу">Ссылка на аудио</audio>

В коде цифры из поля uid будут подставляться по аналогии с тем, как подставляется название из поля title. Все незамысловато, еще одно дополнительно поле.
Извините за спутанное объяснение.
avatar
$sText = preg_replace(
    '#<audio( uid="([\d]+)")?( title="([^"]+)")?>(.*)<\/audio>#iuU',
    '<object id="audioplayer954" type="application/x-shockwave-flash" data="/player/uppod.swf" width="305" height="36"><param name="wmode" value="opaque"></param><param name="bgcolor" value="#ffffff"></param><param name="allowScriptAccess" value="always"></param><param name="movie" value="/player/uppod.swf"></param><param name="flashvars" value="uid=$2comment=$4&st=/player/st/audio103-767.txt&file=$5"></param></object>'
);
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.