freeman 0 10/04/12 21:52 Template Hook - вывод в шаблоне по меткам, которые используются в конструкциях if, foreach. <if test="metka:|:condition"></if>. А вот если поблизости нет никакх меток, либо проявляем смекалку и вставляем в шаблоне свою метку (здесь правда тоже не все так просто, в списке появляются только метки "мастер шаблона").Есть готовый модуль с хуком. Модуль отображаеться на главной форума, я хочу этот же модуль разместить на главной Unreal Portal. Могу ли я просто в настройках хука "Добавить файл" к нужному шаблону?Но понятное дело что там нет меток: Добавил метку:<if test="condition">content</if>По мануалу: https://www.invisionpower.com/support/guides/_/advanced-and-developers/hooks/template-hooks-r105 Но результата 0, хук не добавляеться к шаблону... Не подскажете в чем проблема? Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/04/12 22:21 1. Во первых, лист меток берется из мастер-шаблона. Поэтому в списке выборе меток, файрбугом или оперой драгонфлай, добавляем в селекте свою метку http://s005.radikal.ru/i209/1210/f2/2b250ffa4c7e.png2. Во вторых, выше я указал формат условия с меткой - - Что же насчет продублировать файл с выводом в другом шаблоне - хз, может и будет работать, но точно не скажу, так как ни разу этого не делал. 1 Поделиться сообщением Ссылка на сообщение
freeman 0 10/05/12 15:20 При добавлении значения: <if test="myHookPoint:|:1=1"></if>Страница не грузиться... Можете немного "по нубски" разтолковать? :) Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/05/12 16:21 Опечатка. Конечно, правильно так Поделиться сообщением Ссылка на сообщение
freeman 0 10/06/12 22:39 Опечатка. конечно, правильно так <if test="myHookPoint:|:1==1"></if>Да даже беру, к приемру, код со своего шаблона GlobalTamplate: <if test="hasHeaderAd:|:$items['adHeaderCode']"> <div class='ipsAd'>{$items['adHeaderCode']}</div> </if>В списке хука этого шаблона есть точка hasHeaderAd. Добавляю этот же код в другой шаблон - точки нет! Как понять эту систему? :) Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/07/12 09:52 Добавляю этот же код в другой шаблон - точки нет! Как понять эту систему? @freeman, как она может быть в другом в шаблоне если ее там нету? Перечитайте еще раз пост выше, метки в списке берутся из мастер шаблона, а то что вы свои кастомные добавляете, неважно какие и откуда, они не выводится. Поделиться сообщением Ссылка на сообщение
freeman 0 10/07/12 11:00 @freeman, как она может быть в другом в шаблоне если ее там нету? Перечитайте еще раз пост выше, метки в списке берутся из мастер шаблона, а то что вы свои кастомные добавляете, неважно какие и откуда, они не выводится.Все понял, не подскажете где почитать инфу о мастер-шаблонах. Поиск выдал результаты, но не те что нужно. Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/07/12 12:12 не подскажете где почитать инфу о мастер-шаблонах.Зачем? Как в два клика добавить метку в списке я показал выше. https://www.invisionpower.com/support/guides/_/advanced-and-developers/miscellaneous/developers-mode-r147в бд это скин с template_master_key root или template_set_id 0 http://ipbnet.ru/topic/296-pozicionirovanie-hukov/ Поделиться сообщением Ссылка на сообщение
stud 0 10/31/12 10:05 Не буду плодить тем, так как вопросы у меня очень нубские специфические, никому они больше не будут полезны, поэтому продолжу свою старую тему.Мне нужно просто инкрементить числовое значение topics.По логике должно быть так$this->DB->update( 'forums', array( 'topics' => 'topics + 1' ), 'id=100500' );Но что-то оно ничего не инкрементит)Как мне быть? Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/31/12 10:29 Обновление с полями таблицы делается еще с двумя параметрами $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 Поделиться сообщением Ссылка на сообщение
stud 0 10/31/12 10:53 Хм, что-то все-равно не инкрементит.Только строго получается задать кол-во топиков. Так обновляет:$this->DB->update( 'forums', 'topics=22', 'id=100500'); $this->DB->update( 'forums', 'topics=topics+1', 'id=100500', true, true );Так не прибавляет 1 к topics Но все-равно, спасибо за наводку Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/31/12 11:08 Запрос выполняется в shutdown режиме, то есть после выполнения скрипта. Обновление вы увидите при следующем запуске скрипта. Либо поставьте третий параметр в false. Поделиться сообщением Ссылка на сообщение
stud 0 10/31/12 11:40 Эмм, что-то никак, вообще никак.Что-то ихний апи не очень упрощает взаимодействие с бд. Действие, которое делается простым запросом меньше чем за минуту (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 который) Поделиться сообщением Ссылка на сообщение
siv1987 2628 10/31/12 11:53 Только что проверил, запрос отлично работает как и в shutdown так и в нормальном режиме. Что-то ихний апи не очень упрощает взаимодействие с бд. Действие, которое делается простым запросом меньше чем за минутуЭто вам так кажется на простом запросе (в котором по сложности почти никакой разницы нету), а попробуйте вручную из 15 полей составить, предварительно каждое поле закэкранировав. Дык, третий параметр - это ж WHERE...Пардон, четвертый. Если вы про четвертый параметр - то если его в false, а пятый в труе - то так нельзя.Почему нельзя? Можно. Но ведь я так и делаю, я выставляю последний парамаетр в труеЗначит запрос составили неправильно. Смотрите внимательно что обновляете, и на условие. Поделиться сообщением Ссылка на сообщение
stud 0 10/31/12 12:09 Почему нельзя? Можно.Дык "Возникла ошибка при работе с базой данных". Какая именно ошибка, апи мне не говорит Запрос пишу такой:$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 в труе - то "Возникла ошибка при работе с базой данных" Поделиться сообщением Ссылка на сообщение