Перейти к содержимому


Реализация запоминание вкладок


Сообщений в теме: 55

#1 Munir

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений
Репутация: 3

Отправлено 30 Август 2014 - 10:52

Здравствуйте! Я пытался реализовать запоминание вкладок, но у меня не получается реализовать это.
Сама ссылка к тексту вкладки сохраняется в cookie и текст отображается, но как передать класс active элементу списка li.

добавил архив с исходными файлами, буду очень благодарен за помощь

Прикрепленные файлы

  • Прикрепленный файл  tabs.rar   21,5К   3 Количество загрузок:

Сообщение отредактировал Munir: 30 Август 2014 - 10:55


#2 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 30 Август 2014 - 13:40

Здравствуйте.
Готовый код во вложении. Весь добавленный код я прокомментировал. Работать с куками лучше, конечно же, на сервере (по протоколу http).

Прикрепленные файлы

  • Прикрепленный файл  tabs.zip   22,39К   12 Количество загрузок:


#3 Munir

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений
Репутация: 3

Отправлено 30 Август 2014 - 16:03

спасибо)

#4 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 30 Август 2014 - 18:27

Пожалуйста)

#5 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 10 Апрель 2016 - 09:47

Андрей, здравствуйте! Посмотрел Ваш урок по вкладкам. Скажите, Вы пагинацию на этом сайте https://webformyself...um/php-premium/ реализовали подобным образом, превратив вкладки в пагинацию?

#6 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 10 Апрель 2016 - 19:21

Здравствуйте, Игорь.

Просмотр сообщенияИгорь_Кибардин (10 Апрель 2016 - 09:47) писал:

Скажите, Вы пагинацию на этом сайте http://webformyself....um/php-premium/ реализовали подобным образом, превратив вкладки в пагинацию?
Да, точно так.

#7 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 11 Апрель 2016 - 10:55

Просмотр сообщенияmatroskin8 (10 Апрель 2016 - 19:21) писал:

Здравствуйте, Игорь.

Да, точно так.
Андрей, а разве таким образом индексация поисковиками будет происходить? Ведь в адресную строку браузера номера страниц не передаются. Получается то же самое, что и пагинация без перезагрузки? Может я неправильно понимаю. Объясните пожалуйста в чём разница?

#8 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 11 Апрель 2016 - 14:10

Просмотр сообщенияИгорь_Кибардин (11 Апрель 2016 - 10:55) писал:

Получается то же самое, что и пагинация без перезагрузки?
Нет, не то же самое, поскольку весь контент уже находится на странице и будет проиндексирован. В этом случае никакие номера страниц и не нужны, они фактически выполняют ту же роль, что и меню-аккордеон для скрытых пунктов меню. В Вашем же случае, когда Вы делали ajax-пагинацию, на странице была лишь часть контента, а другая часть подгружалась на эту же страницу без ее перезагрузки, т.е. по тому же адресу. Получается, что по одному и тому же адресу у Вас может находиться абсолютно разный контент. Отсюда вопрос: какой контент поисковик возьмет для данного url'a? В любом случае это будет одна из страниц Вашей пагинации, а оставшиеся не попадут в индекс.
Вот в этом и есть существенная разница: весь контент в моем случае и часть контента в Вашем случае.

#9 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 11 Апрель 2016 - 14:37

Просмотр сообщенияmatroskin8 (11 Апрель 2016 - 14:10) писал:

Вот в этом и есть существенная разница: весь контент в моем случае и часть контента в Вашем случае.
Не совсем понятно, Андрей. В ИМ не весь контент находится на, скажем, первой странице. Товары выводятся в цикле, согласно настроек сайта. К примеру, всего товаров 30. Первая страница показывает 6 товаров, вторая - 6 и т.д. Всего 5 страниц. Для поисковика видны будут только первые 6 товаров первой страницы. Правильно? В Вашем же случае на странице находятся все товары, если посмотреть исходный код. Может мой вопрос покажется глупым, но я не совсем понимаю, как поисковик делает индексацию страниц. Он автоматически "перелистывает" их? Как в ИМ ведется индексация поисковиками?

Сообщение отредактировал Игорь_Кибардин: 11 Апрель 2016 - 14:48


#10 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 12 Апрель 2016 - 07:56

Просмотр сообщенияИгорь_Кибардин (11 Апрель 2016 - 14:37) писал:

Первая страница показывает 6 товаров, вторая - 6 и т.д. Всего 5 страниц.
Правильно. И у каждой из этих страниц свой адрес в моем случае, т.е. такой: site/page=2, site/page=3... Соответственно, в этом случае каждая страница будет проиндексирована отдельно, т.е. в поисковой выдаче будут все 5 страниц под своими уникальными URL.
В Вашем же случае для всех этих страниц только один URL - site/... поэтому поисковый робот включит в индекс для этого адреса только какую-то одну шестерку товаров... оставшиеся 24 товара пролетят мимо индекса.

