пятница, 17 декабря 2010 г.
Plone и Java Scripts
В Plone имеется набор Java Scripts, которые можно эффективно использовать в шаблонах. Об их возможностях читать http://www.sixfeetup.com/blog/2009/7/31/utilize-available-javascript-in-plone-without-knowing-javascript
четверг, 16 декабря 2010 г.
Вкладки на форме контент-типа
Для добавления вкладки в базовый вид контент-типа достаточно в модели класса добавить метод и определить у него стереотпы, как на рисунке. При генерации Archgenxml выдает сообщение "WARNING Deprecated usage of stereotype view or form!", но вкладку регистрирует.Добавление вкладки можно сделать вручную, добавив запись в файл имя_типа.xml в папке profiles/defaults/types.
Для модели на рисунке в файле Discipline.xml добавлена запись:
<action title="addTemsFromList" i18n:attributes="title" action_id="addTems" category="object" condition_expr="python:1" url_expr="string:${object_url}/addTems" visible="True">
<permission value="View" />
action>
виды и classic portlet
Вопрос: как подключить вид из нашего продукта в classic portlet?
Ответ: никак, classic portlet предназначен для отображения кода HTML и использования Java Scripts.
Частично задачу представления вида в портлете можно решить установкой collective.portlet.tal, который позволяет вставлять код с инструкциями tal:
http://www.packtpub.com/article/creating-new-types-of-plone-portlets).
Лучше создавать специализированный портлет:
http://www.martinaspeli.net/articles/an-introduction-to-plone-portlets
https://www.packtpub.com/article/creating-customizing-assigning-portlets-automatically-for-plone-3.3
Ответ: никак, classic portlet предназначен для отображения кода HTML и использования Java Scripts.
Частично задачу представления вида в портлете можно решить установкой collective.portlet.tal, который позволяет вставлять код с инструкциями tal:
http://www.packtpub.com/article/creating-new-types-of-plone-portlets).
Лучше создавать специализированный портлет:
http://www.martinaspeli.net/articles/an-introduction-to-plone-portlets
https://www.packtpub.com/article/creating-customizing-assigning-portlets-automatically-for-plone-3.3
Список групп пользователя
Скрипт для получения списка групп, в которых зарегистрирован текущий пользователь.
request = container.REQUEST
RESPONSE = request.RESPONSE
from Products.CMFCore.utils import getToolByName
membership_tool = getToolByName(context, 'portal_membership')
user=membership_tool.getAuthenticatedMember()
groups=user.getGroups()
for group in groups:
print groups
return printed
Соответствующим образом меняя значение user можно получить подобный результат для всех пользователей.
Обращаю внимание, что проверять скрипт нужно под учетной записью, зарегистированной в Plone.
request = container.REQUEST
RESPONSE = request.RESPONSE
from Products.CMFCore.utils import getToolByName
membership_tool = getToolByName(context, 'portal_membership')
user=membership_tool.getAuthenticatedMember()
groups=user.getGroups()
for group in groups:
print groups
return printed
Соответствующим образом меняя значение user можно получить подобный результат для всех пользователей.
Обращаю внимание, что проверять скрипт нужно под учетной записью, зарегистированной в Plone.
пятница, 10 декабря 2010 г.
Перенос скрипта Python в вид
В классе вида создайте метод и перенесите туда код скрипта.
Создайте в классе вида конструктор:
def __init__(self, context, request):
self.context=context
self.request=request
Во всех методах для доступа к context и request используйте self.context и self.request соответственно.
Если нужно перенести скрипт, обрбатывающий форму, то создайте в классе метод __call__ и разместите код обработки там.
Вызов всех методов из шаблона производится как python:view.имя_метода(список параметров) или view/имя_метода.
В шаблоне формы имя обработчика может быть установлено универсальным способомЖ
<form method="get"
tal:attributes="action string:${context/absolute_url}/${view/__name__}">
Пример разработки формы реализован в продукте CustomContent. размещенном на учебном сервере.

Создайте в классе вида конструктор:
def __init__(self, context, request):
self.context=context
self.request=request
Во всех методах для доступа к context и request используйте self.context и self.request соответственно.
Если нужно перенести скрипт, обрбатывающий форму, то создайте в классе метод __call__ и разместите код обработки там.
Вызов всех методов из шаблона производится как python:view.имя_метода(список параметров) или view/имя_метода.
В шаблоне формы имя обработчика может быть установлено универсальным способомЖ
<form method="get"
tal:attributes="action string:${context/absolute_url}/${view/__name__}">
Пример разработки формы реализован в продукте CustomContent. размещенном на учебном сервере.
Получение списка пользователей
http://plone.org/documentation/manual/plone-community-developer-documentation/members/member-basics

среда, 8 декабря 2010 г.
Настройка отображения видов
Обязательно для прочтения:
http://www.ploner.ru/docs/manual/kastomizaciya-dlya-razrabotchikov/referencemanual-all-pages

http://www.ploner.ru/docs/manual/kastomizaciya-dlya-razrabotchikov/referencemanual-all-pages
Подписаться на:
Сообщения (Atom)
Всероссийский конкурс научно-технологических проектов страница конкурса https://dm-centre.ru/sirius-konkurs-projectov Цель конкурс...
-
Темы для обсуждения в блоге Предлагаю оставить в комментарии темы для обсуждения по вопросам использования Plone и проектированию web-си...
-
# Общая часть from Products.PythonScripts.standard import html_quote from Products.CMFCore.utils import getToolByName request = containe...
-
Предлагается тема для обсуждения: "устранение ошибок" (проблема с русским языкои и т.д.)