siv1987 2628 06/11/12 08:38 Но это явно бред. И не понятно, где мне указать поле, в которое я хочу дописать свое $data['ololo']?Бред что? Вам знаком принцип работы метода инсерта?.. DB->do_insert( 'table', array $data_insert ); Документация это конечно хорошо, особенно когда она на английском и мы ничего не понимаем, но ее надо совмещать с практикой, иначе она так и останется сухой непонятной теорией. Вы пробовали хотябы самый простой хук создать? <?php class sexy_hook { public function handleData($data) { $data['ololo'] = 'string'; exit('Output message'); return $data; } } ?> Поделиться сообщением Ссылка на сообщение
stud 0 06/11/12 10:16 Оно работает, оно работает!!!Спасибо, разобрался) Поделиться сообщением Ссылка на сообщение
stud 0 06/15/12 13:36 У меня еще 1 вопрос по API, думаю, можно тут продолжить.Нужно в текстовый редактор вывести $что-то.Делаю по рецепту: $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' ); $editor = new $classToLoad(); $html = $editor->show( 'Post', array(), $что-то ); $что-то не выводится никак, что я только не делал. В чем может быть проблема? Ребята, мои извинения, я овощь)Уже все работает. Удалите этот пост, если что, только не баньте меня. Поделиться сообщением Ссылка на сообщение
stud 0 07/02/12 11:21 Кто может сказать, где хранить скины для паблик-стороны приложения? Что б не было мешанины в коде секций.Структура приложения такая, что скины для админ-стороны нужно хранить в skin_cp/ А для паблика не предусмотрена соответствующая папка.Разработчики говорят, в папке кэш хранить. Но мне в этой теме сказали, вообще, забыть про папку кэш и ничего не хранить в ней. И второй вопрос. Если мне нужно в хуке шаблона добавить что-то свое в цсс файл.Вот это было бы идеальным вариантом, но на сколько я понял,в хуке шаблона так не прокатит.$this->registry->output->addToDocumentHead( 'inlinecss', "#aga{ display: none; }" );Пробую то же самое сделать через тег шаблона. Пишу в шаблоне:{parse addtohead="#aga{ display: none; }" type="inlinecss"}Но это выводится просто как текст.Как мне добавить что-то свое в цсс? Или это можно только вручную прописывать в нужном .цсс через админку? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/02/12 12:29 Чем вам встроенная система скинов не нравится? Создайте группу шаблонов и в ней все шаблоны, что нужны, прямо через админку, все нужные кнопки для этого есть. Затем экспортируйте их в xml, если нужна переносимость, и распространяйте в составе приложения. В итоге они будут храниться в базе и кешироваться в папке кеша :) Посмотрите как другие официальные и сторонние компоненты сделаны - все содержат XML-файлы шаблонов, что при установке импортируются в базу. И хуки, кстати, так же могут содержать шаблоны. Поделиться сообщением Ссылка на сообщение
stud 0 07/02/12 12:48 Ок, я создал свой шаблон через админку, но как мне его подключить в хук или приложение?$this->registry->output->addContent( $this->registry->output->getTemplate('ololo') );Уже не работает.А, стоп, сейчас пойму.Да, точно, все приложения содержат xml-файлы с шаблонами. По идее, эти xml-файлы должны обновляться при редактировании шаблонов из админки. Но не могу понять, как экспортировать нужные мне шаблоны в xml-файлы.Export HTML Templates Into Application Directories ничего не дало. Так и не понял, куда и что именно оно экспортировало. Поделиться сообщением Ссылка на сообщение
siv1987 2628 07/02/12 13:28 $this->registry->output->getTemplate('группа_шаблона')->имя_шаблона( [$vars] ); Поделиться сообщением Ссылка на сообщение
stud 0 08/03/12 08:24 Маленький вопрос по Skin Overloader:Я хочу расширить данные передаваемые в скин списка тем на форуме. Мне нужно знать как называется класс, который отвечает за вывод данного шаблона.Я лезу в /cache/skin_cache/cacheid_1/ и просматриваю, какой из шаблонов может отвечать за вывод таблицы с списком топиков.skin_topic.php отвечает за вывод одного конкретного топика. Не то, что нужно.skin_forum.php - в нем не нашел "<table id="forum_table"...", значит он тоже отпадает.Какой файл отвечает за вывод таблицы с списком топиков? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 08/03/12 11:55 Я лезу в /cache/skin_cache/cacheid_1/ и просматриваю, какой из шаблонов может отвечать за вывод таблицы с списком топиков.Опять 25. Сколько раз надо повторять - нечего там искать что-то. Ищется все совершенно легко и просто в админке, через поиск по шаблонам. Если бы вы использовали поиск там, уже бы нашли, что вам нужен шаблон Forum View (skin_forum) > forumIndexTemplate. Смотрим его переменные:$forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1 Составляем хук, перегружающий шаблон skin_forum:class myclass extends (~extends~) { function forumIndexTemplate ($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1) { //$forum_data['ololo'] = 'lolol'; return parent::forumIndexTemplate($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum); } } Проблема решена. Заметьте, все это ни разу не открывая папку /cache. В эту папку вообще лазают только бандерлоги (с), если что. Поделиться сообщением Ссылка на сообщение
stud 0 08/03/12 16:31 Мне стыдно за такой нубский вопрос, но...как в такой конструкции пользоваться бд?class myclass extends skin_forum(~id~) { function forumIndexTemplate ($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1) { //$forum_data['ololo'] = 'lolol'; return parent::forumIndexTemplate($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum); } } В конструктор родительского класса передают ipsRegistry $registry, т.е. им уже можно пользоваться, на сколько я понимаю. Но$this->registry = $registry; $this->DB = $this->registry->DB();Call to a member function DB() on a non-object Поделиться сообщением Ссылка на сообщение
siv1987 2628 08/03/12 19:04 попробуйте без $this->registry = $registry;или $this->registry = ipsRegistry::instance(); $this->DB = $this->registry->DB(); Поделиться сообщением Ссылка на сообщение
stud 0 08/04/12 06:51 Все равно, в конструкции class myclass extends skin_forum(~id~) { protected $registry; protected $DB; public function forumIndexTemplate($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1) { $this->registry = ipsRegistry::instance(); $this->DB = $this->registry->DB(); $new = $this->DB->build( array( 'select' => 'tid, title, starter_name, start_date, title_seo, on_main', 'from' => 'topics', 'where' => 'on_main = 1' )); ... из бд всегда приходит null, как только не пробовал Поделиться сообщением Ссылка на сообщение
Ritsuka 540 08/04/12 12:29 Класс набора заблонов расширяет класс skinMaster, который уже имеет в своем составе все необходимое: /** * Skin master class. Allows shared methods between skins */ class skinMaster { public function __construct( ipsRegistry $registry ) { /* Make object */ $this->registry = $registry; $this->DB = $this->registry->DB(); $this->settings =& $this->registry->fetchSettings(); $this->request =& $this->registry->fetchRequest(); $this->lang = $this->registry->getClass('class_localization'); $this->member = $this->registry->member(); $this->memberData =& $this->registry->member()->fetchMemberData(); $this->cache = $this->registry->cache(); $this->caches =& $this->registry->cache()->fetchCaches(); } Т.е. вы можете сразу же использовать все вышеперечисленные классы и массивы напрямую из общего пространства класса:class myclass extends skin_forum(~id~) { function forumIndexTemplate ($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1) { $this->DB->build( array( 'select' => '*', 'from' => 'forums' ) ); $this->DB->execute(); while( $row = $this->DB->fetch() ) { $forums[] = $row; } echo $this->settings['board_name']; print_r($this->memberData); print_r($forums); die; return parent::forumIndexTemplate($forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum); } } Вы никогда не учились и не умеете в PHP, правда? :) Поделиться сообщением Ссылка на сообщение
stud 0 08/04/12 13:26 Как же я затупил. У меня ошибка в самом запросе была, только сейчас ее увидел. И да, я совсем забыл про execute() Вы никогда не училисьВы абсолютно правы, я никогда не учился. Я даже школу бросил в 5 классе. Я ненавидел свою школьную учительницу по математике. Когда я спрашивал ее что-то, что не понимал, она всегда говорила мне: "вот смотри, я знаю, а ты не знаешь, ты сейчас чувствуешь мое превосходство, ведь чувствуешь?". Мне казалось, что она так повышает свое чсв. Замечательный человек, бездонный в своем профессионализме. и не умеете в PHP, правда?И в PHP я совершенно не умею. Я просто мимо проходил. Поделиться сообщением Ссылка на сообщение
Ritsuka 540 08/04/12 14:06 Мне казалось, что она так повышает свое чсв.Нет, это такая советская система образования была - через возвышение одних и принижение других. И в PHP я совершенно не умею. Я просто мимо проходил. Как бы вам так сказать... Временами у меня бывают короткие отрезки свободного времени, и я не ленюсь подробно расписывать вам "PHP для нубов". Но вообще вот так не зная языка браться за подобные задачи - несколько излишне самонадеянно. Вам бы основы PHP сначала подучить. Иначе получается, что вы задаете на форуме IPB вопросы по основам PHP, что, согласитесь, несколько не адресно, а значит, мало кому здесь интересно. Поделиться сообщением Ссылка на сообщение