Hook. Помогите с API - Страница 3 - Дизайн и модификация Invision Power Board

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

 

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

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

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

api hooks

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

Hook. Помогите с API

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 05-Октябрь 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 05 Октябрь 2012 - 00:51

Просмотреть сообщениеsiv1987 07 Июнь 2012 - 20:33 сказал(а):

Template Hook - вывод в шаблоне по меткам, которые используются в конструкциях if, foreach. <if test="metka:|:condition"></if>. А вот если поблизости нет никакх меток, либо проявляем смекалку и вставляем в шаблоне свою метку (здесь правда тоже не все так просто, в списке появляются только метки "мастер шаблона").

Есть готовый модуль с хуком. Модуль отображаеться на главной форума, я хочу этот же модуль разместить на главной Unreal Portal. Могу ли я просто в настройках хука "Добавить файл" к нужному шаблону?
Но понятное дело что там нет меток:
-IMG-

Добавил метку:
<if test="condition">content</if>

По мануалу: https://www.invision...late-hooks-r105
-IMG-

Но результата 0, хук не добавляеться к шаблону... Не подскажете в чем проблема?
0

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

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

Отправлено 05 Октябрь 2012 - 01:20

1. Во первых, лист меток берется из мастер-шаблона. Поэтому в списке выборе меток, файрбугом или оперой драгонфлай, добавляем в селекте свою метку http://s005.radikal....b250ffa4c7e.png
2. Во вторых, выше я указал формат условия с меткой - <if test="metka:|:condition"></if> - <if test="myHookPoint:|:1==1"></if>

Что же насчет продублировать файл с выводом в другом шаблоне - хз, может и будет работать, но точно не скажу, так как ни разу этого не делал.
1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 05-Октябрь 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 05 Октябрь 2012 - 18:19

При добавлении значения:
 <if test="myHookPoint:|:1=1"></if>

Страница не грузиться...
Можете немного "по нубски" разтолковать? :)
0

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

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

Отправлено 05 Октябрь 2012 - 19:20

Опечатка. Конечно, правильно так <if test="myHookPoint:|:1==1"></if>
0

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 05-Октябрь 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 07 Октябрь 2012 - 01:38

Просмотреть сообщениеsiv1987 05 Октябрь 2012 - 19:20 сказал(а):

Опечатка. конечно, правильно так <if test="myHookPoint:|:1==1"></if>

Да даже беру, к приемру, код со своего шаблона GlobalTamplate:
				<if test="hasHeaderAd:|:$items['adHeaderCode']">
					<div class='ipsAd'>{$items['adHeaderCode']}</div>
				</if>

В списке хука этого шаблона есть точка hasHeaderAd. Добавляю этот же код в другой шаблон - точки нет! Как понять эту систему? :)
0

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

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

Отправлено 07 Октябрь 2012 - 12:51

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

Добавляю этот же код в другой шаблон - точки нет! Как понять эту систему?


freeman, как она может быть в другом в шаблоне если ее там нету? Перечитайте еще раз пост выше, метки в списке берутся из мастер шаблона, а то что вы свои кастомные добавляете, неважно какие и откуда, они не выводится.
0

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 05-Октябрь 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 07 Октябрь 2012 - 13:59

Просмотреть сообщениеsiv1987 07 Октябрь 2012 - 12:51 сказал(а):

freeman, как она может быть в другом в шаблоне если ее там нету? Перечитайте еще раз пост выше, метки в списке берутся из мастер шаблона, а то что вы свои кастомные добавляете, неважно какие и откуда, они не выводится.

Все понял, не подскажете где почитать инфу о мастер-шаблонах. Поиск выдал результаты, но не те что нужно.
0

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

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

Отправлено 07 Октябрь 2012 - 15:11

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

не подскажете где почитать инфу о мастер-шаблонах.

Зачем? Как в два клика добавить метку в списке я показал выше.

https://www.invision...opers-mode-r147
в бд это скин с template_master_key root или template_set_id 0 http://ipbnet.ru/top...irovanie-hukov/
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 82
  • Регистрация: 06-Апрель 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 31 Октябрь 2012 - 13:04

Не буду плодить тем, так как вопросы у меня очень нубские специфические, никому они больше не будут полезны, поэтому продолжу свою старую тему.
Мне нужно просто инкрементить числовое значение topics.
По логике должно быть так
$this->DB->update( 'forums', array( 'topics' => 'topics + 1' ), 'id=100500' );

Но что-то оно ничего не инкрементит)
Как мне быть?
0

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

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

Отправлено 31 Октябрь 2012 - 13:28

Обновление с полями таблицы делается еще с двумя параметрами

$this->DB->update( 'forums', 'topics=topics+1', 'id=100500', true, true );


	 * @param	string		 Table name
	 * @param	mixed		 Array of field => values, or pre-formatted "SET" clause
	 * @param	string		 [Optional] Where clause
	 * @param	boolean		[Optional] Run on shutdown
	 * @param	boolean		[Optional] $set is already pre-formatted

1

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 82
  • Регистрация: 06-Апрель 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 31 Октябрь 2012 - 13:52

Хм, что-то все-равно не инкрементит.
Только строго получается задать кол-во топиков. Так обновляет:
$this->DB->update( 'forums', 'topics=22', 'id=100500');



$this->DB->update( 'forums', 'topics=topics+1', 'id=100500', true, true );

Так не прибавляет 1 к topics

Но все-равно, спасибо за наводку
0

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

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

Отправлено 31 Октябрь 2012 - 14:07

Запрос выполняется в shutdown режиме, то есть после выполнения скрипта. Обновление вы увидите при следующем запуске скрипта. Либо поставьте третий параметр в false.
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 82
  • Регистрация: 06-Апрель 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 31 Октябрь 2012 - 14:39

Эмм, что-то никак, вообще никак.
Что-то ихний апи не очень упрощает взаимодействие с бд. Действие, которое делается простым запросом меньше чем за минуту (UPDETE forums SET topics = topics + 1 WHERE id = 100500) невозмжно реализовать через ихний апи.
Ну или у меня очень кривые руки)

Цитата

Либо поставьте третий параметр в false

Дык, третий параметр - это ж WHERE...
Если вы про четвертый параметр - то если его в false, а пятый в труе - то так нельзя.

Из документации:

Цитата

or it can be a specific preformatted set clause to pass to the query ( id=id+1 ). If you pass a pre-formatted clause to use in the query, be sure to set the last parameter, $preformatted, to true

Но ведь я так и делаю, я выставляю последний парамаетр в труе ($preformatted который)
0

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

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

Отправлено 31 Октябрь 2012 - 14:52

Только что проверил, запрос отлично работает как и в shutdown так и в нормальном режиме.

Цитата

Что-то ихний апи не очень упрощает взаимодействие с бд. Действие, которое делается простым запросом меньше чем за минуту

Это вам так кажется на простом запросе (в котором по сложности почти никакой разницы нету), а попробуйте вручную из 15 полей составить, предварительно каждое поле закэкранировав.

Цитата

Дык, третий параметр - это ж WHERE...

Пардон, четвертый.

Цитата

Если вы про четвертый параметр - то если его в false, а пятый в труе - то так нельзя.

Почему нельзя? Можно.

Цитата

Но ведь я так и делаю, я выставляю последний парамаетр в труе

Значит запрос составили неправильно. Смотрите внимательно что обновляете, и на условие.
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 82
  • Регистрация: 06-Апрель 12
  • Репутация: 0
  • IPB version:3.3.x
 

Отправлено 31 Октябрь 2012 - 15:08

Цитата

Почему нельзя? Можно.

Дык "Возникла ошибка при работе с базой данных". Какая именно ошибка, апи мне не говорит

Запрос пишу такой:
$this->DB->update( 'forums', array( 'topics' => 'topics+1' ), "id=16", true, true);

Если убрать два последних труе и задать обновление топиков жестко (но мне так не надо, это чисто для теста, работает ли запрос), т.е. так:
$this->DB->update( 'forums', array( 'topics' => '22' ), "id=16");

То все работает, значение в topics обновляется.

Но какие тут могут быть проблемы?
1) 'forums' - у меня в бд 100% есть такая таблица. Хотя все действия происходят с таблицей ibf_forums, как я понял (там вообще у них всё как-то запутано. Всех таблиц по 2 экземпляра. Одни с префиксом ibf_ вторые без. Если в запросах через ихний апи указывать имена таблиц с префиксом - то выскакивает ошибка, короче, мистика, непонятно зачем это, но суть в том, что в этом аргументе у меня все правильно (ведь правильно ж?)

2) array( 'topics' => 'topics+1' ) - тут не может быть ошибки, поле topics у меня есть в ibf_forums

3)id=16 - у меня 100% в таблице ibf_forums есть запись с id равным 16

4)ну и 2 труе в конце, хотя...мне shutdown режим абсолютно не нужен. Как я понял, по документации последний, 5 аргумент обязательно должен быть тру, для инкремента значения. Но если 4 параметр в фалсе, а 5 в труе - то "Возникла ошибка при работе с базой данных"
0

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


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


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

  

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
При копировании материалов с сайта
прямая ссылка на источник обязательна