101 (17.05.2009 23:39 отредактировано Crazy_LionHeart)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

knyshow пишет:
//=======================================================
// обновление счетчика постов пользователей при удалении любого сообщения
//=======================================================
        $result = $forum_db->query("UPDATE users b, (SELECT poster_id, count(id) AS kol FROM posts GROUP BY poster_id) a SET b.num_posts = a.kol WHERE b.id = a.poster_id");
//=======================================================

Под билдер вряд ли получится, бо запрос сложный. А вот в вашем запросе ошибка. У меня сработала следующая конструкция:

$result = $forum_db->query('UPDATE '.$forum_db->prefix.'users SET num_posts = t1.kol FROM (SELECT poster_id, count(poster_id) as kol FROM '.$forum_db->prefix.'posts INNER JOIN '.$forum_db->prefix.'users ON ('.$forum_db->prefix.'users.id = '.$forum_db->prefix.'posts.poster_id) GROUP BY poster_id) as t1 WHERE '.$forum_db->prefix.'users.id = t1.poster_id');

Сайт Crazy_LionHeart

Поделиться

102 (18.05.2009 04:17 отредактировано knyshow)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

А вот в вашем запросе ошибка

Мой запрос работает на форумах, не использующих префикc таблиц.
в идеале и без билдера выглядит следующим образом:

//=======================================================
// обновление счетчика постов пользователей при удалении сообщения
//=======================================================
                $result = $forum_db->query("UPDATE " . $forum_db->prefix . "users b, (SELECT poster_id, count(id) AS kol FROM " . $forum_db->prefix . "posts GROUP BY poster_id) a SET b.num_posts = a.kol WHERE b.id = a.poster_id");
//=======================================================

Поделиться

103 (18.05.2009 05:14 отредактировано Crazy_LionHeart)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Я вообще-то не про префикс говорил. UPDATE выполняется в контексте одной таблицы, у вас указано как минимум две. Так что ваш запрос not SQL-compilant, хотя на вашем драйвере и работает.

Ошибка SQL:

ERROR:  syntax error at or near "b" at character 20

Сайт Crazy_LionHeart

Поделиться

104

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Я не думаю, что пересчет сообщений ( count(id) ) оправдан. Лучше, на мой взгляд, управлять значением num_posts непосредственно отнимая от него количество удаленных сообщений.

Сайт hcs

Поделиться

105

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

knyshow пишет:
А вот в вашем запросе ошибка

Мой запрос работает на форумах, не использующих префикc таблиц.
в идеале и без билдера выглядит следующим образом:

//=======================================================
// обновление счетчика постов пользователей при удалении сообщения
//=======================================================
                $result = $forum_db->query("UPDATE " . $forum_db->prefix . "users b, (SELECT poster_id, count(id) AS kol FROM " . $forum_db->prefix . "posts GROUP BY poster_id) a SET b.num_posts = a.kol WHERE b.id = a.poster_id");
//=======================================================

Вот а вот это норм работает спс... roll

Сайт flashcat

Поделиться

106

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

hcs пишет:

Я не думаю, что пересчет сообщений ( count(id) ) оправдан. Лучше, на мой взгляд, управлять значением num_posts непосредственно отнимая от него количество удаленных сообщений.

Этот подход оправдан в тех случаях когда чистка делается не только через интерфейс, но и через удаление сообщений из базы.

Сайт Crazy_LionHeart

Поделиться

107

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

а где кнопка пересчитать кол-во сообщений??? после добавления данного хука

Добавлено спустя 2 минуты 59 секунд:

разобрался...

Добавлено спустя 3 минуты 35 секунд:

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

Сайт Pminaeff

Поделиться

108

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Pminaeff пишет:

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

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

Добавлено спустя 25 минут 36 секунд:

Если нужно решение без пересчёта количества всех сообщений:
Решение: update_single_num_posts
Хук: fn_qr_get_topic_lastposts_info

/* Пересчёт количества сообщений при удалении через форум! */
$result = 'UPDATE '. $forum_db->prefix .'users SET num_posts = num_posts - 1 FROM (SELECT poster_id FROM '. $forum_db->prefix .'posts WHERE id  = '. $post_id  .') as t1 WHERE  id = t1.poster_id'

Используется этот хук, так как он срабатывает после проверки на существование данного сообщения в базе.

Сайт Crazy_LionHeart

Поделиться

109

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

