151

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

Продолжаем игры с аникоде %)
Был такой мод на 1.2:

##
##
##        Mod title:  View All Posts In Topic
##
##      Mod version:  1.0.0
##   Works on PunBB:  1.2.*
##     Release date:  2006-10-23
##           Author:  hcs (hcs@mail.ru)
##
##      Description:  Adds the link for a conclusion all of posts in a topic on one page.
##                    Example: [1 2 3 All]
##

Автор всем знаком smile Чего же добру-то пропадать, итак:

Решение: View_All_Posts_In_Topic
Хук №1: vt_modify_topic_info

if ($action == 'all' && $pid == 0) 
 $forum_user['disp_posts'] = $cur_topic['num_replies'] + 1;    

Хук №2: vf_topic_loop_normal_topic_pre_item_nav_merge

if (!empty($forum_page['item_nav']))
 $forum_page['item_nav']['pages'] .= ' <a href="viewtopic.php?id='.$cur_topic['id'].'&action=all">Все</a>';

p.s. Проверено - работает!

Поделиться

152

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

Опять будем переделывать моды от 1.2 и дальше smile
Задача при редактировании сообщений администратором/модераторам отослать пользователю сообщение в ПМ с ссылкой на сообщение и тему.
Необходимо иметь установленное расширение pun_pm
Решение: mod_edit_alert_pm
Хук: ed_pre_redirect
Код:

 // MOD EDITALERT begin
require FORUM_ROOT.'lang/Russian/editalert.php';
if ($forum_page['is_admmod'] && $cur_post['poster_id'] != $forum_user['id']) {
$subject = $lang_editalert['Subj Edit Alert'];
$body = $lang_editalert['Message Edit Alert beg'].' [url]'.forum_link($forum_url['post'], $id).'[/url] '.$lang_editalert['Message Edit Alert mid'].' "'.$cur_post['subject'].'" '.$lang_editalert['Message Edit Alert end'].' '.$forum_user['username'].'.';

// Get pun_pm_new_messages
$result = $forum_db->query('SELECT username, pun_pm_new_messages FROM '.$forum_db->prefix.'users WHERE id !=1 AND id='.$cur_post['poster_id']) or error('Unable to get user id', __FILE__, __LINE__, $forum_db->error());

// Send message
if(list($usermame, $pun_pm_new_messages) = $forum_db->fetch_row($result)) {

if($pun_pm_new_messages == 'NULL')
    $pun_pm_new_messages = 1;
else
    $pun_pm_new_messages = $pun_pm_new_messages + 1;

$receiver_id = $cur_post['poster_id'];
$now = time();

// Save to DB
$query = array(
        'INSERT'                => 'sender_id, receiver_id, status, lastedited_at, read_at, subject, body',
        'INTO'                  => 'pun_pm_messages',
        'VALUES'                => $forum_user['id'].', '.$receiver_id.', \'sent\', '.$now.', 0, \''.$forum_db->escape($subject).'\', \''.$forum_db->escape($body).'\''
                );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);


$query = array(
        'UPDATE'        => 'users',
        'SET'           => 'pun_pm_new_messages = '.$pun_pm_new_messages,
        'WHERE'         => 'id = '.$receiver_id,
        );
    $forum_db->query_build($query) or error(__FILE__, __LINE__);

                                                        }
                                                                }
// MOD EDITALERT end

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

Кстати, вопрос к примеру взять файл viewtopic.php строка 276, там где идёт sql-запрос сообщения.
Как в этот запрос добавить свой столбец в SELECT? Столбец в таблице posts.

Поделиться

153

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

вопрос снят, нашел в примерах тут

$query['SELECT'] .=', t.subject';

Поделиться

154

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

Не могу отредактировать хук:

if ($forum_page['is_admmod'])
{ 
?>
<div class="txt-set set2">
<div class="txt-box textarea required">
<label><span>Moderator: </span></label>
<div class="txt-input">
<span class="fld-input"> 
<textarea name="req_mod_note" rows="2" cols="95" tabindex="">
<?php
echo forum_htmlencode(isset($_POST['req_mod_note']) ? $mod_note : $cur_post['mod_note'])
?>
</textarea>
</span>
</div>

</div></div>
<?php
}

