Перейти к контенту

Новости на главной странице (важно)


Рекомендуемые сообщения

Хочется сделать новост на главной странице сайта...

 

Было много идей ...

 

Пока вот основная:

При создании темы у тех людей, кто принадлежит группе авторов (или не группе - как-то отмечен, короче) , появляется checkbox под "Хотите включить смайлики в этом сообщении?", который гласит "Отправить новость на сайт".. Если там поставить галку, то при отправке сообщения надо, чтобы в отдельную ?базу?, а можно и таблицу , копировалось название и содержание темы, ник автора, дата, ссылка на этот топик и номер раздела!

 

А для всего остального будет написан скрипт новостей, который будет обрабатывать эту таблицу!

 

Очень нужно - прошу помочь!

Ссылка на комментарий
Поделиться на других сайтах

хм, и зачем огород городить? чем тебя через ssi.php?a=news не устраивает? даёш нужным людям право постить в форуме новости, остальным только ответы. и всё.
Ссылка на комментарий
Поделиться на других сайтах

А вот и не огород!

Не зочу я , чтобы всё кидалось в раздел новости.

Просто загляни на мой форум (ссылка в подписи)...

Я же не могу обсуждать новые фильмы и в "Новостях" и в "Кино и Театры".

 

Поэтому мне нужен вывод новостей из разных разделов.

Ссылка на комментарий
Поделиться на других сайтах

Тут задача то всего навсего вывод этой опции добавки новости.

Вот примерный путь ее решения:

При отправке темы до вывод шаблона странийы отправки проверяем принадлежит ли пользователь к группе ньюсмейкеров.

Если принадлежит, то выводим этот чекбокс, иначе пустое место.

 

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

 

Все достаточно просто. Жалко что я не знаю структуры ipb и манеры его работы с шаблонами, так бы написал.

Ссылка на комментарий
Поделиться на других сайтах

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

Vanish

Я так и сказал :D

 

Valera

Мне надо из разных разделов

 

Загляните в мою подпись - вам станет понятно, почему ;)

 

Vanish

Спасиб :)

Ссылка на комментарий
Поделиться на других сайтах

j0k3r вот короче посмотрел твою проблему и сделал следующее:

 

Файл Sources\Post.php

Ищем строчку

 /*****************************************************/
// HTML: mod_options.
// ------------------
// Returns the HTML for the mod options drop down box
/*****************************************************/

function mod_options($is_reply=0) {

 

перед ней вставляем функцию для проверки пользователя его возможность добавки новостей

если пользователь у нас админ (принадлежит к группе №4) то мы выведим опцию добавления новости, иначи фигу с маслом...

 /*****************************************************/
// HTML: add_news.
// ------------------
// Returns the HTML code of addnews field if user is newsmaker
/*****************************************************/

function add_news() {
global $ibforums;
   if ($ibforums->member['mgroup'] == 4) {
       return $this->html->newsField();
   } else {
       return "";
   }
}

 

Едем дальше. На очереди шаблон. Я изменял стандартный.

Файл Skin\s1\skin_post.php.php

 

После строчки

class skin_post {

 

Добавляем сосбтвенно опцию выбора добавки новости:

 

function newsField() {
global $ibforums;
return <<<EOF
<tr> 
 <td class="row1">Добавить как новость?</td>
 <td class="row1" width="100%"><input type=radio name=asnews value=yes>Да <input type=radio name=asnews value=no checked>Нет</td>
  </tr>
EOF;
}

 

Вот так дешево и сердито...

Спускаемся ниже и вылавливаем строчку

function table_structure() {
global $ibforums;
return <<<EOF
<!--START TABLE-->

 

Тут раздолье для творческих натур, нужно в теле этой функции разместить строчку <!--NEWS FIELD-->

Я как не особо творческая натура сделал так:

function table_structure() {
global $ibforums;
return <<<EOF
<!--START TABLE-->
<!--NAME FIELDS-->
<!--TOPIC TITLE-->
<!--NEWS FIELD-->
<!--POLL BOX-->
<!--POST BOX-->
<!--QUOTE BOX-->
<!--POST ICONS-->
<!--UPLOAD FIELD-->
<!--MOD OPTIONS-->
<!--END TABLE-->
EOF;
}

 

С шаблонами у нас все, едем дальше, файл sources\lib\post_new_post.php

Ищем строчку:

 //-------------------------------------------------
// Insert the topic into the database to get the
// last inserted value of the auto_increment field
// follow suit with the post
//-------------------------------------------------
 
$db_string = $DB->compile_db_insert_string( $this->topic );

 

Перед ней собственно анализатор добавить в новости или так сойдет...

Собственно сам анализатор я писюкать не стал, ибо мне не понятно в какую таблицу, базу должна эта новость идитить.

 

Вот что я написал туда

 if ($ibforums->input['asnews'] == 'yes') {
   echo "yahooЕЮ это же новость!!!"; exit;
}

 

Вот собственно и все..

Ссылка на комментарий
Поделиться на других сайтах

А можно сделать, чтобы новости можно было удалять?

И чтобы добавлять можно было, добавляя пост, а не создавая новый топик??

 

ээээ...... а теперь это будет через ssi.php пахать? :D

 

Oska

:)

 

Времени катастрофически не хватает + проблемы ... ;)

Ссылка на комментарий
Поделиться на других сайтах

j0k3r это уже скриптом для новостей делайте. Тут я уже помочь не могу пока скрипт новостей не увижу.

 

И чтобы добавлять можно было, добавляя пост, а не создавая новый топик??

это можно сделать (кстати предыдущий скрипт Вы еще не смотрели =))

