Код sape и Coppermine 1.5.x Код sape и Coppermine 1.5.x
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Код sape и Coppermine 1.5.x

Started by Driver1967, April 05, 2010, 12:46:09 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Driver1967

Помогите пожалуйста разобраться.
В CPG 1.4.x, все работало отлично. Код ставил так: _http://forum.sape.ru/showthread.php?t=3187&highlight=coppermine
А вверсии CPG 1.5.3 этот метод не таботает. Все ссылки выпали в EROR. Ошибки такие:
страница запрещена в METAх - я ничего не запрещал.
страница запрещена robots.txt - в robots все открыто.
ссылка не найдена на странице или размещена вне тегов «body» или «html» - этого я то же не делал.
На форуме sape ответа нет, тут то же ничего.
Посоветуйте, как избавиться от такой напасти?

Makc666

Driver1967, Вы извините нас, пожалуйста, но по ссылке, что Вы привели, аж 5 страниц обсуждений. И т.к. Вы вопрос в том форуме уже задали и он как бы посвящен именно той системе, то я очень надеюсь, что Вам помогут там. Мы вряд ли Вам поможем.

Если Вы найдёте решение, то мы будем ради, если Вы о нём тут напишите.

Driver1967

Makc666, знаете, если бы я был программистом - не спрашивал бы совета. Но так как я человек любопытный, мне хочется понять, почему на 1.4 работает код sape, а на 1,5 нет. Могу привести выдержку из текста ветки на том форуме. Если Вам не трудно взглянуть конечно...

Makc666

Quote from: Driver1967 on April 05, 2010, 10:27:05 PM
Makc666, знаете, если бы я был программистом - не спрашивал бы совета. Но так как я человек любопытный, мне хочется понять, почему на 1.4 работает код sape, а на 1,5 нет. Могу привести выдержку из текста ветки на том форуме. Если Вам не трудно взглянуть конечно...

Я Вам постараюсь помочь, если Вы подробно шаг за шагом опишите, что Вы изменили в CPG 1.5.3

Т.е. расписываете по шагам прям.
1. Открыл файл полный_путь/такой-то.php
2. Нашел строку такую-то.
3. Добавил код такой.то
4. Открыл файл полный_путь/такой-то.php
5. Нашел такой код.
6. Изменил на такой.

Driver1967

Здравствуйте, спасибо, что согласились помоч.
Я делал так:
У меня по умолчанию стоит тема Curve,
В template.html вставил в районе 55 строки, сразу после {GALLERY} метку {SAPE}

В include/functions.inc.php в районе 751 строки, а именно сразу после кода:

$gallery_pos = strpos($template, '{THEME_SELECT_LIST}');
$template = str_replace('{THEME_SELECT_LIST}', themeSelect('list') ,$template);

вставил Код:

$gallery_pos = strpos($template, '{SAPE}');
$template = str_replace('{SAPE}', sape_block() ,$template);

Далее, В этот же файл добавил функцию sape_block(), в самом начале,

после 30 строки вида: // TODO: add in INNER JOIN {$CONFIG['TABLE_CATEGORIES']} ON cid = category
                      // only add when we are at the top level, cat == 0

Вставил код Код:

function sape_block()
{
   define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxx');
   require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
   $o['force_show_code'] = true;
   $o['charset'] = 'UTF-8';
   $sape = new SAPE_client($o);
   unset($o);
   return $sape->return_links();
}

Когда ссылки начнут нормально отображаться, строчку
Код:

$o['force_show_code'] = true;можно будет удалить.

И так все работало с CPG 1.4, но почему то не хочет работать с 1.5
Все, что видно на самом сайте, это метка {SAPE} и больше ничего.
Сама Sape ругается и выдает ошибки, о которых я писал в первом посте.
Вот такая беда.

smira

Поставь код        $gallery_pos = strpos($template, '{SAPE}');
        $template = str_replace('{SAPE}', sape_block() ,$template);
перед $gallery_pos = strpos($template, '{GALLERY}');

Driver1967

К сожалению, выдает ошибку:
QuoteFatal error: require_once() [function.require]: Failed opening required '/632180c6291f3c42ec1655377b1ea390/sape.php' (include_path='.:/usr/local/share/pear') in /home/v380/domains/v380.ru/public_html/gallery/include/functions.inc.php on line 34

smira

Замени строку
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
на:
require_once('/полный путь/до/папки/'._SAPE_USER.'/sape.php');

smira

Тоесть в твоём случаеrequire_once('/home/v380/domains/v380.ru/public_html/gallery/'._SAPE_USER.'/sape.php');

Driver1967

Заменил - ничего... :( Да, скоро мозг вскипит уже... нужно было на программиста учиться, а не на электрика. :(

smira


Driver1967

В смысле, что ничего не изменилось. Как была метка {sape} на местесте, так она и есть. Ссылок не видно.
Мне тут одна мысль пришла в больную голову, не судите строго электрика, может попробовать вставить PHP сапы:
Quote<?php
     if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'хххххххххххххххх');
     }
     require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
     $sape = new SAPE_client();
     echo $sape->return_links();
?>
в тело самого шаблона template.html? В то место где должны выводиться ссылки? Или это невозможно?

smira

Так работать не будет.
Помести код:function sape_block()
{
define('_SAPE_USER', 'хххххххххххххххххххххх');
require_once('/home/v380/domains/v380.ru/public_html/gallery/'._SAPE_USER.'/sape.php');
$o['force_show_code'] = true;
$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);
return $sape->return_links();
}
в конец functions.inc.php

Driver1967

К сожалению, и в конец вставлял, и в начало - нет ссылок. Не работает почему то вывод.

Makc666

Quote from: Driver1967 on April 07, 2010, 06:31:34 PM
К сожалению, и в конец вставлял, и в начало - нет ссылок. Не работает почему то вывод.

Значит так.

Вывод работает.

1.
Открыл файл ./themes/curve/template.html

2.
После строки:
{GALLERY}

добавил строку:
{SAPE}

3.
Открыл файл ./include/functions.inc.php

После строк:
// TODO: add in INNER JOIN {$CONFIG['TABLE_CATEGORIES']} ON cid = category
// only add when we are at the top level, cat == 0


Добавил строки:
   function sape_block() {
       $test = "123456";
       return $test;
   }


4.
После строк:
   $gallery_pos = strpos($template, '{THEME_SELECT_LIST}');

   if ($gallery_pos) {
       $template    = str_replace('{THEME_SELECT_LIST}', themeSelect('list'), $template);
   }


Добавил строки:

   $gallery_pos = strpos($template, '{SAPE}');

   if ($gallery_pos) {
       $template = str_replace('{SAPE}', sape_block() ,$template);
   }


5.
Открыл главную страницу сайт.
В самом низу 123456 отображается.

Таким образом замена отлично работает.

Не работает ваша функция.

Создайте в корне галереи test.php файл вида:

<?php

function sape_block()
{
   
define('_SAPE_USER''xxxxxxxxxxxxxxxxxx');
   require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
   
$o['force_show_code'] = true;
   
$o['charset'] = 'UTF-8';
   
$sape = new SAPE_client($o);
   unset(
$o);
   return 
$sape->return_links();
}

print 
sape_block();

?>


И добейтесь, чтобы он Вам выводил информацию нужную.

А потом уже галерею редактируйте.

Driver1967

Спасибо огромное за терпение - все доходчиво и понятно. Сделал как написано, действительно, тест 123456 работает. Осталось все это дело запустить. Сам я этого сделать не смогу,но надеюсь ребята из sape помогут. Если получится, обязательно опишу, что и как, что бы другие не мучились.

Makc666

Quote from: Driver1967 on April 08, 2010, 03:22:11 AM
Спасибо огромное за терпение - все доходчиво и понятно. Сделал как написано, действительно, тест 123456 работает. Осталось все это дело запустить. Сам я этого сделать не смогу,но надеюсь ребята из sape помогут. Если получится, обязательно опишу, что и как, что бы другие не мучились.

Пожалуйста. Если не забудете потом рассказать, как решили проблему, скажем спасибо.

Driver1967

Свершилось! Заработало!
Спасибо ребятам с форума Sape, а именно alex063.
Как и обещал - постараюсь описать, что нужно делать в случае только для CPG 1.5.х.
1. Открыл файл ./themes/curve/template.html
и добавить строку {SAPE} в то место, в котором должны появляться ссылки, у меня это в самом низу, после {GALLERY}
2. Открыть файл ./include/functions.inc.php
после стрк:
$gallery_pos = strpos($template, '{THEME_SELECT_LIST}');

    if ($gallery_pos) {
        $template    = str_replace('{THEME_SELECT_LIST}', themeSelect('list'), $template);
    }

добавить:
$gallery_pos = strpos($template, '{SAPE}');

    if ($gallery_pos) {
        $template = str_replace('{SAPE}', sape_block() ,$template);
    }

Далее, в самом конце этого же файла, перед закрывающим тегом PHP добавить сам блок вида:
function sape_block()
{
   define('_SAPE_USER', 'хххххххххххххххххххххххх');
   require_once('/home/ххххх/domains/ваш_домен.ru/public_html/'._SAPE_USER.'/sape.php');
   $o['request_uri'] = getenv('REQUEST_URI');
   $o['force_show_code'] = true;
   $o['charset'] = 'UTF-8';
   $sape = new SAPE_client($o);
   unset($o);
   return $sape->return_links();

   
}

где: хххххххххххххххххххххххххх - номер Вашей хеш-папки sape, /home/ххххх/domains/домен/public_html/ - полный путь до папки с sape.php, иначе работать не будет.
Изменения в коде самой sape затронули только эти 2 строки:

require_once('/home/ххххх/domains/домен/public_html/'._SAPE_USER.'/sape.php');
   $o['request_uri'] = getenv('REQUEST_URI');

Все, у меня работает на ура... :)
Надеюсь, что кому то это пригодится. :)

Makc666

Quote from: Driver1967 on April 08, 2010, 05:39:14 PM
Все, у меня работает на ура... :)
Надеюсь, что кому то это пригодится. :)

Спасибо, что написали :)

Valeryn

А у меня код встал, но вот кодировка самих ссылок почему то в cp1251 отражаются, тоесть сплошные вопросики пишет.
Есть совет?