Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Вопросы, ответы и примеры решений

  • Список форумов
  • ppkBB3cker
  • Вопросы, ответы и примеры решений

Ротатор постеров на Flash

16 сообщений
  • 1
  • 2
  • След.
Просмотры: 3031 • 
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 25 янв 2010, 12:12
Привет всем!

Делюсь своим решением.

Иногда возникает необходимость прорекламировать определенные релизы. Это может быть, например, как показ самых закачиваемых релизов, так и наоборот.
В своем примере я покажу как показывать в целях рекламы n случайных постеров. (в моем случае это 10)
Клик по картинке переносит нас на соответствующую раздачу

Как это выглядит смотрим ЗДЕСЬ (смотрите на центральный блок в самом верху :) )

Далее описываю все подробно (для тех кто заинтересовался)

для начала качаем необходимые файлы ОТСЮДА

1.Содержимое архива (там папка "banner") копируем в каталог в котором живет ваш сайт (у меня это http://мой_сайт/forum)
2.Если у вас сервер отличный от Windows устанавливаем CHMOD 666 на файл images.xml внутри папки
3.Создаем в папке portal/block файл images.php и заполняем его следующим кодом

Код: Выделить всё

<?php
$imgtxt = '';
//Создаем запрос в базу на предмет выбора из нее прикрепленных файлов которые в имени содержат слово POSTER и расширением НЕ torrent
$query=$db->sql_query("SELECT
  a.attach_id, a.post_msg_id, a.extension, a.real_filename, p.post_subject, a.physical_filename, p.topic_id, p.forum_id
FROM
  ".ATTACHMENTS_TABLE." a
  INNER JOIN ".POSTS_TABLE." p ON a.post_msg_id = p.post_id
WHERE
  a.extension <> 'torrent' AND a.real_filename LIKE '%poster%'
ORDER BY
  RAND()
LIMIT
  0, 10");
//Файлы выбираются случайным образом а их количество регулируется последней циферкой в запросе
//Определяем массив нужных нам файлов чтобы потом профильтровать результаты отбора
	$image_ext=array('gif', 'jpeg', 'jpg', 'png');
	$imgtxt .= '<images>';
	while($row=$db->sql_fetchrow($query))
	{
		if(in_array($row['extension'], $image_ext))
		{
// Не забываем менять =ваш-сайт= на свое значение
	$imgsrc = append_sid("http://ваш_сайт/forum/download/file.$phpEx", 'id=' . $row['attach_id']);
	$topicsrc = append_sid('http://ваш_сайт/forum/viewtopic.' . $phpEx . '?t=' . $row['topic_id'] . '&f=' . $row['forum_id']);
	$imgtxt .= '<image url = "'.$imgsrc.'" link = "'.$topicsrc.'" target="_blank" title = "'.$row['post_subject'].'"></image>';
		}
	}
	$imgtxt .= '</images>';
	$db->sql_freeresult($query);
 
	$erase=fopen($phpbb_root_path."banner/images.xml",'w+'); 
	#Открываем файл с ключём "w+" - это значит, что данные файла обнуляются и на их место мы записываем новые данные
	flock($erase,2); 
	#Запираем файл для записи
	fputs($erase,$imgtxt); 
	#Записываем в файл данные
	flock($erase,3);
	fclose($erase);
 
 
?>
4. Теперь нам нужно заставить систему отрабатывать этот файлик. Для этого открываем на редактирование файл portal.php
находим

Код: Выделить всё

if ($load_center)
{
и после скобки вставляем

Код: Выделить всё

include($phpbb_root_path . 'portal/block/images.' . $phpEx);
5. Теперь нужно отобразить блок на сайте. Для начала открываем на редактирование файл overall_header.html вашей любимой темы оформления и добавляем следующий код непосредственно перед тегом </ head >
должно получиться так

Код: Выделить всё

 
   <script type="text/javascript" src="http://posrednik.dkm.dp.ua/forum/banner/swfobject.js"></script>
    <script type="text/javascript">
      var flashvars = {};
      flashvars.settingsXML = "http://ваш_сайт/forum/banner/settings.xml";
      var params = {};
      params.scale = "noscale";
      params.salign = "tl";
      params.wmode = "transparent";
      var attributes = {};
      swfobject.embedSWF("http://ваш_сайт/forum/banner/coverflow.swf", "CoverFlowDiv", "600", "200", "9.0.0", false, flashvars, params, attributes);
    </script>
 
</head>
6. Потом открываем на редактирование файл portal_body.html и после

Код: Выделить всё

<!-- [+] center block area -->
	   <td valign="top">
вставляем

Код: Выделить всё

<div id="CoverFlowDiv" align="center">
	<a href="http://www.adobe.com/go/getflashplayer">
		<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
	</a>
</div>
Место куда вставить финальный код можете , конечно, выбрать сами

Сохраняем все измененные файлы. В админке обновляем шаблоны измененной темы
Открываем свой портал и все должно работать.

Вы спросите: Почему код не достаточно оптимизирован? Отвечу: сделано все на коленке за 15 минут. Если кто оптимизирует код я буду только признателен.

Далее. Есть еще одна интересность. Если зайти через броузер по адресу http://ваш_сайт/forum/banner вы увидите на отдельной страничке работающий блок с последними отобранными данными. Следовательно это можно использовать как рекламу своих раздач на сторонних сайтах например в подписях к форуму.

P.S. В решении данного примера использован Свободно Распространяемый Flash компонент от сайта FlashXML.net. Об этом свидетельствует их логотип в верхнем левом уголке блока. Чтобы от него избавиться - нужно купить платную версию :)
manual
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 25 янв 2010, 12:24
если тема не в том разделе прошу модераторов перенести в правильный.

Жду отзывов от тех кто попробовал и протестировал :)
manual
Аватара пользователя
serrrios
Донатор
Сообщения: 1532
Зарегистрирован: 29 май 2009, 20:22
Сообщение 25 янв 2010, 14:24
Прикрепить это дело к хеадеру, чтоб на форуме тоже отображалось =)
http://aniproject.ru - перспектива... велком епта..
http://www.ppkbb3cker.ru/viewtopic.php?f=35&t=1042 - мои платные услуги по трекеру.
serrrios
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 25 янв 2010, 14:39
не вопрос
для этого в нужное место вставляем