Поделиться

155

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

Это то что тебе надо исправить? Где он лежит и что надо добавить?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

156

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

hcs, Ну я к тому, что оформлено вроде всё правильно, естественно в базе я его отредактирую как надо... Вопрос в том, что почему при редактировании получаю ошибки...

Поделиться

157

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

где именно ошибки, в чем ошибки-то?? что значит не могу отредактировать? что за ошибки?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

158

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

http://punbb.ru/extensions/hcs_image_uploader/uploads/20000/7500/27923/thumb/p1598luie51nuv4lo1kk61ht0gpf1.jpg
Ошибки в обработке, как таковых их не видно... Но ничего нажать нельзя, кроме того как видно выводится не весь хук...

Поделиться

159

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

По-моему код этого хука, если это не хтмл, должен быть в тегах <?php  код хука  ?>
Удали его и вставь с тегами.

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

а. все ясно, там в коде идет закрывающий тег для textarea, вот он и закрыл настоящий textarea... Нужно подумать

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

160

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

Хуки конечно хорошо, но вот допустим ситуация из файла post.php поля для темы

 <input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="req_subject" value="<?php if (isset($_POST['req_subject'])) echo forum_htmlencode($subject); ?>" size="70" maxlength="70" />

а я хочу чтобы оно выглядело так:

<input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" OnBlur="getMyHTML('searchrelated.php?value=' + document.getElementById('afocus').req_subject.value,'ajaxwrapper')" name="req_subject" value="<?php if (isset($_POST['req_subject'])) echo forum_htmlencode($subject); ?>" size="70" maxlength="70" />

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

Поделиться

161

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

Да, это существенный недостаток отсутствия шаблонной системы.
В данном случае придется сделать ход конём как-то так:
в хуке po_pre_post_contents перехватить буфер вывода и добавить свою строку:

$tpl_temp = forum_trim(ob_get_contents());
$tpl_temp = str_replace('type="text" name="req_subject"', 'type="text" name="req_subject"  OnBlur="getMyHTML(\'searchrelated.php?value=\' + document.getElementById(\'afocus\').req_subject.value,\'ajaxwrapper\')' , $tpl_temp);
$tpl_main = str_replace('<!-- forum_main -->', $tpl_temp.'<!-- forum_main -->', $tpl_main);
ob_end_clean();
ob_start();
Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

162

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

Хуки переименовать нельзя - неудобно.  smile

Поделиться

163

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

Задача http://punbb.ru/post27788.html#p27788
Решение: rep_posts
Хук №1: vt_row_pre_display

if(count($r_t['post_id'])>0) {
$y = 0;
for($i=0;$i<count($r_t['post_id']);$i++) {
if($r_t['post_id'][$i] == $cur_post['id']) {
$y++;
if($y == 1) {
$forum_page['message']['signature'] .= "<br/><span class=rep_plus>Положительно оценили:<br/>";
}
$forum_page['message']['signature'] .= '<a href="profile.php?id='.$r_t['u_id'][$i].'">'.$r_t['u'][$i].'</a> ';
        }
if($i+1 == count($r_t['post_id']))
$forum_page['message']['signature'] .= '</span>';
    }
}

if(count(@$r_m['post_id'])>0) {
$y = 0;
for($i=0;$i<count($r_m['post_id']);$i++) {
if($r_m['post_id'][$i] == $cur_post['id']) {
$y++;
if($y == 1) {
$forum_page['message']['signature'] .= "<br/><span class=rep_minus>Отрицательно оценили:<br/>";
}
$forum_page['message']['signature'] .= '<a href="profile.php?id='.$r_m['u_id'][$i].'">'.$r_m['u'][$i].'</a> ';
        }
if($i+1 == count($r_m['post_id']))
$forum_page['message']['signature'] .= '</span>';
    }
}

Хук №2: vt_qr_get_posts

$start_from = $forum_page['start_from'];
$result_for_rep = $forum_db->query('SELECT id FROM '.$forum_db->prefix.'posts WHERE topic_id='.$id.' GROUP BY id ORDER BY id LIMIT '.$start_from.','.$forum_user['disp_posts']) or error('Unable to fetch post info', __FILE__, __LINE__, $forum_db->error());
while($r = $forum_db->fetch_assoc($result_for_rep)) {
$rall['id'][] = $r['id'];
}

$result_rep_ths = $forum_db->query('SELECT r.post_id, u.username, r.from_user_id FROM '.$forum_db->prefix.'reputation AS r INNER JOIN '.$forum_db->prefix.'users AS u ON u.id = r.from_user_id WHERE r.topic_id = '.$id.' and r.rep_plus = 1') or error('Unable to fetch reputation post info', __FILE__, __LINE__, $forum_db->error());
while($r = $forum_db->fetch_assoc($result_rep_ths)) {
$r_t['post_id'][] = $r['post_id'];
$r_t['u'][] = $r['username'];
$r_t['u_id'][] = $r['from_user_id'];
}

$result_rep_noths = $forum_db->query('SELECT r.post_id, u.username, r.from_user_id FROM '.$forum_db->prefix.'reputation AS r INNER JOIN '.$forum_db->prefix.'users AS u ON u.id = r.from_user_id WHERE r.topic_id = '.$id.' and r.rep_minus = 1') or error('Unable to fetch reputation post info', __FILE__, __LINE__, $forum_db->error());
while($r = $forum_db->fetch_assoc($result_rep_noths)) {
$r_m['post_id'][] = $r['post_id'];
$r_m['u'][] = $r['username'];
$r_m['u_id'][] = $r['from_user_id'];
}

Поделиться

164

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

один минус хука - только русский текст.

PunBB Extensions | Перед созданием темы => ФАК | Профессиональная разработка сложных сайтов

Расширения распространяются по Creative Commons Attribution-NonCommercial 4.0

Сайт KANekT

Поделиться

165

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

KANekT, Радует, что всего такой минус %)

Поделиться

166

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

roll а может просто как то оформить в расширение и добавить языки)))

Сайт flashcat

Поделиться

167

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

может кто нибудь внятно написать как сделать стрелочку рядом с ником как на этом форуме?

сделал все по инструкции hcs аникод тол установил, решение создал хук как писал kvo сделал, в итоге напротив каждого ника вместо стрелочки надпись типа синтакс ерор вьютопик бла бла бла

Поделиться

168

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

может кто нибудь внятно написать как сделать стрелочку рядом с ником как на этом форуме?

сделал все по инструкции hcs аникод тол установил, решение создал хук как писал kvo сделал, в итоге напротив каждого ника вместо стрелочки надпись типа синтакс ерор вьютопик бла бла бла

Поделиться

169

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

Быстрое 'обращение' к пользователю...

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

170

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

оно не работает в эксплорере

Поделиться

171

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

Подскажите пожалуйста как скрыть в профиле и в его редактировании поле "Местонахождение"?

Иногда полезно курить маны.
Но не стоит злоупотреблять - вызывает привыкание и блокирует фантазию.

Поделиться

172

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

самый простой способ через css сделать эти блоки невидимыми

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

173

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

в принципе логично... но маньяки всякие бывают smile)) и файрбаком такое проскочить как нефиг

Иногда полезно курить маны.
Но не стоит злоупотреблять - вызывает привыкание и блокирует фантазию.

Поделиться

174

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

может тогда вручную вырезать из файлов разметку с этими тегами.

PunBB Extensions | Перед созданием темы => ФАК | Профессиональная разработка сложных сайтов

Расширения распространяются по Creative Commons Attribution-NonCommercial 4.0

Сайт KANekT

Поделиться

175

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

ядро не хотельсь бы ковырять

Иногда полезно курить маны.
Но не стоит злоупотреблять - вызывает привыкание и блокирует фантазию.

Поделиться