halfhope

OpenCart + phpbb, контекст, одинаковые классы, пространство имен

Рекомендуемые сообщения

halfhope    157

Всем доброго времени суток.

 

Прошу о помощи. Решил сделать набор модулей для интеграции phpbb в OpenCart . Началось все с того, что возникла необходимость объединить регистрацию/авторизацию на PHPBB и OpenCart, но как оказалось простого добавления записей В БД было мало, загорелся и захотел написать еще пару модулей для интеграции phpbb в OpenCart (не наоборот). 

 

Вот тут-то и возникла первая проблема. Я, конечно, могу выполнять запросы напрямую к БД и выдергивать нужные данные, но это не то. Нужно, чтобы скрипт имел доступ ко всем классам и выполнялся в контексте движка, дабы использовать все возможности phpbb.

 

Тут видел 2 варианта - создать дубликаты незаменимых классов phpbb и использовать их в OpenCart, либо запустить phpbb в контексте OpenCart и получать данные напрямую у phpbb. Первый вариант отпал сразу как я увидел внутренности в phpbb, мне бы пришлось создавать дубликаты классов почти всего движка. С вторым вариантом мне помогли (спасибо rxu):

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'd:/php/home/phpbb.im/forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_url_matcher.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
var_dump($user); //проверено, работает, выводит то что нужно

Этот код (аналог index.php в OpenCart) инициализирует phpbb и все классы, которые понадобятся для его полноценной работы -> для получения данных из классов phpbb. Т.е. после инициализации в контроллере модуля можно было бы в написать:

$this->data['username'] = $user->data['username'];

Но проблема в том, что инициализация phpbb выполняется в контексте (в контроллере) OpenCart и как следствие - ошибки из-за одинаковых названий классов - request, cache и т.д. в этот список входят все основные классы OpenCart.

 

Нашел статью по пространствам имен в PHP, но там:

 

В PHP нельзя импортировать сразу несколько классов из-за особенности работы языка. Если Java может легко узнать какие классы находятся в пакете (namespace), то PHP так не может, там все динамически и заранее какие классы находятся в namespace'e узнать невозможно. Да и namespace в PHP это как макросы, все названия классов раскрываются на этапе трансляции в байткод, а не во время выполнения.

 

Что можно сделать в такой ситуации? Можно, конечно, написать свой мод для phpbb и запилить JSON API, но это не вариант. 

Изменено пользователем halfhope

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
markimax    1 478

В PHP когда классы одинаковые (имена классов) ничего не сделаешь

Можно сушить весла или клепать костыли

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    157

В PHP когда классы одинаковые (имена классов) ничего не сделаешь

Можно сушить весла или клепать костыли

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    396

Прошу о помощи. Решил сделать набор модулей для интеграции phpbb в OpenCart. Началось все с того, что возникла необходимость объединить регистрацию/авторизацию на PHPBB и OpenCart, но как оказалось простого добавления записей В БД было мало

Вообще-то у PhpBB предусмотрена возможность отдавать аутентификацию на сторону, другому приложению (в нашем случае Opencart-у) https://wiki.phpbb.com/Authentication_plugins

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    157

Вообще-то у PhpBB предусмотрена возможность отдавать аутентификацию на сторону, другому приложению (в нашем случае Opencart-у) https://wiki.phpbb.com/Authentication_plugins

 

