0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 5192 Просмотров
*

byte

  • Новичок
  • 4
  • 0 / 0
В joomla страница с материалами разделяются постранично вот так:
«Первая  Предыдущая  1 2 3 4 5 6 7 8 9 10  Следующая  Последняя»

Возможно ли сделать разделение вида:
1 2 3 4 5 6 7 8 9 10...100
Т.е. чтобы выводились все страницы.

Нашел ответ для joomla 1.0, для 1.5 не отыскал...
*

denim_sake

  • Новичок
  • 15
  • 1 / 0
два варианта:
1 . править файлик pagenavbar.php
2. стилями сделать display:none для >> > << <
*

_ib_

  • Давно я тут
  • 673
  • 100 / 8
\plugins\content\pagenavigation.php

или лучше- скопируйте его в папку шаблона:
\ja_purity\html\pagination.php

и тут изменяйте его как захочется.

см. строчки после коментария  // output в коде этого файла, примерно 202 строчки в оригинале.
Легальные шаблоны и дёшево!  + скидки до 50% для шаблонов клуба Joomlart, RocketTheme, Yootheme и Gavick.

при интересе пишите в личку или на мыло: "p" точка "d" собака gmx.de
*

VasiliO

  • Захожу иногда
  • 68
  • 0 / 0
народ как его так поправить чтоб появился вид

1 2 3 4 5 6 7 8 9 10...100

$displayedPages   = 10;
      $this->set( 'pages.start', (floor(($this->get('pages.current') -1) / $displayedPages)) * $displayedPages +1);
      if ($this->get('pages.start') + $displayedPages -1 < $this->get('pages.total')) {
         $this->set( 'pages.stop', $this->get('pages.start') + $displayedPages -1);
      } else {
         $this->set( 'pages.stop', $this->get('pages.total'));
      }

вот код что переписать ???
*

_ib_

  • Давно я тут
  • 673
  • 100 / 8
т.е. чтобы не было "Следующая  Последняя»" ?
Легальные шаблоны и дёшево!  + скидки до 50% для шаблонов клуба Joomlart, RocketTheme, Yootheme и Gavick.

при интересе пишите в личку или на мыло: "p" точка "d" собака gmx.de
*

VasiliO

  • Захожу иногда
  • 68
  • 0 / 0
т.е. чтобы не было "Следующая  Последняя»" ?
нет что бы сворачивались цифровые значения и отображалось в место цифр "..." и по Последняя
и вид был примено такой
1 2 3 4 5 6 7 8 9 10...100
Вот так выглядит сейчас
<< Первая < Пред. 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 След. > Последняя >>
хочу чтобы вид был вот такой
<< Первая < Пред. 1 2 3 4 5 6 7 8 9 10 ... 18 След. > Последняя >>
« Последнее редактирование: 26.07.2009, 11:32:06 от VasiliO »
*

_ib_

  • Давно я тут
  • 673
  • 100 / 8
см. /joomla-folder/plugin/content/pagination.php
этот файл и выводит эту навигацию.
Легальные шаблоны и дёшево!  + скидки до 50% для шаблонов клуба Joomlart, RocketTheme, Yootheme и Gavick.

при интересе пишите в личку или на мыло: "p" точка "d" собака gmx.de
*

VasiliO

  • Захожу иногда
  • 68
  • 0 / 0
Это я понял где нибудь пример его изменения??? *именно как урок посмотреть что как или хотя бы как его поправить??*

а что нужно менять в этом файлу что бы вместо « Первая  Предыдущая  1  2  3  4  5  6  7  8  9  10  Следующая  Последняя » было « Первая  Предыдущая  1 2 ... 10 ...19  20  Следующая  Последняя »

Ну что разве ни кто не знает как это реализовать ?

Ну подскажите пожалуйста как это реализовать ?
*

joomla-mla

  • Новичок
  • 19
  • 0 / 0
По поводу файлов pagination.php и pagenavigation.php:

