halfhope

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

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

halfhope    154

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

 

Прошу о помощи. Решил сделать набор модулей для интеграции 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 381

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

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

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


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

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

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

 

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

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


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

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

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

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


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

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

 

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

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От IgorAlmaty
      У Ocstore последняя версия 2.3.0.2.3, у Opencart уже 3 и выше. На сколько я понимаю Ocstore и есть руссифицированная версия Opencart(-а). Но почему тогда ocstore так отстает от opencart(-а)? Или есть другие версии локализации Opencart?
    • От nikeforce111
      Ошибка: mysqli::mysqli(): (28000/1045): Access denied for user 'mirpuser'@'localhost' (using password: YES) in /home/user1211087/www/mir-para.by/system/database/mmysqli.php on line 6
      Похоже связано с паролем, как восстановить или исправить?
    • От katilina


      Просмотр файла July - адаптивный шаблон для ocStore/Opencart
      Адаптивный шаблон July.
      разработчики ShopUtils и Katilina
      Скидка на шаблон действует до 1 сентября!
      Демо для версии 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) Сайт разработчика Старая цена 3000 Метод активации По запросу в ЛС 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  
    • От katilina
      Адаптивный шаблон July.
      разработчики ShopUtils и Katilina
      Скидка на шаблон действует до 1 сентября!
      Демо для версии 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. Дополнительные вкладки на странице товара Патч для шаблона, купившим модуль
    • От seo2014
      Всем привет. Ищу помощи. Стоит Opencart 1.5.5.1.2, необходимо сделать несколько учеток администраторов (с этим вопросов нет), однако под каждой учетной записью, должны быть видны и доступны для редактирования товары только созданные под этой учеткой. Т.е. допустим 3 разных учетки администраторов, и у каждого свой список товара, товары созданные с другой учетки отображаться/редактироваться не должны.
      Подскажите плиз, ссылку на какой-нибудь модуль, или кто-то делал уже и может помочь за плату. Спасибо.
  • Последние посетители   0 пользователей онлайн

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