Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Новостная лента
ТвойWeb » » Моды, хаки, скины и дополнения » Новостная лента

Страниц (2): [1] 2 »
 

1. jakomo - 21 Апреля, 2007 - 16:59:06 - перейти к сообщению
Подскажите пожалуйста как организовать такую систему на сайте и форуме чтобы Объявления, которые создавались на форуме могли бы переносится на главную страницу сайта в виде новостей (с датой создания и автором, или просто с датой). Я пытался порыться в кодах, но поскольку в PhP мой уровень познания не высок, я не смог найти функции отвечающие за считывания из файлов текста объявлений.

БЛагодарю за внимание. и заранее спасибо за ответы.
2. awep - 22 Апреля, 2007 - 08:34:37 - перейти к сообщению
функция get_file
3. jakomo - 23 Апреля, 2007 - 06:28:44 - перейти к сообщению
Расзбираясь в кодах и функцией этой я чуть не положил форум...

Авеп, можешь дать чуть более развернуто ответ о том как использовать эту функцию именно в форуме Exbb чтобы вытащить оттуда текст сообщения, дату и атвора.

Спасибо.
4. awep - 24 Апреля, 2007 - 15:10:14 - перейти к сообщению
выдрал со своего сайта. там я сделал один форум как архив новостей, то есть новая тема=новость.
начало: считываем все из файла всего форума
CODE:
$forum_list_file=$config['forum_dir'].'forum'.$modconfig['news_fm_num'].'/list.php';
$forum_list=get_file($forum_list_file);
ksort($forum_list);
reset($forum_list);
$ids=array_reverse(array_keys($forum_list));
$frm_cnt=count($forum_list);
где $config['forum_dir'] - папка форума а $modconfig['news_fm_num'] это айди форума. из этих данных ты получишь время первого поста то есть время добавления новости, кол-во ответов и айди автора. далее циклом(как тебе удобно,хош for, хош while, хош foreach) читаем каждый файл темы.
CODE:
$this_news_file=$config['forum_dir'].'forum'.$modconfig['news_fm_num'].'/'.$id.'-thd.php';
$this_news=get_file($this_news_file);
в массиве $this_news есть текст новости.
5. jakomo - 25 Апреля, 2007 - 09:29:21 - перейти к сообщению
Спасибо awep! НАсколько я понимаю этим кодом ты загоняешь весь текст содержащийся в '.$id.'thd.php файле в масиав. Но по какому принципу вытащитть отдельно текст сообщения, отдельно название темы и так далее? и почему то ДЕНВЕРУ не нравится функция GET_FILE ...
6. awep - 25 Апреля, 2007 - 13:19:20 - перейти к сообщению
я же все подробно описал!!
названия тем берутся из list.php. само сообщение из $id-thd.php.
в вышеуказанном коде получаем переменную $this_news , которая представляеют собой массив.
просто сделай
CODE:
print_r($this_news);
и поймешь что к чему
7. jakomo - 26 Апреля, 2007 - 01:24:32 - перейти к сообщению
спасибо! попробую затестить.
8. Терминатор01 - 20 Июня, 2007 - 15:56:53 - перейти к сообщению
Я не спец. Попробовал собрать всё что написано выше.
CODE:
<?php
$config['forum_dir']='z:/home/test2.ru/www/test-exbb/';
$modconfig['news_fm_num']=4;

$forum_list_file=$config['forum_dir'].'forum'.$modconfig['news_fm_num'].'/list.php';
$forum_list=get_file($forum_list_file);
ksort($forum_list);
reset($forum_list);
$ids=array_reverse(array_keys($forum_list));
$frm_cnt=count($forum_list);

print_r($this_news);//line 12
//Функции
function get_file($filename) {
$fp = fopen($filename,'r');
fnsp_lock_file($fp,$filename);
$filesize = filesize($filename);
$filesize = ($filesize ===0) ? 1:$filesize-8;
fseek($fp,8);
$str = fread($fp,$filesize);
fclose($fp);
return (!empty($str))?unserialize($str):array();
}

function fnsp_lock_file(&$file,$filename,$mode = LOCK_SH) {
if (preg_match('/[c-z]:\\\.*/i', $_SERVER['PATH'])) return;
$i = 0;
while (!flock($file,$mode+LOCK_NB)) {
sleep(1);
$i++;
if ($i>=10) {
@fclose($file);
die('Access to file '.$filename.' blocked! Try again later');
}
}

}
?>

Добавил пару функций, чтоб они работали.
Выдаёт ошибку:
//Notice: Undefined variable: this_news in z:\home\test2.ru\www\news-awer.php on line 12
Но если поменять print_r($this_news);//line 12
на например print_r($forum_list); то действительно работает. Только надо ещё понять
что выводить, как и зачем.
А вобщем то мы изобретаем велосипед.
Уже созданы моды Новости форума на странице сайта и Объявлений на страницах сайта.
Именно с первого брал эти две функции.
Другое дело что эти моды ещё не доведены до совершенства.
9. awep - 22 Июня, 2007 - 08:51:37 - перейти к сообщению
Судя по всему, ты не знаешь, что вообще хранится в файлах форума.
CODE:
$forum_list_file=$config['forum_dir'].'forum'.$modconfig['news_fm_num'].'/list.php';
$forum_list=get_file($forum_list_file);
ksort($forum_list);
reset($forum_list);
$ids=array_reverse(array_keys($forum_list));
$frm_cnt=count($forum_list);

print_r($this_news);//line 12
ОТкуда ты вообще берешь $this_news? У тебя их еще нет, а ты их выводишь. Перебирай циклом переменную $forum_list и уже в цикле просматривай что там - поймешь. Не ленись!
Цитата:
А вобщем то мы изобретаем велосипед.
Не хочешь - не изобретай. Каждый делает все под себя, а моды ориентированы под конкретно одни цели.

Для начала сделай бэкап форума и просмотри что где и как хранится. Сразу даю подсказку: в основном данные хранятся в виде сериализованного массива, который можно считать функцией get_file из lib.php. Посмотри и все станет ясно.
Если не станет - объясню подробней.
10. SlyFox - 23 Июня, 2007 - 12:01:52 - перейти к сообщению
Идея показалась интересной. Сделал некий набросок, вполне рабочий...
CODE:

<?
include('common.php');

$vars = parsed_vars();

$title_page = $exbb['boardname'].' :: Новости сайта';
include('./templates/'.$exbb['default_style'].'all_header.tpl');
include('./templates/'.$exbb['default_style'].'logos.tpl');

//<!-- NEWS -->
print("<div id='navstrip' align='left'><a href='index.php'>$exbb[boardname]</a>&nbsp;&raquo;&nbsp;Новости сайта</div>");

$forumid = 15;
$config['forum_dir'] = $exbb['home_path'].'forum'.$forumid.'/';

$forum_list_file=$config['forum_dir'].'list.php';
$forum_list=get_file($forum_list_file);
ksort($forum_list);
reset($forum_list);
//$ids=array_reverse(array_keys($forum_list));
$ids=array_reverse($forum_list);

$iii=0;

foreach($ids as $key => $id)
{
$name = $ids[$iii]['name'];
$author = '<a href="'.$exbb['boardurl'].'/profile.php?action=show&member='.$ids[$iii]['a_id'].'">'.$ids[$iii]['author'].'</a>';
$date = $ids[$iii]['date'];
$date = date(" d.m.Y H:i",$date);
$id = $ids[$iii]['id'];
$posts = $ids[$iii]['posts'];
$comment = '<a href="'.$exbb['boardurl'].'/topic.php?forum='.$forumid.'&topic='.$id.'">Обсуждение</a> ('.$posts.')';

$this_news_file=$config['forum_dir'].$id.'-thd.php';
$this_news=get_file($this_news_file);

foreach($this_news as $news_text)
{
$post = $news_text['post'];
break;
}

print("<table class='tableborder' width='100%' border='0' cellspacing='1' cellpadding='4'>");
print("<tr><td class='maintitle' align='left'><img src='./templates/InvisionExBB/im/nav_m.gif' border='0' alt='&gt;' width='8' height='8' />&nbsp;$name</th>");
print("</td>");
print("</td></tr>");
print("<tr><td class='row4'>$post</td></tr>");
print("<tr><td class='darkrow2'>Отправлено: $date | Автор: $author | $comment</td></tr>");
print("</table>");
print("<br>");

$iii++;
}

//<!-- NEWS -->

include('./templates/'.$exbb['default_style'].'footer.tpl');
include('page_tail.php');
?>


Я вобще-то не кодер, и РНР знаю посредственно достаточно, если кто решиться на варианты оптимизации, то хорошо. Насущный вопросв такой - как заставить этот код воспринимать BB-коды, которые, понятное дело есть в темах, которые скрипт выводит, но отображает их простым текстом. Что ему прикрутить, чем обработать код на выходе?

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0382]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33