Это понятно, с авторизацией разобрался вдоль и поперек. Мне нужна эмуляция прав phpbb, пользователей, сессий и т.д., чтобы получать список постов и т.д. это можно сделать только получив доступ к классам phpbb, что я и пытался сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От Rojzman
      Дорогие обитатели форума!
      Возникла такая проблема, что в админке, в фотогалерее не переключаются страницы дальше первой. 
       
      Версия ocStore/Opencart 2.3.0.2

    • От shyn

      Скачать/Купить дополнение


      Basecart шаблон для OpenСart 2.x
      Описание
      Basecart - базовый, бесплатный шаблон для OpenCart 2.x со встроенными цветовыми схемами Bootswatch.
      Простота и лёгкость шаблона позволяют использовать его для разных типов интернет магазинов.
      Демо магазин
       
       
      Основные возможности
      - Простая установка
      - Адаптивный дизайн
      - 17 цветовых схем
      - Шаблон построен с использованием Bootstrap 3
      - Удобное переключение цветовых схем через админку
       
       
      Совместимость
      - OpenCart 2.3.0.2
      - OpenCart 2.3.0.1
      - OpenCart 2.3.0.0
      - OpenCart 2.2.0.0
      - OpenCart 2.1.0.2
      - OpenCart 2.1.0.1
      - OpenCart 2.0.3.1
       
      Поддерживаются также соответствующие версии ocStore и OpenCart "Русская сборка"
       
       
      Изменения
      10.01.2017
      - Незначительные улучшения
       
      02.01.2017
      - Изменен формат установки
       
      03.12.2016
      - Исправлен модуль управления темой (OpenCart 2.3.0.x)
       
      04.09.2016
      - Добавлена поддержка OpenCart 2.3.0.x
       
      16.06.2016
      - Добавлена поддержка OpenCart 2.2.0.0 и ocStore 2.1.0.2.1
       
      16.02.2016
      - Незначительные исправления
       
      10.01.2016
      - Исправлена ошибка с капчей на странице возврата товара (OpenCart 2.1.0.1)
       
      12.10.2015
      - Добавлена поддержка OpenCart 2.1.0.1
       
       
      Установка
      1. Скачать zip архив.
      2. В архиве находятся файлы, установщики темы, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Перед началом установки убедитесь, что в установленном OpenCart настроен доступ по FTP.
      System -> Settings -> [Edit] -> FTP Если OpenCart установлен локально или по каким-то причинам необходимо произвести установку темы без настройки FTP, скачайте и установите модуль QuickFix, который позволяет устанавливать дополнения без настроенного FTP доступа.
      3. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Extensions -> Extension Installer -> Upload 4. Выбрать установленную тему basecart из списка.
      Extensions -> Extensions -> Themes -> [Edit] -> Theme Directory -> basecart 5. Сохранить
       
      Если, по каки-то причинам, шаблон был установлен путем простого копирования файлов, без использования установщика дополнений, нужно дополнительно установить модификатор шаблона (файл install.xml), найти его можно при распаковке архива, название которого оканчивается на *.ocmod.zip. Установка модификатора производится через: Дополнения -> Установка дополнений. Перед установкой install.xml необходимо переименовать в install.ocmod.xml
       
      Переключение цветовых схем:
      Зайти в админку магазина.
      Extensions -> Extensions -> Modules -> Basecart -> Install / Edit  
      Добавил shyn Добавлено 21.07.2015 Категория Бесплатные шаблоны Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.2
      2.1 OpenCart.Pro, ocShop  
    • От shyn
      Описание
      Basecart - базовый, бесплатный шаблон для OpenCart 2.x со встроенными цветовыми схемами Bootswatch.
      Простота и лёгкость шаблона позволяют использовать его для разных типов интернет магазинов.
      Демо магазин
       
       
      Основные возможности
      - Простая установка
      - Адаптивный дизайн
      - 17 цветовых схем
      - Шаблон построен с использованием Bootstrap 3
      - Удобное переключение цветовых схем через админку
       
       
      Совместимость
      - OpenCart 2.3.0.2
      - OpenCart 2.3.0.1
      - OpenCart 2.3.0.0
      - OpenCart 2.2.0.0
      - OpenCart 2.1.0.2
      - OpenCart 2.1.0.1
      - OpenCart 2.0.3.1
       
      Поддерживаются также соответствующие версии ocStore и OpenCart "Русская сборка"
       
       
      Изменения
      10.01.2017
      - Незначительные улучшения
       
      02.01.2017
      - Изменен формат установки
       
      03.12.2016
      - Исправлен модуль управления темой (OpenCart 2.3.0.x)
       
      04.09.2016
      - Добавлена поддержка OpenCart 2.3.0.x
       
      16.06.2016
      - Добавлена поддержка OpenCart 2.2.0.0 и ocStore 2.1.0.2.1
       
      16.02.2016
      - Незначительные исправления
       
      10.01.2016
      - Исправлена ошибка с капчей на странице возврата товара (OpenCart 2.1.0.1)
       
      12.10.2015
      - Добавлена поддержка OpenCart 2.1.0.1
       
       
      Установка
      1. Скачать zip архив.
      2. В архиве находятся файлы, установщики темы, названия которых оканчиваются на *.ocmod.zip (Распаковка не требуется).
      3. Перед началом установки убедитесь, что в установленном OpenCart настроен доступ по FTP.
      System -> Settings -> [Edit] -> FTP Если OpenCart установлен локально или по каким-то причинам необходимо произвести установку темы без настройки FTP, скачайте и установите модуль QuickFix, который позволяет устанавливать дополнения без настроенного FTP доступа.
      3. Выбрать и установить файл темы для соответствующей версии OpenCart.
      Extensions -> Extension Installer -> Upload 4. Выбрать установленную тему basecart из списка.
      Extensions -> Extensions -> Themes -> [Edit] -> Theme Directory -> basecart 5. Сохранить
       
      Если, по каки-то причинам, шаблон был установлен путем простого копирования файлов, без использования установщика дополнений, нужно дополнительно установить модификатор шаблона (файл install.xml), найти его можно при распаковке архива, название которого оканчивается на *.ocmod.zip. Установка модификатора производится через: Дополнения -> Установка дополнений. Перед установкой install.xml необходимо переименовать в install.ocmod.xml
       
      Переключение цветовых схем:
      Зайти в админку магазина.
      Extensions -> Extensions -> Modules -> Basecart -> Install / Edit  
    • От pikitos

      2 299.00 руб
      Скачать/Купить дополнение


      2.x Revolution. Адаптивный универсальный шаблон
       
      Демонстрация:
      Магазин техники Apple Магазин авто-запчастей Магазин пиццерии Магазин авто-товаров (пример 1) Магазин авто-товаров (пример 2) Магазин одежды и обуви Магазин косметики Админка доступ: demo / demo Ссылка на валидатор Ссылка на PageSpeed  
      Как купить и очень легко и быстро установить шаблон и начать работать показано на видео. Видео старое и качество огонь..
      Так же прошу учитывать мой часовой пояс: + 4 часа к Московскому времени (GMT+7). Это если вдруг у вас вечер, а ответа все нет, будет утром.
      !Внимание: Для шаблона начиная с версии 2.0 должны быть установлены на сервере - PHP версии 5.4 и выше + Ioncube Loader версии 5.0 и выше.
      Чтобы узнать вашу версию php и ioncube, скачайте файл, распакуйте, загрузите к себе в корень сайта и откройте по адресу http://ваш-сайт.ru/myinfo.php
      Шаблон Revolution - это результат многолетнего опыта работы с cms opencart и сферой e-commerce в целом. Главная идея - чистота, минимализм и выделение товара на главный план. Любое решение в шаблоне обосновано.
      Настройки шаблона продуманы и взаимосвязаны. В шаблоне продуманы многие мелочи. Если товара нет в наличии, быстрый заказ не доступен (но его можно включить, есть опция). Возможность использовать магазин как каталог, без кнопки купить и корзины в пару кликов. Если корзина стоит всплывающая, то убирается "стрелка вниз" на Корзине покупок указывающая на ее корзины. Меняется сортировка товаров в зависимости от доступности товара для заказа. И тому подобные взаимосвязи.
       
      Функционал:
      2 типа меню каталога товаров: Amazon меню и горизонтальное выпадающее. Быстрый поиск в шапке сайта с возможностью выбора категории поиска. Заказ обратного звонка в шапке сайта. Дополнительные контакты. Новые страницы каталога: Новинки и Хиты продаж. Встроенный модуль новостей с выбором товаров для новости. Отзывы на магазин. Информационные блоки на главной странице. 6 настраеваемых слайдеров товаров. Новинки, Хиты продаж, Акции и 3 пользовательских слайдера. Виджет vk на главной странице. Настраевыемые сортировки в каталоге товаров. Автоматические настраевыемые стикеры товаров: новинка, хит продаж, акция. Быстрый заказ товара. Полностью переделана страница сравнения товаров. Теперь она адаптивная, выбор параметров сравнения, идет сравнение товаров по категории, кнопка показа только отличий. Меняются и сохраняются кнопки после добавления товаров в сравнение или закладки. 3 вид отображения товаров в каталоге. Всплывающая корзина. Быстрый просмотр товара. В закладки добавление без регистрации. Выбор вывода характеристик в карточке товара с ограничением. Выбор какие данные показывать в карточке товара. В карточке товара зум для фото и слайдер дополнительных фото. Дополнительные вкладки для всех товаров с настройками. Дополнительные вкладки отдельно для каждого товара. Отображение новостей в карточке товара к которым он прикреплен. Подписка на новости, с выбором пользователей для рассылки в админке. Иконки социальных сетей в подвале сайта. Иконки платежных систем в подвале сайта. В контактах карта формируется автоматически из адреса. Внимание! На сайте auto.oc-mod.ru и moda.oc-mod.ru показана адаптация для модулей: Simple - упрощенная регистрация и заказ; filter Pro. В состав шаблона входит только адаптация для этих модулей (в архиве с шаблоном в папке "_Фиксы для других модулей"). Микро-разметка. ... еще много чего (допишется позже). Лицензия:
      Шаблон можно приобрести на форуме и запросить лицензионный ключ в личном сообщении, написав домен на котором он будет использоваться. Шаблон можно использовать только на одном домене. + Выдается ключ на тестовый домен. В след. версиях добавиться:
      Поддержка мультимагазина И что еще нужно пишите.. Включена адаптация для популярных модулей:
      Модуль Simple - упрощенная регистрация и заказ filter Pro более полное описание добавится попозже...
      .
      Добавил pikitos Добавлено 05.06.2016 Категория Платные шаблоны Системные требования PHP v5.4+ и Ioncube Loader v5.0+ Сайт разработчика oc-mod.ru Старая цена Метод активации По запросу в ЛС
      По запросу на почту
      По скайпу
      По емейлу
      Через официальный сайт дополнения Ioncube Loader Требуется OpenCart 2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От katilina

      1 900.00 руб
      Скачать/Купить дополнение


      July - адаптивный шаблон для ocStore/Opencart
      Адаптивный шаблон July.
      разработчики ShopUtils и Katilina
      Демо для версии ocstore - opencart 2.0.x - 2.1.x -2.2.x - 2.3
      Версия для 2.3.x - скачивайте архив july_ocstore_opencart_2.3_v2.16.07.14.zip

      april.mattimeo.ru
      mart.mattimeo.ru
      august.mattimeo.ru
      ДОКУМЕНТАЦИЯ april.mattimeo.ru/documentation
       
      Демо для версии ocstore 1.5.5.1.2

      july.mattimeo.ru
      may.mattimeo.ru
      june.mattimeo.ru
      Внимание! Версии шаблона под 1.5.х и под 2.х лицензируются отдельно даже для одного домена.
      Ключ на домен, у которого уже есть ключ для версии 15512, выдаётся за дополнительную плату 1500 руб.
      Поддержка движка другой версии в цену одного шаблона не входит
       

       
      Системные требования:
      - ocStore v1.5.4.x - 2.3.x / Opencart 1.5.4.x - 1.5.6.x, Opencart 2.0.x - 2.1.x - 2.2.x - 2.3.x
      Будьте внимательны при установке движка. Opencart.Pro с шаблоном не протестирован.
      - Ioncube Loader v4.5+ (для 2.x - 5.0+)
      - PHP v5.3+
      - vQmod v2.4.1 (только для 1.5.x)
      В версии шаблона для 2.0.x - 2.1.x - 2.2.x
      - Вы можете включить отображение опций в модулях и в выбранных категориях ( опции в блоке товара или в модальном окне на Ваш выбор)
      - Выбор количества товара в модулях и в категориях
      - Выбор сеток товара на странице категорий ( по 5, 4, 3 в ряд или 2 вида списка)
      - Новости с категориями
      - Дополнительные модули для новостей ( избранные, последние, тэги, разделы новостей)
      - Возможность прикреплять товары к новостям
       

       
      July тема - позитивный и чистый шаблон. Если Вы хотите иметь уникальный, привлекательный дизайн и пытаетесь сделать свой стиль среди многочисленных владельцев магазинов, July тема является прекрасной отправной точкой для Вас.
      Демо-данные высылаются по просьбе покупателя
      http://july.mattimeo.ru/docs/img/boots.png Шаблон использует технологию вёрстки bootstrap3
      http://july.mattimeo.ru/docs/img/user_part2.jpg
      Мы стараемся для Вас. Если Вам понравилась тема, не забудьте поставить 5 звёздочек
      В шаблоне есть также модуль новостей, подписка на новости магазина,
      возможность очистить кэш из админ панели управления сайтом.
      Вы можете загрузить настройки шаблона, сохранить настройки шаблона.
      Список модулей будет увеличиваться.
      Рекомендуем модули
      1. Живая цена - Динамическое обновление цены
      2. FilterPro Патч для модуля в архиве july_for_filterpro.zip
      3. SEO CMS TOP 2: Блог | Новости | Отзывы | Галерея | Формы
      4. Дополнительные вкладки на странице товара Патч для шаблона, купившим модуль
      Добавил katilina Добавлено 09.11.2015 Категория Платные шаблоны Системные требования ocStore v1.5.4.x - 2.x / Opencart 1.5.4.x - 1.5.6.x, Opencart 2.0.x - 2.1.x - 2.2.x - 2.3.xIoncube Loader v4.5+ (для 2.x - 5.0+)PHP v5.3+vQmod v2.4.1+ (только для 1.5.x) Сайт разработчика Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 2.3
      2.2
      2.1
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу