[RC] Glance v.2

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 20 лет 3 месяца
Откуда: Москва

Сообщение avm »

Для того, чтобы при каждом следующем входе пользователя (или обновлении страницы по F5) на титульной странице форума при помощи Glance v2, по очереди выводились объявления перечисленные через запятую в панели управления -> Конфигурация -> Объявления

В корневой каталог форума кладем файл "glance_anno_rotate.php"

Код: Выделить всё

<?php
if ( !defined('IN_PHPBB') )
{
   die("Hacking attempt");
}

$glance_anno_posts = @explode(',',str_replace(' ','',$board_config['glance_anno_post']));
$anno_post_key = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_anno']) ) ? intval($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_anno"]) : 0;
$anno_post_key++;
if ( $anno_post_key >= count($glance_anno_posts) || !$glance_anno_posts[$anno_post_key] ) $anno_post_key = 0;
setcookie($board_config['cookie_name'] . '_anno', $anno_post_key, time()+(60*60*24*30), $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
$board_config['glance_anno_post'] = $glance_anno_posts[$anno_post_key];
?>
Теперь нужно выполнить следующие действия:

Код: Выделить всё

# 
#-----[ OPEN ]---------------------------------
# 
index.php
#
#-----[ FIND]-----------------
#
	//
	// Start output of page
	//
#
#-----[ BEFORE, ADD ]-----------------
#
	// [begin] Glance mod rotate AddOn
	include($phpbb_root_path . 'glance_anno_rotate.'.$phpEx);
	// [end] Glance mod rotate AddOn
# 
#-----[ OPEN ]---------------------------------
# 
templates/subSilver/admin/board_config_body.tpl
#
#-----[ FIND ]-----------------
# в райне 37-ой строки
		<td class="row2"><input class="post" type="text" size="5" maxlength="4" name="glance_anno_post" value="{GLANCE_ANNO_POST}" /></td>
#
#-----[ REPLACE ]-----------------
#
		<td class="row2"><input class="post" type="text" size="25" maxlength="24" name="glance_anno_post" value="{GLANCE_ANNO_POST}" /></td>
# 
#-----[ SAVE/CLOSE ALL FILES ]-----------------
# 
Это дополнение сохраняет на компьютере пользователя, с помощью COOKIE, индекс номера сообщения (не сам номер!) которое было показано посетителю последний раз.

Добавлено спустя 46 минут 6 секунд:

Также можно добавить к объявлению дату публикации и автора:

Код: Выделить всё

# 
#-----[ OPEN ]--------------------------------- 
# 
glance.php 
#
#-----[ FIND ]--------------
#
// Announcement text
if ( $glance_anno_post )
{
	$sql = "SELECT * FROM " . POSTS_TEXT_TABLE . " WHERE post_id = $glance_anno_post";
	$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not obtain announcement information', '', __LINE__, __FILE__, $sql);
	$announcement = $db->sql_fetchrow($result);
	$announcement_text = bbencode_second_pass($announcement['post_text'], $announcement['bbcode_uid']);
	$announcement_text = str_replace("\n", "\n<br />\n", $announcement_text);
}
else
{
	$announcement_text = '';	
}

$template->assign_vars(array(
	'ANNO_TITLE' => $lang['Glance_anno'],
	'ANNO_TEXT' => $announcement_text,
	'RECENT_TITLE' => $lang['Glance_recent'])
);
#
#-----[ REPLACE ]--------------
#
// Announcement text
if ( $glance_anno_post )
{
	$sql = "SELECT t.post_id, t.post_text, t.bbcode_uid, p.post_time, p.poster_id, u.username
		FROM " . POSTS_TEXT_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . USERS_TABLE . " AS u
		WHERE t.post_id = $glance_anno_post
		AND p.post_id = t.post_id
		AND u.user_id = p.poster_id";
	$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not obtain announcement information', '', __LINE__, __FILE__, $sql);
	$announcement = $db->sql_fetchrow($result);
	$announcement_text = bbencode_second_pass($announcement['post_text'], $announcement['bbcode_uid']);
	$announcement_text = str_replace("\n", "\n<br />\n", $announcement_text);

	$announcement_date = create_date($lang['DATE_FORMAT'], $announcement['post_time'], $board_config['board_timezone']);
	$announcement_author = "<a href=profile.php?mode=viewprofile&u=".$announcement['poster_id'].">".$announcement['username']."</a>";
}
else
{
	$announcement_text = $announcement_date = $announcement_author = '';
}

$template->assign_vars(array(
	'ANNO_TITLE' => $lang['Glance_anno'],
	'ANNO_TEXT' => $announcement_text,
	'ANNO_DATE' => $announcement_date,
	'ANNO_AUTHOR' => $announcement_author,
	'RECENT_TITLE' => $lang['Glance_recent'])
);
ну и чтобы эта информация появилась на экране (правда у меня темплейт совсем другой, поэтому за "дизайн" :) не отвечаю):