Код: Выделить всё

<div id="CoverFlowDiv" align="center">
   <a href="http://www.adobe.com/go/getflashplayer">
      <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
   </a>
</div>
manual
Аватара пользователя
serrrios
Донатор
Сообщения: 1532
Зарегистрирован: 29 май 2009, 20:22
Сообщение 25 янв 2010, 16:23
Хых, попробуем =)
http://aniproject.ru - перспектива... велком епта..
http://www.ppkbb3cker.ru/viewtopic.php?f=35&t=1042 - мои платные услуги по трекеру.
serrrios
sonneandsky
Донатор
Сообщения: 178
Зарегистрирован: 05 июн 2009, 16:03
Сообщение 25 янв 2010, 18:39
manual писал(а):Далее описываю все подробно (для тех кто заинтересовался)
Каким образом поставить нужные (определенные релизы)???
sonneandsky
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 25 янв 2010, 19:36
тоже можно сделать.
в архиве есть файлик images.xml. Его мы динамически формируем на основании запроса. Если отказаться от динамического формирования и заполнить его руками - то получим определенный набор ссылок с картинками.
Количество тегов <image> в нем тоже отрегулируйте по надобности. Каждый такой тег - это одна картинка.

Вроде все просто
manual
sonneandsky
Донатор
Сообщения: 178
Зарегистрирован: 05 июн 2009, 16:03
Сообщение 25 янв 2010, 20:00
manual писал(а):Вроде все просто
Может я не так выразился ;) , но не могу понять что нужно сделать кроме url в этом коде

Код: Выделить всё

<?php
$imgtxt = '';
//Создаем запрос в базу на предмет выбора из нее прикрепленных файлов которые в имени содержат слово POSTER и расширением НЕ torrent
$query=$db->sql_query("SELECT
  a.attach_id, a.post_msg_id, a.extension, a.real_filename, p.post_subject, a.physical_filename, p.topic_id, p.forum_id
FROM
  ".ATTACHMENTS_TABLE." a
  INNER JOIN ".POSTS_TABLE." p ON a.post_msg_id = p.post_id
WHERE
  a.extension <> 'torrent' AND a.real_filename LIKE '%poster%'
ORDER BY
  RAND()
LIMIT
  0, 10");
//Файлы выбираются случайным образом а их количество регулируется последней циферкой в запросе
//Определяем массив нужных нам файлов чтобы потом профильтровать результаты отбора
   $image_ext=array('gif', 'jpeg', 'jpg', 'png');
   $imgtxt .= '<images>';
   while($row=$db->sql_fetchrow($query))
   {
      if(in_array($row['extension'], $image_ext))
      {
// Не забываем менять =ваш-сайт= на свое значение
   $imgsrc = append_sid("http://ваш_сайт/forum/download/file.$phpEx", 'id=' . $row['attach_id']);
   $topicsrc = append_sid('http://ваш_сайт/forum/viewtopic.' . $phpEx . '?t=' . $row['topic_id'] . '&f=' . $row['forum_id']);
   $imgtxt .= '<image url = "'.$imgsrc.'" link = "'.$topicsrc.'" target="_blank" title = "'.$row['post_subject'].'"></image>';
      }
   }
   $imgtxt .= '</images>';
   $db->sql_freeresult($query);

   $erase=fopen($phpbb_root_path."banner/images.xml",'w+'); 
   #Открываем файл с ключём "w+" - это значит, что данные файла обнуляются и на их место мы записываем новые данные
   flock($erase,2); 
   #Запираем файл для записи
   fputs($erase,$imgtxt); 
   #Записываем в файл данные
   flock($erase,3);
   fclose($erase);


?>
 
Простите если задаю глупые вопросы
sonneandsky
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 25 янв 2010, 21:27
sonneandsky, сложного и действительно ничего нет....

это код, который нужно разместить внутри файла images.php, и там действительно кроме URL своего сайта менять ничего не нужно. С помощью этого файла формируется images.xml который заполняется списком подлежащих отображению картинок
manual
manual
Пользователь
Сообщения: 46
Зарегистрирован: 25 май 2009, 11:09
Сообщение 03 фев 2010, 15:09
здесь я привел подобное решение но на JAVA
viewtopic.php?f=14&t=936
manual
16 сообщений
  • 1
  • 2
  • След.

Вернуться в «Вопросы, ответы и примеры решений»

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2025 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Расширения в разработке ↳   База расширений ↳   Стили для phpBB 3.1-3.3 ↳   Переводы расширений для phpBB3.1-3.3 ↳   Поиск и запросы расширений ↳   Запросы расширений, функционала и переводов для подписчиков ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   F.A.Q. ↳   Ваши трекеры ↳   Оффтопик xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение phpBB 3.0 ↳   Другие моды для phpBB3 ↳   Минимоды и хаки для phpBB3 ↳   Вопросы по phpBB3 ↳   phpBB3 ppkBB3cker Edition ↳   Платные услуги, моды, стили ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo