Global New Topic Button (Доработка) - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Global New Topic Button (Доработка)

#1 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 20 Август 2016 - 19:35

Здравствуйте.
Есть хук, добавляющий кнопку открытия новой темы на главную страницу. У него есть функция - при нажатии на эту кнопку гостем, всплывает браузерное окно с подсказкой.

Вопрос такой: можно ли это всплывающее окно заменить на нормальное форумное модальное или popup-сверстанное окно?

За всплывающую подсказку, насколько понял, отвечает строка:

$this->returnJsonArray( array( 'error' => $this->lang->words['hookNewTopic_no_forums'] ) );


Вот сам хук: Вложение  globalNewTopicButton.xml (17,44К)
Количество загрузок: 4
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 21 Август 2016 - 11:24

Это строчка отвечает за возврат ошибки из ajax запроса. За "браузерное окно", или скорее меню ипб, отвечает js код:

$('global_new_topic').addClassName('ipbmenu');
$('ipboard_body').insert( t.responseJSON['html'] );

var _newMenu = new ipb.Menu( $('global_new_topic'), $('global_new_topic_menucontent') );
_newMenu.doOpen();

В виде popup окна это будет выглядеть примерно так

new ipb.Popup( 'new_topic_popup', {
					type: 'pane',
					initial: t.responseJSON['html'],
					hideAtStart: false,
					w: '600px',
					h: 250
				});

Дальше окно дорабатывайте сами.
1

#3 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 21 Август 2016 - 12:47

Спасибо! Но после замены кода, когда гость нажимает на вкладку "Создать тему", все равно вылазит браузерное окно... Его можно как-нибудь тоже на popup-заменить?

Вот такое вылазит: Вложение  Безымянный.png (7,98К)
Количество загрузок: 6
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 21 Август 2016 - 12:58

alert( t.responseJSON['error'] ) заменить на модальное окно, где контент t.responseJSON['error'].
1

#5 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 21 Август 2016 - 13:03

Попробую... Аналогично вышеприведенному коду? Кстати, заметил баг: при закрытии popup-окна оно повторно не открывается, только после перезагрузки страницы. Можно ли пофиксить?

Upd. Пофиксил:

new ipb.Popup( 'new_topic_popup', {
                    type: 'modal',
                    modal: true,
                    initial: t.responseJSON['error'],
                    hideAtStart: false,
                    w: '600px',
                    h: 250
                });

Не подскажете, возможно ли заменить это окно на type: 'balloon'?

Сообщение изменено: Strategius (21 Август 2016 - 13:16)

0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 21 Август 2016 - 15:06

Просмотреть сообщениеStrategius сказал(а):

Не подскажете, возможно ли заменить это окно на type: 'balloon'?

Да, можно задать любой тип.
0

#7 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 21 Август 2016 - 15:33

А как, не подскажете? Использую такой код, но не работает...

new ipb.Popup( 'new_topic_popup', {
                    type: 'balloon',
                    stem: true,
                    attach: { target: $('new_topic_popup'), position: 'auto' },
                    initial: t.responseJSON['error'],
                    hideAtStart: false,
                    w: '600px',
                    h: 250
                });

Сообщение изменено: Strategius (21 Август 2016 - 15:36)

0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 21 Август 2016 - 16:19

Аттач не тот , это элемент к которому прикрепляется окно
attach: { target: $('global_new_topic'), position: 'auto' },
0

#9 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 21 Август 2016 - 16:27

Не пашет... Всплывает обычное модальное окно и не открывается при повторном открытии...

Код такой:

new ipb.Popup( 'new_topic_popup', {
                    type: 'balloon',
                    stem: true,
                    attach: { target: $('global_new_topic'), position: 'auto' },
                    initial: t.responseJSON['error'],
                    hideAtStart: false,
                    w: '600px',
                    h: 250
                });

Сообщение изменено: Strategius (21 Август 2016 - 16:28)

0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 21 Август 2016 - 17:41

Хм, должно работать. С повторным открытием есть такая проблема.
0

#11 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 21 Август 2016 - 18:01

Почему-то не работает... А не знаете, можно ли добавить свой стиль конкретному всплывающему окну? Т.е. прописать class="" и style="" в скрипт? Нужно поменять расположение кнопки закрытия в одном окне.
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 22 Август 2016 - 12:22

Просмотреть сообщениеStrategius сказал(а):

Почему-то не работает.

balloon не хочет работать если аттач находится на том же элементе на котором висит клик евент. Как вариант повесить на родительский элемент

attach: { target: $('global_new_topic').parentNode, position: 'auto' },


Просмотреть сообщениеStrategius сказал(а):

можно ли добавить свой стиль конкретному всплывающему окну?

Можно. первый аргумент это ид окна с добавлением в конце '_popup', либо можно в объекте опции указать класс через classname.
0

#13 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 300
  • Регистрация: 27-Март 16
  • Репутация: 19
  • IPB version:3.4.x
 

Отправлено 22 Август 2016 - 17:20

Вроде работает с этим аттачем, но ошибка с повторным открытием осталась... Увидел Ваше решение отсюда: http://ipbskins.ru/f...dpost__p__95303

Сделал по образцу:

var popup;
$('popupP').observe('mouseover', function(event) {
    var row = event.findElement('a.blclass');
    if(row){
        popup = new ipb.Popup('popup', {
                    type: 'balloon',
                    stem: true,
                    attach: { target: $('global_new_topic').parentNode, position: 'auto' },
                    hideAtStart: false,
                    initial: t.responseJSON['html'],
                    w: '600px',
                    h: 750
        });
    }
});
$('popupP').observe('mouseout', function(event) {
    var row = event.findElement('a.blclass');
    if(row){
        if(popup){
            popup.kill();
            popup = false;
        }
    }
});


Но окно почему-то вообще не открывается - ни впервые, ни повторно... в чем тут проблема, я понять не могу? Для гостей окно повторно открывается (initial: t.responseJSON['error'],), а для пользователей (initial: t.responseJSON['html'],) вообще ни в какую... Как пофиксить, не подскажете?

Сообщение изменено: Strategius (22 Август 2016 - 17:22)

0

#14 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 22 Август 2016 - 20:02

Его надо адаптировать под конкретный случай учитывая все ид элементов. В коде выше я этого не вижу, он просто тупо скопирован. Кроме того он для несколько элементов с срабатыванием при наведение.
0

#15 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 088
  • IPB version:3.1.x
 

Отправлено 22 Август 2016 - 22:55

		document.observe("dom:loaded", function()
		{
			$('global_new_topic').observe('click', function(e)
			{
				Event.stop(e);
				if ( !$('new_topic_popup') )
				{
					var url = ipb.vars['base_url'] + 'app=forums&module=ajax&section=forums&do=fetchNewTopicForums';
					
					new Ajax.Request
					(
						url,
						{
							method: 'post',
							evalJSON: 'force',
							parameters: {
								secure_key: ipb.vars['secure_hash']
							},
							onSuccess: function(t)
							{
								var popup = new ipb.Popup( 'new_topic',
								{
									type: 'balloon',
									stem: true,
									attach: {target: $('global_new_topic').parentNode, position: 'auto'},
									initial: t.responseJSON['error'] ? t.responseJSON['error'] : t.responseJSON['html'],
									hideAtStart: false,
									w: '600px',
									h: 250
								});
								popup.wrapper.style.left = parseInt(popup.wrapper.style.left)-35+'px';
							}
						}
					);
				}
				else
				{
					$('new_topic_popup').show();
				}
			});
		});

1

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна