Генерация HTML дискографии - скрипт для Playlist Utilits

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #1 mgz » 20.04.2008, 18:35

Для создания HTML дискографии (списка альбомов) можно использовать простой скрипт.

Что для этого нужно:
1. Плагин foo_utils;
2. Скрипт.

// Header
Код: Выделить всё
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
div#artist {font-weight: bold;font-size: 12px;}
.track {display: none;background: #F0F0F0;border-left-width: 3px;border-left-style: solid;border-left-color: #000000;margin-left: 30px;font-size: 12px;padding-left: 5px;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #000000;}
body {font-family: Arial;background-color: #CCCCCC;}
a {text-decoration: none;color: #000000;}
.foo {font-weight: bold;color: #FFFFFF;font-size: 36px;position: absolute;left: 9px;top: 11px;visibility: visible;}
.2000 {color: #FFFFFF;font-size: 18px;   font-weight: bold;position: absolute;left: 167px;top: 7px;visibility: visible;font-style: italic;width: 195px;}
.shadow {color: #000000;font-size: 36px;font-weight: bold;position: absolute;left: 8px;top: 10px;visibility: visible;}
.shad_mc {font-size: 18px;font-style: italic;font-weight: bold;color: #000000;position: absolute;visibility: visible;left: 166px;top: 27px;width: 184px;}
</style>
<script language="JavaScript" type="text/javascript">function Tracker'(track){var what = document.getElementById(track); what.style.display = (what.style.display == "block") ? "none" : "block" ;}'</script>
</head><body><div class="foo" id="Foobar">FOOBAR</div>
<div class="shadow" id="shadow">FOOBAR</div>
<div class="2000" id="FooYear">2000<br> music collection</div>
<div class="shad_mc" id="FooYear"> music collection</div>
<br><br><hr size="1" noshade>

// Body
Код: Выделить всё
$if($strcmp(%tracknumber%,01)
,<div id="artist"><a href="#null" onclick="'Tracker('%list_index%')'">$if2(%album artist%,%artist%) - ['['%date%'] ']%album%[ - CD$num(%DISC%,1)]</a></div><div class="track" id="%list_index%">[%tracknumber%. ]%title%$if($strcmp(%tracknumber%,%totaltracks%),</div>,)
,<br>[%tracknumber%. ]%title%$if($strcmp(%tracknumber%,%totaltracks%),</div>,))

// Footer
Код: Выделить всё
</body></html>

Обязательные требования для правильной работы скрипта:
1. %tracknumber% - без этого тега работать не будет.
2. %totaltracks% - без этого тега работать не будет. Также очень важно: %totaltracks% должен содержать правильное количество треков (если в альбоме 15 треков, то в %totaltracks% должно быть написано 15) - иначе будет ошибка и файл будет кривой.

Заносить код скрипта нужно в окно Preferences / Tools / Text Tools.

Как с ним работать:
1. Заносим в Playlist нужное количество треков (все, отдельную папку, отдельный альбом) и выделяем (Ctrl+A)
2. Вызываем по правой кн. мыши меню Save Text ... (если его нет, то нужно добавить в настройках контекстного меню)
3. В окне сохранения выбираем тип файла HTML и указываем папку и имя файла.
4. Готово.

Заметил, что в Mozilla Firefox 2 не корректно отображается шапка (в IE всё нормально). Кодировка текста - UTF-8.

Пример.
foo_utils-0.6.2_beta_6-20080310.
Также там доступны утилиты для версий, ранее чем 0.9.5.2.
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #2 mgz » 20.04.2008, 18:41

Также напишу, что хочу сделать, но не получается.
Выстроить в такой структуре:

АРТИСТ /
ГОД /
АЛЬБОМ /
№CD /
№ТРЕКА. ТИТЛ

Чтобы были вложенные DIV.
Не получается из-за глюка, когда использую %cwb_next_user1% (это в смысле следующий %album%).
Может кто сможет побороть данное неудобство :)

Кидайте свои версии скриптов - будем нарабатывать оптимальный вариант :)

P.S.: спасибо коллеге MD, который принимал активное участие при создании скрипта.
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #3 Максим » 20.04.2008, 23:00

mgz
Неплохо, но всё портят %list_index% и %tracknumber%.
Лучше использовать foo_func и функции группирования композиций.
Последний раз редактировалось Максим 20.04.2008, 23:06, всего редактировалось 1 раз.
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #4 mgz » 20.04.2008, 23:35

2Maxim_289
ок, поизучаю этот foo_func. А то скачал, глянул на него и откинул от сборки... нужно покопаться.
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #5 Максим » 22.04.2008, 00:48

Я поторопился: без ELPlaylist список треков вывести практически невозможно. Этот вариант не универсален.
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #6 Максим » 03.05.2008, 18:16

Можно выводить при помощи foo_utils список треков, а потом обрабатывать php-скриптом. Даже %totaltracks% не понадобится.

Пример паттерна:
artist|album|tracknumber|title|genre|date
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #7 mgz » 03.05.2008, 19:55

2Maxim_289
а потом обрабатывать php-скриптом
Примерчик покажи.

Посмотрел я хелп foo_func - не нашёл ничего полезного для сабжа.
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #8 evil » 03.05.2008, 22:43

Maxim_289:ELPlaylist
А где можно взять этот ELPlaylist?
evil M
Репутация: 67
С нами: 17 лет 10 месяцев

Сообщение #9 Максим » 04.05.2008, 09:15

evil
Ты меня удивил ;). Ссылка.

mgz
Поначалу я решил использовать $playlist_group и циклы, но потом передумал.
А примерчик пока не готов. :)
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #10 Максим » 04.05.2008, 09:18

evil
Советую почаще бывать здесь. Найдёшь много полезного. ;)
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #11 mgz » 04.05.2008, 09:19

2Maxim_289
Ну если чё - пиши сюда :)

Maxim_289:всё портят %list_index% и %tracknumber%.
Ну я не вижу проблем с %list_index% - даже наоборот, так проще в функцию параметр передать - поле то уникальное. А вот с номерами треков - это да - засада :(
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #12 evil » 04.05.2008, 16:05

2Maxim_289
Maxim_289:Ты меня удивил . Ссылка.
Меня посылают с этой ссылки на http://www.shinobi.jp/tadaima/403.html Это нормально? Если нет, то нельзя ли выложить этот компонент в другое место? :)
evil M
Репутация: 67
С нами: 17 лет 10 месяцев

Сообщение #13 Максим » 04.05.2008, 17:50

evil
Попробуй сначала открыть страницу, а уже потом нажми на ссылку.
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #14 evil » 04.05.2008, 18:33

2Maxim_289
Сработало. Спасибо.
evil M
Репутация: 67
С нами: 17 лет 10 месяцев

Сообщение #15 Максим » 19.05.2008, 21:38

Проблема решена. Появился отличный компонент, упрощающий экспорт дискографии - foo_texttools.
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #16 mgz » 19.05.2008, 22:58

Крута
[img width=374 height=400]http://img223.imageshack.us/img223/3920/texttoolsmc9.png[/img]
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #17 Максим » 19.05.2008, 23:22

mgz
Да. Закинь всё в дивы (которые можно было бы раскрывать по клику), как ты делал, и выложи код. А то мне лень. ;)
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #18 mgz » 20.05.2008, 11:07

Maxim_289:mgz
Да. Закинь всё в дивы (которые можно было бы раскрывать по клику), как ты делал, и выложи код. А то мне лень. ;)
А вот тут спешу расстроить: тут нет отдельной части, в которую можно внести заголовок страницы (так, как это сделано в Text tools - Header). В этом Text Tools (TT) не Header, а Group Header (т.е. заголовок группы, а не заголовок всей страницы).
В общем я вижу только создание чати страницы (body), ну а части с ява-скриптом тут не привинтить (наверно).
mgz M
Автор темы
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #19 Максим » 21.05.2008, 00:30

В общем я вижу только создание чати страницы (body)
Да, но думаю, что и это неплохо. :)
Остаётся настроить вывод из Text tools и создать страницу с css, js и пустым body. :)
Максим M
Аватара
Репутация: 93
С нами: 17 лет

Сообщение #20 evil » 21.05.2008, 05:28

2Maxim_289
А зачем, если есть старая версия?
evil M
Репутация: 67
С нами: 17 лет 10 месяцев

След.

Вернуться в Секреты foobar2000