Может, кто-либо из участников топика знает, какие параметры отвечают за связь календаря и новостей?
Проблема в том, что, когда в архиве новостей просто выбираешь страницы (1, 2, 3...), без выбора месяца, все работает, а когда выбираешь месяц, начинаются чудеса:
http://www.almrally.ru/news-archive?start=20 (правильная пагинация без предв. выбора месяца);
http://www.almrally.ru/news-archive/2009/9?start=10 (неправильная пагинация с выбором месяца - сентябрь, стр. 2; как есть сейчас);
http://www.almrally.ru/news-archive?year=2009&month=9&start=10 (правильная пагинация с выбором месяца - сентябрь, стр. 2; так, как, по идее, должно быть).
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Цитировать
http://www.almrally.ru/news-archive/2009/9?start=10
Здесь проблема скорее всего в SEF, который формирует неправильную ссылку.
Используете стандартный SEF или нет?
*

joomla-mla

  • Новичок
  • 19
  • 0 / 0
Здесь проблема скорее всего в SEF, который формирует неправильную ссылку.
Используете стандартный SEF или нет?

Я бы радостью ответил - какой - если бы знал. Только сегодня узнал о SEF. Зашел в Панель управления - Сайт. Из установок Search Engine Optimization в наличии три: Включить SEO (да), Использовать mod_rewrite (да), Добавить суффикс к URL (нет). Читал, что нужно изменить настройки в .htaccess - закомментировать строки; но где искать сам компонент (в разделе компонентов - ?).
*

scorpsan

  • Новичок
  • 17
  • 8 / 0
Разбить просто... просто надо создать файл
Код
/templates/папка_шаблона/html/pagination.php
код следующий
Код
<?php
/**
 * @version $Id: pagination.php 10822 2009-10-09 16:16:00Z tcp $
 * @package Joomla
 * @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 */

// no direct access
defined('_JEXEC') or die('Restricted access');
/**
 * This is a file to add template specific chrome to pagination rendering.
 *
 * pagination_list_footer
 * Input variable $list is an array with offsets:
 * $list[limit] : int
 * $list[limitstart] : int
 * $list[total] : int
 * $list[limitfield] : string
 * $list[pagescounter] : string
 * $list[pageslinks] : string
 *
 * pagination_list_render
 * Input variable $list is an array with offsets:
 * $list[all]
 * [data] : string
 * [active] : boolean
 * $list[start]
 * [data] : string
 * [active] : boolean
 * $list[previous]
 * [data] : string
 * [active] : boolean
 * $list[next]
 * [data] : string
 * [active] : boolean
 * $list[end]
 * [data] : string
 * [active] : boolean
 * $list[pages]
 * [{PAGE}][data] : string
 * [{PAGE}][active] : boolean
 *
 * pagination_item_active
 * Input variable $item is an object with fields:
 * $item->base : integer
 * $item->link : string
 * $item->text : string
 *
 * pagination_item_inactive
 * Input variable $item is an object with fields:
 * $item->base : integer
 * $item->link : string
 * $item->text : string
 *
 * This gives template designers ultimate control over how pagination is rendered.
 *
 * NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST override them both
 */

function pagination_list_footer($list)
{
// Initialize variables
$lang =& JFactory::getLanguage();
$html = "<div class=\"list-footer\">\n";

if ($lang->isRTL())
{
$html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";
$html .= $list['pageslinks'];
$html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>";
}
else
{
$html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>";
$html .= $list['pageslinks'];
$html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";
}

$html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />";
$html .= "\n</div>";

return $html;
}

