Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 03.03.2011, 15:27   #1
turim
Новенький
 
Регистрация: 19.10.2007
Сообщений: 3
По умолчанию Использование typoLink в собственном скрипте

Здравствуйте.
Имеется один сайт на typo3. В нем используется флешевая галерея для которой пришлось писать админку на php. Админка - набор отдельных php файлов, в которых производится чтение дерева тайпо и последующая геннерация xml для флеш. Возникла надобность во флеш вставлять real_url используемых страниц и тут появилась сама проблема. Долго блуждал по просторам google но так и не смог найти как получить доступ к чему-то типа typoLink вне движка тайпо.
Может кто подсказать какие файлы тайпо нужно заинкладить в кастомный пхп чтобы заставить работать эту функциональность?

Зарание спасибо за ответы.
turim вне форума   Ответить с цитированием
Старый 03.03.2011, 20:17   #3
turim
Новенький
 
Регистрация: 19.10.2007
Сообщений: 3
По умолчанию

Ссылка конечно интерестная, но не к месту.
Мне не нужно собирать xml в TS. Задача - кастомная админка для управления гелереей. Сама задача в целом решена. Вопрос только в том, как имея uid страницы в моем кое получить ссылку на эту страницу в правильном виде, а не index.php?id=1 и т.д.

Замечу, что сама галререя не имеет отношения прямого к дереву страниц. Это набор изображений загруженых пользователем. Просто на изображениях расставляются хотспоты, в которые и нужно вставлять ссылки.
turim вне форума   Ответить с цитированием
Старый 04.03.2011, 01:27   #4
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Если используемая галерея встраивается в typo3 сайт, почему нельзя использовать возможности классов typo3?
-=UncleByte=- вне форума   Ответить с цитированием
Старый 04.03.2011, 10:31   #5
ParserYa
Новенький
 
Аватар для ParserYa
 
Регистрация: 16.12.2010
Сообщений: 14
По умолчанию

-=UncleByte=-, он и спрашивает какой стандартный класс использовать для реализации TypoLink

turim, вот это инклудьте typo3/sysext/cms/tslib/class.tslib_content.php
__________________
Заработай на своей подписи.. Новая биржа трастовых ссылок Linkum
Техническая поддержка CS Yazzle - лучшей программы для оптимизаторов и вебмастеров.
ParserYa вне форума   Ответить с цитированием
Старый 04.03.2011, 11:58   #6
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Если ваш PHP код по отношению к TYPO3 совсем уж "внешний" - то есть использовать TYPO3-классы не получается, то поставьте экстеншн pagepath (http://typo3.org/extensions/reposito...epath/current/).

В документации пример использования, который тоже требует включения классов внутри окружения TYPO3.

PHP код:
require_once(t3lib_extMgm::extPath('pagepath''class.tx_pagepath_api.php'));

$parameters '&tx_ttnews[tt_news]=123';
$parameters = array('tx_ttnews[tt_news]' => 123);
$parameters = array('tx_ttnews' => array('tt_news' => 123));

$pagepath tx_pagepath_api::getPagePath($pageId$parameters); 
Но на самом деле вся суть сводиться к формирование HTTP запроса (к eID скрипту) с передачей Id страницы и других возможных параметров. Как сформировать такой же запрос в вашем коде и как получить готовый URL из ответа, вы можете посмотреть в коде pagepath.

Конечно генерить URL таким способом медленнее, чем через прямое обращение к функциям класса tslib_content, но иногда другого выхода нет - например в BackEnd-е.
dmartynenko вне форума   Ответить с цитированием
Старый 04.03.2011, 12:18   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Если ли бы вы делали ваш код, как типичный плагин наследуемый от класса tslib_pibase, то в нем есть ряд функций для генерации ссылок:

PHP код:
function pi_getPageLink($id,$target='',$urlParameters=array())
function 
pi_linkToPage($str,$id,$target='',$urlParameters=array())
function 
pi_linkTP($str,$urlParameters=array(),$cache=0,$altPageId=0
Они в свою очередь являются обертками для функции класса tslib_cObj - getTypoLink_URL() и getTypoLink().

PHP код:
function pi_getPageLink($id,$target='',$urlParameters=array())    {
    return 
$this->cObj->getTypoLink_URL($id,$urlParameters,$target);    

Есть способ формировать ссылки еще более "ядреным" методом:

PHP код:
$link $GLOBALS['TSFE']->tmpl->linkData($page_id''$GLOBALS['TSFE']->no_cache''''$params$type); 
Но так как это внутреняя функция, то документацию вы по ней вы вряд ли найдете - смотрите комментарии в коде ядра. Хотя тут все довольно очевидно, вам нужно менять только первый параметр - Id страницы.
dmartynenko вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 08:10.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория