[РЕШЕНО] Sape модуль для Drupal 6

16 апреля 2009 в 16:00

Перешел на 6, и встал вопрос о модуле для Сапы. ТАк как тут не нашел, то решил выложить здесь, мало-ли кому пригодиться.

Немного исправил модуль для мультисайтинга, согласно некоторым подсказкам с форума Sape.

Изменил $sape = new SAPE_client(); в итоге стало:
$o['fetch_remote_type'] = 'socket'; (или curl)
$sape = new SAPE_client($o);
$o['multi_site'] = true;
unset($o);

Модуль теперь работает в мультисайтинге. А кроме того, исчезает ошибка links.db (которая постоянно сбрасывалась к 240b).

Прикрепил также файлик блока для вашей темы, чтобы убрать упоминание Сапы со страницы.

Внимание!

Прежде чем устанавливать модуль, удалите любое упоминание sape из своей БД. Если не удалите, то будете получать ошибку типа «PHP Fatal error: Call to a member function return_links() on a»

И к тому же, НЕ НАДО качать тот архив, который предлагает вам Сапа, и тем более не надо устанавливать права 777.

Просто качаем модуль и кладем его в sites/all/modules/. В итоге получаем sites/all/modules/sape/sape.php

Далее в настройках указываем нужное количество блоков, в блоках количество ссылок и прочие.

ВложениеРазмер
Иконка пакета sape 6x-2.0.zip8.12 КБ
Иконка пакета block-sape.tpl_.zip282 байта

Комментарии

Вы не правы - здесь модуль тоже есть: поиск по слову модуль Sape вам поможет

Хотя возможно, я не права - если у вас другой модуль.

16 апреля 2009 в 19:13
Аватар пользователя B.X B.X 0

Дело в том, что Друпал 6 выгодно отличается от 5-го тем, что если ничего не выводится, то и блок не появляется, поэтому модуль для 6-й версии практически не нужен... но, конечно, только тем, кто понимает, что и как и куда вставлять...

16 апреля 2009 в 19:24

D 6.10 после установки модуля и активации блока появляется белый экран. "Внутренняя ошибка сервера"
В чём может быть причина и как проблему решить?

21 апреля 2009 в 6:18

Said wrote:
D 6.10 после установки модуля и активации блока появляется белый экран. "Внутренняя ошибка сервера"
В чём может быть причина и как проблему решить?

Странно, у меня на 6.10 встало без проблем

22 апреля 2009 в 12:02

одинаковые проблемы что с модулем предложенным вами и itartweb
http://www.drupal.ru/comment/reply/20955/131992 (ссылка на его модуль)

В его модуле выдаёт ошибку

PHP Fatal error: Call to a member function return_links() on a
non-object

..../modules/sape/sape.module on line 140

22 апреля 2009 в 16:28

Господа, все установил, все прошло успешно, код валидный, ошибок нет. Но вот в чем проблема - распознает только главную страницу и все, хотя на сайте страниц около 300. В чем может быть проблема???

1 июня 2009 в 21:03

«В его модуле выдаёт ошибку

PHP Fatal error: Call to a member function return_links() on a
non-object

..../modules/sape/sape.module on line 140»

Похоже не может найти sape.php, как вариант, удаляем эту строчку временно в файле sape.module (140вую), включаем модуль, и настраиваем свой путь к sape.php далее ставим строчку на место, и все работает

25 июля 2009 в 20:06

FeliXXX, куширование блоков лучше отключить через модуль blockcache_alter,
либо как вариант у вас в яндексе страниц только одна проиндексирована

25 июля 2009 в 20:17

"Макс74" wrote:
«В его модуле выдаёт ошибку

PHP Fatal error: Call to a member function return_links() on a
non-object

..../modules/sape/sape.module on line 140»

Если проблема возникла при переезде или при обновлении версий (с 5ки на 6ку), то нужно перепроверить папку, которая прописана в настройках модуля - где он находится?

У меня было, когда при переносе, сайт стал главным в мультисайтинге - изменились папки sites/all/modules на sites/site/modules - из-за этого ошибка и белый экран.

Кстати, если в базе отключить модули или изменить тему для Админки, то можно получить доступ к настройкам и все поправить Smile

27 июля 2009 в 11:16

