[РЕШЕНО] Как использовать спойлер Collapse Text в шаблоне?

Главные вкладки

Комментарии

Аватар пользователя FomenkoAndrey FomenkoAndrey 1 апреля 2012 в 19:00

не совсем понял, какую именно конструкцию надо использовать.

попробовал вытянуть firebug'ом разметку работающего спойлера и вставить ее в шаблон:

<fieldset class="collapse-text-fieldset collapsible form-wrapper collapse-processed">
        <legend>
                <span class="fieldset-legend">
                        <a class="fieldset-title" href="#">
                                <span class="fieldset-legend-prefix element-invisible">Скрыть</span>
                                Показать/скрыть
                        </a>
                        <span class="summary"></span>
                </span>
        </legend>
        <div class="fieldset-wrapper" style="">
                <div class="collapse-text-text">
                        22222222222222
                </div>
        </div>
</fieldset>

но, она работать не стала.

Аватар пользователя sas@drupal.org sas@drupal.org 1 апреля 2012 в 19:12
<?php
$element
['my_fieldset'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$element['my_fieldset']['to_hide'] = array('#markup' => 'Меня видно, меня не видно');
print 
render($element);
?>
Аватар пользователя FomenkoAndrey FomenkoAndrey 1 апреля 2012 в 19:12

Parse error: syntax error, unexpected '=', expecting ')' in /home/motokale/public_html/sites/all/themes/customoto/templates/field--field_maps.tpl.php on line 16

строка 16

'#collapsible' = TRUE,

попробовал здесь вместо = поставить =>
получил ошибку 500.

Аватар пользователя FomenkoAndrey FomenkoAndrey 1 апреля 2012 в 19:16

это зачем? на хостинге все прекрасно работает, причем на совершенно различных CMS, в том числе и DRUPAL, PHPBB3, JOOMlA достаточно посещаемых сайтах.

я правильно понял, что код нужно в носить в шаблон поля?
в моем случае это field--field_maps.tpl.php

Аватар пользователя FomenkoAndrey FomenkoAndrey 1 апреля 2012 в 22:20

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

Вот содержимое файла field--field_maps.tpl.php, которое мне хотелось бы свернуть под спойлер.

<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>

  <?php if (!$label_hidden) : ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item) : ?>

        <?php if ((strpos(render($item),"maps.google") > 0) && (strpos(render($item),"&amp;output=embed") == 0)): ?>

                <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><iframe src="<?php print render($item); ?>&amp;output=embed" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="100%" height="350"></iframe></div>

        <?php else: ?>
                <div id="gmap-error">Ошибка! Карта задана неверно либо встраивается НЕ карта GOOGLE!</div>
        <?php endif; ?>

    <?php endforeach; ?>
  </div>
</div>

Если не затруднит - помогите.
Если сложно - оставим вопрос открытым. Думаю, со временем смогу разобраться таки сам.
В любом случае, я благодарен Вам за подсказки.

Аватар пользователя FomenkoAndrey FomenkoAndrey 1 апреля 2012 в 22:45

Нет. Это не совсем то.
У меня есть два "емких" поля.
Одно из них - гугл-карта, которая занимает вертикальное пространство страницы, второе - Дополнительная информация.
Поскольку модуль спойлера уже подключен и все равно используются, хотел приспособить его функционал через шаблоны полей, чтобы при необходимости, можно было нужные поля отображать свернутыми по умолчанию.

Устанавливать для этих нужд новый модуль - это как "из пушки по воробьям".
Лучше уже или без этого дополнения обойтись, или со временен разобраться со спойлером и сделать так, как нужно.

Аватар пользователя sas@drupal.org sas@drupal.org 1 апреля 2012 в 23:05

"FomenkoAndrey" wrote:
спойлера уже подключен и все равно используются

Это Вы не правы он подключается только если есть подключение на данной странице, опять таки как я писал Выше при использовании fieldset. Если Вы не хотите ставить модуль и сильны в PHP то вызывайте _preprocess_field() в template.php подключайте drupal_add_js('misc/collapse.js') и в field--field_maps.tpl.php вписывайте <fieldset class="collapsible"> ... </fieldset>, да только не "кошерно" как раз это с точки зрения "универсальности".