Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вывод последней страницы пагинации
tanyar  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Здравствуйте. Сайт на Joomla 1.5
Есть пагинация. Выглядит она вот так:
Первая 1 2..Последняя >>
Как сделать так, чтоб вместо слово последняя выводился номер последней страницы.
Т.е., на пример:
Первая 1 2..98>>
Вот код
<?php
defined( '_JEXEC' ) or die; // защита

// главная функция этого файла, имя этой функции изменять нельзя

function pagination_list_render($list){
$html = '';
$gwpages = array();
// перебираем массив со всеми кнопками пагинации
foreach ($list['pages'] as $number => $page) {
if($page['active'] === false){
$current = $number;
}
$countPages = $number;
}
// конец перебора массива

// Далее отрисовываем пагинацию так, как нам захочется

if($current > 1) $html .= GWaddRow(&$gwpages, $list['previous'], 'pagination-previous');
$html .= GWaddRow(&$gwpages, $list['start'], 'pagination-start');
if($current > 3) $html .= "<span class=\"dots\">...</span>";
if(isset($list['pages'][$current-1])) $html .= GWaddRow(&$gwpages, $list['pages'][$current-1]);
$html .= GWaddRow(&$gwpages, $list['pages'][$current]);
if(isset($list['pages'][$current+1])) $html .= GWaddRow(&$gwpages, $list['pages'][$current+1]);
if($current < ($countPages - 2)) $html .= "<span class=\"dots\">...</span>";
$html .= GWaddRow(&$gwpages, $list['end'], 'pagination-end');
if($current < $countPages) $html .= GWaddRow(&$gwpages, $list['next'], 'pagination-next');
return '<ul class="vm-pagination">'.$html.'</ul>';
}
// конец главной функции

// Вспомогательная функция, она необязательна, но в данном случае было удобно делать с помощью неё

function GWaddRow(&$pages, $page, $class = ''){
if(in_array($page, $pages)){
return;
}
$row = '<li';
$row .= ($class)? ' class="'.$class.'">' : '>';
$row .= $page['data']. '</li>';
$pages[] = $page;
return $row;
}
?>


Пыталась вставить этот код
$html .= JText::sprintf('JPAGE_CURRENT_OF_TOTAL',  $this->get('pages.total'));


Вместо

$html .= GWaddRow(&$gwpages, $list['end'], 'pagination-end');

Но ничего не вышло
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


$html .= GWaddRow(&$gwpages, $countPages, 'pagination-end');


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Игорь_Vasinsky
Цыфра не появилась. Просто слово пропало.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


я просто тело функции GWaddRow() не вижу, просто гадаю что там реплейс

$html .= GWaddRow(&$gwpages, $list['end'], $countPages);


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Вот тело, вернее основная функция пагинации в джумла
http://pastebin.com/FnYjXa2h
ПАгинацию делала по вот этой инструкции
http://site-on.net/create/cms/21-pagination

Это сообщение отредактировал tanyar - 8.06.2016 - 10:04
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


класс пагинации то и не нужен. нужна функция GWaddRow() - она жде контент для вывода собирает и выводит


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Игорь_Vasinsky
ПАгинацию делала по вот этой инструкции. Но тут ничего нет об этой функции
http://site-on.net/create/cms/21-pagination
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Игорь_VasinskyА это разве не эта функция?
function GWaddRow(&$pages, $page, $class = ''){
if(in_array($page, $pages)){
return;
}
$row = '<li';
$row .= ($class)? ' class="'.$class.'">' : '>';
$row .= $page['data']. '</li>';
$pages[] = $page;
return $row;
}
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Цитата (Игорь_Vasinsky @ 8.06.2016 - 09:57)
я просто тело функции GWaddRow() не вижу, просто гадаю что там реплейс

$html .= GWaddRow(&$gwpages, $list['end'], $countPages);

Вот так, кстати вообще ничего не поменялось. Т.е. сново выводит "последняя"
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


мы гадаем без кофейной гущи. тело функции покажите


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tanyar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43051
На форуме: 5 месяцев, 28 дней
Карма:




Игорь_Vasinsky

А это разве не тело?
function GWaddRow(&$pages, $page, $class = ''){
if(in_array($page, $pages)){
return;
}
$row = '<li';
$row .= ($class)? ' class="'.$class.'">' : '>';
$row .= $page['data']. '</li>';
$pages[] = $page;
return $row;
}
?>


Больше ничего нету
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


)) пропустил.

значит всё таки класс ковырять

вижу метод

function _list_render($list)
{
// Initialize variables
$html = null;

// Reverse output rendering for right-to-left display
$html .= '<< ';
$html .= $list['start']['data'];
$html .= ' < ';
$html .= $list['previous']['data'];
foreach( $list['pages'] as $page ) {
$html .= ' '.$page['data'];
}
$html .= ' '. $list['next']['data'];
$html .= ' >';
$html .= ' '. $list['end']['data'];
$html .= ' >>';

return $html;
}


там строка

        $html .= ' '. $list['end']['data'];


заменить её на

        $html .= ' '. strtr($list['end']['data'], array('Последняя'=>$this->total));


если сработает - то "Последняя" нужно заменить на константу - которая содержит это слово


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25988
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 22 дня
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


либо в методе

function _buildDataObject()
{


строку

   $data->end->base    = $end;


заменить на

   $data->end->base    = $this->total;


что даже правильней будет, чем пред вариант

хотя мне не даёт покоя эти строки

   $data->end->base    = $end;
$data->end->link = JRoute::_("&limitstart=".$end);


$end заменить на что угодно и глянуть на изменения.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса