2012-02-08 2 views
3

Я использую диазо для тематики, и у меня есть проблема со всеми всплывающими окнами. Я использую Plone 4.1.3.Unstyle all popup with diazo theme

Я много читал, что для предотвращения тематизации всплывающих окон, вы должны включить это правило:

<theme href="index.html" css:if-content="#visual-portal-wrapper" /> 

Это уже дело. Возможно, это правило работает для некоторых всплывающих окон, но не для файла login_form, ни для страницы select_default_, ни для контакт-info.

Почему? . Просто потому, что все это 3 шаблонов имеет # зрительно-портал-обертку в

Итак, я попытался с некоторыми правилами, как что:

<notheme if-path="select_default_page" /> 
<notheme if-path="contact-info" /> 
<notheme if-path="login" /> 

Но, это не очень эффективно, если я забыл один шаблон в этом правиле мне нужно добавить его, и если кто-то зайдет в/contact-info (без всплывающего окна), страница будет нестилена (конечно, но это не хорошо ...).

Я попытался посмотреть на стороне URL-адреса, я увидел, что есть строка запроса «ajax_load», но ее нет в контакт-info.

Я также попытался посмотреть на HTML добавлен в main_template, класс «pb_ajax», но это не работает слишком ...

Итак, есть ли способ, чтобы определить шаблон в всплывающее окно?

Edit:

Вот шаблон: http://pastealacon.com/29662

и вот rule.xml: http://pastealacon.com/29663

+0

Использование условия css: if-content = "# visual-portal-wrapper" достаточно. Нет необходимости в дополнительном нееме. Он работает, у вас может быть другая проблема. Ваша тема доступна где-то (например, github)? – toutpt

+0

Strange ... Вот шаблон: http://pastealacon.com/29662 и вот правило. Xml: http://pastealacon.com/29663 – Jihaisse

ответ

3

Вы должны убедиться, что ваш шаблон включает Ид = "содержание" div.

Когда всплывающие окна загружаются через AJAX, используется фильтр, который удаляет все, что не нужно для всплывающего окна (весь хром дизайна). Этот фильтр, определенный в popupforms.js, составляет:

var common_content_filter = '#content>*:not(div.configlet),dl.portalMessage.error,dl.portalMessage.info'; 

Ключевая часть здесь «#content> *». Это означает, что мы отфильтровываем все, кроме того, что находится внутри id = "content" div. Но, если этот div отсутствует, совпадения не будет, и все html возвращенный появляется во всплывающем окне. Бардак.

+0

OK Спасибо большое, вот и все. У меня есть div #contenu, а не #content в моем шаблоне. – Jihaisse

+0

также требует ? –