Вы не вошли.
Тема такая:
Нужно прикрутить сторонний каталог (линкоферма).
От каталога есть только один php файл, допустим katalog.php вот с таким кодом:
<?php ob_start(); // это 1 часть кода, обязательно поставьте ее в самое начало страницы!!! ?>
<title>Статьи</title>
<?php // Это 2 часть кода она может находится в удобном для вашего дизайна месте.
error_reporting(0);
$out_serv = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
$out_ua = $_SERVER["HTTP_USER_AGENT"];
echo file_get_contents("http://outlink.ru/include/pages.php?s_art=3755&u_art=3767&serv_art=".urlencode($out_serv)."&ua_art=".urlencode($out_ua));
$html = ob_get_clean();
function change_title($html) {
if (preg_match('#<index><h1[^>]*>(.+)</h1></index>#iS', $html, $matches))
if (preg_match('#<title[^>]*>(.+)</title>#iS', $html, $mtitle))
return str_replace($mtitle[0], '<title>'.strip_tags($matches[1]).'</title>', $html);
return $html;}
echo change_title($html);
?>При заходе на страницу - _http://sait.ru/katalog.php должен быть такой же дизайн как и на сайте и виджеты должны быть рабочими.
В принципе как должно быть понятно:
1. создаю файл например index2.php с кодом как в index.php
2. создаю шаблон например main.katalog
3. изменяю в index2.php main на main.katalog
4. всавляю в main.katalog, в то место которое надо тег [katalog]
5. прописываю в index2.php после
$template['vars']['queries'] = $mysql -> qcnt();
$template['vars']['exectime'] = $timer -> stop();приблизительно вот так:
include("katalog.php");
$poptopic3 = file_get_contents();
$template['vars']['katalog'] = $katalog = ob_get_clean();Суть вопроса именно в пункте 5, как правильно прописать код?
То как я сделал работает криво. Поскольку мои познания в php "ноль" действовал методом "тыка".
Вне форума
А ты уверен, что хочешь работать с этим outlink'ом?
Тот вариант скрипта, который ты показал, представляет из себя огромнейшую дырку в безопасности.
В любой момент они могут сделать с твоим сайтом всё что угодно - начиная от банального показа собственных баннеров (около месяца назад на таком попался filepost - иногда вместо своих ссылок рекламировал какое-то тур. агенство, но они свои скрипты подключают через JScript, поэтому серверу навредить не могут) заканчивая утаскивание себе всех паролей и редактированием любых файлов у тебя на сайте.
Главное - чтобы было желание. Возможно - у outlink'а, а возможно - у тех, кто его взломает.
Вне форума
Виталь, здравствуй, на счет дырки я не знал, для меня это открытие...
Вообще, я просто эксперимент поставить хочу (насколько быстро мой сайт улетит в бан), и хостинг новый обкатать. Можно конечно другой линкатор попробовать, но мне outlink кажется самым лучшим в плане качества сайтов.
А если например файл katalog.php положить в папку например, как у сапы (типа: 2345676345465763547...) и уже отуда его выводить в index2.php? Ну или вообще как-то можно наладить безопасность?
Вне форума
Oleg, сорри. Был невнимателен.
Мне показалось, что они используют include, который очень опасен (а не неопасный в данной ситуации file_get_contents).
С "натягиванием" можно поступить проще - сделать маленький плагин, это будет тебе в качестве компенсации ![]()
Плагин без конфигуратора, поэтому процедура установки такова:
1. Ставишь плагин link_outlinks 0.00
2. В коде link_outlinks.php находишь текс
s_art=5881&u_art=5996и меняешь его на свои значения из кода, которые показываются в панели управления твоим сайтом на outlink'е.
3. Открываешь основной .htaccess файл (т.е. в корне сайта) и добавляешь в конец:
RewriteRule ^topic/ ?action=plugin&plugin=link_outlink
RewriteRule ^topic/ento([0-9]*)/ ?action=plugin&plugin=link_outlink&ento=$1
RewriteRule ^topic/ent([0-9]*)/ ?action=plugin&plugin=link_outlink&ent=$14. В настройках сайта на outlink название странички меняешь на topic.php (если нужно другое имя, то в .htaccess'е надо писать именно его, но без расширения [b].php[/]b), и обязательно ставишь галочку в настройках статического отображения!
Если будут какие-то проблемы - обращайся :)
Вне форума
Здравствуй, Виталий. В общем, установил плагин "link_outlinks" и возник вопрос.
Каталог работает по адресу: _http://www.мой_сайт.ru/plugin/link_outlink/ - это так должно быть или я что-то не правильно понял?
Вне форума
http://www.мой_сайт.ru/?action=plugin&plugin=link_outlink или
http://www.мой_сайт.ru/topic/
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Вне форума
http://www.мой_сайт.ru/?action=plugin&plugin=link_outlink - так работает, но outlink в <title> дает свои значения, а сейчас в <title> стоят значения движка "Название сайта : Плагин". С таким вариантом сайт не пройдет модерацию в outlink
http://www.мой_сайт.ru/topic/ - так не работает. Пишет "Информация: Категория не найдена!"
Галочка в настройках (на outlink) статического отображения стоит.
Отредактировано Oleg (2009-01-06 22:45:35)
Вне форума
Oleg, А ты в конец .htaccess добавил строчки?:
RewriteRule ^topic/ ?action=plugin&plugin=link_outlink
RewriteRule ^topic/ento([0-9]*)/ ?action=plugin&plugin=link_outlink&ento=$1
RewriteRule ^topic/ent([0-9]*)/ ?action=plugin&plugin=link_outlink&ent=$1
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Вне форума
2Oleg:
1. Ты не переделывал .htaccess чтобы к категориям можно было обращаться не как к /category/ИМЯ_КАТЕГОРИИ/ а как к /ИМЯ_КАТЕГОРИИ/ ?
Если переделывал, то перенеси указанные строчки в место сразу после:
# Editable links2. Я, вроде, правильно переделал код outlinks'а.
Они подставляют свой title, но не всегда, а когда выставляют специальный флаг.
Вот у меня аналогично - их title проставится только в случае, если они его передадут.
Попробуй проверить, если что не так - буду более детально разбираться.
3. Плагин должен быть доступен по адресу /topic/ - как и сделано в варианте, который выдаётся outlink'ом.
Вне форума
1. Да, переделывал, перенес под "# Editable links" помогло.
2. Сайт в Аутлинк добавил сегодня. На данный момент сайт на: "Сайт на модерации!".
Если зайти http://www.мой_сайт.ru/topic.php, то титлы аутлинка есть: <title>Статьи</title>.
Если зайти http://www.мой_сайт.ru/topic/, то титлы движка: <title>Название сайта : Плагин</title>, хотя по идее должно отображаться <title>Статьи</title>. Просмотрел HTML-код страницы http://www.мой_сайт.ru/topic/ (ну мало ли, может <title> аутлинка вылезли где-нибудь между <body>) никаких других title нет.
Вне форума
1. Хорошо
2. Значит outlink не генерирует собственный title при заходе по url'у /topic/
Все вопросы к ним,.. возможно так и задумывалось?
p.s. В настройках outlink'а ты указал, что у тебя так называемый "ЧПУ режим" (или .htaccess режим)?
Вне форума
Ну посмотрим, будет аутлинк на другие страницы каталога title генерировать или нет.
Мой сайт все еще на модерации висит, поэтому подожду на счет title-лов.
На счет "ЧПУ режим" галочка в настройках аутлинка стоит.
Вне форума
Еще такой вопрос:
у меня на главной странице стоит отдельный шаблон (main_gl.tpl) на всех остальных стандартный шаблон (main.tpl), url /topic/ выводит каталог в шаблоне главной страницы (main_gl.tpl), а мне надо чтобы выводил в стандартный шаблон (main.tpl), что нужно дописать в link_outlink.php???
Вне форума
Сегодня сайт прошел модерацию в аутлинке. Титлы (<title>) по адресу _http://мой_сайт/topic/ и внутри каталога по прежнему генерятся движком (Название сайта : Плагин), а не аутлинком.
С шаблоном разобрался, все шаблоны выводятся как надо.
Вне форума
Oleg, Если добавишь в код плагина после:
global $SYSTEM_FLAGS, $template;вот это:
$SYSTEM_FLAGS['info']['title']['group'] = 'Название плагига';То этому плагину сможешь задавать название, но оно уже будет постоянным.
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Вне форума
ROZARD, спасибо, что поддерживаешь тему, но речь не о том, что ты предлагаешь.
Аутлинк генерирует свои собственные <title>-лы для каждой статьи. Вот они-то и не отображаются при выводе каталога аутлинка, а выводятся <title>-лы самого движка. Поэтому вариант, который ты предложил, не подходит.
Вне форума
Попробуй сделать так, после:
$SYSTEM_FLAGS['info']['title'] = array('group' => $matches[1]);Добавить:
$SYSTEM_FLAGS['info']['title']['group'] = $matches[1];Это скорее всего не правильно, но всё же попробуй так.;)
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Вне форума
Oleg, я правильно понимаю, что ты хочешь выставлять свой заголовок даже в случае, когда outlinks не выдаёт заголовка?
В изначальной задаче такого не было ![]()
Замени:
// Замена заголовка (если требуется)
if (preg_match('#<index><h1[^>]*>(.+)</h1></index>#iS', $html, $matches))
$SYSTEM_FLAGS['info']['title'] = array('group' => $matches[1]);на:
// Замена заголовка (если требуется)
if (preg_match('#<index><h1[^>]*>(.+)</h1></index>#iS', $html, $matches)) {
$SYSTEM_FLAGS['info']['title'] = array('group' => $matches[1]);
} else {
$SYSTEM_FLAGS['info']['title'] = array('group' => 'Каталог OutLINKS');
}При необходимости можешь заменить текст [font=Courier]Каталог OutLINKS[/font] на нужный тебе.
Вне форума
Oleg, но это же проблема outlink'а, верно?
Или я чего-то недопонимаю?
Опиши детально проблему.
В том скрипте, который предоставляется outlink'ом, мы видим, что они делают подмену заголовков (title страницы) в случае, если этот заголовок приходит в спец-теге от outlink'а.
Т.е. логично предположить, что они эти заголовки выдают... во всяком случае тогда, когда считают это нужным.
Вне форума
[ Сгенерировано за 0.019 сек, 7 запросов выполнено - Использовано памяти: 620.27 Кбайт (Пик: 673.27 Кбайт) ]