|
Отправлено: 13 октября 2013 — 05:58
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Это не основная статистика. Это визуальная часть модуля "Расширенная статистика посещений". Думаю всё реально, просто времени нужно разобраться чуть больше.
(Добавление)
Получилось как-то так...
Файл homepage.php
Спойлер (Отобразить)CODE:<?php define('IN_EXBB', TRUE);
// подключаем ядро
include('./include/common.php');
// готовим данные
$onlinedata = $fm->_OnlineLog($fm->LANG['BoardMain'],FALSE,TRUE);
$online_last = sprintf($fm->LANG['OnlineData'],$fm->exbb['membergone'],$fm->_OnlineTotal,$fm->_Members,$fm->_OnlineGuest);
$members_output = $fm->_MembersOutput;
$todayvisit = FALSE; today($todayvisit);
// выводим данные
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/homepage.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');
// объявляем функции
function today(&$todayvisit)
{
global $today, $fm;
$members = $hiddens = 0;
$was = array();
if (empty($today['members'])) {$today['members'] = array();}
foreach ($today['members'] as $id => $member)
{
switch ($member['s'])
{
case 'ad': $class = ' class="admin"'; break;
case 'sm': $class = ' class="supmoder"'; break;
default: $class = '';
}
if ($member['v'])
{
if ($member['s'] != 'ad') {$hiddens++;}
if (defined('IS_ADMIN') || $id == $fm->user['id']) {$member['n'] .= '*';}
else {continue;}
}
else
{$members++;}
$was[] = '<a href="profile.php?action=show&member='.$id.'"'.$class.'>'.$member['n'].'</a>';
}
$sel_hiddens = ($hiddens) ? sprintf($fm->LANG['HiddensOnline'], $hiddens) : '';
$sel_was = ($was) ?
'<div id="spoiler_todayvisit"> <span class="admin">'.$fm->LANG['Admin'].'</span>, <span class="supmoder">'.$fm->LANG['SuperModer'].'</span>,
<span class="moder">'.$fm->LANG['Moderator'].'</span> , '.$fm->LANG['User'].' <br /> '.implode(', ', $was).'</div>' : '';
$todayvisit = sprintf($fm->LANG['TodayVisit'], $today['guests'] + $members + $hiddens, $today['guests'], $members, $sel_hiddens, $sel_was);
}
?>
Файл homepage.tpl
Спойлер (Отобразить)CODE:<?php
echo <<<DATA
<br>
<div id="navstrip" align="left">
<img src="./templates/InvisionExBB/im/nav.gif" border="0" alt=">" /> <a href="index.php">{$fm->exbb['boardname']}</a> » {$fm->LANG['WhoOnline']}
</div>
<br>
<table cellpadding="4" cellspacing="1" border="1" width="100%" class="tableborder">
<tr>
<td class="maintitle" colspan="2">Статистика посещений</td>
</tr>
<tr>
<td class="row2" align="center"><img src="./templates/InvisionExBB/im/user.gif" border="0" alt="Active Users" /></td>
<td class="row4" width="95%">
{$online_last} <br>
{$members_output} <br>
</td>
</tr>
<tr>
<td class="row2" align="center"><img src="./templates/InvisionExBB/im/stats.gif" border="0" alt="Active Users" /></td>
<td class="row4">{$todayvisit}</td>
</tr>
</table>
DATA;
?>
(Добавление)
Сворачивание под спойлер убрал, т.к. функции спойлера оказались недоступны. Если будет очень нужно - подвяжем и спойлер но позже...
(Добавление)
Забыл в файле homepage.tpl отключить рамку... |
|
|
electron |
Отправлено: 14 октября 2013 — 06:13
|
ExBB Team
Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009
Репутация: 341
|
что делаю не так - не знаю, но ни в какую работать не желает. как это делаю я (спрятано под хайд) :
Спойлер (Отобразить)Скрытый текст:Для просмотра Вам необходимо авторизоваться и оставить не менее 30 сообщений
после всего проделанного у меня админка при открытии страницы "Главная страница сайта" выдает ошибку в последней строке файла admin/homepage.tpl , то есть в
файл в папке data естественно не создается. тупо понимаю, что где-то что-то делаю не так, но где.... ?
$end - так сказать неожиданный конец чего-то. но вроде все скобки в функциях закрыл. короче, не вгоню..... |
|
|
|
Отправлено: 14 октября 2013 — 19:46
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Цитата:внешне - да. окно с вводом определенного текста , "сохранить" внизу- да, похоже. но код у этой функции жутко наворочен Код - дело второе. Меня интересует пока именно внешняя атрибутика. Ведь как я понимаю сейчас вообще ничего не запускается? Что бы понять, где собака порылась сам код временно можно максимально упростить, добившись для начала хотя бы, что бы окно с формой без проблем вызывалось. Попробуйте вместо этого кода
CODE:} elseif ($fm->input['action'] == 'homepage') {
if ($fm->_String('process') !== '' && $fm->_POST === TRUE) {
$bad = $fm->_Read2Write($fp_udata, FM_HOMEPAGE);
$bad = trim($fm->input['homepage']);
$fm->_Write($fp_udata, $bad);
$fm->_Message($fm->LANG['Homepage'], $fm->LANG['SaveOk'], 'setmembers.php?action=homepage', 1);
} else {
$bad = $fm->_Read(FM_HOMEPAGE);
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/homepage.tpl');
include('./admin/footer.tpl');
}
для начала использовать такой код
CODE:} elseif ($fm->input['action'] == 'homepage') {
$bad = 'Test';
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/homepage.tpl');
include('./admin/footer.tpl');
}
Другими словами максимально упрощаем структуру и вместо переменных подставляем тестовые значения. Если форма откроется - потихоньку добавляем функционал.
А вообще - пока писал пост, увидел, что скорее всего у вас в коде, который вы добавляли в setmembers.php потеряна закрывающая фигурная скобка. Ваш редактор, в котором вы код правите, ошибки синтаксиса подсказывает?
PS: Мне сейчас просто не получается выкроить достаточно времени посидеть с вашей проблемой. Может быть завтра удасться во второй половине дня или вечером... |
|
|
electron |
Отправлено: 15 октября 2013 — 16:27
|
ExBB Team
Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009
Репутация: 341
|
NordWest пишет:для начала использовать такой код
CODE:} elseif ($fm->input['action'] == 'homepage') {
$bad = 'Test';
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/homepage.tpl');
include('./admin/footer.tpl');
}
один фик, та же ошибка в том же файле в той же последней строке
NordWest пишет:в коде, который вы добавляли в setmembers.php потеряна закрывающая фигурная скобка.
она не потеряна, а берется из строки
CODE:} elseif ($fm->input['action'] == 'censor') {
NordWest пишет:Ваш редактор, в котором вы код правите, ошибки синтаксиса подсказывает?
нет |
|
|
|
Отправлено: 15 октября 2013 — 18:43
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
В файле homepage.tpl почти в конце вот этот тег по моему с ошибкой
замените на <br />
(Добавление)
Вот так попробуйте...
Вставка в setmembers.php (с фигурными скобками уточните)
CODE:elseif ($fm->input['action'] == 'homepage')
{
$bads = 'Test';
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/homepage.tpl');
include('./admin/footer.tpl');
}
Содержимое homepage.tpl
CODE:<?php
echo <<<DATA
<h1>Домашняя страница</h1>
<form action="setmembers.php" method="post">
<input type="hidden" name="action" value="homepage">
<input type="hidden" name="process" value="1">
<table width="75%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
<tr><th class="maintitle">Правка страницы</th></tr>
<tr>
<td align="center" class="row2">
<textarea class="post" type="text" cols="60" rows="30" style="width:80%" wrap="virtual" name="homepage">{$bads}</textarea>
</td>
</tr>
<tr>
<td class="pformstrip" align="center"><input type="submit" name="submit" value="{$fm->LANG['Save']}" class="inputsubm" /></td>
</tr>
</table>
</form>
<br clear="all" />
DATA;
?>
Интерфейс должен отработать.
Ошибка скорее всего была в синтаксисе. Тег DATA; (или не знаю, как в данном случае его правильно назвать) должен обязательно начинаться с новой строки и не содержать перед собой пробелов.
(Добавление)
Что касается дальнейшего устройства вашего кода - возможно там всё верно и он заработает, но мне просто некогда анализировать. Пробуйте. Если не будет работать как задумано - упрощайте, некоторые вычисляемые параметры пропишите вручную как переменные... |
|
|
|