Просмотр сообщенияИгорь_Кибардин (11 Апрель 2016 - 14:37) писал:

я не совсем понимаю, как поисковик делает индексацию страниц. Он автоматически "перелистывает" их? Как в ИМ ведется индексация поисковиками?
Для каждого URL робот берет исходный код и работает с ним. Ключевой момент здесь - это URL, которому может соответствовать только контент (исходный код) одной страницы.

#11 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 13 Апрель 2016 - 04:12

Андрей, здравствуйте! У меня еще вопрос есть. Скажите, на Вашем сайте как организован вывод контента? Статически? Если же вывод динамический в цикле, тогда непонятно каким образом Вы разбиваете контент по восемь товаров (якоря). Можно ли с помощью PHP разбить весь контент таким образом и "повесить" якоря через определенный интервал? Как должен выглядеть код, к примеру для hits, в этом случае? Очень понравилась Ваша идея и я хочу применить её в своём ИМ! Ответьте пожалуйста подробно.

#12 Я.Сергей

    Продвинутый пользователь

  • Клиенты WebForMySelf
  • PipPipPip
  • 1 558 сообщений
Репутация: 280

Отправлено 13 Апрель 2016 - 06:52

Цитата

Можно ли с помощью PHP разбить весь контент таким образом и "повесить" якоря через определенный интервал?
Добрый день
можно проверять остаток от деления и если он нулевой, ставить якорь

вот простейший пример, запустите этот код и сразу станет понятен принцип его работы
<?php
$arr = array(5,7,8,9,2,4,1,3,5,4,7); // произвольный массив
$ref = 3; // кол-во выводимых элементов
$cnt = 1; // счетчик

foreach($arr as $item){
echo $item. ' | ';
if( ($cnt % $ref) == 0) // проверяем остаток от деления
  echo '<hr>';
$cnt++;
}


#13 matroskin8

    Администратор

  • Администраторы
  • 12 456 сообщений
Репутация: 2 124

Отправлено 13 Апрель 2016 - 08:18

Здравствуйте, Игорь.

Просмотр сообщенияИгорь_Кибардин (13 Апрель 2016 - 04:12) писал:

Если же вывод динамический в цикле, тогда непонятно каким образом Вы разбиваете контент по восемь товаров (якоря).
Вывод динамический. Возможный вариант Вам выше показал Сергей в коде. Также можете посмотреть этот пример, здесь разбивка по 2 элемента.

#14 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 13 Апрель 2016 - 08:49

Ребята, спасибо Вам большое!

#15 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 13 Апрель 2016 - 09:36

Просмотр сообщенияmatroskin8 (13 Апрель 2016 - 08:18) писал:

Также можете посмотреть этот пример, здесь разбивка по 2 элемента.
Андрей, пример посмотрел. Спасибо! В нём разбивка по 2 элемента. А как, к примеру, разбить на 4 (6 или 8)? Какой параметр нужно изменить?

#16 Я.Сергей

    Продвинутый пользователь

  • Клиенты WebForMySelf
  • PipPipPip
  • 1 558 сообщений
Репутация: 280

Отправлено 13 Апрель 2016 - 09:54

Цитата

А как, к примеру, разбить на 4 (6 или 8)?

замените везде где есть $i / 2 ($i%2), на ваше кол-во $i / 4
и еще здесь ($j > 2)

#17 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 13 Апрель 2016 - 10:07

Просмотр сообщенияЯ.Сергей (13 Апрель 2016 - 09:54) писал:

замените везде где есть $i / 2 ($i%2), на ваше кол-во $i / 4 и еще здесь ($j > 2)
Спасибо, Сергей! :)

#18 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 14 Апрель 2016 - 11:17

Андрей, здравствуйте! Страничку разбил, "дивы" расставил. Проблема возникла такая. Ссылка имеет вид: page=1, "див": <div class="row-1">. Если ссылке придать такой вид: page-1, либо - page1, либо - page_1, тогда попадаю на пустую страницу 404. А с таким видом: page=1 скрипт не работает. Как этого избежать?

#19 Игорь_Кибардин

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 514 сообщений
  • ГородКрасноярск
Репутация: 11

Отправлено 14 Апрель 2016 - 11:27

Может каждую ссылку обернуть в "див" и диву придать значение, к примеру: <div id="pagination-1">...<div id="pagination-3">?

#20 Я.Сергей

    Продвинутый пользователь

  • Клиенты WebForMySelf
  • PipPipPip
  • 1 558 сообщений
Репутация: 280

Отправлено 14 Апрель 2016 - 13:10

Игорь, что-то не понятно, в чем ваша проблема?
Если все товары расположены на одной странице (но часть из них скрыта), то какая разница, какой вид у ссылки?
ссылки можно вообще убрать и элементы навигации заключить в спаны, например...
По этим ссылкам перехода же не должно быть, а должен появляться нужный скрытый блок, или я чего-то не понимаю?





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных