Хочу модифицировать Advanced News viewer

Идеи для расширения функциональности phpBB 2.0.x
SlasT
phpBB 1.4.0
Сообщения: 36
Стаж: 20 лет
Откуда: www.shamanix.ru

Хочу модифицировать Advanced News viewer

Сообщение SlasT »

К сожалению не помню где тема о этом моде находится на форуме.
Вот ссылка "производителя" http://derus.net/phpBB2/viewtopic.php?t=190.
В кратце: при создании сообщения можно поставить галку "отметить как новость" и данное сообщение появиться, к примеру, на главной странице сайта. Мне это очень помогло т.к. на моем сайте анонсируются вечеринки и их обсуждают. Для того что бы не создавать сообщение в начале в новостях а потом в форуме я поставил этот мод.
Есть у меня просьба помоч немного дополнить данный мод.
Как я уже говорил у меня анонсируются вечеринки проходящие в нашем городе и я хочу, что бы при добывлении сообщения было еще и поле для ввода даты когда пати будет (это видно только для админа ессно). Далее. На главной странице сайта, выше новостей, находится поле "Предстоящие события" и там отображаются события которые пройдут скоро. Проверка тут не сложная: если дата события больше сегодняшней даты, то вывести. Такое же поле можно сделать в overal_header.tpl.
Итог.
Нужно:
- Сделать поле с вводом даты при добывлении нового сообщения.
- сделать ячейку в мускуле.
- проверить если дата события больше сегодняшней датя, то вывести её.
- поставить данную инклюду на страницу сайта и форума.

В принцыпе это аналогия добавления галочки "отметить как новость", но вот сам что-то запутался что куда писать.

Помогите плз.

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

И так:
добавляю новое поле на posting_body.tpl

Код: Выделить всё

#---[ OPEN ]---------------------------
templates/SubSilver/posting_body.tpl
#---[ FIND ]----------------------------
<!-- BEGIN switch_html_checkbox -->

#---[ BEFORE, ADD ]-------------------
         <tr>
            <td>
                          <input type="text" name="news_future_date" size="8" '.$news_future_on.' />
                      </td>
                      <td>
                         <span class="gen">{L_NEWS_FUTURE_DATE}</span>
                      </td>
                  </tr>
Языковая переменная:

Код: Выделить всё

#---[ OPEN ]---------------------------
language/lang_english/lang_main.php
#---[ FIND ]----------------------------
//
// That's all Folks!
#---[ BEFORE, ADD ]-------------------
$lang['news_future_date'] = "Дата:";
код помещения переменной news_future_date в базу.

Код: Выделить всё

includes/functions_post.php

#---[ OPEN ]---------------------------
includes/functions_post.php
#---[ FIND ]---------------------------
   $sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . "(topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)" : "UPDATE " . POSTS_TABLE . " SET  post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id";
#---[ REPLACE WITH ]-------------------
   $sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . "(topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig, news_future_date) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig, '$news_future_date')" : "UPDATE " . POSTS_TABLE . " SET news_future_date = '$news_future_date', post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id";

Код: Выделить всё

#---[ OPEN ]-------------------------------
posting.php
#---[ FIND ]-------------------------------
      $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id,
                       t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . "
         FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . "
         WHERE p.post_id = $post_id
            AND t.topic_id = p.topic_id
            AND f.forum_id = p.forum_id
            $where_sql";
#---[ REPLACE, WITH ]-------------------------------
      $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id,
                       t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id, p.post_show_on_index, news_future_date" . $select_sql . "
         FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . "
         WHERE p.post_id = $post_id
            AND t.topic_id = p.topic_id
            AND f.forum_id = p.forum_id
            $where_sql";

#---[ FIND ]----------------------------------------
            $post_data['poster_id'] = $post_info['poster_id'];
#---[ AFTER, ADD ]-------------------------------------
                $post_data['news_future_date'] = $post_info['news_future_date'];
А вот далее я затрудняюсь:
там же в posting.php (что-то нужно вставить вместо точек, я не знаю что)

Код: Выделить всё

#---[ FIND ]----------------------------------------
$is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
         $bbcode_uid = ''; 
#---[ AFTER, ADD ]-------------------------------------
$news_future_date = (!empty($HTTP_POST_VARS['news_future_date'])) ? .........................';
И наверное еще что-то нужно здесь сделать, а вот что я тоже не знаю. Подскажите плз.

SQL я так понимаю должен быть такой:

Код: Выделить всё

ALTER TABLE `phpbb_posts` ADD `phpbb_posts` DATE NOT NULL ;
SlasT
phpBB 1.4.0
Сообщения: 36
Стаж: 20 лет
Откуда: www.shamanix.ru

Сообщение SlasT »

Ну неужели никто не знает как переменную вводимую пользователем записать в базу. Пытаюсь разобраться с кодом. Где-то что-то упускаю. Подскажите.
Задача заключается только в том что бы при создании (ответе) сообщения можно было ввести переменную "дата", отличную от встроенной временной функции, пользователем.
SlasT
phpBB 1.4.0
Сообщения: 36
Стаж: 20 лет
Откуда: www.shamanix.ru

Сообщение SlasT »

все, сделал! закрывайте тему!!!
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

SlasT
А нам сказать?
я люблю daft punk | новый sugoi.ru
SlasT
phpBB 1.4.0
Сообщения: 36
Стаж: 20 лет
Откуда: www.shamanix.ru

Сообщение SlasT »

очень легко можно это сделать так:
в форме posting.php есть переменная subject в которой хранится название темы нового сообщения. Я просто скопировал код с этой переменной. у меня получилась новая переменная subject_date. А далее я посмотрел весь код где есть переменная subject и продублировал его только с переменной subject_date. Единственное я сделал в мускуле поле для этой переменной.
И все!

Вернуться в «Запросы модов для phpBB 2.0.x»