Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Recent Topics

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
PekopT
phpBB 1.2.1
Сообщения: 25
Стаж: 15 лет 11 месяцев

Сообщение PekopT »

PekopT писал(а):А у меня вот такой вопросик: возможно ли обновление Java скрипта без перезагрузки страницы ? как я понимаю, это и есть AJAX. а еще я слышал что к Glance такую штуку прикрутили.... было бы очень интересно такое увидеть и в Recent Topics...
RedNaxi писал(а):<script language='JavaScript' type='text/javascript' src='http://www.xxx.com/recent.php'></script>

то очевидно можно.

надо немного подумать
хм, вопрос открыт, господа кто знает ajax, уделите внимание пожалуйста.
Аватара пользователя
RedNaxi
Former team member
Сообщения: 933
Стаж: 16 лет 7 месяцев
Откуда: BeBoss.ru
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Сообщение RedNaxi »

если до меня никто не сделает завтра займусь этим вопросом.
PekopT
phpBB 1.2.1
Сообщения: 25
Стаж: 15 лет 11 месяцев

Сообщение PekopT »

RedNaxi ну так что?

господа, это буде стоящая весчь. почему бы не попробывать?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 19 лет 6 месяцев
Поблагодарили: 2 раза

Сообщение Xpert »

Я попробую сегодня, все равно мод обновлять надо.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
sires
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 9 месяцев

Сообщение sires »

