SID в Javascript

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
velo
phpBB 2.0.1
Сообщения: 252
Стаж: 19 лет
Благодарил (а): 10 раз
Поблагодарили: 26 раз

SID в Javascript

Сообщение velo »

Собственно столкнулся с проблемой.
По требованию ModTeam добавляю основу ссылки сформированную с append_sid
Она должна передаваться в Javascript
делаю это созданием JS переменной в шаблоне:

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

<script type="text/javascript">
	var url_topic = '{U_VIEWTOPIC_LS}';
</script>
В самом JS доформировываю ссылку:

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

window.location.href = url_topic+"?t="+id;
И в итоге получаю в обычных случаях рабочую ссылку, а в случаях, когда в строке дописан SID, ссылка не работает, т.к. по логике должно быть:

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

window.location.href = url_topic+"&t="+id;
то есть & вместо ?

Примечание: решение на переформировывании JS в виде инклюда как HTML не подходит. Нужно чтобы JS жил "своей жизнью", т.е. оставался JS файлом.
Подскажите, как определить наличие/отсутствие вписанного SID, чтобы изменить знак на нужный.
WORK: phpBB3 3.0.8 + Portal XL 5.0 + MODs + Custom,
PHP Version 5.3.3-7+squeeze25, Apache/2.2.9 (Debian), MySQL(i) 5.1.73-1+deb6u1-log
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: SID в Javascript

Сообщение FladeX »

Приведу кусок кода из phpBB, думаю, он как раз поможет в данном случае:
styles/prosilver/template/forum_fn.js

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

/**
* Jump to page
*/
function jumpto()
{
	var page = prompt(jump_page, on_page);

	if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
	{
		if (base_url.indexOf('?') == -1)
		{
			document.location.href = base_url + '?start=' + ((page - 1) * per_page);
		}
		else
		{
			document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);
		}
	}
}
Добавлено спустя 1 минуту 17 секунд:
Собственно, самое вложенное условие как раз и нужно использовать.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
velo
phpBB 2.0.1
Сообщения: 252
Стаж: 19 лет
Благодарил (а): 10 раз
Поблагодарили: 26 раз

Re: SID в Javascript

Сообщение velo »

Спасибо. А мне на ум только что пришло вот такое не хитрое решение:

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

					var url_search = url_topic.split("?");
					var sid = (url_search[1])? "&"+url_search[1] : '';
					window.location.href = url_search[0]+"?t="+id+sid;
WORK: phpBB3 3.0.8 + Portal XL 5.0 + MODs + Custom,
PHP Version 5.3.3-7+squeeze25, Apache/2.2.9 (Debian), MySQL(i) 5.1.73-1+deb6u1-log
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: SID в Javascript

Сообщение FladeX »

Если речь о валидации, то лучше воспользоваться примером из движка :)
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы

Вернуться в «Для авторов (phpBB 3.0.x)»