knyshow пишет:
А вот в вашем запросе ошибка

Мой запрос работает на форумах, не использующих префикc таблиц.
в идеале и без билдера выглядит следующим образом:

//=======================================================
// обновление счетчика постов пользователей при удалении сообщения
//=======================================================
                $result = $forum_db->query("UPDATE " . $forum_db->prefix . "users b, (SELECT poster_id, count(id) AS kol FROM " . $forum_db->prefix . "posts GROUP BY poster_id) a SET b.num_posts = a.kol WHERE b.id = a.poster_id");
//=======================================================

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


А вообще, хорошая темка. Для новичка все предельно понятно.

Добавлено спустя 22 минуты 37 секунд:

knyshow пишет:

решение - generate_country_flag_icon_from_ip
хук - vt_row_pre_post_contacts_merge

Импортировал таблицы в БД, решение с хуком добавил...
Но пишет следующее:

An error was encountered

The error occurred on line 88 in /home/u47118/j-teenru/www/forum/viewtopic.php(412) : eval()'d code

Database reported: Table 'b47118_0.new_geo_ip' doesn't exist (Errno: 1146).

Поделиться

110

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Думаю не один я ищу решение, но пока не нашел, помогите.
Задача: разделить наконец в настройках возможность отображение E-mail и Сайта пользователя в сообщениях. Меня, например, раздражает, что оба этих параметра включаются\отключаются одной галочкой "Показывать информацию о пользователе". Если же задача непосильная, то альтернативная Задача: убрать хотя бы Сайт оставив только E-mail. Я конечно в коде нашел место, где эта информация выводится, и могу прямо там руками затереть, но думаю это не самый правильный подход, т.к. таких затирок наберается много и потом уже в них довольно тяжело разобраться и еще сложнее обновить версию скрипта, чтобы все эти изменения не потерять.

Сайт pojar

Поделиться

111

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

pojar, Зачем такие сложности?!

s56.radikal.ru/i154/0908/0a/4c935b801c4ft.jpg

Убери галочку, и всё)):)

Поединок Добра и Зла происходит каждую секунду в сердце каждого человека, ибо сердце и есть поле битвы, где сражаются ангелы и демоны. (Пауло Коэльо)

Сайт #Q#

Поделиться

112

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

#Q# пишет:

pojar, Зачем такие сложности?!

Убери галочку, и всё)):)

Пардон, а где ее найти, эту галочку? Что-то я не вижу у себя sad

Сайт pojar

Поделиться

113 (08.08.2009 23:19 отредактировано #Q#)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

pojar пишет:
#Q# пишет:

pojar, Зачем такие сложности?!

Убери галочку, и всё)):)

Пардон, а где ее найти, эту галочку? Что-то я не вижу у себя sad

А ты установи плагин userinfo

Поединок Добра и Зла происходит каждую секунду в сердце каждого человека, ибо сердце и есть поле битвы, где сражаются ангелы и демоны. (Пауло Коэльо)

Сайт #Q#

Поделиться

114

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Что-то я русского варианта не нахожу neutral, вы сами переводили или есть уже переведенный? roll

Сайт pojar

Поделиться

115 (09.08.2009 11:28 отредактировано #Q#)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

сам переводил!
У меня полно переводов собственных..
я их выслал уважаемому hcs... 
а Вам вот скинул: www.getthebit.com/f/accaaaabhaaa … erinfo.rar
и пришлите мне ссылку на свой форум в ЛС, хочется посмотреть... smile

и сюда: sderni.ru/42994 а то по той ссылке уж оч много рекламы нужно посмотреть чтоб скачать...;)

Поединок Добра и Зла происходит каждую секунду в сердце каждого человека, ибо сердце и есть поле битвы, где сражаются ангелы и демоны. (Пауло Коэльо)

Сайт #Q#

Поделиться

