Вставка img через bb код

Если у вас возникают проблемы и вопросы по настройке форума phpBB 3.1 / Ascraeus либо выскакивают непонятные ошибки, не устанавливаются либо криво работают расширения, то этот раздел для вас. Обсуждаем все вопросы, связанные со стилями, расширениями, доработками и проблемами их использования.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Ответить
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

А вот можно как то сделать чтоб img через штатный bb код вставлялось в таком виде?
bb код:
[image=100px]{URL}[/image]

html:
<img src="{URL}" height="100px" alt="" />
В общем чтоб высоту можно было менять и она стояла какая то заданная начально (например 100px)
Я что то не нашел как. Вроде в includes/bbcode.php есть строчки:

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

				case 4:
					if ($user->optionget('viewimg'))
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[img:$uid\](.*?)\[/img:$uid\]#s'		=> $this->bbcode_tpl('img', $bbcode_id),
							)
						);
					}
					else
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[img:$uid\](.*?)\[/img:$uid\]#s'		=> str_replace('$2', '[ img ]', $this->bbcode_tpl('url', $bbcode_id, true)),
							)
						);
					}
				break;

				case 5:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[size=([\-\+]?\d+):$uid\](.*?)\[/size:$uid\]#s'	=> $this->bbcode_tpl('size', $bbcode_id),
						)
					);
				break;
Но я не пойму то это, или нет, и если здесь надо переделать то как? В инете тоже многие спрашивают но конкретного ответа я не увидел.
У меня phpbb 3.1.10
#1
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

Вопрос на вопрос - разве штатные вв коды через админку не редактируются?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#2
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

Я там не нашел img:
s
center
right
left
justify
pad
align=
font=
indent=
highlight=
float=
pre
sup
sub
glow=
dropshadow=
shadow=
blur=
fade
dir=
marq=
spoil
hidden
offtopic
nfo
soundcloud
BBvideo=
youtube
mod=


Это то что у меня в админке. Я пробовал просто создать bb код img - не знаю как всплывающее окно к нему прилепить как для штатного. Еслиб не это я бы штатную картинку убрал с панели и созданный код туда переместил.

Сообщение добавлено... спустя 2 часа 22 минуты 13 секунд:
:is_te_ri_ka: Всё. Совсем запутался. В админке нету кода img. Все есть а его нету. А у добавленного нету всплывающего окна. :is_te_ri_ka: :is_te_ri_ka: :is_te_ri_ka:
У меня phpbb 3.1.10
#3
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

Без паники, есть 2 варианта

1. Добавить в админку вв код, допустим, img2 и прописать ему нужные свойства

2. В includes/bbcode.php есть строка начинающаяся с 'img' , вот ее надо редактировать вроде как
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#4
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

Я в этом файле уже облазился...
Вот я так понимаю нужные строчки:
case 4:
if ($user->optionget('viewimg'))
{
$this->bbcode_cache[$bbcode_id] = array(
'preg' => array(
'#\[img:$uid\](.*?)\[/img:$uid\]#s' => $this->bbcode_tpl('img', $bbcode_id),
)
);
}
else
{
$this->bbcode_cache[$bbcode_id] = array(
'preg' => array(
'#\[img:$uid\](.*?)\[/img:$uid\]#s' => str_replace('$2', '[ img ]', $this->bbcode_tpl('url', $bbcode_id, true)),
)
);
}
break;
Я просто хочу в bb коде прописывать высоту картинки из-за этого весь сыр бор...
А то если картинка с хорошим разрешением то весь форум занимает. Юзеры не будут заморачиваться - как встало так встало...
Чтоб bb код вставлялся в таком виде: [image=150]www.бла бла бла/hy.jpg[/image]
А когда создаешь поле там все это можно НО... блин тогда окошко не всплывает сцуко :wall:
На гуру спросил - вот честное слово застрелил бы этих гаденышей. Чуть не дебилом обозвали и тему закрыли. Там вообще не стоит задавать вопросы это я давно понял.
1. Добавить в админку вв код, допустим, img2 и прописать ему нужные свойства
Я там прописывал:

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

[image={NUMBER}]{URL}[/image]
<img class="postimage" alt="Изображение" src="{URL}" style="max-width: {NAMBER}px;">
Но во первых код то работает но всплывающее окно тогда не выскакивает и второе - хочется чтоб значок все таки стоял там где сейчас штатный стоит
( там ему место самое оно ), а как наверх перекидывать созданные bb коды я не знаю.
Нашел Вот это и ничего не понял...
Последний раз редактировалось Олега 23 мар 2017, 16:12, всего редактировалось 2 раза.
У меня phpbb 3.1.10
#5
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

Сразу бы сказали в чем беда, ставите это - http://www.ppkbb3cker.ru/viewtopic.php?t=4149 - там есть встроенный ресайзер для тега img и не надо выдумывать чтото

Сообщение добавлено... спустя 2 минуты 15 секунд:
Кстати в том вв коде, который вы через админку вставляли есть опечатка если вы не заметили, это так, к слову.

То расширение, на которое я дал ссылку автоматически уменьшает визуально картинки в теге img и увеличивает по клику
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#6
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

Ща бум пробовать :-0=)

Сообщение добавлено... спустя 39 минут 51 секунду:
Пасибки !!!! То что нужно))) Вот только не мугу найти куда target="_blank" воткнуть чтоб при нажатии на значок увеличения справа вверху в новой вкладке открывалось....
У меня phpbb 3.1.10
#7
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

Такого вроде не предусмотрено, код расширения надо глядеть
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#8
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