function pagination_list_render($list)
{
// Initialize variables
$numlr = 2; //колличество позиций страниц в начале ленты и в конце
$numpos = 10; //колличество позиций ленты вообще
$lang =& JFactory::getLanguage();
$html = '<table class="contentpagination"><tr>';
// Reverse output rendering for right-to-left display
if($lang->isRTL()){ $list['pages'] = array_reverse( $list['pages'] ); }
$html .= '<td align="right" width="49%">';
// $html .= '&laquo;';
// $html .= '&#171;';
// $html .= $list['start']['data'];
$html .= $list['previous']['data'];
$html .= '</td>';
$html .= '<td align="center">';
if(count($list['pages'])>$numpos) { // если страниц больше чем позиций в ленте - разбиваем троеточием
for($i=1; $i<=count($list['pages']); $i++){
if(!$list['pages'][$i]['active']) {
if($i > $numlr){
for($j=1; $j<=$numlr; $j++){ $html .= $list['pages'][$j]['data']; }
}else{
for($j=1; $j<$i; $j++){ $html .= $list['pages'][$j]['data']; }
}
if(($numlr+1) < ($i-1)){ $html .= '...'; }
if((count($list['pages']) - $numlr) <= $i){
for($j=(count($list['pages'])-$numlr-2); $j<$i; $j++){ $html .= $list['pages'][$j]['data']; }
}else{
if($i > ($numlr+1)){ $html .= $list['pages'][$i-1]['data']; }
}
$html .= '<span class="activ">';
$html .= $list['pages'][$i]['data'];
$html .= '</span>';
if(($numlr+1) >= $i){
for($j=($i+1); $j<=($numlr+3); $j++){ $html .= $list['pages'][$j]['data']; }
}else{
if($i < (count($list['pages'])-$numlr)){ $html .= $list['pages'][$i+1]['data']; }
}
if((count($list['pages']) - $numlr) > ($i+1)){ $html .= '...'; }
if($i <= (count($list['pages'])-$numlr)){
for($j=(count($list['pages'])-$numlr+1); $j<=count($list['pages']); $j++){ $html .= $list['pages'][$j]['data']; }
}else{
for($j=$i+1; $j<=count($list['pages']); $j++){ $html .= $list['pages'][$j]['data']; }
}
}
}
} else {
foreach( $list['pages'] as $page ){
if(!$page['active']) {
$html .= '<span class="activ">';
}
$html .= $page['data'];
if(!$page['active']) {
$html .= '</span>';
}
}
}
$html .= '</td>';
$html .= '<td align="left" width="49%">';
$html .= $list['next']['data'];
// $html .= $list['end']['data'];
// $html .= '&raquo;';
$html .= '</td>';
$html .= '</tr></table>';
return $html;
}

function pagination_item_active(&$item) {
return "&nbsp;<a href=\"".$item->link."\" title=\"".$item->text."\">".$item->text."</a>&nbsp;";
}

function pagination_item_inactive(&$item) {
return "&nbsp;<span>".$item->text."</span>&nbsp;";
}
?>

рускими коментами я пометил переменные которые отвечают за то сколько номерков страниц будет в начале ленты и в конце и сколько их вообще должно быть минимум... тоесть если вы ставите
Код
	$numlr = 2; //колличество позиций страниц в начале ленты и в конце
$numpos = 10; //колличество позиций ленты вообще
как в коде то выглядеть будет так
1 2 ... 49 50 51 ... 99 100
если так
Код
	$numlr = 3; //колличество позиций страниц в начале ленты и в конце
$numpos = 10; //колличество позиций ленты вообще
то выглядеть будет так
1 2 3 ... 49 50 51 ... 98 99 100
и так далее ...
цифра 10 отвечает за то при каком минимальном колличестве страниц начинать бить троеточием...
тоесть если страниц меньше 10 то в нашем случае будут выведены все страницы, если их 8 то
1 2 3 4 5 6 7 8

защиты от дурака здесь нету... поэтому думайте прежде чем втыкать числа

 *DRINK* еще одна хитрость... Joomla сама разделяет пагинацию на страницы... по умолчанию страницы выводятся по 10, тоесть сразу первых 10 потом с 11 по 20 и так далее...
Чтобы от этого избавиться и при разбиении троеточием увидеть последней последнюю 100 или какая там у вас есть а не 10 надо заменить в
Код
$displayedPages   = 10;
      $this->set( 'pages.start', (floor(($this->get('pages.current') -1) / $displayedPages)) * $displayedPages +1);
      if ($this->get('pages.start') + $displayedPages -1 < $this->get('pages.total')) {
         $this->set( 'pages.stop', $this->get('pages.start') + $displayedPages -1);
      } else {
         $this->set( 'pages.stop', $this->get('pages.total'));
      }
цифру 10 на 1000 ну или если у вас перевалило за 1000 то на еще большую...

Удачи... если что пишите ... код еще дорабатывается и будет совершенствоваться
« Последнее редактирование: 22.10.2009, 18:15:54 от scorpsan »
Нет не решаемых проблем, есть нерешаемые люди...

Уважаемый,scorpsan! *DRINK* Спасибо большое за ваши разъяснения, но у меня вот возникла проблема.

Я сделал всё ар варианту с "$displayedPages   = 10;" заменил на 50. Число номеров страниц увеличилось, но теперь эта строка вылазит за пределы шаблона,так как остаётся ОДНОЙ строкой!

Не в курсе,что с этим можно сделать? Если ставлю обратно 10, то ессно всё нормально.
*

VasiliO

  • Захожу иногда
  • 68
  • 0 / 0
Дляэтого используешь пост scorpsan  выше и настройки СSS Шаблона
« Последнее редактирование: 17.10.2009, 08:59:36 от VasiliO »
*

scorpsan

  • Новичок
  • 17
  • 8 / 0
Уважаемый,scorpsan! *DRINK* Спасибо большое за ваши разъяснения, но у меня вот возникла проблема.

Я сделал всё ар варианту с "$displayedPages   = 10;" заменил на 50. Число номеров страниц увеличилось, но теперь эта строка вылазит за пределы шаблона,так как остаётся ОДНОЙ строкой!

Не в курсе,что с этим можно сделать? Если ставлю обратно 10, то ессно всё нормально.

трудно предположить что там может быть пока не увижу шаблон и место куда вставил пагинацию. А лучше выложи скриншот... так будет точнее
Нет не решаемых проблем, есть нерешаемые люди...
*

Andrey_7

  • Новичок
  • 11
  • 2 / 0
Уважаемые подскажите, имеется j1.5.10,
ни как не могу найти переменную $displayedPages (или что то похожее), требуется что бы страницы выводились не по 10, как по умолчанию, а скажем по 20, подскажите в каком файле это описно?,
здесь вроде нет /joomla-folder/plugin/content/pagination.php
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Уважаемые подскажите, имеется j1.5.10,
ни как не могу найти переменную $displayedPages (или что то похожее), требуется что бы страницы выводились не по 10, как по умолчанию, а скажем по 20, подскажите в каком файле это описно?,
здесь вроде нет /joomla-folder/plugin/content/pagination.php
libraries\joomla\html\pagination.php
Код
$displayedPages	= 10;
*

Andrey_7

  • Новичок
  • 11
  • 2 / 0
to SmokerMan

спасибо, то что надо
*

krimobzor

  • Новичок
  • 11
  • 0 / 0
scorpsan, большое спасибо за помощь! У мена как раз была проблема с пагинацией - конфликтовал фал движка и шаба. Ваш код решил проблему.
*

ubiyca5

  • Новичок
  • 2
  • 0 / 0
« Последнее редактирование: 15.11.2012, 14:05:25 от ubiyca5 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрал в настройках материалов "Заголовок как ссылка" - "нет". И в разделе ссылки с заголовков исчезл

Автор Adrian1111

Ответов: 6
Просмотров: 1264
Последний ответ 22.03.2018, 22:17:44
от palexa
Как изменить межстрочный интервал в списке?

Автор kirill-juk

Ответов: 2
Просмотров: 854
Последний ответ 28.10.2017, 18:51:40
от kirill-juk
Изменить страницу "Default"

Автор virusvvv

Ответов: 4
Просмотров: 613
Последний ответ 12.01.2017, 14:48:08
от virusvvv
Изменить текст ссылки, выводимой в адресной строке

Автор acamaz

Ответов: 2
Просмотров: 712
Последний ответ 28.11.2016, 20:59:45
от KKAAZZOO
Расширение - Фильтр выводимых материалов по различным параметрам.

Автор Liana

Ответов: 4
Просмотров: 2870
Последний ответ 02.11.2016, 21:51:12
от SeBun