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

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


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

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

 

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

 

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

При создании темы у тех людей, кто принадлежит группе авторов (или не группе - как-то отмечен, короче) , появляется 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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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