[Помогите] Спойлеры в статьях

Тема в разделе "OpenCart", создана пользователем Дмитрич, 9 май 2014.

  1. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Всем доброго дня и праздников с выходными!
    Подскажите, пожалуйста, как в статье можно использовать спойлеры для фрагментов текста?
    Через скрипт я могу один сделать, а несколько не работает. При нажатии на любой спойлер - открывается первый.
    Использовал код:
    HTML:
    <a class="aspoiler" href="javascript:fspoiler()">Текст спойлера</a>
    <div id="spoiler" style="display:none">
            Текст появляющийся после нажатия на ссылку "Текст спойлера"
        </div>
    <script type="text/javascript">
    function fspoiler() {obj = document.getElementById("spoiler"); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; }}
    </script>
     
  2. ingenerks

    ingenerks

    Регистрация:
    25 окт 2012
    Сообщения:
    254
    Симпатии:
    79
    zamalatb и Дмитрич нравится это.
  3. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Посмотрел, спасибо. Я не очень разбираюсь, но, похоже, это под vqmod, а я покабез него обхожусь. Да и переписать его на произвольное применение в произвольных местах статей я не смогу. Даже не представляю как это можно сделать...
     
  4. gatsby

    gatsby

    Регистрация:
    27 дек 2012
    Сообщения:
    142
    Симпатии:
    75
    Так Вы используйте разные ID у спойлеров и немного измените функцию и ее вызов, например вот так:
    СПОЙЛЕРЫ
    Код:
    <a class="aspoiler" href="javascript:fspoiler('spoiler-1')">Текст спойлера 1</a>
    <div id="spoiler-1" style="display:none">Текст появляющийся после нажатия на ссылку "Текст спойлера1"</div>
    
    <a class="aspoiler" href="javascript:fspoiler('spoiler-2')">Текст спойлера 2</a>
    <div id="spoiler-2" style="display:none">Текст появляющийся после нажатия на ссылку "Текст спойлера2"</div>
    
    ФУНКЦИЯ
    Код:
    
    <script type="text/javascript">
    function fspoiler(a) {obj = document.getElementById(a); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; }}
    </script>
    
     
    Дмитрич нравится это.
  5. zamalatb

    zamalatb

    Регистрация:
    29 апр 2014
    Сообщения:
    113
    Симпатии:
    31
    Немного изменил мод, добавил и для описания производителя, классная штука оказалась. не надо терь ссылку на статью делать а сразу забивать по полной описание)
    https://mega.co.nz/#!V09nQCrD!c3fmg0g_Q8sNTrE3eCSbYkyX2_wrsKTsfBiFgV1_tJA
     
  6. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Не знаю как у вас, но у меня значение display == "none" вызывает настороженность, будучи разработчиком ведомых ПС я бы поставил проверку роботом такой контент, ИМХО такое вот решение наиболее оптимальное, хоть и не особо адаптированной под разные устройства...

    P.S. Дмитрич, не старайтесь набивать кол-во сообщений бессмысленными предложениями, можно получить не только обнуление но и бан.
     
    Последнее редактирование: 10 май 2014
    zamalatb и Дмитрич нравится это.
  7. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Baco, я не закрываю контент от роботов. Это просто в блоке новостей я закрываю объёмные текстовые массивы. Боты их видят, всё индексируется, санкций, вроде, ожидать не за что.
    Ваш вариант прямо в редакторе использовать в режиме «источник»? Я не совсем понял.
    Относительно «набивания» - Вы не правы. Во-первых, это единственный «живой» форум, где я могу получить помощь и консультации по Опенкарт. Во-вторых, это Вам мои вопросы кажутся бессмысленными, но всё о чём я спрашиваю у меня применяется потом на сайте, могу доказать. Учитывайте разность квалификаций и специфических знаний. В-третьих, если мне что и нужно, то оно закрыто 250 сообщениями и, поверьте, идиотской мысли набивать их здесь тупыми вопросами у меня нет.
    Сообщение можно удалить, если угодно.
    Спасибо.
     
  8. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Как раз суть в том, что б не использовать при спойлере свойство display:none так как в яши, если не ошибаюсь, то это относится к "скрытию контента, которое требует от пользователя (для отображения) доп. действия", за что может быть санкция а то и вообще выброс из индекса, правда не встречал на практике такого, но и гугл так же относится к такому - неприязненно, насколько я анализировал.
     
    Дмитрич нравится это.
  9. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Baco, извините, но не пойму я куда вписать код?:
    Код:
    $(document).ready(function(){
    $('.more').click(function() {
        if ($(this).text() == 'Читать полностью') {
            $(this).text('Свернуть');
            $(this).parent().css('height', '100%');
        } else {
            $(this).text('Читать полностью');
            $(this).parent().css('height', '200px');
        }
    });
    });
    Похожие структуры в tpl файлах, но неужели это для header?
     
  10. zamalatb

    zamalatb

    Регистрация:
    29 апр 2014
    Сообщения:
    113
    Симпатии:
    31
    присоединяюсь к вопросу) как это реализовать в опенкарте?
     
  11. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Просьба задать корректно вопрос, что бы получить корректный ответ... Вы ж на форуме автосервиса не пишите "Как магнитолу в джип установить ? "
     
  12. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Вы рекомендовали выше свой вариант для спойлера в статье, без использования свойства display:none.
    В Вашем примере есть: текст, взятый в теги html - с ним понятно; схема CSS, которая записывается в файл stylesheet.css; тело скрипта jawaScript, который нужно использовать, но не понятно его нужно подгружать сразу из header.tpl или вписывать прямо в редакторе (режим источник) до, или после фрагмента текста?
    У меня на страничке десяток спойлеров - скрипт ведь один раз нужно прописать, если прямо в редакторе?
    P.S. вставлял скрипт в редактор, разные варианты до и после текста - ничего не выходит. А вставленные в таком виде стили перекорёжили мне весь сайт. (
     
    Последнее редактирование: 11 май 2014
  13. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    В сам редактор вам не получится вставить, он фильтруем скрипты, оптимальней всего, прописать в нижней части файла отображения статей ( catalog\view\theme\default\template\information\information.tpl) после <?php echo $footer; ?>

    В самом же редакторе, создавать "спаны" или "див-ы" с классом more, как показано в примере.
     
    Дмитрич нравится это.
  14. zamalatb

    zamalatb

    Регистрация:
    29 апр 2014
    Сообщения:
    113
    Симпатии:
    31
    получилось ваш пример реализовать в опенкарте. а подскажите как сделать чтобы надпись раскрыть была внизу?
    и еще вопрос, для робота точно норм все будет? он еще не научился стили читать?