Foren / National / Russian / Ajax pagination

12NächsteLetzte

esclkm
#1 13. Januar 2009, 21:37
По поводу того что нет пажинация ajax в комментах я уже говорил
теперь хочу скаьб о другой стороне данного вопроса:
Практически везде, где используется ajax пажинация присутствует код:
		$upf_ajax_begin = "<script type=\"text/javascript\">
//<![CDATA[
function gof(df)
	{
		$.ajax({
		type: 'GET',
		url: 'plug.php?',
		data: '&r=userlatestposts&id=".$urr['user_id']."&df='+df,

		beforeSend: function(){
			$('#reloadf').addClass('loading');
		},

		success: function(msg){
		$('#reloadf').removeClass('loading');
		$('#reloadf').html(msg).hide().stop().fadeIn('slow');
			},
		error: function(msg){
		$('#reloadf').removeClass('loading');
		alert('".$L['plu_msg500']."');
			}

		});

		return false;

	}
//]]>
</script>
<div id='reloadf'>";
		$upf_ajax_end = "</div>";
Что в целом немного не соответствует основным позициям, которые выдвигает trustmaster - чтото вроде этого "если надо использовать участок кода дважды используйте функции, а не просто копи-пэйст"
Мое мнение или доработать пажинатор текущий, хоть он уже великолепен, или дописанть функцию класса (набросок):
function sed_ajax_pajanation ($url, $data, $name, $page, $blockid)
{
		$ajax_begin = "<script type=\"text/javascript\">
//<![CDATA[
function gof(".$page.")
	{
		$.ajax({
		type: 'GET',
		url: '".$url."',
		data: '".$data."&".$name."='+".$page.",

		beforeSend: function(){
			$('#".$blockid."').addClass('loading');
		},

		success: function(msg){
		$('#".$blockid."').removeClass('loading');
		$('#".$blockid."').html(msg).hide().stop().fadeIn('slow');
			},
		error: function(msg){
		$('#".$blockid."').removeClass('loading');
		alert('".$L['plu_msg500']."');
			}

		});

		return false;

	}
//]]>
</script>
<div id='#".$blockid."'>";
		$ajax_end = "</div>";
return array($ajax_begin, $ajax_end);
}

Просто использование однотипных конструкций как по мне ни есть гуд. А фукнциями и красиво и удобно - и можно начать писать ну очень быстро.... а еще лучше внедрить в сам пажинатор...
Сейчас он из себя представляет 2 функции - одна стрелочки - вперед-назад, другая циферки
может пускай она будет единой функцией, но после себя оставляет массив:
1. стрелочки назад
2. циферки
3. стрелочки вперед
4. чтото типа функции приведенной выше.

Смысл переделки имеет место быть - так как пажинатор почемуто(уменя на старых плагинах) не совместимым стал. А переделать пажинатор 2 минуты дела.

Предложение еще одно:
"запихнуть" пажинатор в шаблон) тогда все станет супер пупер - и можно будет отключить вопрос по поводу альтернативного пажинатора - который сейчас иногда встречается на повестке дня... тогда можно будет за 5 сек сделать как раньше было: <1><2>[3]<4> или как сделано сейчас

спасибо за внимание
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты

Dieser Beitrag wurde von esclkm (am 13. Januar 2009, 22:49, vor 15 Jahre) bearbeitet
Trustmaster
#2 14. Januar 2009, 00:59
Это уже лучше, но всё равно неправильно. Я не очень одобряю то, как реализована сейчас аякс-паджинация, и dayver в курсе. Дело в том, что надо разумно писать клиентскую часть, используя парадигму jQuery, а не смесь бульдога с носорогом. Тогда всё выносится в компактную клиентскую библиотеку в виде статических JS-файлов (base.js, например), а в серверной части не используются никакие трехэтажные обработчики и вставки, а формируется обычный аккуратный XHTML с передачей данных в атрибутах. Причем без JavaScript этот код работает как будто бы и нет никакого аякса.
May the Source be with you!
esclkm
#3 14. Januar 2009, 01:43
А по поводу запухнуть в шаблон?
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Dayver
#4 14. Januar 2009, 02:11
так уже в шаблоне кажысь

спустя некоторое время
хотя да действительно уже не из шаблона...просто раньше работало по шаблону указываемому в конфиг.пхп
$cfg['pagination'] = ' [%s]';
$cfg['pagination_cur'] = ' <strong>&gt; %s &lt;</strong>';

спустя еще некоторое время
# Trustmaster : Это уже лучше, но всё равно неправильно. Я не очень одобряю то, как реализована сейчас аякс-паджинация, и dayver в курсе.
да, я в курсе, подтверждаю