Код: Выделить всё

# 
#-----[ OPEN ]--------------------------------- 
# 
templates/subSilver/glance_body.tpl 
#
#-----[ FIND ]-------------------------
# около 5-ой строки
#
<table width="100%" cellpadding=2 cellspacing=1 border=0 class="forumline">
<tr><th colspan=2 class="thTop" height=25>{ANNO_TITLE}</th></tr>
<tr> 
<td class="row1"><span class="gensmall">{ANNO_TEXT}</span></td>
</tr>
</table>
#
#-----[ REPLACE ]-----------------------
#
<table width="100%" cellpadding=2 cellspacing=1 border=0 class="forumline">
<tr><th colspan=2 class="thTop" height=25>{ANNO_TITLE}</th></tr>
<tr> 
<td><span class="gensmall">{ANNO_DATE}<br />({ANNO_AUTHOR})</span></td>
<td class="row1"><span class="gensmall">{ANNO_TEXT}</span></td>
</tr>
</table>
кстати, я не понял зачем в оригинальном темплейте <th colspan=2>... но вот и пригодилось :)
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Олег
phpBB 1.4.2
Сообщения: 62
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Олег »

Поставил я эту версию, а в админке ничего нового не появилось :(
Может я что-то не доделал - но я проверил оба админских файла - все сделано вроде правильно. ... Теперь сверху на главной красуются новые надписи (помимо тех, что были): объявления и последние темы . А вот как их запустить - без понятия
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Должны были появиться две новые опции в конфигурации.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Олег
phpBB 1.4.2
Сообщения: 62
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Олег »

Они появились, просто думал, что должен новый пункт появиться. ие еще почему-то в админке не отображается текст к этим пунктам (на главной - отображается), хотя в lang_admin я добавил необходимые строки, причем как в русский, так и в английский

Добавлено спустя 47 секунд:

Не подскажите, чем эо может быть вызвано?
Олег
phpBB 1.4.2
Сообщения: 62
Стаж: 20 лет 4 месяца
Откуда: Москва

Сообщение Олег »

Теперь отображается. вопрос снят
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 20 лет 2 месяца

Сообщение Димка »

Поставил..
1. В админовской панели появились 2 пункта - заполняешь - нажимаешь сохранить - а они пустыми становяться...
2. В правой панели, где темы отображаются - пусто! :evil:
Подскажите, в чём дело... старый мод работал нормально...
Версия моего форума - 2.0.15
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 20 лет 5 месяцев

Сообщение YarNET »

Димка, в начале мода есть строка запроса к db, который вы скорее всего не выполнили.
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 20 лет 2 месяца

Сообщение Димка »

Вот, я обычно кидал файлики типа Install а тут нету. Как сделать такой файлик?

Добавлено спустя 3 минуты 19 секунд:

я просто хочу сказать, что в ручную не умею прописывать такие вещи. Сижу на valuehost.ru там есть пункт "Управление MYSQL" в ней я создал таблицы для форума (в смысле пароль и логин. Остальное всё автоматически настроилось). С Другими модами был файлик, который сам прописывал такие запросы :(
Версия моего форума - 2.0.15
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 20 лет 5 месяцев

Сообщение YarNET »

Нужно в phpMyAdmin или другом клиенте администрирования db выполнять такой запрос.
В принципе, сдесь есть люди, которые вам могут сделать скрипт для обновления.
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 20 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Димка
Поиск по форуму (и не только) рулит!
http://www.phpbbguru.net/community/view ... 3812#13812
Аватара пользователя
Dmitrij
phpBB 1.4.3
Сообщения: 78
Стаж: 20 лет 10 месяцев
Откуда: Москва
Благодарил (а): 1 раз

Сообщение Dmitrij »

В связи с проблемой http://www.phpbbguru.net/community/view ... 5085#15085
Нельзя ли Glance использовать как Topics Anywhere на главной сайта. Только шаблон другой использовать, без объявлений.
С уважением, Дмитрий.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Dmitrij
Нет, Glance для этого не предназначен.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 20 лет 2 месяца

Сообщение Димка »

Всем спасибо, завтра попробую ещё разок поставить :oops: :roll:
Версия моего форума - 2.0.15
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 20 лет 2 месяца

Сообщение Димка »

Всё заработало.. Ещё раз спасибо... к правой панели вопросов не имею а вот с левой:
Всётаки хочется иметь возможность не тему туда бахать а объявления, которые прямо из lang_mail.php шли, было удобно... Не подскажите, как вернуть такую возможность?
Версия моего форума - 2.0.15
Аватара пользователя
Димка
phpBB 1.4.1
Сообщения: 40
Стаж: 20 лет 2 месяца

Сообщение Димка »

Добавить бы возможность чтобы не только топики отображал в левой панели а и как в 1 версии новости писать можно было руками!
Версия моего форума - 2.0.15

Вернуться в «Бета-версии модов для phpBB 2.0.x»