Jump to content
  • 0

Постраничная навигация


Totalist
 Share

Question

Нужна навигация по данным страницам вида: 

« Первая ‹ Предыдущая 1 2 3 4 5 6 7 8 9 10 11 12 Следующая › Последняя »
с последующим добавлением страниц с данными вида <p class="data">5 июля 2014 года</p> или <p class="data">5 июля 2013 года</p> в архив (числа и месяцы любые):
« Первая ‹ Предыдущая 1 2 3 4 5 6 7 8 9 10 11 12 Следующая › Последняя » Архив новостей
 
Какие есть варианты решения моего вопроса без использования базы данных?
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
Какие есть варианты решения моего вопроса без использования базы данных?
 

Почему?

 

А так, вы не правильно рассуждаете. Данные можно брать хоть из файла, на пагинацию это не влияет. Делать надо, скорее всего, на серверном языке. Какой он у вас?

Link to comment
Share on other sites

  • 0
Делать надо, скорее всего, на серверном языке. Какой он у вас?
 

сайт создан с использованием технологий HTML и CSS.

Используя данные технологии для решения своего вопроса могу добиться наглядности, но не автоматизации.

Впрочем, решение моего вопроса есть в joomla, но я не знаю как привязать к своему сайту.

Link to comment
Share on other sites

  • 0
joomla
 

Это CMS на PHP. Для её использования надо создать шаблоны страниц (это общее для всех CMS, что для joomla не знаю). Для её использование нужна база данных.

 

Я спросил про серверные технологии, а не про клиентские!

Link to comment
Share on other sites

  • 0

Вот вариант с моего текущего проекта. Считайте, готовое решение. Исключительно на клиентской стороне, без какого-либо участия серверной. Вам же так надо?

import classNames from 'classnames'import querystring from 'querystring'import { Link } from 'react-router'class PaginationItem extends React.Component{    constructor(props){        super(props);    }    getLink(index){        let path = this.context.location['pathname'],            qs_original = Object.assign({}, this.context.location['query']),            qs_new = Object.assign(qs_original, {page: index}),            qs = querystring.stringify(qs_new);        return `${path}?${qs}`;    }    render(){        let path = this.context.location['pathname'],            qs_original = Object.assign({}, this.context.location['query']),            qs_new = Object.assign(qs_original, {page: this.props.index});        return(            <li className={classNames(                'page-item',                {'active': this.props.active}            )}>                <Link to={path} query={qs_new}>                    {this.props.index}                </Link>            </li>        );    }}PaginationItem.contextTypes = {    location: React.PropTypes.object.isRequired,    history: React.PropTypes.object.isRequired};class Pagination extends React.Component {    constructor(props){        super(props);    }    render(){        if(this.props.numPages > 1) {            let items = [],                startPageIndex = this.props.currentPage - this.props.pagesAround,                endPageIndex = this.props.currentPage + this.props.pagesAround;            if(startPageIndex < 1) startPageIndex = 1;            if(endPageIndex > this.props.numPages) endPageIndex = this.props.numPages;            for(let i=startPageIndex; i<=endPageIndex; i++) {                items.push(                    <PaginationItem                        key={i}                        index={i}                        active={i === this.props.currentPage}                    />                );            }            return (                <ul className="pagination">                    {items}                </ul>            );        } else {            return false        }    }}Pagination.propTypes = {    numPages: React.PropTypes.number.isRequired,    currentPage: React.PropTypes.number,    pagesAround: React.PropTypes.number};Pagination.defaultProps = {    currentPage: 1,    pagesAround: 2};export default Pagination
  • Like 1
Link to comment
Share on other sites

  • 0

архивных здесь нет, хотя дописать и несложно.

А первая и последняя… ну так это… как первую и последнюю :) Там же список. Нулевой индекс и количество элементов - 1.

Link to comment
Share on other sites

  • 0
архивных здесь нет, хотя дописать и несложно 

желательно бы...

как архивные должны быть определены страницы с данными вида <p class="data">5 июля 2014 года</p> и <p class="data">5 июля 2013 года</p>

т.е. все страницы с датами 2013 и 2014 годов

Link to comment
Share on other sites

  • 0

а как же оказание помощи на общественных началах?

Осуществляется ровно до тех пор, пока этого не начинают требовать.

 

Оно же, понимаете ли, ради удовольствия. Когда видишь, что мир становится лучше, когда человек вникает в то, что ему говорят, да благодарит за помощь, тогда и на общественных началах помогать только в радость.

А когда начинают чего-то требовать да нос воротить… Да на кой оно? От заказчиков-то таких стараешься отказываться. Но заказчики хотя бы деньги платят, они и имеют право требовать за свои деньги. А тут что?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy