Langly 7 Опубликовано: 6 августа 2009 Рассказать Опубликовано: 6 августа 2009 По материалам IT-Security - Долой PHP в шаблонах Отдельно хочу выразить благодарность Александру Медведеву за найденную ошибку. В частности, я выводил ссылки тегом {banner_name}. На 8 работает. на 8.2 - нет. Вероятно скрипт расценивает эту вставку как один из своих баннеров и неправильно обрабатывает. Сделал специально в выносном файле, мне так удобнее. 1.Создаем файл: splinks.php В него вставляем: <?php if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'хххххххххххххххххххххххххххххххххх'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); $splink01 = ''; $splink01.= $sape->return_links(1); $splink02 = ''; $splink02.= $sape->return_links(); ?> И кладем этот файл в корневую папку сайта. 2.Вставляем в шаблон, где должны выводиться ссылки, теги: {splink01} {splink02} 3.Открываем index.php и находим: $tpl->load_template ( 'main.tpl' ); Ниже вставляем: /*******************SAPE********************/ include (ROOT_DIR."/splinks.php"); $tpl->set("{splink01}", $splink01); $tpl->set("{splink02}", $splink02); /*******************SAPE********************/ ВСЁ 1 Цитата Ссылка на сообщение Поделиться на других сайтах
okras 0 Опубликовано: 16 августа 2009 Рассказать Опубликовано: 16 августа 2009 Этот метод не сработал :-( Методом перебора и экспериментов получилось запустить и сапу и линкфид. ниже даю кусок кода index.php может кому пригодится $tpl->set ( '{AJAX}', $ajax ); $tpl->set ( '{headers}', $metatags ); $tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" ); /* код сапе */ define('_SAPE_USER', 'код сапы'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); $tpl->set('{links}', $sape->return_links()); /* конец кода сапе */ /* linkfeed */ define('LINKFEED_USER', 'код линкфида'); require_once($_SERVER['DOCUMENT_ROOT'].'/'.LINKFEED_USER.'/linkfeed.php'); $linkfeed = new LinkfeedClient(); $tpl->set('{linkfeed_links}', $linkfeed->return_links()); /* linkfeed */ $tpl->compile ( 'main' ); $tpl->result['main'] = str_replace ( '{THEME}', $config['http_home_url'] . 'templates/' . $config['skin'], $tpl->result['main'] ); if ($replace_url) $tpl->result['main'] = str_replace ( $replace_url[0]."/", $replace_url[1]."/", $tpl->result['main'] ); if ($replace_url) $tpl->result['main'] = str_replace ( $replace_url[0], $replace_url[1], $tpl->result['main'] ); eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php '); $tpl->global_clear (); $db->close ();[/codebox] Цитата Ссылка на сообщение Поделиться на других сайтах
dlehack 14 Опубликовано: 17 августа 2009 Рассказать Опубликовано: 17 августа 2009 (изменено) ну да оба случая не самым лучшим образом реализованы опять не обошлось без правки кода вот способ подключения sape создайте в корне папку snippets поместите туда два файла следующего содержания файл sape.php <?php global $sape; if (!defined('_SAPE_USER')){ define('_SAPE_USER', '0764265b1af72dfcc7b2a690163f4a2d'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); require_once ("sape/sape.php"); $sape = new SAPE_client($sape_venality_name); ?> файл sapeecho.php <?php global $sape; $n = $n ? $n : null; echo $sape->return_links($n); ?> далее откройте файл main.tpl вашего шаблона и в самом верху добавьте вызов для DLE < DLE8.2 {include snippet="sape.php" param=""} прежде прочтите это http://4dle.ru/hacks/1147157400-podderzhka...nija-v-dle.html для DLE8.2 {include file="snippets/sape.php"} еще не тестировал на этой версии но должен работать без ошибок далее в тех местах где вам надо вывести ссылки добавляем вызов (шаблон main.tpl) для DLE < DLE8.2 {include snippet="sapeecho.php" param="n=2"} - выведет 2 ссылки {include snippet="sapeecho.php" param=""} а так сразу все для DLE8.2 {include file="snippets/sapeecho.php?n=2"} - 2 ссылки {include file="snippets/sapeecho.php"} - все ссылки меняя параметр n можно выводить в разных местах сайта нужное количество ссылок главное чтобы в этом случае последний вызов шел без параметра (написано в руководстве sape) точно также обстоят дела и с setlink Изменено 17 августа 2009 пользователем dlehack Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 17 августа 2009 Рассказать Опубликовано: 17 августа 2009 require_once ("sape/sape.php"); наверное тогда уж require_once ("sape/sapeecho.php"); Или как?) Цитата Ссылка на сообщение Поделиться на других сайтах
dlehack 14 Опубликовано: 17 августа 2009 Рассказать Опубликовано: 17 августа 2009 require_once ("sape/sape.php"); наверное тогда уж require_once ("sape/sapeecho.php"); Или как?) не все верно там еще файл лежит в папке sape но это нюансы выложу на сайте отпишусь Цитата Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 24 августа 2009 Рассказать Опубликовано: 24 августа 2009 Дак решение не найдено , как я понимаю . Сейчас актуально: чтобы блок оформления не выводился, если площадка не куплена . Вот например : /*SAPE*/ define('_SAPE_USER', 'мой хэш'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); $links = $sape->return_links(); if($links!=""){ $gototpl = ' <div class="jc"> <div class="head"><div></div></div> <div class="top_top"> <div class="top_top"> <div class="ss_top"> <div class="ss_con"> <h3>На правах рекламы:</h3> '.$links.' </div> </div> </div></div> <div class="top_top"><div></div></div> </div>'; } /*SAPE*/ $tpl->set("{sape}",$gototpl); $tpl->compile ( 'main' ); Сам его не пробовал но должен работать . Источник . Сделать бы это через API . Может кто-то сможет это реализовать ? Писал пользователям форума sape , решения пока нет . Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 24 августа 2009 Рассказать Опубликовано: 24 августа 2009 soot, потенциально опасный код вы предлагаете. После $sape = new SAPE_client(); надо добавить $gototpl = ''; Цитата Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 24 августа 2009 Рассказать Опубликовано: 24 августа 2009 soot, потенциально опасный код вы предлагаете. После $sape = new SAPE_client(); надо добавить $gototpl = ''; Почему опасный ? Дайте безопасный с подключением API , ни кто не против Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 24 августа 2009 Рассказать Опубликовано: 24 августа 2009 API никакого отношения не имеет к этому коду. Так как его предназначение в другом. Цитата Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 IT-Security, Возможно, я не программист . Дак можно подключить sape не меняя файлов движка или нет ? Чтобы блок тоже прятался если ссылок нет ? Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 Можно конечно Я всегда именно так и делаю 2 Цитата Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 WWW.ZEOS.IN, Очень информативно . Дружище ты когда мне свой шаблон продаж ??? 1 Цитата Ссылка на сообщение Поделиться на других сайтах
dolphin 1 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 Этот метод не сработал :-( Уменя этот метод работает на 8.2 Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 (изменено) Я вставляю Sape так: В index.php сразу после:$tpl->load_template ( 'main.tpl' ); прописываю:include (ROOT_DIR . '/engine/modules/mymod.php'); Далее по адресу: /engine/modules/ создаю файл mymod.php и в него прописываю:<?php //////////////////////////// Вывод блока ссылок ///////////////////////////// // Код Sape if (!defined('_SAPE_USER')) { define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); // // Подключение к шаблону $zeos_sape = $sape->return_links(); if (isset($zeos_sape) and $zeos_sape != "") { $tpl->set ( '[zeos_sape]', "" ); $tpl->set ( '{zeos_sape}', $zeos_sape ); $tpl->set ( '[/zeos_sape]', "" ); } else { $tpl->set_block ( "'\\[zeos_sape\\](.*?)\\[/zeos_sape\\]'si", "" ); } // ///////////////////////////////////////////////////////////////////////////// ?>Вместо xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx прописываем свой ID от Sape Далее в шаблоне main.tpl тегом {zeos_sape} выводим ссылки. Тег [zeos_sape] ставим вначале рекламного блока. Тег [/zeos_sape] ставим в конце рекламного блока. И тогда, если на странице никто не купил ссылку, то блок исчезает и не портит дизайн Изменено 25 августа 2009 пользователем WWW.ZEOS.IN 7 Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 25 августа 2009 Рассказать Опубликовано: 25 августа 2009 (изменено) Почему опасный ? Потому что xss можно провести вашему сайту, если использовать тот код. Дайте безопасный с подключением API , ни кто не против Во-первых, я дал исправление, читайте внимательно тот же пост, а не только заявил, что опасно. Во-вторых, я бы написал тоже самое, что ответил вам IT-Security, но честно говоря уже задолбался это писать и читать. Разберитесь что такое API, а потом уже предлагайте его использовать. Слово API видать всем массово понравилось В-третьих, вы подсмотрели код на форуме сапы, схватили первое, что нашли и помчались.... а там буквально на пару постов ниже показан вариант более удобного подключения для версий дле 8,2 и выше... Скорее всего именно это вы пытались выдать за API. Изменено 25 августа 2009 пользователем Al-x 1 Цитата Ссылка на сообщение Поделиться на других сайтах
soot 5 Опубликовано: 26 августа 2009 Рассказать Опубликовано: 26 августа 2009 В index.php А без редактирования index.php ни как ? Я не сильно разбираюсь , не хотелось бы отходить от оригинальных файлов . Разберитесь что такое API, а потом уже предлагайте его использовать. Слово API видать всем массово понравилось Ни че слово , я его услышал у одного разработчика , который делает модули - я и думал что это новый способ подключения . Посоветуйте ресурс про php . В-третьих, вы подсмотрели код на форуме сапы, схватили первое, что нашли и помчались.... а там буквально на пару постов ниже показан вариант более удобного подключения для версий дле 8,2 и выше... Скорее всего именно это вы пытались выдать за API. Я изучал всю тему , старенький способ подключения подходит на все версии , а вот новая возможность подключения через {include file="engine/modules/mymod.php"} . Но если ни как без изменений , то какой тогда толк от этого расширения в DLE ? Что им можно сделать , если простенькую сапу не подключить - зачем она нужна ? Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 26 августа 2009 Рассказать Опубликовано: 26 августа 2009 Вставляю Сапу, как написано в панели ВМ и не парюсь. Способов полно, для DLE, установка зависит от "кривизны рук". Цитата Ссылка на сообщение Поделиться на других сайтах
golian 0 Опубликовано: 24 октября 2009 Рассказать Опубликовано: 24 октября 2009 Мне не помогло ничего Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 24 октября 2009 Рассказать Опубликовано: 24 октября 2009 golian, http://forum.dle-news.ru/index.php?showtopic=47185&view=findpost&p=222351 Если не выйдет, пишите мне в ICQ, возможно Вы где-то допускаете ошибку 2 Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 26 октября 2009 Рассказать Опубликовано: 26 октября 2009 (изменено) Я так сейчас ставлю (v.8.2, работало и на более ранних версиях). 1. Подключаю php Использование любых PHP вставок в шаблонах 2. Далее в самый верх main.tpl<?php if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'название папки вашей сапы'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['host'] = 'www.имя сайта (или без www).ru'; $sape = new SAPE_client($o); unset($o); ?> 3. Вывод ссылок<? echo $sape->return_links(1); ?> Пункты 2 и 3 ставлю через рекламные материалы блоками, (1) кол-во ссылок в блоке. Изменено 26 октября 2009 пользователем Captain 1 Цитата Ссылка на сообщение Поделиться на других сайтах
polly 0 Опубликовано: 16 ноября 2009 Рассказать Опубликовано: 16 ноября 2009 (изменено) ZEOS спасибо, только в коде форум искажает переводы строк В этом случае скрипт работать не будет. вставляете в индекс.пхп этот код или как Зеос, прописываете этот код в mymod.php,если хотите 2 ссылки. Если хотите продавать больше ссылок со страницы то копируете и соответственно заменяете sap1 на sap2 и тд. Но не советую, оптимизаторы любят минимум ссылок, поэтому по 2 будет в самый раз. if (!defined('_SAPE_USER')) {define('_SAPE_USER', 'ваш код');} require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['host'] = 'http://ваш сайт'; $sape = new SAPE_client(); $sap1 = $sape->return_links(1); if (isset($sap1) and $sap1 != "") { $tpl->set ( '[sap1]', "" ); $tpl->set ( '{sap1}', $sap1 ); $tpl->set ( '[/sap1]', "" ); } else { $tpl->set_block ( "'\\[sap1\\](.*?)\\[/sap1\\]'si", "" ); } $sap = $sape->return_links(); if (isset($sap) and $sap != "") { $tpl->set ( '[sap]', "" ); $tpl->set ( '{sap}', $sap ); $tpl->set ( '[/sap]', "" ); } else { $tpl->set_block ( "'\\[sap\\](.*?)\\[/sap\\]'si", "" ); } А все остальное - как написал ZEOS и у Вас будет красивый дизайн сайта ЗЫ Да, и не забывайте закрыть все внешние ссылки с сайта, в том числе и счетчики тегами noindex и nofollow, вот здесь можно проверить на количество внешних - http://seonuf.com/ Кто хочет грамотно оптимизировать сайт для продажи ссылок или просто оптимизировать для повышения выдачи в яндексе, обращайтесь, помогу бесплатно. Изменено 16 ноября 2009 пользователем polly Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 17 ноября 2009 Рассказать Опубликовано: 17 ноября 2009 вот здесь можно проверить на количество внешних - http://seonuf.com/Тут ты проверить сможешь только 1 страницу сайта, толку 0 Мне надо вот что: http://forum.dle-news.ru/index.php?showtopic=48469 Нашел прогу, но она стоит 600$ жесть Цитата Ссылка на сообщение Поделиться на других сайтах
vancer 2 Опубликовано: 18 ноября 2009 Рассказать Опубликовано: 18 ноября 2009 (изменено) Я вставляю код следующим способом... В index.php находим строчку: $tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" ); Сразу после неё вставляю: //*****************************sape****************************\\ define('_SAPE_USER', 'секретный код'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['host'] = 'http://здесь адресс сайта с www или без'; $sape = new SAPE_client($o); $tpl->set('{sape}', $sape->return_links(предполагаемое кол-во ссылок для вывода)); //*****************************sape****************************\\ В файле main.tpl шаблона прописываю в месте, где надо выводить ссылки: {sape} Мне нужно реализовать замысел ZEOS, а именно чтоб убирался блок если ссылки на нём не куплены. И что-то криво у меня получется это)))) При реализации варианта ZEOS ссылки выводятся, но на страницах, где они не куплены виден код вывода: [zeos_sape]{zeos_sape}[/zeos_sape] polly, твой вариант попробую вечером. Кто хочет грамотно оптимизировать сайт для продажи ссылок или просто оптимизировать для повышения выдачи в яндексе, обращайтесь, помогу бесплатно. Вообще, было бы не лишним создать отдельную тему по оптимизации сайтов на DLE для ПС ... А куда обращаться за помощью, в личку? Изменено 18 ноября 2009 пользователем vancer Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 18 ноября 2009 Рассказать Опубликовано: 18 ноября 2009 Мне нужно реализовать замысел ZEOS, а именно чтоб убирался блок если ссылки на нём не куплены. И что-то криво у меня получется это)))) При реализации варианта ZEOS ссылки выводятся, но на страницах, где они не куплены виден код вывода: [zeos_sape]{zeos_sape}[/zeos_sape]Значит не правильно ты что-то сделал. Всё работает ок Пиши в аську помогу Цитата Ссылка на сообщение Поделиться на других сайтах
polly 0 Опубликовано: 19 ноября 2009 Рассказать Опубликовано: 19 ноября 2009 Вообще, было бы не лишним создать отдельную тему по оптимизации сайтов на DLE для ПС ... А куда обращаться за помощью, в личку? vancer Обращайся через лс, обсудим твой сайт в аське Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.