LinkExchange и TurboGears 1.0
Для использования LinkExchange c TurboGears 1.0 необходимо сделать следующее:
- Добавить шаблонные переменные из функции linkexchange.turbogears.support.add_stdvars.
- Создать файл конфигурации linkexchange.cfg и дать ссылку на него в параметре linkexchange.config в файле app.cfg.
- В шаблонах использовать переменную tg.linkexchange_blocks, которая содержит список блоков ссылок для размещения на странице.
Примеры файлов
Фрагмент файла инициализации (каталог_проекта/имя_проекта/__init__.py):
import turbogears from linkexchange.turbogears import support as lx_support turbogears.view.variable_providers.append(lx_support.add_stdvars)
Файл конфигурации LinkExchange (каталог_проекта/linkexchange.cfg):
[options] as_kid_xml = true [client-1] type = sape user = user12345 db_driver.type = shelve db_driver.filename = %(basedir)s/sape-XXX.db [client-2] type = linkfeed user = user12345 db_driver.type = shelve db_driver.filename = %(basedir)s/linkfeed-XXX.db [formatter-1] type = list count = 2 class_ = linx prefix = "- " suffix = ". " [formatter-2] type = inline count = 2 class_ = linx delimiter = " | " prolog = "| " epilog = " |" [formatter-3] type = list count = none class_ = linx prefix = "+ " suffix = ". "
Фрагмент файла конфигурации приложения (каталог_проекта/имя_проекта/config/app.cfg):
[global] linkexchange.config = "%(top_level_dir)s/../linkexchange.cfg"
Фрагмент файла базового шаблона (каталог_проекта/имя_проекта/templates/master.kid):
<div id="main_content"> <div id="status_block" class="flash" py:if="value_of('tg_flash', None)" py:content="tg_flash"></div> <div py:replace="[item.text]+item[:]">page content</div> <div py:if="hasattr(tg, 'linkexchange_blocks')" py:replace="tg.linkexchange_blocks[0]"/> </div>
Контекстные ссылки
Для использование контекстных ссылок нужно сделать следующее:
- Добавить шаблонные переменные из функции linkexchange.turbogears.support.add_stdvars.
- Создать файл конфигурации linkexchange.cfg и дать ссылку на него в параметре linkexchange.config в файле app.cfg.
- В шаблонах для фильрации контента использовать функцию tg.linkexchange_filter(), которая в единственном аргументе принимет unicode-строку, содержащую HTML-код или объект kid.ElementStream.
Фрагмент файла базового шаблона (каталог_проекта/имя_проекта/templates/master.kid) для примера:
<div id="main_content"> <div id="status_block" class="flash" py:if="value_of('tg_flash', None)" py:content="tg_flash"></div> <div py:if="hasattr(tg, 'linkexchange_filter')" py:replace="tg.linkexchange_filter([item.text]+item[:])"/> <div py:if="not hasattr(tg, 'linkexchange_filter')" py:replace="[item.text]+item[:]"/> </div>
Опции конфигурационного файла
- as_kid_xml
- Если true, то строки в списках linkexchange_blocks и linkexchange_links преобразуются в объекты представления XML, используя функцию kid.XML().
- use_raw_links
- Значение true устанавливает переменную шаблона linkexchange_links со списком необработанных ссылок для текущей страницы. По умолчанию false.
