126 (11.10.2009 13:37 отредактировано webzilla)

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

Можно ли в выделенном мной месте на вложенном изображении - отображать не время создания темы, а название самой темы?

http://pic.ipicture.ru/uploads/091012/a6DHI32aZX.jpg

Поделиться

127 (12.10.2009 11:59 отредактировано Studia)

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

webzilla пишет:

Можно ли в выделенном мной месте на вложенном изображении - отображать не время создания темы, а название самой темы?

http://pic.ipicture.ru/uploads/091012/a6DHI32aZX.jpg

На этом рисунке указано время сообщения, а не темы.
А если имелось ввиду в форумах, вместо времени последнего ответа в какой-то теме, показывать название темы, то да, такое решение есть и по-моему даже в этой теме - аж на первой странице - Задача №4..

Поделиться

128

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

Задача 5
Кто сейчас просматривает эту тему?
http://punbb.ru/post21160.html#p21160

Здесь показывает кто просматривает конкретную страницу в теме, то есть если кто-то на 1 странице, а кто-то на, допустим, 5, то и там и там будут по одному пользователю, а не двое.

Поделиться

129

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

hcs пишет:

Обновленный вариант в первом сообщении. Достаточно переписать поверх. В управлении расширениями будет предложено обновить. Не могу дать гарантий, но у меня обновилось без проблем, решения остались.

Добавлено спустя   1 час   15 минут   55 секунд:
Как мне нравится это расширение!

Задача 4
Показать в списке форумов вместо даты последнего сообщения - название темы
Решение:
Создать решение last_topic_title_on_forum_index (если хотите можно назвать и короче, ваше право)
хук №1 in_qr_get_cats_and_forums
код к хуку:

$query['SELECT'] .=', t.subject';
$query['JOINS'][] = array(
    'LEFT JOIN'    => 'topics AS t',
    'ON'        => 'f.last_post_id=t.last_post_id'
);

хук №2

in_normal_row_pre_display

код к хуку:

$forum_page['item_body']['info']['lastpost'] = str_replace(array(format_time($cur_forum['last_post']), '<cite>'),array(forum_htmlencode($cur_forum['subject']), '<cite>'.format_time($cur_forum['last_post']).'</cite><cite>'),
$forum_page['item_body']['info']['lastpost']);

Активируем решение. Смотрим результат. Восторгаемся. Проникаемся глубоким уважением к автору :-)

Учитывая, что некоторые вебмастера нагородили кучу хаков к 1.2, то миграция на 1.3 с таким расширением будет менее сложная. Конечно расширений вроде лички и загрузки файлов AnyCode не заменит, но решить часть проблем типа вышерешённых - запросто.


Подскажите пожалуйста как сделать так что бы колонка в которой отображается список тем была шире или как сократить количество отображаемых символов, и ещё очень бы хотелось что бы ссылка ввела на начало темы то есть отображался бы линк вида /topic29.html  а не /post31.html#p31

Городской форум Сочи - forum.prosochi.ru

Поделиться

130

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

Попробуй http://punbb.ru/topic3135-reliz-last-to … -page.html

Смайл. Дата. Подпись.

Поделиться

131 (28.10.2009 12:11 отредактировано Ghost)

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

У меня на форуме пришлось сделать ограничения - делюсь, если кому-нибудь ещё понадобится:

Задача:
1. Запретить пользователям удалять свои сообщения, если со времени публикации прошло более 15 мин, и редактировать, если прошло более 30мин.
2. Запретить пользователям удалять свое сообщение, если оно не последнее в теме
Решение
Создаем решение post_edit_delete_time
Хук 1: vt_row_pre_post_actions_merge

if (!$forum_page['is_admmod']) {
        if ($cur_post['poster_id'] == $forum_user['id']) {
            if ($cur_topic['closed'] == '0') {
                if (isset($forum_page['post_actions']['delete']) && ((time() - $cur_post['posted'] > POST_DELETE_TIME)) || ($forum_page['start_from'] + $forum_page['item_count'] < $cur_topic['num_replies'] + 1)) {
                    unset($forum_page['post_actions']['delete']);
                }
                
                if (isset($forum_page['post_actions']['edit']) && (time() - $cur_post['posted'] > POST_EDIT_TIME)) {
                    unset($forum_page['post_actions']['edit']);
                }
            }
        }
    }

Хук 2: in_start

define('POST_EDIT_TIME', 1800);
define('POST_DELETE_TIME', 900);

Можно обойтись без хука 2, поместив соответствующий код в начало кода хука 1. Просто мне кажется логичным, чтобы все константы объявлялись в одном месте. В данном движке это index.php smile

Добавлено спустя 1 час 7 минут 12 секунд:

Гы, оказывается, уже есть похожее расширение: http://punbb.informer.com/forums/topic/ … it-period/

Поделиться

132

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

А ткните где хук добавления Ника в форму ответа, было вроде тут час копаюсь не могу найти. Я про стрелочку возле ника которая его добавляет в форму быстрого ответа.
Ну или выложите его по новой если удалили.
smile очень нужно.

Сайт flashcat

Поделиться

133

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

http://punbb.ru/topic3235-bystroe-obras … telyu.html

Добавлено спустя 43 секунды:

http://punbb.ru/topic3258-zapros-rasshi … eksta.html

Сайт hcs

Поделиться

134 (30.11.2009 13:46 отредактировано JustAlex)

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

del

Поделиться

135 (17.12.2009 22:20 отредактировано ser)

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

hcs пишет:

Задача 4
Показать в списке форумов вместо даты последнего сообщения - название темы

Очень хорошо. А можно уменьшить как-то длину выводимого названия последнего сообщения, например до 30 знаков? Про расширение, рекомендованное d-linux выше, я знаю.

Извините за беспокойство, нашел ответ на свой вопрос на 2 странице данной темы.

Сайт ser

Поделиться

136

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

Показываем Анонс только на главной странице.
Решение: no_announce
Хук 1: hd_head
Код хука:

if ( FORUM_PAGE != 'index' && $forum_config['o_announcement'] != '0' )
    $forum_config['o_announcement'] = '0';

Если есть желание показывать анонс еще где-то кроме индекса, можно сделать элементарно. Как всегда, это решение работает на нашем форуме.

Сайт hcs

Поделиться

137

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

ух ты спасибо отлично работает!!! я бы еще добавил в форумы, у меня просто инфа для созданий новых постов в Анонсе smile

Сайт flashcat

Поделиться

138

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

Чтобы показывалось еще и в форумах код хука такой:

if ( FORUM_PAGE != 'index' && FORUM_PAGE != 'viewforum' && $forum_config['o_announcement'] != '0' )
    $forum_config['o_announcement'] = '0';

Сайт hcs

Поделиться

139

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

smileхи точно спасибо!!!  мог бы и сам сообразить lol

Сайт flashcat

Поделиться

140

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

Studia пишет:

Задача 5
Кто сейчас просматривает эту тему?
http://punbb.ru/post21160.html#p21160

Здесь показывает кто просматривает конкретную страницу в теме, то есть если кто-то на 1 странице, а кто-то на, допустим, 5, то и там и там будут по одному пользователю, а не двое.

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

Сайт hcs

Поделиться

141

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

Спасибо, очень удобное расширение!

А есть ли возможность код который привязан к хукам, не в базе хранить а в файлах?

Поделиться

142

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

Нет. Зачем?

Сайт hcs

Поделиться

143

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

В файле править удобнее, ИМХО конечно. И как то не привычно, что ПХП код в базе (где то читал мнение, что это не хорошо). smile

Поделиться

144

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

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

Сайт hcs

Поделиться

145

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

Реализация защиты от автоматической регистрации без капчи и яваскрипта.
Суть идеи в том, что поле ввода прячется от пользователя при помощи CSS, нормальный пользователь его не видит и заполнить не может. Если поле заполнено - перед нами бот.
Решение antibot
хук №1: rg_register_pre_password
код хука:

?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Username'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_nameuser" value="<?php echo(isset($_POST['req_nameuser']) ? forum_htmlencode($_POST['req_nameuser']) : '') ?>" size="35" maxlength="25" /></span>
                    </div>
                </div>
<?php

хук №2: rg_register_form_submitted
код хука:

if (utf8_strlen(forum_trim($_POST['req_username']))>0) {
    message('Извините, но автоматическая регистрация запрещена. Если у вас есть вопросы, свяжитесь с администратором форума.');
}
else
    $_POST['req_username'] = $_POST['req_nameuser'];

хук №3:     hd_head
код хука:   

    if (FORUM_PAGE == 'register')
        $forum_head[] = '<style>#afocus .group1 .set1 {display:none;}</style>';

Решение не  тестировалось, кто бы протестировал?

Сайт hcs

Поделиться

146

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

Никого не заинтересовало? Жаль.

Сайт hcs

Поделиться

147

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

hcs пишет:

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

а в 1.2 реализовано же было, тоже основано на каком-то моде было...

Поделиться

148

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

А можно с помощью этой тулзы на главной странице вывести/добавить столбец "модераторы" между "сообщения" и "последнее сообщение" и соответственно отображать их там? Как сделать в коде понятно, как сделать с помощью неё не понятно...

Поделиться

149 (31.07.2010 05:43 отредактировано kmbxxx)

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

Задача:
Вытащить из расширения fancy_merge_posts формы полного ответы в форму быстрого ответа.

Решение:
1. Создаем решение с именем add_quick_post_nomerge
2. Создаем хук.
vt_quickpost_fieldset_end
код хука:

                        if ($tid != 0) {
                                if ($tid != 0 && $forum_page['is_admmod'] || (isset($forum_user['g_merge_posts']) && intval($forum_user['g_merge_posts'], 10) === 1)) {
                                        // Load LANG
                                        if (!isset($fancy_merge_posts)) {
                                                if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php')) {
                                                        require $ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php';
                                                } else {
                                                        require $ext_info['path'].'/lang/English/'.$ext_info['id'].'.php';
                                                }
                                        }

                                        $forum_page['checkboxes']['dont_merge'] = '<div class="mf-item"><span class="fld-input"><input type="checkbox" id="fld'.(++$forum_page['fld_count']).'" name="dont_merge" value="1"'.(isset($_POST['dont_merge']) ? ' checked="checked"' : '').' /></span> <label for="fld'.$forum_page['fld_count'].'">'.$fancy_merge_posts['Dont Merge'].'</label></div>';
                                }
                        }

Работает или нет, не рискнул проверить. Если гуру скажут, что всё верно, то попробую smile

Поделиться

150 (01.08.2010 00:40 отредактировано kmbxxx)

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

solution: last_visit_on_posts
hooks: vt_row_pre_post_actions_merge
code:

$forum_page['author_info']['last_visit'] = '<li><span>'.format_time($forum_user['last_visit']).'</span></li>';

упс, не доработал... не работает правильно...

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

сменить $forum_user['last_visit'] на $cur_post['last_visit']
и в viewtopic.php запрос сообщений добавить u.last_visit.

Поделиться