Trustmaster : Дело в том, что надо разумно писать клиентскую часть, используя парадигму jQuery, а не смесь бульдога с носорогом. Тогда всё выносится в компактную клиентскую библиотеку в виде статических JS-файлов (base.js, например), а в серверной части не используются никакие трехэтажные обработчики и вставки, а формируется обычный аккуратный XHTML с передачей данных в атрибутах.
я, против этого, ничего не имею и сам стремлюсь к такой реализации но есть одно но. Я не вижу пока возможности передавать целый масив параметров через атрибуты.....так что без OnClick не обойтись
Ну, а вынести ява код который фактически везде присутствует - это я за обеими руками(да и ногами тоже) просто по началу не думал что он будет вставлен в такое количество файлов а сейчас это ясно видно и готов релизовать его вынос сразу как закончу с локализацией на урк язык

Trustmaster : Причем без JavaScript этот код работает как будто бы и нет никакого аякса.
так и сейчас оно будет работать по класической схеме если у пользователя отрублена ява

спустя еще некоторое время
да а как сейчас вставить ббкод горизонтальной линии? <hr>

спустя еще некоторое время
кстати этот кусок кода который будет вынесен в ява файл по идее сможет не только быть задействован в пагинации но и в других фичах для аякса

esclkm:
Смысл переделки имеет место быть - так как пажинатор почемуто(уменя на старых плагинах) не совместимым стал. А переделать пажинатор 2 минуты дела.
в каких именно?
Pavlo Tkachenko aka Dayver

Dieser Beitrag wurde von Dayver (am 14. Januar 2009, 03:40, vor 15 Jahre) bearbeitet
Sergeich
#5 14. Januar 2009, 12:19
По поводу педжинации в Сед и Кот вообще. Когда страниц становится много (больше 10), номера страниц начинают идти не по порядку, а урезаться (не знаю как правильно выразиться :) ). Объясню на примере:
http://www.cotonti.com/forums.php?m=topics&s=12
Номера страниц идут так 1 2 3 4 5 6 7 8 9 10 13, когда страниц больше 100 вообще невозможно юзать всё это становится.

Предлагаю, для начала, дать возможность в админке выбрать - урезать пейджинацию интервалами или выводить всё (если у меня 100 страниц, то пусть от 1 до 100 и будет показываться). Вторым шагом можно предложить реализовать пейджинацию как на сайте http://allday.ru/ (по моему довольно удобно сделано).

А самая крутая и удобная пейджинация, какую я только видел для большого кол-ва страниц, реализована на сайте http://dirty.ru/ - безумно простая и красивая идея :). Кстати, использовать эту штуку можно вполне легально, вот сайт автора http://karaboz.ru/2007/11/19/paginator-3000-postranichnaya-navigaciya-budushhego/
esclkm
#6 14. Januar 2009, 13:51
По проводу сообщения Sergeicha - вот я и говорю что темплейты должны быть правильно созданы...
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Sergeich
#7 14. Januar 2009, 14:07
Это не темплейтов проблема, а именно пейджинации.
esclkm
#8 14. Januar 2009, 16:19
если грамматно составить темплейт пажинатора (ну и настройки класса пропускать страницы или нет) - я то я думаю в него можно будет вкрутить тот скрипт - который ты показывал выше, который так же используется на миранда планете
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты

Dieser Beitrag wurde von esclkm (am 14. Januar 2009, 16:43, vor 15 Jahre) bearbeitet
Sergeich
#9 14. Januar 2009, 16:45
Да тот пейджинатор который я привел в качестве образца - это дело 10. Важно как то решить проблему вот таких сокращений :

1|2|3|4|5|6|7|8|9|10|15|20|25|30

Меня лично вот это беспокоит. Хотелось бы чтобы это выглядело хотя бы вот так:

1|2|3...15|16|17|18|19|20|21...122|123|124
Trustmaster
#10 14. Januar 2009, 17:03
Вообще-то в sed_pagination() это решено. Идея позаимствована у vBulletin. Прежде чем возмущаться, я бы вам советовал хорошенько ее потестить, она гораздо умнее, чем может показаться.

А в списке топиков что-то другое используется - это баг, и это надо исправить.
May the Source be with you!
Sergeich
#11 14. Januar 2009, 17:18
Так никто и не возмущается, Просто в топих эта кривая пейджинация сразу в глаза бросается и я помню об этом косяке со времён лду :)
Trustmaster
#12 14. Januar 2009, 22:18
Оформляется тикет, бага правится. Привет ЛДУ :-)
May the Source be with you!
Wadik
#13 16. Januar 2009, 03:05
Сегодня копал в сторону юзабельного паджинатора. Наткнулся вот на такой вариант:

мне кажется очень достойная реализация.
Dayver
#14 16. Januar 2009, 03:22
Ну лично мне оформление безразлично а вот то что нумерация в обратном порядке(99,98,...,2,1) я бы это поддержал
Pavlo Tkachenko aka Dayver

Dieser Beitrag wurde von Dayver (am 16. Januar 2009, 03:28, vor 15 Jahre) bearbeitet
Trustmaster
#15 16. Januar 2009, 03:40
Если кто не заметил, у нас поддерживаются пользовательские функции паджинации. А это значит: делайте ваши плагины, господа ;-)
May the Source be with you!

12NächsteLetzte