Re: [Релиз] AnyCode Tool (1.0.0 Beta)
Можно ли в выделенном мной месте на вложенном изображении - отображать не время создания темы, а название самой темы?

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
PunBB 1.3 → Расширения v1.3 → [Релиз] AnyCode Tool (1.0.0 Beta)
Можно ли в выделенном мной месте на вложенном изображении - отображать не время создания темы, а название самой темы?

Можно ли в выделенном мной месте на вложенном изображении - отображать не время создания темы, а название самой темы?
На этом рисунке указано время сообщения, а не темы.
А если имелось ввиду в форумах, вместо времени последнего ответа в какой-то теме, показывать название темы, то да, такое решение есть и по-моему даже в этой теме - аж на первой странице - Задача №4..
Задача 5
Кто сейчас просматривает эту тему?
http://punbb.ru/post21160.html#p21160
Здесь показывает кто просматривает конкретную страницу в теме, то есть если кто-то на 1 странице, а кто-то на, допустим, 5, то и там и там будут по одному пользователю, а не двое.
Обновленный вариант в первом сообщении. Достаточно переписать поверх. В управлении расширениями будет предложено обновить. Не могу дать гарантий, но у меня обновилось без проблем, решения остались.
Добавлено спустя 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
Попробуй http://punbb.ru/topic3135-reliz-last-to … -page.html
У меня на форуме пришлось сделать ограничения - делюсь, если кому-нибудь ещё понадобится:
Задача:
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 ![]()
Добавлено спустя 1 час 7 минут 12 секунд:
Гы, оказывается, уже есть похожее расширение: http://punbb.informer.com/forums/topic/ … it-period/
А ткните где хук добавления Ника в форму ответа, было вроде тут час копаюсь не могу найти. Я про стрелочку возле ника которая его добавляет в форму быстрого ответа.
Ну или выложите его по новой если удалили.
очень нужно.
http://punbb.ru/topic3235-bystroe-obras … telyu.html
Добавлено спустя 43 секунды:
http://punbb.ru/topic3258-zapros-rasshi … eksta.html
del
Задача 4
Показать в списке форумов вместо даты последнего сообщения - название темы
Очень хорошо. А можно уменьшить как-то длину выводимого названия последнего сообщения, например до 30 знаков? Про расширение, рекомендованное d-linux выше, я знаю.
Извините за беспокойство, нашел ответ на свой вопрос на 2 странице данной темы.
Показываем Анонс только на главной странице.
Решение: no_announce
Хук 1: hd_head
Код хука:
if ( FORUM_PAGE != 'index' && $forum_config['o_announcement'] != '0' )
$forum_config['o_announcement'] = '0';Если есть желание показывать анонс еще где-то кроме индекса, можно сделать элементарно. Как всегда, это решение работает на нашем форуме.
ух ты спасибо отлично работает!!! я бы еще добавил в форумы, у меня просто инфа для созданий новых постов в Анонсе ![]()
Чтобы показывалось еще и в форумах код хука такой:
if ( FORUM_PAGE != 'index' && FORUM_PAGE != 'viewforum' && $forum_config['o_announcement'] != '0' )
$forum_config['o_announcement'] = '0';
хи точно спасибо!!! мог бы и сам сообразить ![]()
Задача 5
Кто сейчас просматривает эту тему?
http://punbb.ru/post21160.html#p21160Здесь показывает кто просматривает конкретную страницу в теме, то есть если кто-то на 1 странице, а кто-то на, допустим, 5, то и там и там будут по одному пользователю, а не двое.
Касаемо разных страниц одной темы решение есть, а вот данная ссылка на пост в теме представляет проблему. Непонятно как определить что такой урл относится к какой-то конкретной теме...
Спасибо, очень удобное расширение!
А есть ли возможность код который привязан к хукам, не в базе хранить а в файлах?
В файле править удобнее, ИМХО конечно. И как то не привычно, что ПХП код в базе (где то читал мнение, что это не хорошо). ![]()
Код хуков кэшируется и всегда вызывается из файлового кэша.
Править конечно удобнее в файле, но встает проблема как организовать это хранилище. Поэтому все есть так как есть.
Реализация защиты от автоматической регистрации без капчи и яваскрипта.
Суть идеи в том, что поле ввода прячется от пользователя при помощи 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>';Решение не тестировалось, кто бы протестировал?
Касаемо разных страниц одной темы решение есть, а вот данная ссылка на пост в теме представляет проблему. Непонятно как определить что такой урл относится к какой-то конкретной теме...
а в 1.2 реализовано же было, тоже основано на каком-то моде было...
А можно с помощью этой тулзы на главной странице вывести/добавить столбец "модераторы" между "сообщения" и "последнее сообщение" и соответственно отображать их там? Как сделать в коде понятно, как сделать с помощью неё не понятно...
Задача:
Вытащить из расширения 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>';
}
}Работает или нет, не рискнул проверить. Если гуру скажут, что всё верно, то попробую ![]()
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.
PunBB 1.3 → Расширения v1.3 → [Релиз] AnyCode Tool (1.0.0 Beta)
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Сгенерировано за 0.514 секунды (17% PHP — 83% БД) 13 запросов к базе данных
Технологии с открытым исходным кодом, несомненно, обладают серьезным преимуществом над аналогичными продуктами, распространяемыми по ограниченным лицензиям. И совершенно неважно, что это. Возможно это:
Впрочем, неважно. Что бы это ни было, важно всячески поощрять и поддерживать Open Source в любом виде. Тем более, что вы знаете, PunBB распространяется по лицензии GPL/GNU. И спасибо за внимание.