Как добавить <span>теги внутри элемента Plone <h1> - PullRequest
3 голосов
/ 17 марта 2011

Я хочу изменить стандартный верхний элемент страницы, чтобы я мог его стилизовать.

<h1 class="documentFirstHeading">My Heading</h1>

- это способ, которым Plone размещает этот элемент на каждой странице.Я хочу добавить, чтобы строка гласила:

<h1 class="documentFirstHeading"><span>My Heading</span></h1>

Очевидно, что этот код генерируется макросом, но я не знаю, как изменить макрос для добавления моих тегов span.Может кто-нибудь указать мне соответствующий файл Plone для изменения?Это устанавливает общую технику замены изображений CSS, и другие сайты Plone часто используют ее, так как я вижу теги span точно там, где они мне нужны, на других сайтах Plone.

TIA для вашего опыта!

Ответы [ 4 ]

2 голосов
/ 19 марта 2011

это на самом деле не имеет значения (действия практически одинаковы), но я предполагаю, что вы создаете пакет темы.Я также предполагаю, что вы используете Plone 4.0 или новее.Действия:

  • Скопируйте файл * kss_generic_macro.pt *, расположенный в * Products.CMFPlone / Products / CMFPlone / skins / plone_kss *, в * skins / your_templates_folder * вашей темы.В общих чертах это называется «настроить шаблон для вашей темы».
  • В строке 20 (номер строки может отличаться в разных версиях Plone), вы найдете нужный вам блок:

    title

Чтобы получить диапазон внутри h1, замените tal: замените в приведенном выше фрагменте на tal: content .

Вам может потребоваться перезапустить ваш сайт Plone, чтобы увидеть ваши изменения в действии.Проверьте ваш h1 - он должен содержать необходимый вам интервал.

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

1 голос
/ 17 марта 2011

Я не уверен на 100% (редактирование приветствуется :-D), и я не уверен, что вы хотите с этим, но я думаю, вам нужно будет настроить шаблон представления страницы.

В Plone 3.x шаблон является шаблоном / portal_skins / plone_content / document_view, и вы, вероятно, захотите изменить

    <h1 class="documentFirstHeading"> 
        <metal:field use-macro="python:here.widget('title', mode='view')">
        Title
        </metal:field>
    </h1>

до

    <h1 class="documentFirstHeading"> 
        <span>
        <metal:field use-macro="python:here.widget('title', mode='view')">
        Title
        </metal:field>
        </span>
    </h1>

В Plone 4 и 4.1 ключевым шаблоном является portal_skins / plone_kss / kss_generic_macros. Ищите:

      <span metal:define-slot="inside" 
            tal:replace="context/Title">title</span>

и замените «заменить» на «содержимое».

0 голосов
/ 23 марта 2011

Благодаря разделителю, теперь у меня есть стилизация для страниц Раздела. Как он упомянул, изменения также затронули все общие представления, которые не имеют определенных переопределений шаблонов. Я предполагаю, что это такие вещи, как представление «Подробности», которое возникает, когда кто-то нажимает на ссылку на конкретную статью в данном разделе.

Итак, хотя мои страницы Раздела отображаются так, как задумано, при нажатии на статью происходит следующее:

Если я установлю текст между тегами span для отображения: none, это поведение вообще НЕ отражается на страницах сведений, поскольку диапазон не применяется внутри тегов h1 на страницах сведений.

НО, поскольку я устанавливаю определенные фоновые изображения для элементов h1 на странице Раздела, это фоновое изображение появляется на странице сведений h1.

Как мне переопределить это поведение для моих страниц с подробностями? - то есть я не хочу фоновых изображений на странице деталей h1. Мне нужно иметь возможность обращаться к элементам h1 на страницах раздела и сведений по отдельности.

Извините за недостаток опыта, но привыкание к тому, как работает Plone, кажется трудоемким, по крайней мере для меня.

0 голосов
/ 17 марта 2011

после того, как я немного поковырялся, я смог выяснить, что искомый макрос находится в '/ portal_skins / plone_kss / kss_generic_macros /', в частности, вы ищете макрос 'generic_title_view'.

Если вам интересно, как я это получил, я сначала посмотрел на файл main_template.pt и увидел:

<metal:title define-slot="content-title">                              
    <metal:comment tal:content="nothing">
        If you write a custom title always use 
        <h1 class="documentFirstHeading"></h1> for it
    </metal:comment>
    <h1 metal:use-macro="context/kss_generic_macros/macros/generic_title_view">              
       Generic KSS Title. Is rendered with class="documentFirstHeading".                    
    </h1>                                                                                    
</metal:title>

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

...