чего я мог не так сделать?
при обращении forum/recent.php, выдает:
document.writeln('Игра 15.12.07 (регистрация, об…
\n'); document.writeln('Поздравляю!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 19 лет 6 месяцев
Поблагодарили: 2 раза

Сообщение Xpert »

Уже второй вопрос на последдних страницах. Это правильно - файл отдает JavaScript.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
sires
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 9 месяцев

Сообщение sires »

Xpert писал(а):Уже второй вопрос на последдних страницах. Это правильно - файл отдает JavaScript.
:D Спасибо! Все понял... Получилось!
PekopT
phpBB 1.2.1
Сообщения: 25
Стаж: 15 лет 11 месяцев

Сообщение PekopT »

Xpert,
что там с ajax для Recent Topics ?

есть какие-то подвижки?
Аватара пользователя
natali
phpBB 2.0.1
Сообщения: 293
Стаж: 18 лет 3 месяца
Откуда: Киев

Сообщение natali »

Простите что повторяюсь, но что с кашированием можно придумать? А то висящий форум кладёт весь сайт (((
PekopT
phpBB 1.2.1
Сообщения: 25
Стаж: 15 лет 11 месяцев

Сообщение PekopT »

natali писал(а): А то висящий форум кладёт весь сайт (((
хм. возможно это у вас что-то не так, ибо у меня при висящем форуме - просто нет ни одной темы...
Roms
phpBB 1.0.0
Сообщения: 1
Стаж: 15 лет 9 месяцев

Сообщение Roms »

Люди, такое дело, пытаюсь приделать этот мод к WordPress`у, но вордпресс использует другую кодировку, из-за чего выводится вот такое: "�� ��������". Можно сделать что-нибудь сделать? :(
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 15 лет 10 месяцев
Откуда: Киев

Сообщение Shock13666 »

Есть ли возможность сделать, чтобы этот мод давал ссылки на сообщения не так, как он дает, а так, как то предусмотрено модом SE Friendly Forum то есть к примеру topic335.html вместо viewtopic.php?t=335. Да, я знаю, что поисковики его ссылки все равно не видят. Мне надо по другой причине. Старался сделать это с помощью хтакцес, но не получилось. Как можно исправить код?
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 18 лет 10 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Shock13666
Можно лёгким движением руки делается...

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

$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$board_path = $server_protocol . $server_name . $server_port . $script_name;
$viewtopic_url = $board_path . '/topic';
$viewpost_url = $board_path . '/post';
и

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

		'U_TOPIC' => $viewtopic_url . $row['topic_id'] . '.html',
		'TOPIC_TITLE' => str_replace("'", "\'", $topic_title)
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 15 лет 10 месяцев
Откуда: Киев

Сообщение Shock13666 »

[AJAX mod here] Я так поннимаю:

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

#
#-----[ OPEN ]------------------------------------------ 
# 

recent.php

# 
#-----[ FIND ]------------------------------------------ 
# 

$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$board_path = $server_protocol . $server_name . $server_port . $script_name;
$viewtopic_url = $board_path . '/viewtopic.' . $phpEx;

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path'])); 
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$board_path = $server_protocol . $server_name . $server_port . $script_name;
$viewtopic_url = $board_path . '/topic';
$viewpost_url = $board_path . '/post';

# 
#-----[ FIND ]------------------------------------------ 
# 

'U_TOPIC' => $viewtopic_url . '?' . POST_TOPIC_URL . '=' . $row['topic_id'],

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

'U_TOPIC' => $viewtopic_url . $row['topic_id'] . '.html', 

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

Огромное спасибо! У мня все получилось!

Такой еще вопрос - как там прогресс с AJAX апгрейдом мода?

Добавлено спустя 2 часа 6 минут 43 секунды:


AJAX Recent Mod Beta

Ладно. Тк аякс-версия данного мода что-то застопорилась, пришлось изучать аякс и писать свою. Моя первая поделка на аякс.

Файл recent_ajax.js (кидаем в корень форума)

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

var xmlObj = null;
	
function recent() {
	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}
	xmlObj.onreadystatechange = process
	xmlObj.open ('GET', "recent.php", true);
	xmlObj.send ( null );
}
function process(){
	if(xmlObj.readyState == 4){
		document.getElementById("output").innerHTML = xmlObj.responseText ;
	}
}
Файл recent_body.tpl

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

<!-- BEGIN topicrow -->
<li><a href="{topicrow.U_TOPIC}">{topicrow.TOPIC_TITLE}</a></li>
<!-- END topicrow -->
На странице, где будет сам список:

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

#
#--- [ Find ] ---
#
</head>

#
#--- [ Before, add ] ---
#
<script type="text/javascript" src="recent_ajax.js"></script>

#
#--- [ Find ] ---
#
<body

#
#--- [ In line, find ] ---
#
body

#
#--- [ After, add ] ---
#
 onLoad="recent()"
Сообственно, сам список последних тем:

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

<ul id="output">
<li>Default</li>
</ul>
Кнопка обновления списка:

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

<a onclick="recent()">Update Recent Topics</a>
В двух словах обьясняю принцип работы. Сначала загружается весь документ, потом берется содержимое файла recent.php ( body onLoad="recent()" ) и заменяет содержимое блока с id="output" на то, что в файле ресент.пхп. В случае, если ЖаваСкрипты отключены, то будет показываться содержимое по умолчанию (в данном случае <li>Default</li>). Этот момент можно заменить на что угодно, например на сообщение "Включите Жабоскрипты" или на рекламу, что, мо моему, значительный плюс по сравнению с предыдущей версией, которая невалидна и не выдает ничего в случае неисправности. Если жаваскрипты включены, то будет создана конструкция след вида:

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

<ul id="recent_output">
 <li><a href="{LINK}">{NAME}</a></li>
 <li><a href="{LINK}">{NAME}</a></li>
 <li><a href="{LINK}">{NAME}</a></li>
 <li><a href="{LINK}">{NAME}</a></li>
 <li><a href="{LINK}">{NAME}</a></li>
</ul>
Внешний вид этой конструкции очень легко изменяется с помощью ксс: ul#recent_output{background:green}.

Дальше. У нас есть кнопка обновления списка <a onclick="recent()">Update Recent Topics</a>. Вы можете заменить тег А на Див, Спан, Буттон, или что-то другое - неважно. При клике на него снова изменяется содержимое блокас id="output" на то, что в файле ресент.пхп, без перезагрузки всей страницы. Текст может быть заменен на красивый рисунок, или еще чет. Главное - суть.

Итого, этот вариант позволяет сделать меню последних тем с обновлением при нажатии кнопки, размещенной в любом другом месте.

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

Я еще полажу, поэкспериментирую и, может, самообновляющуюся сделаю...

Добавлено спустя 1 час 21 минуту 49 секунд:

AJAX Recent Mod Beta. TimeOut Addon

auto_recent_ajax.js (в корне форума)

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

var info = document.getElementById("recent_timer");
var timer;
function auto_recent() {
	timer = setInterval(function() {
		var cur = parseInt(info.innerHTML);
		if(cur == '0') {
			recent();
			cur = 30; // Time of Update
		} 
		else cur--;
		info.innerHTML = cur;
	},1000);
}
Строка 8 - это количество секунд, которые проходят между автообновлениями.

Изменения после установки предыдущего мода Аякс:

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

#
#--- [ Open ] ---
#
overall_footer.tpl 

#
#--- [ Find ] ---
#
</body>

#
#--- [ Before, Add ] ---
#
<script type="text/javascript" src="auto_recent_ajax.js"></script>


#
#--- [ Open ] ---
#
overall_header.tpl 

#
#--- [ Find ] ---
#
<body

#
#--- [ In line, find ] ---
#
onload="recent();"

#
#--- [ In line, replace ] ---
#
onload="auto_recent();"
В любом месте можно вставить следующий код, который будет показывать, сколько секунд осталось до следующего автообновления:

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

<span id="recent_timer">0</span>
Добавлено спустя 1 минуту 55 секунд:

Вроде все написал. У меня на Локалхосте работает.
Если что - извините за ошибки. Щас 5 часов утра, мог где-то сбиться...

Добавлено спустя 7 часов 17 минут 48 секунд:

Может быть ошибка в кодировке. Русские буквы будут отображаться знаками вопроса. Тогда:

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

#
#--- [ Open ] ---
#
recent.php

#
#--- [ Find ] ---
#
//
// Let's prevent caching
//

#
#--- [ Before, Add ] ---
#
header ('Content-type: text/html; charset=windows-1251');
Последний раз редактировалось Shock13666 13.05.2008 21:49, всего редактировалось 1 раз.
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]
Аватара пользователя
Shock13666
phpBB 1.4.4
Сообщения: 176
Стаж: 15 лет 10 месяцев
Откуда: Киев

Сообщение Shock13666 »

Гурру, попрошу прокоментировать.... Интересует мнение профи.
Музыка - как вино. Некачественная попса, со временем, превращается в уксус.. Рок же только обретает свой истинный вкус..
Я не нацист. Но когда кто нибудь осмелится высказать криво о моей стране я прихожу в ярость.
Немножко знаю xHTML, CSS, слышал про JavaScript, PHP. Уже год использую и стараюсь понять, как устроен phpBB.
[ Mozilla Firefox User ] [ Web Dev panel for FF ] [ xHTML 1.0 Strict ] [ Valid CSS 2.1 ] [ Да, я маньяк! ] [ Я ВКонтакте! ]

Вернуться в «Анонсы и поддержка модов для phpBB 2.0.x»