| акустическая система | заказ лимузинов |
wiki:LinkExchangeИTurboGears

LinkExchange и TurboGears 1.0

Для использования LinkExchange c  TurboGears 1.0 необходимо сделать следующее:

  1. Добавить шаблонные переменные из функции linkexchange.turbogears.support.add_stdvars.
  2. Создать файл конфигурации linkexchange.cfg и дать ссылку на него в параметре linkexchange.config в файле app.cfg.
  3. В шаблонах использовать переменную 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>

Контекстные ссылки

Для использование контекстных ссылок нужно сделать следующее:

  1. Добавить шаблонные переменные из функции linkexchange.turbogears.support.add_stdvars.
  2. Создать файл конфигурации linkexchange.cfg и дать ссылку на него в параметре linkexchange.config в файле app.cfg.
  3. В шаблонах для фильрации контента использовать функцию 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.