Интеграция Linkexchanger в E107 CMS

Тема в разделе "Коммерческие", создана пользователем AidarJan, 6 фев 2008.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. AidarJan

    AidarJan Писатель

    Регистр.:
    1 июн 2007
    Сообщения:
    6
    Симпатии:
    0
    Тема посвящена вопросу: "Как вписать в дизайн e107 CMS скрипт каталога Linkexchanger?"

    В особенности адресовано тем, кто использовал сам скрипт каталога Linkexchanger и/или e107.

    Использовал скрипт каталога ссылок Linkexchanger 2.0 на сайте с e107 CMS 0.7.10. (Версия e107 не существенна.)

    Пытался интегрировать в дизайн сайта следующим способом.
    В самом начале файла скрипта header.inc после "<?php" вставил код:
    Код:
    require_once('../class2.php');
    require_once(HEADERF);
    
    В конце файла скрипта footer.inc вставил код:
    Код:
    <?php
    require_once(FOOTERF);
    ?>
    
    Результат: каталог полностью не работает, не идет обработка, как я понимаю, вывода формы поиска и категорий.

    Как выяснилось, существует несколько вариантов интеграции:

    1) Для e107 существует плагин, который позволяет поместить любую страницу (сайт) во фрейм и встроить в дизайн сайта. Результатом будет работоспособный скрипт во фрейме, встроенный в дизайн e107. Самый простой способ интеграции. Однако бесполезный, потому как страница созданная таким образом не будет индексироваться ПС.

    2) добавление куска кода e107 в код скрипта.
    Вообще принцип интеграции в дизайн e107:
    Код:
    <?php
    require_once("class2.php"); /*основной файл переменных и пр. e107*/
    require_once(HEADERF); /*Верхняя и левая части e107*/
    
    $caption = "Заголовок страницы"; /*Например, «Каталог»*/
    $text = "
    
    Код HTML файла, который между <body> </body>
    
    ";
    
    $caption = $tp->toHtml($caption); /*Я так понимаю это перевод текстовой переменной названия окна в html формат*/
    $text = $tp->toHtml($text); /*А это перевод текстовой переменной содержания окна в html формат*/
    $ns -> tablerender($caption, $text); /*Сам вывод содержимого в окне с названием*/
    
    require_once(FOOTERF); /*Нижняя и правая части e107*/
    
    ?>
    Здесь все усложняется тем, что код скрипта Linkexchanger имеет как php так и html участки кода.

    Попытка интеграции при помощи изменений в файлы header.inc и footer.inc не принесла результаты. Как указано выше,
    Отказался от этого варианта.

    В скрипте два основных файла, с которыми взаимодействует пользователь, и которые важны для интеграции, это:

    index.php – титульная страница скрипта
    submit.php – страница добавления ссылок

    Я сделал следующее:

    В самом начале данных файлов после открытия php"<?php" до собственно кода скрипта вставил код:
    Код:
    require_once('../class2.php');
    require_once(HEADERF);
    В конце файлов до закрытия php "?>" после кода скрипта вставил код:
    Код:
    require_once(FOOTERF);
    Результат: каталог работает, выводятся категории, отображаются последние добавленные ссылки, осуществляется поиск, выводится содержимое категорий, добавляются новые ссылки и т.д.

    Есть недостатки:
    1) интеграция в дизайн сайта – псевдо интеграция. Несмотря на то, что шапка, подвал, левые и правые блоки e107 выводятся, не происходит полной интеграции.
    По общему правилу, центральное содержимое e107 выводится в «таблице». Разницу можно увидеть, например, сравнив ссылки http://e107.aidar.net/dir/ и http://e107.aidar.net/submitnews.php.

    Почему при такой интеграции не происходит вывод содержимого в таблице?
    Ответ простой, я не использовал весь необходимый код для создания полноценной e107 страницы.
    Дело в том, что вывод содержимого страницы в таблицу осуществляется следующим образом:
    Код:
    $ns -> tablerender($caption, $text);
    Где:
    $caption – заголовок страницы
    $text – содержимое страницы

    В коде скрипта Linkexchanger для вывода содержимого используется команда “echo”, которая выводит сразу заданную строку, переменную и т.д.
    По логике, необходимо выводимые скриптом через echo данные собирать в переменную $text, и только потом выводить в таблицу, т.е. в полноценную страницу e107.
    С последним у меня проблемы. Я не являюсь программистом php и мало что в нем понимаю.

    Баги:
    1) после добавления ссылки (при установке «на модерацию») footerf не выводится, причина – происходит прекращение работы скрипта преждевременно;
    2) после добавления ссылки (при установке «добавить сразу») footerf не выводится, причина – та же;
    3) сбиваются стили e107, потому что применяются в последствии стили linkexchanger;
    4) форма ввода текста поиска отклоняется от заданных размеров.

    Что можно сделать, посоветовать, рекомендовать…
    Совместными усилиями все-таки можно добиться результата…

    Специально для целей интеграции, сайт с установленной версией e107 и linkexchanger:
    http://e107.aidar.net/
    (исключительно для демонстрации и тестирования)
     
Статус темы:
Закрыта.