То что не предусмотренно это я знаю. Но правда путаешься когда во весь экран... Первое что рука делает на автомате это закрывает вкладку.
Вот вроде кусок кода из js/jquery.prettyPhoto.js
<div class="pp_right"></div> </div> <div class="pp_content_container"> <div class="pp_left"> <div class="pp_right"> <div class="pp_content"> <div class="pp_loaderIcon"></div> <div class="pp_fade"> <a href="#" class="pp_expand" title="Во весь экран">Expand</a> <div class="pp_hoverContainer"> <a class="pp_next" href="#">next</a> <a class="pp_previous" href="#">previous</a> </div>
Я пробовал target="_blank" впихивать - ноль эмоций :wo_ol:
Вот может в <a href="#" class="pp_expand..." вместо href="#" как то по другому прописать?

Сообщение добавлено... спустя 25 минут 42 секунды:
Или наверное дело еще в коде js
window.location
window.open
п»ї/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.1.6
------------------------------------------------------------------------- */
!function(e){function t(){var e=location.href;return hashtag=-1!==e.indexOf("#prettyPhoto")?decodeURI(e.substring(e.indexOf("#prettyPhoto")+1,e.length)):!1,hashtag&&(hashtag=hashtag.replace(/<|>/g,"")),hashtag}function i(){"undefined"!=typeof theRel&&(location.hash=theRel+"/"+rel_index+"/")}function p(){-1!==location.href.indexOf("#prettyPhoto")&&(location.hash="prettyPhoto")}function o(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var i="[\\?&]"+e+"=([^&#]*)",p=new RegExp(i),o=p.exec(t);return null==o?"":o[1]}e.prettyPhoto={version:"3.1.6"},e.fn.prettyPhoto=function(a){function s(){e(".pp_loaderIcon").hide(),projectedTop=scroll_pos.scrollTop+(I/2-f.containerHeight/2),projectedTop<0&&(projectedTop=0),$ppt.fadeTo(settings.animation_speed,1),$pp_pic_holder.find(".pp_content").animate({height:f.contentHeight,width:f.contentWidth},settings.animation_speed),$pp_pic_holder.animate({top:projectedTop,left:j/2-f.containerWidth/2<0?0:j/2-f.containerWidth/2,width:f.containerWidth},settings.animation_speed,function(){$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(f.height).width(f.width),$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed),isSet&&"image"==h(pp_images[set_position])?$pp_pic_holder.find(".pp_hoverContainer").show():$pp_pic_holder.find(".pp_hoverContainer").hide(),settings.allow_expand&&(f.resized?e("a.pp_expand,a.pp_contract").show():e("a.pp_expand").hide()),!settings.autoplay_slideshow||P||v||e.prettyPhoto.startSlideshow(),settings.changepicturecallback(),v=!0}),m(),a.ajaxcallback()}function n(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden"),$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed,function(){e(".pp_loaderIcon").show(),t()})}function r(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}function l(e,t){if(resized=!1,d(e,t),imageWidth=e,imageHeight=t,(k>j||b>I)&&doresize&&settings.allow_resize&&!$){for(resized=!0,fitting=!1;!fitting;)k>j?(imageWidth=j-200,imageHeight=t/e*imageWidth):b>I?(imageHeight=I-200,imageWidth=e/t*imageHeight):fitting=!0,b=imageHeight,k=imageWidth;(k>j||b>I)&&l(k,b),d(imageWidth,imageHeight)}return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(b),containerWidth:Math.floor(k)+2*settings.horizontal_padding,contentHeight:Math.floor(y),contentWidth:Math.floor(w),resized:resized}}function d(t,i){t=parseFloat(t),i=parseFloat(i),$pp_details=$pp_pic_holder.find(".pp_details"),$pp_details.width(t),detailsHeight=parseFloat($pp_details.css("marginTop"))+parseFloat($pp_details.css("marginBottom")),$pp_details=$pp_details.clone().addClass(settings.theme).width(t).appendTo(e("body")).css({position:"absolute",top:-1e4}),detailsHeight+=$pp_details.height(),detailsHeight=detailsHeight<=34?36:detailsHeight,$pp_details.remove(),$pp_title=$pp_pic_holder.find(".ppt"),$pp_title.width(t),titleHeight=parseFloat($pp_title.css("marginTop"))+parseFloat($pp_title.css("marginBottom")),$pp_title=$pp_title.clone().appendTo(e("body")).css({position:"absolute",top:-1e4}),titleHeight+=$pp_title.height(),$pp_title.remove(),y=i+detailsHeight,w=t,b=y+titleHeight+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height(),k=t}function h(e){return e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i)?"youtube":e.match(/vimeo\.com/i)?"vimeo":e.match(/\b.mov\b/i)?"quicktime":e.match(/\b.swf\b/i)?"flash":e.match(/\biframe=true\b/i)?"iframe":e.match(/\bajax=true\b/i)?"ajax":e.match(/\bcustom=true\b/i)?"custom":"#"==e.substr(0,1)?"inline":"image"}function c(){if(doresize&&"undefined"!=typeof $pp_pic_holder){if(scroll_pos=_(),contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width(),projectedTop=I/2+scroll_pos.scrollTop-contentHeight/2,projectedTop<0&&(projectedTop=0),contentHeight>I)return;$pp_pic_holder.css({top:projectedTop,left:j/2+scroll_pos.scrollLeft-contentwidth/2})}}function _(){return self.pageYOffset?{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}:document.documentElement&&document.documentElement.scrollTop?{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}:document.body?{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}:void 0}function g(){I=e(window).height(),j=e(window).width(),"undefined"!=typeof $pp_overlay&&$pp_overlay.height(e(document).height()).width(j)}function m(){isSet&&settings.overlay_gallery&&"image"==h(pp_images[set_position])?(itemWidth=57,navWidth="facebook"==settings.theme||"pp_default"==settings.theme?50:30,itemsPerPage=Math.floor((f.containerWidth-100-navWidth)/itemWidth),itemsPerPage=itemsPerPage<pp_images.length?itemsPerPage:pp_images.length,totalPage=Math.ceil(pp_images.length/itemsPerPage)-1,0==totalPage?(navWidth=0,$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()):$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show(),galleryWidth=itemsPerPage*itemWidth,fullGalleryWidth=pp_images.length*itemWidth,$pp_gallery.css("margin-left",-(galleryWidth/2+navWidth/2)).find("div:first").width(galleryWidth+5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected"),goToPage=Math.floor(set_position/itemsPerPage)<totalPage?Math.floor(set_position/itemsPerPage):totalPage,e.prettyPhoto.changeGalleryPage(goToPage),$pp_gallery_li.filter(":eq("+set_position+")").addClass("selected")):$pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")}function u(){if(settings.social_tools&&(facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href))),settings.markup=settings.markup.replace("{pp_social}",""),e("body").append(settings.markup),$pp_pic_holder=e(".pp_pic_holder"),$ppt=e(".ppt"),$pp_overlay=e("div.pp_overlay"),isSet&&settings.overlay_gallery){currentGalleryPage=0,toInject="";for(var t=0;t<pp_images.length;t++)pp_images[t].match(/\b(jpg|jpeg|png|gif)\b/gi)?(classname="",img_src=pp_images[t]):(classname="default",img_src=""),toInject+="<li class='"+classname+"'><a href='#'><img src='"+img_src+"' width='50' alt='' /></a></li>";toInject=settings.gallery_markup.replace(/{gallery}/g,toInject),$pp_pic_holder.find("#pp_full_res").after(toInject),$pp_gallery=e(".pp_pic_holder .pp_gallery"),$pp_gallery_li=$pp_gallery.find("li"),$pp_gallery.find(".pp_arrow_next").click(function(){return e.prettyPhoto.changeGalleryPage("next"),e.prettyPhoto.stopSlideshow(),!1}),$pp_gallery.find(".pp_arrow_previous").click(function(){return e.prettyPhoto.changeGalleryPage("previous"),e.prettyPhoto.stopSlideshow(),!1}),$pp_pic_holder.find(".pp_content").hover(function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()},function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()}),itemWidth=57,$pp_gallery_li.each(function(t){e(this).find("a").click(function(){return e.prettyPhoto.changePage(t),e.prettyPhoto.stopSlideshow(),!1})})}settings.slideshow&&($pp_pic_holder.find(".pp_nav").prepend('<a href="#" class="pp_play">Play</a>'),$pp_pic_holder.find(".pp_nav .pp_play").click(function(){return e.prettyPhoto.startSlideshow(),!1})),$pp_pic_holder.attr("class","pp_pic_holder "+settings.theme),$pp_overlay.css({opacity:0,height:e(document).height(),width:e(window).width()}).bind("click",function(){settings.modal||e.prettyPhoto.close()}),e("a.pp_close").bind("click",function(){return e.prettyPhoto.close(),!1}),settings.allow_expand&&e("a.pp_expand").bind("click",function(){return e(this).hasClass("pp_expand")?(e(this).removeClass("pp_expand").addClass("pp_contract"),doresize=!1):(e(this).removeClass("pp_contract").addClass("pp_expand"),doresize=!0),n(function(){e.prettyPhoto.open()}),!1}),$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click",function(){return e.prettyPhoto.changePage("previous"),e.prettyPhoto.stopSlideshow(),!1}),$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click",function(){return e.prettyPhoto.changePage("next"),e.prettyPhoto.stopSlideshow(),!1}),c()}a=jQuery.extend({hook:"rel",animation_speed:"fast",ajaxcallback:function(){},slideshow:5e3,autoplay_slideshow:!1,opacity:.8,show_title:!0,allow_resize:!0,allow_expand:!0,default_width:500,default_height:344,counter_separator_label:"/",theme:"pp_default",horizontal_padding:20,hideflash:!1,wmode:"opaque",autoplay:!0,modal:!1,deeplinking:!0,overlay_gallery:!0,overlay_gallery_max:30,keyboard_shortcuts:!0,changepicturecallback:function(){},callback:function(){},ie6_fallback:!0,markup:'<div class="pp_pic_holder"> <div class="ppt">&nbsp;</div> <div class="pp_top"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> <div class="pp_content_container"> <div class="pp_left"> <div class="pp_right"> <div class="pp_content"> <div class="pp_loaderIcon"></div> <div class="pp_fade"> <a href="#" class="pp_expand" title="Во весь экран">Expand</a> <div class="pp_hoverContainer"> <a class="pp_next" href="#">next</a> <a class="pp_previous" href="#">previous</a> </div> <div id="pp_full_res"></div> <div class="pp_details"> <div class="pp_nav"> <a href="#" class="pp_arrow_previous">Previous</a> <p class="currentTextHolder">0/0</p> <a href="#" class="pp_arrow_next">Next</a> </div> <p class="pp_description"></p> <div class="pp_social">{pp_social}</div> <a class="pp_close" href="#">Close</a> </div> </div> </div> </div> </div> </div> <div class="pp_bottom"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> </div> <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> <a href="#" class="pp_arrow_previous">Previous</a> <div> <ul> {gallery} </ul> </div> <a href="#" class="pp_arrow_next">Next</a> </div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download ... p:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline">{content}</div>',custom_markup:"",social_tools:'<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js" ... </div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?local ... &height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>'},a);var f,v,y,w,b,k,P,x=this,$=!1,I=e(window).height(),j=e(window).width();return doresize=!0,scroll_pos=_(),e(window).unbind("resize.prettyphoto").bind("resize.prettyphoto",function(){c(),g()}),a.keyboard_shortcuts&&e(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto",function(t){if("undefined"!=typeof $pp_pic_holder&&$pp_pic_holder.is(":visible"))switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous"),t.preventDefault();break;case 39:e.prettyPhoto.changePage("next"),t.preventDefault();break;case 27:settings.modal||e.prettyPhoto.close(),t.preventDefault()}}),e.prettyPhoto.initialize=function(){return settings=a,"pp_default"==settings.theme&&(settings.horizontal_padding=16),theRel=e(this).attr(settings.hook),galleryRegExp=/\[(?:.*)\]/,isSet=galleryRegExp.exec(theRel)?!0:!1,pp_images=isSet?jQuery.map(x,function(t){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).attr("href"):void 0}):e.makeArray(e(this).attr("href")),pp_titles=isSet?jQuery.map(x,function(t){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).find("img").attr("alt")?e(t).find("img").attr("alt"):"":void 0}):e.makeArray(e(this).find("img").attr("alt")),pp_descriptions=isSet?jQuery.map(x,function(t){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).attr("title")?e(t).attr("title"):"":void 0}):e.makeArray(e(this).attr("title")),pp_images.length>settings.overlay_gallery_max&&(settings.overlay_gallery=!1),set_position=jQuery.inArray(e(this).attr("href"),pp_images),rel_index=isSet?set_position:e("a["+settings.hook+"^='"+theRel+"']").index(e(this)),u(this),settings.allow_resize&&e(window).bind("scroll.prettyphoto",function(){c()}),e.prettyPhoto.open(),!1},e.prettyPhoto.open=function(t){return"undefined"==typeof settings&&(settings=a,pp_images=e.makeArray(arguments[0]),pp_titles=e.makeArray(arguments[1]?arguments[1]:""),pp_descriptions=e.makeArray(arguments[2]?arguments[2]:""),isSet=pp_images.length>1?!0:!1,set_position=arguments[3]?arguments[3]:0,u(t.target)),settings.hideflash&&e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","hidden"),r(e(pp_images).size()),e(".pp_loaderIcon").show(),settings.deeplinking&&i(),settings.social_tools&&(facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href)),$pp_pic_holder.find(".pp_social").html(facebook_like_link)),$ppt.is(":hidden")&&$ppt.css("opacity",0).show(),$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity),$pp_pic_holder.find(".currentTextHolder").text(set_position+1+settings.counter_separator_label+e(pp_images).size()),"undefined"!=typeof pp_descriptions[set_position]&&""!=pp_descriptions[set_position]?$pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position])):$pp_pic_holder.find(".pp_description").hide(),movie_width=parseFloat(o("width",pp_images[set_position]))?o("width",pp_images[set_position]):settings.default_width.toString(),movie_height=parseFloat(o("height",pp_images[set_position]))?o("height",pp_images[set_position]):settings.default_height.toString(),$=!1,-1!=movie_height.indexOf("%")&&(movie_height=parseFloat(e(window).height()*parseFloat(movie_height)/100-150),$=!0),-1!=movie_width.indexOf("%")&&(movie_width=parseFloat(e(window).width()*parseFloat(movie_width)/100-150),$=!0),$pp_pic_holder.fadeIn(function(){switch($ppt.html(settings.show_title&&""!=pp_titles[set_position]&&"undefined"!=typeof pp_titles[set_position]?unescape(pp_titles[set_position]):"&nbsp;"),imgPreloader="",skipInjection=!1,h(pp_images[set_position])){case"image":imgPreloader=new Image,nextImage=new Image,isSet&&set_position<e(pp_images).size()-1&&(nextImage.src=pp_images[set_position+1]),prevImage=new Image,isSet&&pp_images[set_position-1]&&(prevImage.src=pp_images[set_position-1]),$pp_pic_holder.find("#pp_full_res")[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]),imgPreloader.onload=function(){f=l(imgPreloader.width,imgPreloader.height),s()},imgPreloader.onerror=function(){alert("Image cannot be loaded. Make sure the path is correct and image exist."),e.prettyPhoto.close()},imgPreloader.src=pp_images[set_position];break;case"youtube":f=l(movie_width,movie_height),movie_id=o("v",pp_images[set_position]),""==movie_id&&(movie_id=pp_images[set_position].split("youtu.be/"),movie_id=movie_id[1],movie_id.indexOf("?")>0&&(movie_id=movie_id.substr(0,movie_id.indexOf("?"))),movie_id.indexOf("&")>0&&(movie_id=movie_id.substr(0,movie_id.indexOf("&")))),movie="http://www.youtube.com/embed/"+movie_id ... ition];var t=/http(s?):\/\/(www\.)?vimeo.com\/(\d+)/,i=movie_id.match(t);movie="http://player.vimeo.com/video/"+i[3]+"? ... .substring(pp_images[set_position].indexOf("flashvars")+10,pp_images[set_position].length),filename=pp_images[set_position],filename=filename.substring(0,filename.indexOf("?")),toInject=settings.flash_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+"?"+flash_vars);break;case"iframe":f=l(movie_width,movie_height),frame_url=pp_images[set_position],frame_url=frame_url.substr(0,frame_url.indexOf("iframe")-1),toInject=settings.iframe_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{path}/g,frame_url);break;case"ajax":doresize=!1,f=l(movie_width,movie_height),doresize=!0,skipInjection=!0,e.get(pp_images[set_position],function(e){toInject=settings.inline_markup.replace(/{content}/g,e),$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject,s()});break;case"custom":f=l(movie_width,movie_height),toInject=settings.custom_markup;break;case"inline":myClone=e(pp_images[set_position]).clone().append('<br clear="all" />').css({width:settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo(e("body")).show(),doresize=!1,f=l(e(myClone).width(),e(myClone).height()),doresize=!0,e(myClone).remove(),toInject=settings.inline_markup.replace(/{content}/g,e(pp_images[set_position]).html())}imgPreloader||skipInjection||($pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject,s())}),!1},e.prettyPhoto.changePage=function(t){currentGalleryPage=0,"previous"==t?(set_position--,set_position<0&&(set_position=e(pp_images).size()-1)):"next"==t?(set_position++,set_position>e(pp_images).size()-1&&(set_position=0)):set_position=t,rel_index=set_position,doresize||(doresize=!0),settings.allow_expand&&e(".pp_contract").removeClass("pp_contract").addClass("pp_expand"),n(function(){e.prettyPhoto.open()})},e.prettyPhoto.changeGalleryPage=function(e){"next"==e?(currentGalleryPage++,currentGalleryPage>totalPage&&(currentGalleryPage=0)):"previous"==e?(currentGalleryPage--,currentGalleryPage<0&&(currentGalleryPage=totalPage)):currentGalleryPage=e,slide_speed="next"==e||"previous"==e?settings.animation_speed:0,slide_to=currentGalleryPage*itemsPerPage*itemWidth,$pp_gallery.find("ul").animate({left:-slide_to},slide_speed)},e.prettyPhoto.startSlideshow=function(){"undefined"==typeof P?($pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function(){return e.prettyPhoto.stopSlideshow(),!1}),P=setInterval(e.prettyPhoto.startSlideshow,settings.slideshow)):e.prettyPhoto.changePage("next")},e.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function(){return e.prettyPhoto.startSlideshow(),!1}),clearInterval(P),P=void 0},e.prettyPhoto.close=function(){$pp_overlay.is(":animated")||(e.prettyPhoto.stopSlideshow(),$pp_pic_holder.stop().find("object,embed").css("visibility","hidden"),e("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed,function(){e(this).remove()}),$pp_overlay.fadeOut(settings.animation_speed,function(){settings.hideflash&&e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","visible"),e(this).remove(),e(window).unbind("scroll.prettyphoto"),p(),settings.callback(),doresize=!0,v=!1,delete settings}))},!pp_alreadyInitialized&&t()&&(pp_alreadyInitialized=!0,hashIndex=t(),hashRel=hashIndex,hashIndex=hashIndex.substring(hashIndex.indexOf("/")+1,hashIndex.length-1),hashRel=hashRel.substring(0,hashRel.indexOf("/")),setTimeout(function(){e("a["+a.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger("click")},50)),this.unbind("click.prettyphoto").bind("click.prettyphoto",e.prettyPhoto.initialize)}}(jQuery);var pp_alreadyInitialized=!1;
Для меня это как ядерная физика для балерины :-0=)
Последний раз редактировалось Олега 23 мар 2017, 23:11, всего редактировалось 1 раз.
У меня phpbb 3.1.10
#9
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

На вскидку в папке расширения /event/listener.php найти кусочек

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

	public function bb3spoiler_displaytext_before($event)
	{
		if($event['uid'] && $this->config['bb3spoiler_image_spimage'])
		{
			$text=$event['text'];
			$img_bbcode='#<img src="(.*?)" class="postimage" alt="(?:.*?)">#s';
			$replace_code='<var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>';
			!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? $replace_code='<a href="$1" rel="prettyPhotoSpoiler[0]">'.$replace_code.'</a>' : '';
			$text=preg_replace($img_bbcode, $replace_code, $text);
			$event['text']=$text;
		}
	}
В нем

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

$replace_code='<var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>';
			!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? $replace_code='<a href="$1" rel="prettyPhotoSpoiler[0]">'.$replace_code.'</a>' : '';
Отвечает за вывод IMG, можно после кусочка

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

$replace_code='
Вставить свою ссылочку на открытие в новом окне, к примеру так

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

<a href="$1" target="_blank" >TEST</a>
Переменную $1 в адресе href="$1" ни в коем случае не меняете. Получится так

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

$replace_code='<a href="$1" target="_blank" >TEST</a><var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>';
			!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? $replace_code='<a href="$1" rel="prettyPhotoSpoiler[0]">'.$replace_code.'</a>' : '';
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#10
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

Что то у меня вообще такого нету... Как буд то вообще другой файл... У меня последняя версия стоит
1.3.4.1 Вот весь event/listener.php

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

<?php

/**
*
* @package BB3Spoiler
* @copyright (c) 2014 PPK
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*
*/

namespace ppk\bb3spoiler\event;

/**
 * @ignore
 */
if (!defined('IN_PHPBB'))
{
	exit;
}

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface
{
	var $spoiler_id=0;
	var $spoiler_head_id=0;
	var $bbcode_uid='';

	/** @var \phpbb\template\template */
	protected $template;

	/** @var \phpbb\config\config */
	protected $config;

	/** @var \phpbb\user */
	protected $user;

	public function __construct(\phpbb\template\template $template, \phpbb\config\config $config, \phpbb\user $user)
	{
		$this->template = $template;
		$this->config = $config;
		$this->user = $user;

	}

	static public function getSubscribedEvents()
	{
		return array(
			//подключение языковых файлов
			'core.user_setup_after'							=> 'bb3spoiler_language',

			//вывод переменных спойлера в шаблон
			'core.page_header'		=> 'bb3spoiler_vars',

			//изменение бб-кода спойлера добавленного через адм. раздел /includes/functions_display.php 1058 display_custom_bbcodes()
			'core.display_custom_bbcodes_modify_row'				=> 'bb3spoiler_bbtag',

			//обработка текста для отображения, перед обработкой системных бб-кодов /includes/functions_content.php 460 generate_text_for_display() -> /viewtopic.php 1550
			'core.modify_text_for_display_before'		=> 'bb3spoiler_displaytext_before',

			//обработка текста для создания сообщения, до обработки системных бб-кодов /includes/message_parser.php 1203 parse() -> /posting.php 1008
			'core.message_parser_check_message' => 'bb3spoiler_getuid',

			//изменение бб-кода спойлера для парсинга /includes/message_parser.php 182 bbcode_init()
			'core.modify_bbcode_init' => 'bb3spoiler_init',

			//изменение кэша бб-кода спойлера для парсинга /includes/bbcode.php 408 bbcode_cache_init()
			'core.bbcode_cache_init_end' => 'bb3spoiler_cache_init',

			'core.modify_format_display_text_before' => 'bb3spoiler_preview',

			'core.validate_bbcode_by_extension' => 'bb3spoiler_validate',
			'core.bbcode_second_pass_by_extension' => 'bb3spoiler_second_pass',
		);
	}

	public function bb3spoiler_second_pass($event)
	{
		$params_array=$event['params_array'];
		$return=$this->bbcode_second_pass_spoiler($params_array[0], $params_array[1]);

		$event['return']=$return;
	}

	public function bb3spoiler_validate($event)
	{
		$params_array=$event['params_array'];
		$return=$this->bbcode_spoiler($params_array[0], $params_array[1]);

		$event['return']=$return;
	}

	public function bb3spoiler_preview($event)
	{

		if($event['allow_bbcode'] && $this->config['bb3spoiler_image_spimage'] && strpos($event['text'], '[')!==false)
		{
			$event['text']=preg_replace('#\[img:'.$event['uid'].'\](.*?)\[/img:'.$event['uid'].'\]#', (!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '<a href="$1" rel="prettyPhotoSpoiler[0]">' : '').'<var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>'.(!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '</a>' : ''), $event['text']);

		}
	}

	public function bb3spoiler_init($event)
	{

		$bbcodes=$event['bbcodes'];

		if(isset($bbcodes['spoiler']['bbcode_id']))
		{
			$bbcodes['spoiler'] = array(
				'bbcode_id' => $bbcodes['spoiler']['bbcode_id'],
				'regexp' => array(

					'#\[spoiler(?:="(.*?)")?\](.+)\[/spoiler\]#uise' => "\$this->validate_bbcode_by_extension('\$0', '$this->bbcode_uid')"
				)
			);
			$this->spoiler_id=$bbcodes['spoiler']['bbcode_id'];
		}
		if(isset($bbcodes['spoiler=']['bbcode_id']))
		{
			$bbcodes['spoiler='] = array(
				'bbcode_id' => $bbcodes['spoiler=']['bbcode_id'],
				'regexp' => array(

					'#\[spoiler(?:="(.*?)")?\](.+)\[/spoiler\]#uise' => "\$this->validate_bbcode_by_extension('\$0', '$this->bbcode_uid')"
				)
			);
			$this->spoiler_head_id=$bbcodes['spoiler=']['bbcode_id'];

		}

		if($this->spoiler_id || $this->spoiler_head_id)
		{
			$event['bbcodes']=$bbcodes;
		}
	}

	public function bb3spoiler_cache_init($event)
	{

		$bbcode_cache=$event['bbcode_cache'];

		foreach($bbcode_cache as $k => $v)
		{
			if(isset($v['preg']['!\[spoiler:$uid\](.*?)\[/spoiler:$uid\]!s']))
			{
				$bbcode_cache[$k]['preg']=array(
					'#\[spoiler(?:="(.*?)")?:$uid\]((?!\[spoiler(?:=".*?")?:$uid\]).)?#ise' => "\$this->bbcode_second_pass_by_extension('$1', '$2')"
				);
				$bbcode_cache[$k]['str']=array(
					'[/spoiler:$uid]' => '</div></div>'
				);
				$this->spoiler_id=$k;

			}
			else if(isset($v['preg']['!\[spoiler\="([\p{L}\p{N}\-+,_. ]+)":$uid\](.*?)\[/spoiler:$uid\]!su']))
			{
				$bbcode_cache[$k]['preg']=array(
					'#\[spoiler(?:="(.*?)")?:$uid\]((?!\[spoiler(?:=".*?")?:$uid\]).)?#ise' => "\$this->bbcode_second_pass_by_extension('$1', '$2')"
				);
				$bbcode_cache[$k]['str']=array(
					'[/spoiler:$uid]' => '</div></div>'
				);
				$this->spoiler_head_id=$k;

			}

		}

		if($this->spoiler_id || $this->spoiler_head_id)
		{
			$event['bbcode_cache']=$bbcode_cache;
		}
	}


	public function bb3spoiler_bbtag($event)
	{
		$custom_tags=$event['custom_tags'];

		if($custom_tags['BBCODE_TAG']=='spoiler=')
		{
			$custom_tags['BBCODE_NAME']="'[spoiler=\"{$this->user->lang['BB3SPOILER_HEADER']}\"]', '[/spoiler]'";

			$event['custom_tags']=$custom_tags;
		}


	}

	public function bb3spoiler_displaytext_before($event)
	{
		if($event['uid'] && ($event['flags'] & OPTION_FLAG_BBCODE) && strpos($event['text'], '[')!==false && $this->config['bb3spoiler_image_spimage'])
		{
			$event['text']=preg_replace('#\[img:'.$event['uid'].'\](.*?)\[/img:'.$event['uid'].'\]#', (!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '<a href="$1" rel="prettyPhotoSpoiler[0]">' : '').'<var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>'.(!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '</a>' : ''), $event['text']);

		}
	}

	public function bb3spoiler_language()
	{
		if(!isset($this->user->lang['BB3SPOILER_HEADER']))
		{
			$this->user->add_lang_ext('ppk/bb3spoiler', 'bb3spoiler');
		}
	}

	public function bb3spoiler_vars()
	{

		$this->template->assign_vars(array(
			'SPOILER_IMG_WIDTH' => $this->config['bb3spoiler_img_width'] ? intval($this->config['bb3spoiler_img_width']) : 200,
			'SPOILER_HIDE_POSTIMG' => $this->config['bb3spoiler_hide_postimg'] ? 'true' : 'false',
			'SPOILER_HIDE_SIGIMG' => $this->config['bb3spoiler_hide_sigimg'] ? 'true' : 'false',
			'SPOILER_BANNED_IMGHOSTS' => !empty($this->config['bb3spoiler_banned_imghosts']) ? $this->config['bb3spoiler_banned_imghosts'] : 'false',
			'SPOILER_OPEN_TYPE' => !empty($this->config['bb3spoiler_open_type']) ? intval($this->config['bb3spoiler_open_type']) : 0,
			'SPOILER_PPHOTO' => $this->config['bb3spoiler_pphoto'] ? true : false,
			'SPOILER_PRETTYPHOTO_STYLE' => in_array($this->config['bb3spoiler_ppstyle'], array('pp_default', 'light_rounded', 'dark_rounded', 'light_square', 'dark_square', 'facebook')) ? $this->config['bb3spoiler_ppstyle'] : 'pp_default',

			)
		);
	}

	public function bb3spoiler_getuid($event)
	{

		$this->bbcode_uid=$event['bbcode_uid'];
// 		$bbcode_uid=$event['bbcode_uid'];
// 		$message=$event['message'];
//
// 		Remove spoilers that are nested too deep
// 		if ($this->config['bb3spoiler_max_depth'] > 0)
// 		{
// 			$message=$this->remove_nested_spoilers($this->config['bb3spoiler_max_depth'], $message, $bbcode_uid);
// 		}
//
// 		$event['message']=$message;

	}


	public function bbcode_spoiler($in, $bbcode_uid='')
	{
		$in = str_replace("\r\n", "\n", str_replace('\"', '"', trim($in)));

		if (!$in)
		{
			return '';
		}

		// To let the parser not catch tokens within spoiler_title spoilers we encode them before we start this...
		$in = preg_replace('#spoiler="(.*?)"\]#ie', "'spoiler="' . str_replace(array('[', ']', '\\\"'), array('&#91;', '&#93;', '\"'), '\$1') . '"]'", $in);

		$tok = ']';
		$out = '[';

		$in = substr($in, 1);
		$close_tags = $error_ary = array();
		$buffer = '';

		do
		{
			$pos = strlen($in);
			for ($i = 0, $tok_len = strlen($tok); $i < $tok_len; ++$i)
			{
				$tmp_pos = strpos($in, $tok[$i]);
				if ($tmp_pos !== false && $tmp_pos < $pos)
				{
					$pos = $tmp_pos;
				}
			}

			$buffer .= substr($in, 0, $pos);
			$tok = $in[$pos];
			$in = substr($in, $pos + 1);

			if ($tok == ']')
			{
				if (strtolower($buffer) == '/spoiler' && sizeof($close_tags) && substr($out, -1, 1) == '[')
				{
					// we have found a closing tag
					$out .= array_pop($close_tags) . ']';
					$tok = '[';
					$buffer = '';

					/* Add space at the end of the closing tag if not happened before to allow following urls/smilies to be parsed correctly
					* Do not try to think for the user. :/ Do not parse urls/smilies if there is no space - is the same as with other bbcodes too.
					* Also, we won't have any spaces within $in anyway, only adding up spaces -> #10982
					if (!$in || $in[0] !== ' ')
					{
						$out .= ' ';
					}*/
				}
				else if (preg_match('#^spoiler(?:="(.*?)")?$#is', $buffer, $m) && substr($out, -1, 1) == '[')
				{
					// the buffer holds a valid opening tag
					if ($this->config['bb3spoiler_max_depth'] && sizeof($close_tags) >= $this->config['bb3spoiler_max_depth'])
					{
						if ($this->config['bb3spoiler_max_depth'] == 1)
						{
							//Depth 1 - no nesting is allowed
							$error_ary['spoiler_depth'] = $this->user->lang('BB3SPOILER_NO_NESTING');
						}
						else
						{
							//There are too many nested spoilers
							$error_ary['spoiler_depth'] = sprintf($this->user->lang('BB3SPOILER_DEPTH_EXCEEDED', (int) $this->config['bb3spoiler_max_depth']));
						}

						$out .= $buffer . $tok;
						$tok = '[]';
						$buffer = '';

						continue;
					}

					array_push($close_tags, '/spoiler:' . $bbcode_uid);

					if (isset($m[1]) && $m[1])
					{
						$spoiler_title = str_replace(array('&#91;', '&#93;'), array('[', ']'), $m[1]);
						$spoiler_title = preg_replace('#\[(?!b|i|u|color|url|email|/b|/i|/u|/color|/url|/email)#iU', '&#91;$1', $spoiler_title);

						$end_tags = array();
						$error = false;

						preg_match_all('#\[((?:/)?(?:[a-z]+))#i', $spoiler_title, $tags);
						foreach ($tags[1] as $tag)
						{
							if ($tag[0] != '/')
							{
								$end_tags[] = '/' . $tag;
							}
							else
							{
								$end_tag = array_pop($end_tags);
								$error = ($end_tag != $tag) ? true : false;
							}
						}

						if ($error)
						{
							$spoiler_title = $m[1];
						}

						$out .= 'spoiler="' . $spoiler_title . '":' . $bbcode_uid . ']';
					}
					else
					{
						$out .= 'spoiler:' . $bbcode_uid . ']';
					}

					$tok = '[';
					$buffer = '';
				}
				else if (preg_match('#^spoiler="(.*?)#is', $buffer, $m))
				{
					// the buffer holds an invalid opening tag
					$buffer .= ']';
				}
				else
				{
					$out .= $buffer . $tok;
					$tok = '[]';
					$buffer = '';
				}
			}
			else
			{
/**
*				Old spoiler code working fine, but having errors listed in bug #3572
*
*				$out .= $buffer . $tok;
*				$tok = ($tok == '[') ? ']' : '[]';
*				$buffer = '';
*/

				$out .= $buffer . $tok;

				if ($tok == '[')
				{
					// Search the text for the next tok... if an ending spoiler comes first, then change tok to []
					$pos1 = stripos($in, '[/spoiler');
					// If the token ] comes first, we change it to ]
					$pos2 = strpos($in, ']');
					// If the token [ comes first, we change it to [
					$pos3 = strpos($in, '[');

					if ($pos1 !== false && ($pos2 === false || $pos1 < $pos2) && ($pos3 === false || $pos1 < $pos3))
					{
						$tok = '[]';
					}
					else if ($pos3 !== false && ($pos2 === false || $pos3 < $pos2))
					{
						$tok = '[';
					}
					else
					{
						$tok = ']';
					}
				}
				else
				{
					$tok = '[]';
				}
				$buffer = '';
			}
		}
		while ($in);

		$out .= $buffer;

		if (sizeof($close_tags))
		{
			$out .= '[' . implode('][', $close_tags) . ']';
		}

		if(sizeof($error_ary))
		{
			trigger_error(implode('<br />', $error_ary));
		}

		return $out;
	}

	/**
	* Second parse spoiler tag
	*/
	function bbcode_second_pass_spoiler($title, $spoiler)
	{

		// when using the /e modifier, preg_replace slashes double-spoilers but does not
		// seem to slash anything else
		$spoiler = str_replace('\"', '"', $spoiler);
		$title = str_replace('\"', '"', $title);

		// remove newline at the beginning
		if ($spoiler == "\n")
		{
			$spoiler = '';
		}

		if(!$this->config['bb3spoiler_bbcodes'])
		{
			$uid = '[0-9a-z]{5,}';

			$title = preg_replace("#\[\/?[a-z0-9\*\+\-]+(?:=(?:".*"|[^\]]*))?(?::[a-z])?(\:$uid)\]#", ' ', $title);

			$match = array(
					'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
					'#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
					'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
					'#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
					'#<!\-\- .*? \-\->#s',
					'#<.*?>#s',
				);
			$replace = array('\1', '\1', '\2', '\1', '', '');

			$title = preg_replace($match, $replace, $title);

		}
		$title = htmlspecialchars($title);

		static $spoiler_hardtpl = array();

		if (empty($spoiler_hardtpl))
		{

			$spoiler_hardtpl = array(
				'spoiler_open' => '<div class="sp-wrap"><div class="sp-body" title="$1">',
			);
		}

		$title ? '' : $title=$this->user->lang['BB3SPOILER_HEADER'];

		$spoiler = str_replace('$1', $title, $spoiler_hardtpl['spoiler_open']) . $spoiler;

		return $spoiler;
	}

	/**
	* Remove nested spoilers at given depth in current parsed message
	*/
	/*function remove_nested_spoilers($max_depth, $message, $bbcode_uid)
	{
		// Capture all [spoiler] and [/spoiler] tags
		preg_match_all('(\\[/?spoiler(?:="(.*?)")?:' . $bbcode_uid . '\\])', $message, $matches, PREG_OFFSET_CAPTURE);

		// Iterate over the spoiler tags to mark the ranges that must be removed
		$depth = 0;
		$ranges = array();
		$start_pos = 0;
		foreach ($matches[0] as $match)
		{
			if ($match[0][1] === '/')
			{
				--$depth;
				if ($depth == $max_depth)
				{
					$end_pos = $match[1] + strlen($match[0]);
					$length = $end_pos - $start_pos;
					$ranges[] = array($start_pos, $length);
				}
			}
			else
			{
				++$depth;
				if ($depth == $max_depth + 1)
				{
					$start_pos = $match[1];
				}
			}
		}

		foreach (array_reverse($ranges) as $range)
		{
			list($start_pos, $length) = $range;
			$message = substr_replace($message, '', $start_pos, $length);
		}

		return $message;
	}*/
}
bb3spoiler_1.3.4.1.zip
Вот целиком версия для 3.1.10
(103.37 КБ) 14 скачиваний
Единственное что то похожее там есть вот такие строчки:
$event['text']=preg_replace('#\[img:'.$event['uid'].'\](.*?)\[/img:'.$event['uid'].'\]#', (!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '<a href="$1" rel="prettyPhotoSpoiler[0]">' : '').'<var title="$1" class="postImg" alt="' . $this->user->lang['IMAGE'] . '" />'.$this->user->lang['BB3SPOILER_IMAGE_WOJS'].'</var>'.(!$this->config['bb3spoiler_open_type'] && $this->config['bb3spoiler_ppgallery'] ? '</a>' : ''), $event['text']);
Я пробовал туда добавлять tagert никакого эффекта. У меня вообще то стоит external links и в настройках есть такое:

Использовать «target» атрибут:
Если выключен, будет использован OnClick на JavaScript. Да
Атрибут rel внутрених ссылок:
Атрибут rel внешних ссылок:
Тип target внутрених ссылок:
Тип target внешних ссылок:
class внутренних ссылок:
class внешних ссылок:
Использовать «noindex» для внешних ссылок?: Да

Сообщение добавлено... спустя 2 часа 23 минуты 8 секунд:
Думаю танцы с бубном закончились :ya_hoo_oo:
Нашел в админке настройку:
Вообще стало просто супер!!! Фотки стоят в ряды. Жмешь и открывает в другой вкладке в полную величину но так чтоб вписать в окно браузера!!!
Чуток между картинками еще зазор увеличил - так красивше.
:drinks:
У меня phpbb 3.1.10
#11
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Вставка img через bb код

Сообщение DeaDRoMeO »

Дело в том, что я качал расширение из репозитория, а вы видимо из темы качали, но хорошо что разобрались
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#12
Аватара пользователя
Олега
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 191
Стаж: 7 лет 1 месяц
Контактная информация:

Вставка img через bb код

Сообщение Олега »

Ну я всегда если что скачиваю то сразу ищу последнюю версию...
У меня phpbb 3.1.10
#13
Ответить