Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2008-12-28 13:44:54

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Как натянуть дизайн движка на сторонний скрипт

Тема такая:
Нужно прикрутить сторонний каталог (линкоферма).
От каталога есть только один 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 "ноль" действовал методом "тыка".

Не в сети

#2 2008-12-28 14:16:29

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

А ты уверен, что хочешь работать с этим outlink'ом?
Тот вариант скрипта, который ты показал, представляет из себя огромнейшую дырку в безопасности.
В любой момент они могут сделать с твоим сайтом всё что угодно - начиная от банального показа собственных баннеров (около месяца назад на таком попался filepost - иногда вместо своих ссылок рекламировал какое-то тур. агенство, но они свои скрипты подключают через JScript, поэтому серверу навредить не могут) заканчивая утаскивание себе всех паролей и редактированием любых файлов у тебя на сайте.
Главное - чтобы было желание. Возможно - у outlink'а, а возможно - у тех, кто его взломает.

Не в сети

#3 2008-12-28 14:41:16

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Виталь, здравствуй, на счет дырки я не знал, для меня это открытие...
Вообще, я просто эксперимент поставить хочу (насколько быстро мой сайт улетит в бан), и хостинг новый обкатать. Можно конечно другой линкатор попробовать, но мне outlink кажется самым лучшим в плане качества сайтов.
А если например файл katalog.php положить в папку например, как у сапы (типа: 2345676345465763547...) и уже отуда его выводить в index2.php? Ну или вообще как-то можно наладить безопасность?

Не в сети

#4 2008-12-31 11:17:17

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

Oleg, сорри. Был невнимателен.
Мне показалось, что они используют include, который очень опасен (а не неопасный в данной ситуации file_get_contents).

С "натягиванием" можно поступить проще - сделать маленький плагин, это будет тебе в качестве компенсации smile

Плагин без конфигуратора, поэтому процедура установки такова:
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=$1

4. В настройках сайта на outlink название странички меняешь на topic.php (если нужно другое имя, то в .htaccess'е надо писать именно его, но без расширения [b].php[/]b), и обязательно ставишь галочку в настройках статического отображения!


Если будут какие-то проблемы - обращайся smile

Не в сети

#5 2008-12-31 20:15:50

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Ух, только что увидел. Спасибо. Посмотрю после празднования.

Не в сети

#6 2009-01-06 23:11:01

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Здравствуй, Виталий. В общем, установил плагин "link_outlinks" и возник вопрос.
Каталог работает по адресу: _http://www.мой_сайт.ru/plugin/link_outlink/ - это так должно быть или я что-то не правильно понял?

Не в сети

#7 2009-01-06 23:23:19

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Как натянуть дизайн движка на сторонний скрипт

http://www.мой_сайт.ru/?action=plugin&plugin=link_outlink или
http://www.мой_сайт.ru/topic/

Не в сети

#8 2009-01-06 23:34:57

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

http://www.мой_сайт.ru/?action=plugin&plugin=link_outlink - так работает, но outlink в <title> дает свои значения, а сейчас в <title> стоят значения движка "Название сайта : Плагин". С таким вариантом сайт не пройдет модерацию в outlink

http://www.мой_сайт.ru/topic/ - так не работает. Пишет "Информация: Категория не найдена!"

Галочка в настройках (на outlink) статического отображения стоит.

Изменено Oleg (2009-01-06 23:45:35)

Не в сети

#9 2009-01-06 23:46:38

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Как натянуть дизайн движка на сторонний скрипт

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

Не в сети

#10 2009-01-06 23:49:43

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Да, разумеется, сделал все как написано.

Не в сети

#11 2009-01-07 00:01:56

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

2Oleg:
1. Ты не переделывал .htaccess чтобы к категориям можно было обращаться не как к /category/ИМЯ_КАТЕГОРИИ/ а как к /ИМЯ_КАТЕГОРИИ/ ?

Если переделывал, то перенеси указанные строчки в место сразу после:

# Editable links

2. Я, вроде, правильно переделал код outlinks'а.
Они подставляют свой title, но не всегда, а когда выставляют специальный флаг.
Вот у меня аналогично - их title проставится только в случае, если они его передадут.
Попробуй проверить, если что не так - буду более детально разбираться.

3. Плагин должен быть доступен по адресу /topic/ - как и сделано в варианте, который выдаётся outlink'ом.

Не в сети

#12 2009-01-07 01:11:24

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

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 нет.

Не в сети

#13 2009-01-08 01:15:41

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

1. Хорошо
2. Значит outlink не генерирует собственный title при заходе по url'у /topic/
Все вопросы к ним,.. возможно так и задумывалось?

p.s. В настройках outlink'а ты указал, что у тебя так называемый "ЧПУ режим" (или .htaccess режим)?

Не в сети

#14 2009-01-08 02:20:27

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Ну посмотрим, будет аутлинк на другие страницы каталога title генерировать или нет.
Мой сайт все еще на модерации висит, поэтому подожду на счет title-лов.

На счет "ЧПУ режим" галочка в настройках аутлинка стоит.

Не в сети

#15 2009-01-08 02:32:41

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Еще такой вопрос:
у меня на главной странице стоит отдельный шаблон (main_gl.tpl) на всех остальных стандартный шаблон (main.tpl), url /topic/ выводит каталог в шаблоне главной страницы (main_gl.tpl), а мне надо чтобы выводил в стандартный шаблон (main.tpl), что нужно дописать в link_outlink.php???

Не в сети

#16 2009-01-08 18:32:04

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Сегодня сайт прошел модерацию в аутлинке. Титлы (<title>) по адресу _http://мой_сайт/topic/ и внутри каталога по прежнему генерятся движком (Название сайта : Плагин), а не аутлинком.
С шаблоном разобрался, все шаблоны выводятся как надо.

Не в сети

#17 2009-01-08 18:37:40

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Как натянуть дизайн движка на сторонний скрипт

Oleg, Если добавишь в код плагина после:

global $SYSTEM_FLAGS, $template;

вот это:

$SYSTEM_FLAGS['info']['title']['group']		= 'Название плагига';

То этому плагину сможешь задавать название, но оно уже будет постоянным.

Не в сети

#18 2009-01-08 21:50:38

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

ROZARD, спасибо, что поддерживаешь тему, но речь не о том, что ты предлагаешь.
Аутлинк генерирует свои собственные <title>-лы для каждой статьи. Вот они-то и не отображаются при выводе каталога аутлинка, а выводятся <title>-лы самого движка. Поэтому вариант, который ты предложил, не подходит.

Не в сети

#19 2009-01-08 23:21:46

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Как натянуть дизайн движка на сторонний скрипт

Попробуй сделать так, после:

$SYSTEM_FLAGS['info']['title'] = array('group' => $matches[1]);

Добавить:

$SYSTEM_FLAGS['info']['title']['group']		= $matches[1];

Это скорее всего не правильно, но всё же попробуй так.;)

Не в сети

#20 2009-01-09 02:19:21

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Попробовал. Получилось так: "Название сайта :", т.е. пропало слово "Плагин".
Вариант не подходит...

Не в сети

#21 2009-01-10 14:20:05

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

Oleg, я правильно понимаю, что ты хочешь выставлять свой заголовок даже в случае, когда outlinks не выдаёт заголовка?
В изначальной задаче такого не было smile

Замени:

 // Замена заголовка (если требуется)
 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] на нужный тебе.

Не в сети

#22 2009-01-11 11:55:39

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

Виталь, outlinks у меня не выдаёт свои (outlinks-а) заголовки, вот, о чем я говорю.

Не в сети

#23 2009-01-11 12:10:55

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как натянуть дизайн движка на сторонний скрипт

Oleg, но это же проблема outlink'а, верно?
Или я чего-то недопонимаю?

Опиши детально проблему.
В том скрипте, который предоставляется outlink'ом, мы видим, что они делают подмену заголовков (title страницы) в случае, если этот заголовок приходит в спец-теге от outlink'а.
Т.е. логично предположить, что они эти заголовки выдают... во всяком случае тогда, когда считают это нужным.

Не в сети

#24 2009-01-11 16:24:27

Oleg
Участник
Зарегистрирован: 2008-10-26
Сообщений: 32
Рейтинг :   

Re: Как натянуть дизайн движка на сторонний скрипт

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

Не в сети

Подвал раздела

Работает на FluxBB