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

       

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

  • Список форумов
  • Форумы по phpBB 3.0
  • Мод трекера ppkBB3cker
  • Вопросы, ответы и примеры решений

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

16 сообщений
  • 1
  • 2
  • След.
Просмотры: 3110 • 
  • manual Сообщение 25.01.2010
    Привет всем!

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

    Иногда возникает необходимость прорекламировать определенные релизы. Это может быть, например, как показ самых закачиваемых релизов, так и наоборот.
    В своем примере я покажу как показывать в целях рекламы 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 Сообщение 25.01.2010
    если тема не в том разделе прошу модераторов перенести в правильный.

    Жду отзывов от тех кто попробовал и протестировал :)
manual
  • Аватара пользователя
    serrrios Сообщение 25.01.2010
    Прикрепить это дело к хеадеру, чтоб на форуме тоже отображалось =)
    http://aniproject.ru - перспектива... велком епта..
    http://www.ppkbb3cker.ru/viewtopic.php?f=35&t=1042 - мои платные услуги по трекеру.
serrrios
  • manual Сообщение 25.01.2010
    не вопрос
    для этого в нужное место вставляем

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

    <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 Сообщение 25.01.2010
    Хых, попробуем =)
    http://aniproject.ru - перспектива... велком епта..
    http://www.ppkbb3cker.ru/viewtopic.php?f=35&t=1042 - мои платные услуги по трекеру.
serrrios
  • sonneandsky Сообщение 25.01.2010
    manual писал(а):Далее описываю все подробно (для тех кто заинтересовался)
    Каким образом поставить нужные (определенные релизы)???
sonneandsky
  • manual Сообщение 25.01.2010
    тоже можно сделать.
    в архиве есть файлик images.xml. Его мы динамически формируем на основании запроса. Если отказаться от динамического формирования и заполнить его руками - то получим определенный набор ссылок с картинками.
    Количество тегов <image> в нем тоже отрегулируйте по надобности. Каждый такой тег - это одна картинка.

    Вроде все просто
manual
  • sonneandsky Сообщение 25.01.2010
    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 Сообщение 25.01.2010
    sonneandsky, сложного и действительно ничего нет....

    это код, который нужно разместить внутри файла images.php, и там действительно кроме URL своего сайта менять ничего не нужно. С помощью этого файла формируется images.xml который заполняется списком подлежащих отображению картинок
manual
  • manual Сообщение 03.02.2010
    здесь я привел подобное решение но на 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-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума