yura3d |
Отправлено: 4 октября 2009 — 19:22
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
electron пишет:на форуме php.su это вывели на главную и не парятся
Форум php.su размещается на выделенном сервере, поэтому они могут позволить себе не париться. Когда они размещались на старом хостинге, открытие главной страницы заметно подтормаживало, среднее время генерации страницы было где-то на уровне 0,4 - 0,8 с, в принципе это не так страшно, но всё же падение скорости по сравнению с другими страницами форума заметное, да и нагрузка на сервер во время открытия такой главной страницы не слабая
St.A.N.
Не так давно выкладывался мод Метаги, позволяющий выводить ссылки на последние темы форума в виде активного облака тегов на базе Flash. Посмотрите, на мой взгляд из всех существующих вариантов этот будет одним из лучших |
|
|
|
Отправлено: 3 ноября 2009 — 14:14
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Astral_ пишет:Zeg как в твоей версии добавить автора и если можно время создания поста?
Автора просто. Ищи строку
CODE:$temp_arr[$k]['posts'] = $alltopic[$topic_id]['posts'];
после нее вставляй
CODE:$temp_arr[$k]['poster'] = $alltopic[$topic_id]['poster'];
Дальше ищи
CODE:$topicid = $s['topic_id'];
после нее вставляй
CODE:$poster = $s['poster'];
Далее переменную $poster вставляй так, как тебе нужно. В моем примере:
Цитата:$allname .= "<tr><td height=15><a class=\"menuR\" href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\" title=\"".$s['name']."\"><img src=\"images/strl_r.gif\" border=0 width=12 hight=7>".$topicname.$posts." - ".$poster."</a></td></tr>\n";
С датой (и временем) чуть сложнее, нужно unix формат преобразовать в "человеческий" да еще выводить с учетом часового пояса. А пользователь может быть и не залогинен... Вобщем, гляну, красиво что придумаю - сообщу.(Отредактировано автором: 22 ноября 2009 — 12:52) |
|
|
LordShad0W |
Отправлено: 19 ноября 2009 — 21:38
|
ExBB Skins Creator
Покинул форум
Сообщений всего: 136
Дата рег-ции: Март 2009
Откуда: г.Хотьково
Репутация: 14
|
Zeg, а ты можешь выложить весь код файла (с выведением кол-ва сообщений в темах, с подписью автора) сюда? не получается у меня под RC1 настроить как не крути...
Буду благодарен! Я вообще строчки
CODE:$temp_arr[$k]['poster'] = $alltopic[$topic_id]['poster'];
$topicid = $s['topic_id'];
не могу найти, возможно у меня файл перелопачен весь...
lastforum.php (Отобразить)CODE:<?php
/****************************************************************************
* Last ExBB Forum Threads On Site Page v.1.1 *
* ------------------------------- *
* restore.php *
* ------------------- *
* begin : Tuesday, January 18, 2005 *
* copyright : (C) 2004 TVOYWEB.RU (Markus®) *
* email : administrator@tvoyweb.ru *
* www : http://www.tvoyweb.ru *
* *
* *
****************************************************************************/
$lstf_home_path = 'D:/inetpub/vhosts/bestflowerclub.ru/httpdocs/forum/'; //ПУТЬ ДО ПАПКИ С ФОРУМОМ
$lstf_url = 'http://bestflowerclub.ru/forum'; //URL ДО ПАПКИ С ФОРУМОМ
$lstf_postsprint = TRUE; //ЕСЛИ ВЫ ХОТИТЕ ЧТОБЫ НАПРОТИВ НАЗВАНИЯ ТЕМЫ
//ВЫВОДИЛОСЬ КОЛ-ВО СООБЩЕНИЙ В ТЕМЕ
//ТО ЗАМЕНИТЕ "FALSE" НА "TRUE"
$lstf_threadsnum = 15; //КОЛЛИЧЕСТВО ВЫВОДИМЫХ ТЕМ НА СТРАНИЦЕ
//ИЗМЕНИТЕ ЭТО ЧИСЛО ЕСЛИ ХОТИТЕ ВЫВОДИТЬ НА
//СТРАНИЦУ БОЛЬШЕ ИЛИ МЕНЬШЕ ТЕМ ФОРУМА
$lstf_length = 50; //ДЛИНА НАЗВАНИЯ ТЕМЫ В СИМВОЛАХ
/*************** ДАЛЬШЕ НИЧЕГО НЕ МЕНЯТЬ ******************/
$lstf_allforum = lstf_get_file($lstf_home_path.'data/allforums.php');
$lstf_forumskey = array_keys($lstf_allforum);
$lstf_last_post = array();
foreach ($lstf_forumskey as $lstf_id => $lstf_forum_id){
if (isset($lstf_allforum[$lstf_forum_id]['private']) && $lstf_allforum[$lstf_forum_id]['private'] == TRUE) continue;
$lstf_opennedfile = $lstf_home_path.'forum'.$lstf_forum_id.'/list.php';
$lstf_alltopic = array();
if (file_exists($lstf_opennedfile)){
$lstf_alltopic = lstf_get_file($lstf_opennedfile);
if(!sizeof($lstf_alltopic)) continue;
$lstf_last_post = array_merge($lstf_last_post,$lstf_alltopic);
usort($lstf_last_post, 'lstf_sort_by_lastpost');
$lstf_last_post = array_slice($lstf_last_post, 0, $lstf_threadsnum);
}
}
unset($lstf_allforum,$lstf_forumskey);
$lstf_topic_by_last_post = lstf_return_print($lstf_last_post,'posts');
echo $lstf_topic_by_last_post;
#XXXXXXXXXXXX FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
function lstf_sort_by_lastpost($a, $b) {
if ($b['state']=='moved')return -1;
if ($a['postdate'] == $b['postdate']) return 0;
return ($a['postdate'] > $b['postdate']) ? -1:1;
}
function lstf_get_file($filename) {
$fp = fopen($filename,'r');
lstf_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 lstf_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');
}
}
}
function lstf_return_print($array,$mode){
global $lstf_postsprint,$lstf_url,$lstf_length;
$allname = null;
$array = (is_array($array))?$array:array();
foreach ($array as $key =>$value){
$print = ($lstf_postsprint == TRUE) ? ' ('.$value[$mode].')':'';
$toptopicname = (strlen($value['name'])>$lstf_length)? substr($value['name'],0,$lstf_length).'...':$value['name'];
$allname .= '<a href="'.$lstf_url.'/topic.php?forum='.$value['fid'].'&topic='.$value['id'].'&v=|#'.$value['postdate'].'">'.$toptopicname.$print.'</a><br>';
}
return $allname;
}
?>
(Отредактировано автором: 19 ноября 2009 — 21:39) |
|
|
|
Отправлено: 22 ноября 2009 — 12:51
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
LordShad0W, это не мой lastforum.php. Все переменные "переколбашены", в функциях даже не копался.
Вот так оно выглядит (Отобразить)
CODE:<?php
/***************************************************************************
* Last ExBB Forum Threads On Site Page v.1.1 *
* ------------------------------- *
* restore.php *
* ------------------- *
* begin : Tuesday, January 18, 2005 *
* copyright : (C) 2004 TVOYWEB.RU (MarkusR) *
* email : support@tvoyweb.ru *
* www : http://www.tvoyweb.ru *
* *
* *
***************************************************************************/
$home_path = '/home/ffffff/public_html/chausy.info/forum/'; //ПУТЬ ДО ПАПКИ С ФОРУМОМ
// $home_path = 'W:/home/chausy.info/www/forum/';
$url = 'http://chausy.info/forum/'; //URL ДО ПАПКИ С ФОРУМОМ
$postsprint = true; //ЕСЛИ ВЫ ХОТИТЕ ЧТОБЫ НАПРОТИВ НАЗВАНИЯ ТЕМЫ
//ВЫВОДИЛОСЬ КОЛ-ВО СООБЩЕНИЙ В ТЕМЕ
//ТО ЗАМЕНИТЕ "FALSE" НА "TRUE"
$num = 16; //КОЛЛИЧЕСТВО ВЫВОДИМЫХ ТЕМ НА СТРАНИЦЕ
//ИЗМЕНИТЕ ЭТО ЧИСЛО ЕСЛИ ХОТИТЕ ВЫВОДИТЬ НА
//СТРАНИЦУ БОЛЬШЕ ИЛИ МЕНЬШЕ ТЕМ ФОРУМА
$length = 22; //ДЛИНА НАЗВАНИЯ ТЕМЫ В СИМВОЛАХ
/*************** ДАЛЬШЕ НИЧЕГО НЕ МЕНЯТЬ ******************/
$allforum = get_file($home_path.'data/allforums.php');
$forumskey = array_keys($allforum);
$a = 0;
$k = 0;
foreach ($forumskey as $id => $forum_id){
if (isset($allforum[$forum_id]['private']) && $allforum[$forum_id]['private'] == TRUE){
continue;
} else {
$opennedfile = $home_path.'forum'.$forum_id.'/list.php';
if(file_exists($opennedfile)){
$alltopic = get_file($home_path.'forum'.$forum_id.'/list.php');
uasort($alltopic, 'sort_by_lastpost');
$topic_key = array_keys($alltopic);
array_splice($topic_key,$num);
for ($i=0;$i<count($topic_key);$i++){
$topic_id = $topic_key[$i];
$temp_arr[$k]['postdate'] = $alltopic[$topic_id]['postdate'];
$temp_arr[$k]['postkey'] = $alltopic[$topic_id]['postkey'];
$temp_arr[$k]['forum_id'] = $forum_id;
$temp_arr[$k]['topic_id'] = $topic_id;
$temp_arr[$k]['name'] = $alltopic[$topic_id]['name'];
$temp_arr[$k]['state'] = $alltopic[$topic_id]['state'];
$temp_arr[$k]['posts'] = $alltopic[$topic_id]['posts'];
$temp_arr[$k]['poster'] = $alltopic[$topic_id]['poster'];
$k++;
}
}
}
}
usort($temp_arr, 'sort_by_lastpost');
array_splice($temp_arr,$num+20);
$allname = '';
$i=0;
foreach ($temp_arr as $v => $s){
if ($i==$num){
break;
}
if ($s['state']!='moved'){
$forumid = $s['forum_id'];
$topicid = $s['topic_id'];
$postdate = $s['postdate'];
$poster = $s['poster'];
// $postd = $fm->_DateFormat($postdate + $fm->user['timedif']*3600);
$postkey = $s['postkey'];
$topicname = (strlen($s['name'])>$length) ? substr($s['name'],0,$length-1).'...':$s['name'];
$posts = ($postsprint==TRUE)?' ('.$s['posts'].')':'';
$allname .= "<tr><td height=15><a class=\"menuR\" href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\" title=\"".$s['name']."\"><img src=\"images/strl_r.gif\" border=0 width=12 hight=7>".$topicname.$posts." -".$poster."</a></td></tr>\n";
$i++;
}
}
echo $allname;
#XXXXXXXXXXXX FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
function sort_by_lastpost($a, $b)
{
if ($a['postdate'] == $b['postdate']) {
return 0;
}
return ($a['postdate'] > $b['postdate']) ? -1 : 1;
}
function get_file($file) {
if (!file_exists($file)) return array();
$fp = @fopen($file, 'r') or die('Could not read from the file <b>'.$file.'</b>');
flock($fp, 1);
fseek($fp, 8);
$str = fread($fp, ($size = filesize($file)) ? $size : 1);
flock($fp, 3);
fclose($fp);
return @unserialize($str);
}
?>
(Отредактировано автором: 2 апреля 2011 — 05:39) |
|
|
|