в общем в догонку и к той модификации и к этой:

в файлах post_new_post.php и post_reply_post.php

ищем

//---------------------------------------
$class->html_add_smilie_box();

 

и перед ней добавляем

$class->output = preg_replace( "/<!--NEWS FIELD-->/" , "$news_field"  , $class->output );

 

чуть выше будет строчка

//---------------------------------------
 
$class->output = preg_replace( "/<!--START TABLE-->/" , "$start_table"  , $class->output );

 

теперь изменения только в файле post_reply_post.php

ищем строку

$db_string = $std->compile_db_string( $this->post );

 

и перед ней вставляем

if ($ibforums->input['asnews'] == 'yes') {
  echo "yahooЕЮ это же новость!!!"; exit;
}

 

Вроде бы на этот раз ничего не забыл :D

Ссылка на комментарий
Поделиться на других сайтах

Vanish

Опа! Спасиб!

Я просто понять не могу, где все эти новости будут сохраняться?

 

То есть удаление и редактирование новостей прийдётся отдельно от форума делать?

 

Добавлено:

а

тьфу

 

Перед ней собственно анализатор добавить в новости или так сойдет...

Собственно сам анализатор я писюкать не стал, ибо мне не понятно в какую таблицу, базу должна эта новость идитить.

:D

 

а примерно можно?

просто я сейчас в жуткой запарке - вот и туплю... сорри

Ссылка на комментарий
Поделиться на других сайтах

j0k3r

вот примерно такой

$DB->query("INSERT INTO your_news_table (id, topic_id, forum_id, start_date, title, post, starter_id, starter_name) VALUES (NULL, '".$this->topic['tid']."', '".$this->topic['forum_id']."', '".time()."', '".$this->topic['title']."', '".$this->post['post']."', '".$this->topic['starter_id']."', '".$this->topic['starter_name']."')");

 

Если будешь использовать этот пример помещай весь анализатор после строчек

$this->topic['tid']      = $this->post['topic_id'];
/*---------------------------------------------------*/

 

То есть удаление и редактирование новостей прийдётся отдельно от форума делать?

Именно. Не стоит нагружать сам ипб не по делу.

Ссылка на комментарий
Поделиться на других сайтах

Vanish

Код

 

function table_structure() {

global $ibforums;

return <<<EOF

<!--START TABLE-->

<!--NAME FIELDS-->

<!--TOPIC TITLE-->

<!--NEWS FIELD-->

<!--POLL BOX-->

<!--POST BOX-->

<!--QUOTE BOX-->

<!--POST ICONS-->

<!--UPLOAD FIELD-->

<!--MOD OPTIONS-->

<!--END TABLE-->

EOF;

}

А вот зачем это - поясни, plz... Просто не могу понять, где это обрабатывается?

 

А можно добавить возможность "деланья" чужого поста новостью? :D

То есть кто-то что-то запостил, а пришёл админ (админ - другая группа, не группа авторов) и сделал его пост новостью?

 

 

+++

Так... я ещё что-то хотел спросить, но уже забыл... кхе... вспомню - скажу..

Огромное спасибо ;)

Ссылка на комментарий
Поделиться на других сайтах

А вот зачем это - поясни, plz...

Это пример того как я вставил <!--NEWS FIELD-->, а сама эта функция отвечает за положение элементов в форме осоздания темы.

 

А можно добавить возможность "деланья" чужого поста новостью?

Не вижу проблемы. Если надо то могу написать.

Ссылка на комментарий
Поделиться на других сайтах

Vanish

Спасибо за пояснение...

 

Да, я думаю, что это было бы неплохо...

 

Я пока думаю, что бы ещё добавить...

 

Спасибо большое! :D

Ссылка на комментарий
Поделиться на других сайтах

Эм...

if ($ibforums->input['asnews'] == 'yes') {
   echo "yahooЕЮ это же новость!!!"; exit;
}

Куда вставлять?

 

Пока что я получил только

Parse error: parse error in /home/funky/public_html/forum/sources/Post.php on line 783

при попытке создать тему...

 

Добавлено:

Vanish

j0k3r это уже скриптом для новостей делайте. Тут я уже помочь не могу пока скрипт новостей не увижу.

А я думаю его по ходу писать... :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.