Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Модификация phpBB 3.0.x

Помогите домодифицировать спойлер Spoiler

Расширение функциональности phpBB 3.0.x. Создание и использование модов
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Инструкция по установке модов

Сообщение 31 янв 2010, 17:14

Имеется спойлер как на торрентс.ру
(можно найти его здесь)

Вот нужно добавить туда функцию "Закрыть" внизу спойлера.
Помогите! (я в программированиии не шарю)

JS спойлера:
Код: выделить все
//var maxW = Math.round(screen.width - (screen.width / 1.5));
var maxW = 990;
var hidePostImg = false;
var hideSigImg = false;

function imgFit (img, maxW)
{
   if (typeof(img.naturalHeight) == undefined) {
      img.naturalHeight = img.height;
      img.naturalWidth  = img.width;
   }
   if (img.width > maxW) {
      img.height = Math.round((maxW/img.width)*img.height);
      img.width  = maxW;
      img.title  = 'Click image to view full size';
      img.style.cursor = 'move';
      return false;
   }
   else if (img.width == maxW && img.width < img.naturalWidth) {
      img.height = img.naturalHeight;
      img.width  = img.naturalWidth;
      img.title  = 'Click to fit in the browser window';
      return false;
   }
   else {
      return true;
   }
}

function initPost(context)
{
   initPostImages(context);
   initSpoilers(context);
}
function initPostImages(context)
{
   var $in_spoilers = $('div.sp-body var.postImg', context);
   $('var.postImg', context).not($in_spoilers).each(function(){
      var $v = $(this);
      var src = $v.attr('title');
      var img_align = $v.attr('align')!=undefined ? ' align="'+ $v.attr('align') +'"' : '';
      var $img = $('<img src="'+ src +'"'+ img_align + ' class="'+ $v.attr('className') +'" alt="" />');

      var is_signature = $v.parents().hasClass('signature') ? true : false;

      if(!is_signature) {
         if (hidePostImg){ return $(this).replaceWith(''); }
      
         $img = fixPostImage($img);
         $img.bind('click', function(){ return !window.open(src); });
         $('#preload').append($img);
         var loading_icon = '<a href="'+ src +'" target="_blank"><img src="./addons/images/spoiler/pic_loading.gif" alt="" /></a>';
         $v.html(loading_icon);

         if ($.browser.msie || $.browser.opera) {
            $img.one('load', function(){ imgFit(this, maxW); });
            $v.empty().append($img);
            $v.after('<wbr>');
         }
         else
         {
            $img.one('load', function(){
               imgFit(this, maxW);
               $v.empty().append(this);
            });
         }
         var is_href = $v.parent().attr('href');

         if(is_href)
         {
            $img.unbind('click');
         }
      }
      else
      {
         if (hideSigImg){ return $(this).replaceWith(''); }
         $v.empty().append($img);
      }
   });
}
function initSpoilers(context)
{
   $('div.sp-body', context).each(function(){
      var $sp_body = $(this);
      var name = this.title || 'Скрытый текст';
      this.title = '';
      $('<div class="sp-head folded clickable">'+ name +'</div>').insertBefore($sp_body).click(function(e){
         if (!$sp_body.hasClass('inited')) {
            initPostImages($sp_body);
            $sp_body.prepend('<div class="clear"></div>').append('<div class="clear"></div>').addClass('inited');
         }
         if (e.shiftKey) {
            e.stopPropagation();
            e.shiftKey = false;
            var fold = $(this).hasClass('unfolded');
            $('div.sp-head', $($sp_body.parents('td')[0])).filter( function(){ return $(this).hasClass('unfolded') ? fold : !fold } ).click();
         }
         else {
            $(this).toggleClass('unfolded');
            $sp_body.slideToggle('fast');
         }
      });
   });
}
function fixPostImage ($img)
{
   var banned_image_hosts = /imagebanana|hidebehind/i;//images hack
   var src = $img[0].src;
   // keep4u
   if (src.match(/keep4u/i)) {
      var new_src = src.replace(/http:\/\/keep4u.ru\/imgs\/\w\/(.*)\/(.*)\.(.*)/, "http://keep4u.ru/imgs/s/$1/$2.$3");
      //var new_url = src.replace(/http:\/\/keep4u.ru\/imgs\/\w\/(.*)\/(.*)\.(.*)/, "http://keep4u.ru/full/$1/$2/$3");
      $img.attr('src', new_src).addClass('clickable');
   }
   else if (src.match(banned_image_hosts)) {
      $img.wrap('<a href="'+ this.src +'" target="_blank"></a>').attr({ src: "./addons/images/spoiler/tr_oops.gif", title: "Изображения СЃ данного хоста запрещены!" });
   }
   return $img;
}

$(document).ready(function(){
   $(this).each(function(){ initPost( $(this) ) });

});
Аватар пользователя
AndreyChas86
Пользователь
 
Сообщений: 28
Зарегистрирован:
28 ноя 2009, 16:43
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вернуться в Модификация phpBB 3.0.x

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3