116 (09.08.2009 21:45 отредактировано pojar)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Извиняюсь, что мы уже не по теме.
Форум пока форум тестирую и подгоняю под свои нужды на локалке, но скоро уже буду переносить на сайт о GIMP. Остался последний серьезный момент с которым не могу разобраться в виду отсутствия документации: пока у меня нет своей авторизации и я хотел бы использовать авторизацию форума по всему сайту. Если кто-то знает как это делается - подскажите несведущему, век помнить буду. roll
Ну и еще мелкая неприятность - в самом низу форума перед копирайтом появилось "Currently installed 2 official extensions." Никак не возьму в толк зачем это видеть кому-то кроме админа, и зачем это видеть вообще кому-либо?
Ну и еще хотелось бы как-то подсвечивать выбранный пункт главного меню, пока не придумал как сделать.
За переведенный userinfo спасибо, как раз то, что надо smile. А то меня с самого начала расстроило, что под одну галочку в настройках затолкали очень много (Отображать место нахождения пользователя, дату регистрации, количество сообщений, e-mail и URL в сообщениях). Правда в этом расширении мне не понятно почему если снять галочку например "Показывать URL", то даже админу не будет показан URL. Хотя может так и задумывалось, я не знаю.

Сайт pojar

Поделиться

117

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Столкнулся с такой проблемой: В футере есть хук ft_end, но если к нему привязать какой-либо код, он вы водится не в футере, а сразу после тега <body> Это так и должно быть, если да, то как выполнить произвольный код именно в футере форума?

Поделиться

118

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

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

Вот пример правильного вывода в случае с хуком ft_end:

ob_start();
echo "test";
$tpl_main .=  forum_trim(ob_get_contents());
ob_end_clean();

При этом "Test" выведется после тэга </html>, потому что такова логика, в переменной $tpl_main уже находится весь распарсеный шаблон и он выводится несколькими строками ниже (смотри код footer.php): exit($tpl_main);

Если код надо выполнить именно в хуке ft_end и при этом вывести свою информацию в произвольном месте, то нужно добавить специальный тэг в шаблон (посмотри как выглядит inclide/template/main.tpl)
и заменять этот тэг на свой вывод. Например:

ob_start();
echo "test";
$tpl_temp = forum_trim(ob_get_contents());
$tpl_main = str_replace('<!-- Твой Тэг -->', $tpl_temp, $tpl_main);
ob_end_clean();

Если нужно что-то вывести в футере шаблона, можно свой код вставить в хуки ft_about_end или ft_about_output_start, тогда не нужно беспокоиться о выводе при помощи функций контроля вывода.

Сайт hcs

Поделиться

119

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

понятно, спасибо за помощь. Привязка к хуку ft_about_end неудобна тем, что к нему привязан вывод "какие установлены на форуме расширения", который я пока смог отключить только двумя способами: комментирование самого хука; редактирование бд, с целью убрать вообще код который это выводит. Может есть другие способы?

Поделиться

120

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

http://punbb.ru/post21056.html#p21056

Сайт hcs

Поделиться

121

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

еще раз спасибо за помощь.

Поделиться

122

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Возможно ли с помощью хука(хуков) сделать чтобы все ссылки на форуме открывались в новом окне?
Если да, может кто помочь?

Сайт FlameOut

Поделиться

123

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Можно. Помочь не могу, но у себя на форуме тупо вставил где-то в код мод от версии 1.2.

У каждого свой взгляд на мир.

Сайт coordinator

Поделиться

124

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

FlameOut пишет:

Возможно ли с помощью хука(хуков) сделать чтобы все ссылки на форуме открывались в новом окне?
Если да, может кто помочь?

Есть готовое расширение (не официальное) show_links_blank

Тоже интересно почитать/просмотреть раз и два

"The only thing neccesary for the triumph of evil is for good men to do nothing..." (c)

Поделиться

125 (12.09.2009 07:28 отредактировано aakulaa)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

knyshow пишет:
А вот в вашем запросе ошибка

Мой запрос работает на форумах, не использующих префикc таблиц.
в идеале и без билдера выглядит следующим образом:

//=======================================================
// обновление счетчика постов пользователей при удалении сообщения
//=======================================================
                $result = $forum_db->query("UPDATE " . $forum_db->prefix . "users b, (SELECT poster_id, count(id) AS kol FROM " . $forum_db->prefix . "posts GROUP BY poster_id) a SET b.num_posts = a.kol WHERE b.id = a.poster_id");
//=======================================================

Извиняюсь за вопрос, но куда это нужно вставлять, в смысле какой файл и какое место в файле? Версия форума 1.3. На форуме нашел что надо изменить файл delete.php, туда что-то добавить, но в этом файле ничего подобного нет, видимо из-за разных версий. В общем порблема с уменьшением постов, которые не уменьшаются...

PS Я вышел на пост из поиска, только заметил название темы smile Счас буду устанавливать эотт эникод smile

PS2 Классное дополнение, все работает

Сайт aakulaa

Поделиться