Автор Тема: Слишком длинный показ субкатегорий в 1.5.6  (Прочитано 716 раз)

23 Октября 2013, 19:40:41
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Столкнулся со следующим:

При достаточно большом количестве подкатегорий и при приличном описании, вывод их содержимого (без товара) может занять 2-3 экрана. Как результат - громоздкий вид.

Предлагаю ввести ссылки для разворачивания описания подкатегорий, аналогичные механизму скрытия полного описания в самой категории.
23 Октября 2013, 20:22:18
Ответ #1
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Решение.

Вставить в \themes\default\category.tpl   следующий код

               {if $subcategory.description}

                                                <div class="cat_desc">

                  {if strlen($subcategory.description) > 120}
                     <div id="subcategory_description_short_{$subcategory.id_category}" >{$subcategory.description|truncate:120}</div>
                     <div id="subcategory_description_full_{$subcategory.id_category}" style="display:none;">{$subcategory.description}</div>
                     <a href="#" onclick="$('#subcategory_description_short_{$subcategory.id_category}').hide(); $('#subcategory_description_full_{$subcategory.id_category}').show(); $(this).hide(); return false;" class="lnk_more">{l s='More'}</a>
                  {else}
                     <div>{$subcategory.description}</div>
                  {/if}
                                           </div>
               {/if}

24 Октября 2013, 14:05:59
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 971
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Вы бы лучше подсказали как текстовую часть товара,
у меня доходит до 10 000 знаков, уменьшить до листа,
с возможность листания или разворачивания.

Заранее спасибо если получится.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
24 Октября 2013, 14:53:04
Ответ #3
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Простое листание (быстрее и проще) или с разбивкой на страницы?
Размер страницы- по количеству знаков?
Содержимое - текст / гипертекст ?
Наличие изображений, таблиц ?

Согласитесь, после ответа на большинство этих вопросов  Вы поймете, что заказали полноценный текстовый редактор ;)
24 Октября 2013, 15:13:55
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 971
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Простое листание (быстрее и проще) или с разбивкой на страницы?

Без разницы, главное чтобы было удобно.
http://patentforinvention.ru/m-2012/60-portativniy-kran.html
или
http://patentforinvention.ru/2002/87--ustroistvo-sviasi.html

Бывает и с картинками

Уже пробовал применить пагинатор, пока не получилось.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
24 Октября 2013, 17:22:06
Ответ #5
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы, уважаемый, из Word'а текст перетягивали/вставляли. И предполагаю, что с языком HTML "изнутри" знакомы не очень. Поэтому задача может для Вас оказаться сложнее, чем хотелось-бы.
Если в "лоб", то есть стандартные свойства CSS, как page-break-before, page-break-inside, page-break-after. Но вставлять их придется "ручками" в описание страницы. И, затем, изменить обработчик вывода описания категории, чтобы листать.
24 Октября 2013, 17:27:45
Ответ #6
  • Пользователь
  • **
  • Сообщений: 99
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А что такое "page-break-before, page-break-inside, page-break-after"?
У меня таких нет. Зачем они нужны?
24 Октября 2013, 18:55:34
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 971
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Вы, уважаемый, из Word'а текст перетягивали/вставляли. И предполагаю, что с языком HTML "изнутри" знакомы не очень. Поэтому задача может для Вас оказаться сложнее, чем хотелось-бы.
Если в "лоб", то есть стандартные свойства CSS, как page-break-before, page-break-inside, page-break-after. Но вставлять их придется "ручками" в описание страницы. И, затем, изменить обработчик вывода описания категории, чтобы листать.

Вы не поняли, эту информацию размещают клиенты,
из какого формата они ее берут без понятия, надо просто
сделать чтобы не была такая длинная простыня.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
24 Октября 2013, 19:04:53
Ответ #8
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если написанное никто не будет редактировать (робота сложно научить ставить разрывы страниц в нужномВАМ месте), то задача бессмысленна. Как Вы собираетесь определять, где будет следующая страница? - по количеству символов? - да там только на форматирование заголовка параграфа из 2-х слов ушло больше тысячи символов.  Будете учить робота считать открытые тэги и разбивать четко между ними?
24 Октября 2013, 19:08:09
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 13284
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А что такое "page-break-before, page-break-inside, page-break-after"?
У меня таких нет. Зачем они нужны?
Это только для печатной версии. В постраничной разбивке на сайте они не нужны.
Все что нужно можно найти в файле global.css по слову "pagination".
Самое главное, что в шаблоне разбивка была, это
$nb - общее количество
$per_page - количество на странице.
24 Октября 2013, 19:12:31
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 13284
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если написанное никто не будет редактировать (робота сложно научить ставить разрывы страниц в нужномВАМ месте), то задача бессмысленна. Как Вы собираетесь определять, где будет следующая страница? - по количеству символов? - да там только на форматирование заголовка параграфа из 2-х слов ушло больше тысячи символов.  Будете учить робота считать открытые тэги и разбивать четко между ними?
Алгоритм парсера простой,
1. Удалить HTML теги
2. Подсчитать общее количество символов
3. Разбить по заданному числу (можно автоматом установить количество символов на странице А4)
4. Выводить показ с учетом пробелов, чтоб не обрывать слова.
24 Октября 2013, 19:14:12
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 13284
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А еще лучше, проверку и отсеивание лишних тегов сделать на уровне занесения информации.
24 Октября 2013, 19:33:32
Ответ #12
  • Пользователь
  • **
  • Сообщений: 72
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1 Нет тэгов - нет разметки - каша из букв.
2 Отсеивать без учета тегов - создать таблицу учитываемых тегов, научить парсер их считать, понимать варианты их написания (</br> или <br/>) и т.д. - Т.е. полноценный анализ.

Проще вставить в HTML скрипт перелистывания страницы и расставить метки. Но этим никто, насколько я понял, заниматься не будет.