Изменил $sape = new SAPE_client();
на:
$o['fetch_remote_type'] = 'socket';
$sape = new SAPE_client($o);
$o['multi_site'] = true;
unset($o);

Модуль теперь работает в мультисайтинге. А кроме того, исчезает ошибка links.db (которая постоянно сбрасывалась к 240b).

26 сентября 2009 в 5:06

А я вот что-то запутался для чего этот модуль.
На сапе.ру требуют скопировать папку с кодом в корень сайта. Там есть сапе.пхп
Ну и далее вставлять код туда, сюда Smile

В этом модуле тоже присутствует сапе.пхп
И в настройках модуля первом делом бросается путь к файлу в модуле.

Вопрос по установке модуля:

Закачал, заинсталил, в настройках вписал код и включил сапу.

А что делать с папкой-кодом, которую сапа рекомендует? Они друг с другом конфликтовать небудут?

И далее нужно вписывать код в блоки и page.tpl, как указано на сапе.ру?

Тогда зачем модуль?

Разжуйте пожалуйста.

3 октября 2009 в 22:58

Skirr, та папка, которую рекомендует сапа - вообще не нужна. Ни блоках ни в странице ничего прописывать не надо. За вас это делает модуль.
Устанавливаете модуль в /sites/all/modules/, включаете, появляется пункт Сапы в админке.
Там вводите свой уникальный код. У вас должно появится несколько блоков, которые вы размещаете где хотите.
Всё.

4 октября 2009 в 11:00

Да, в таком случае замечательный модуль. Жаль нет опции для субдоменов. Что бы можно было их считать как часть домена, или как сейчас отдельным сайтом. А то у сапы очень сложный подход к ним Smile

6 октября 2009 в 15:24

Модуль отлично работает с субдоменами и с алиасами Smile
Поддомен (домен 3-го уровня) допускается в систему в случае наличия в Яндекс-Каталоге, или отсутствия основного (домена 2-го уровня) в системе. Более одного поддомена домена второго уровня допускается только при наличии вновь добавляемых поддоменов в Яндекс-Каталоге.

7 октября 2009 в 1:22

Да, об этом я и говорю. Вот у меня к примеру основной контент на субдоменах (3й уровень), когда сам домен собирает с них контент. Но сайт молодой, и посещений на каждом не более 100 в сутки. Это конечно ничтожно мало в том числе и для каталога-яндекса который требует 300 на каждый.

Так вот, при подключение модуля, у меня все субдомены автоматом получают свои links.db (и кстати даже получили те субдомены, которых уже год как нет в природе, но это уже не столь важно).

При таком подходе, содержимое на субдоменах появится в системе только после попадания в яндекс-каталог (а это минимум 3 месяца).

А вот если бы была возможность отключить мультисайтовость в модуле, то содержимое всех субдоменов по идеи относилось бы к главному домену и учитывалось бы сапой.

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

Вот о чём я Smile

7 октября 2009 в 12:50

Здравствуйте, подскажите, пожалуйста, а можно ли реализовать без модуля наподобие вот такого:

<?php
if (!defined('_SAPE_USER')){
define('_SAPE_USER', 'бла-бла');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');

$sape = new SAPE_client();
iconv_set_encoding("output_encoding", "UTF-8");
print iconv("WINDOWS-1251","UTF-8", $sape->return_links(1));

?>

Но, как я понял, этот вариант только для того, чтобы ссылки отображались все вместе в одном блоке? При копировании этого кода и манипуляциями с ним ничего путного не выходит - появляется несколько блоков с одинаковыми ссылками.

А как сделать в такой ситуации: есть, например 6 ссылок на странице проданных мной, нужно 3 ссылки разместить в блоке в левой колонке наверху, оставшиеся 3 в правой колонке внизу. Объясните, пожалуйста. Напишите только как для чайника: какие коды куда вставлять плиз.

31 октября 2009 в 22:18

Далее по модулю вопрос:
установил, но чтобы он заработал приходится файл links.db переименовывать в мойсайт.com.links.db ну это не проблема.

Подскажите, пожалуйста, всё работает, только 2 проблемки:

1)вместо русских букв символы в виде вопросов - как можно исправить?

2) при добавлении block-sape.tpl в папку темы название блока не исчезает.

31 октября 2009 в 22:24

"kadut" wrote:

Вариантов вставки кода множество, и они тут описаны везде. Я предлагаю свой вариант и не факт, что он лучший.

Что касается ваших вопросов:
1. Посмотрите кодировку
2. Убрать название блока можно вставкой none. А тот патч что прилагается, влияет на другой параметр )

17 ноября 2009 в 18:41

makartsoft - спасибо за модуль.

Первый раз устанавливал Sape на сайт и сразу был облом - зациклился на сообщении типа "Укажите страницу, где заведомо находится код..." Чего только ни делал... и писал код в блок и ставил по очереди 2 разных модуля. Потом плюнул и попробовал снова через пару дней этот модуль.

Все заработало, вот только настраивал модуль не как здесь написано, а:
1) создал папку код_сапы_хххххххххххххххххх в корневой директории и дал ей права 777
2) в настройках модуля "sape 6x-2.0" указал путь хххххххххххххххххх/sape.php

хз, но работает, может кому пригодится

P.S. А я так понял, для этого модуля не нужен доп-модуль, который будет отключать кэш блока?

24 ноября 2009 в 19:57

Настроил все правильно и права дал 777 , а Drupal выводит ошибку
«Fatal error: Call to a member function return_links() on a non-object in /var/customers/webs/ivan/xtheme/www/sites/all/modules/sape 6x-2.0/sape.module on line 95»

Что делать, подскажите.
Если все получаеться то Sape говорит «Укажите полный УРЛ любой страницы сайта, на которой заведомо установлен код!»

Что делать и не знаю, 3 месяца занимался Wordpress`ом и про Drupal и его настройку позабыл. Помогите пожалуйста

16 декабря 2009 в 23:40

На Форуме Сапе говорили , что это виновато ядро 6.14 , и если откатиться на старое ядро , то все будет норма.
В чем может быть проблема?

19 декабря 2009 в 18:10

"skorpio" wrote:
виновато ядро 6.14

Если думаете что ядро, то ставьте 6.15 )

Попробуйте так. 1. Удалите модуль. 2. Откройте БД свою с помощью phpMyAdmin. 3. С помощью поиска найдите слова Sape и удалите их.

В большинстве случаев после этой процедуры пропадает эта ошибка:

"skorpio" wrote:
Fatal error: Call to a member function return_links()

20 декабря 2009 в 11:21

«На Ваших сайтах в системе sape.ru до сих пор установлен код вывода ссылок самой старой версии. Мы рекомендуем Вам скачать из Вашего аккаунта обновленную версию. Как переустановить код Вы можете почитать в справке - http://help.sape.ru/sape/faq/1080»

Неподскажете что в модуле нужно изменить?

29 января 2010 в 6:41

Да ошибки нет, просто Sape рекомендует :

«Обновление клиентского кода PHP

Для обновления клиентского код необходимо:

1) Скачать клиентский код расположенный по адресу http://www.sape.ru/get_user_files.php

2) Закачать обновленный sape.php в папку со старым клиентским кодом

3) Удалить старые links.db, words.db»

29 января 2010 в 16:50

Всё, я разобрался, как установить просто и быстро без всяких редактирований файлов или использования модуля. Всё делается сразу в блоках в админке друпала, подробная инструкция: http://www.drupal.ru/node/41350

9 марта 2010 в 5:19

"makartsoft" wrote:
Прежде чем устанавливать модуль, удалите любое упоминание sape из своей БД. Если не удалите, то будете получать ошибку типа «PHP Fatal error: Call to a member function return_links() on a»

Я пофигачил удалил включения «sape» в таблице {variables} и ошибочка исчезла. Видать старые переменные мешались.

25 мая 2010 в 1:03

Странно, почему же у меня контекстная реклама вместо обычных ссылок получилась? Вот, млин, тяжело ничего не знать)))

17 августа 2010 в 16:33

Поставил модуль "sape 6x-2.0", обычные ссылки работаю отлично, а контексные ссылки...
Такая вот проблема:
На обычных постах или страницах таксономии контексные ссылки продаються нормально, а на страницах сайта типа
http://мойсайт.ру/node?page=1
http://мойсайт.ру/node?page=2
http://мойсайт.ру/node?page=3
и так дальше, не отображаються...
В чем может быть проблема? я уже всю тему перерыл... пробывал брать в теги , безрезультатно...
может ктот встречался с такой проблемо?

24 сентября 2010 в 16:06