Тема: SAPE
Показать сообщение отдельно
Старый 20.08.2008, 00:29   #2
vedomir
Senior Member
 
Регистрация: 07.02.2006
Сообщений: 202
По умолчанию

Сказанное ниже проверено на системе версии 4.2 в кодировке utf , большинство вещей оттуда будет работать и в более старых версиях.

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

Для работы понадобится - вставить код инициализации SAPE в заголовочную часть страницы и код вывода в контентный элемент Typo3.

Рассмотрим по отдельности задачу.

У typo3 отстутствует header в том виде , в каком оный имеется в большинстве CMS на PHP. Большинство файлов кода невозможно отредактировать из самой системы но есть один файл. Это файл начальных настроек системы, это localconf.php.
Его можно легко отредактировать через :
Установка -> Edit files in typo3conf/ -> localconf.php
Естественно , возможность зайти в Установку у вас должна быть включена (файл ENABLE_INSTALL_TOOL) и пароль от нее тоже должен иметься в наличии.

В начало файла , перед первой строчкой настроек вставляется код

if (!defined('_SAPE_USER')){
define('_SAPE_USER', 'c3c5f7aac0c9602fff0210f208d092dc');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');

$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);

Сохраняем файл. Теперь в каждой странице Typo3 (вероятно, кроме сгенерированных в честную статику) имеется возможность работать с SAPE.

2. Требуется вывести код в конкретные страницы , с которых будет продаваться ссылки. И тут наступает вторая проблема - Typo3 не позволяет выводить просто php-код из обычных элементов контента. Однако, в прошлом существовало расширение, позволяющее вставлять элемент php в качестве специального контентного элемента. Однако, это расширение было удалено из репозитория системы из общих соображений безопасности.

Расширение называется Page PHP Content (page_php_content оно называлось в репозитории). Установку описывать не буду - все обыденно просто .

После установки - осталось только разместить код на нужной странице. Выбираете страницу, добавляете новый контентный элемент, выбираете новый -> Чистый HTML -> в списке прокрутки меняете его на PHP script, подтверждаете перезагрузку формы
и вставляете код:



<?php
global $sape;
echo $sape->return_links(3);
?>



где 3 - рекомендуемый коэффицент безопасной жадности

3. Дополнительные рекомендации. Размещение рабочего кода на всех страницах, пригодных для продажи.

В основной шаблон вставляется простой код вида:

[treeLevel = 2,3]
page.1.subparts.INHALT_RECHTS < styles.content.getRight
page.1.subparts.INHALT_RECHTS.select.pidInList = 76
[end]

где page.1 это текущий шаблон
INHALT_RECHTS -это метка для вывода (в данном случае, в жертву была выбрана правая колонка) styles.content.getRight

INHALT_RECHTS.select.pidInList = число это номер страницы , где в правой колонке разместили контентный элемент с кодом SAPE

treeLevel = 2,3

означает размещениие ссылок только на 3-4 уровне дерева страниц от корня, то есть в 1-2 кликах от главной страницы.

Можно было бы сделать код элегантнее, но пока вариант не найден, а этот работает на ура.

Всем удачи!
vedomir вне форума   Ответить с цитированием