ФорумПрограммированиеPHP для идиотов → Требования по мультиязычности и многосайтовости для фреймворков и CMS

Требования по мультиязычности и многосайтовости для фреймворков и CMS

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 17:56

    Сложная тема, которая непонятна для меня.

    Вот мое мнение

    Фреймворк должен поддерживать и многосайтовость и мультиязычность:
    в зависимости от домена могут загружаться свои конфиги и свой bootstrap
    1) на одном домене может быть сайт на нескольких языках (одна база, один конфиг, один сайт)
    2) один и тот же сайт может быть разбросан по разным (суб)доменам - ru.site.com (одна база, разные конфиги, один сайт)
    3) разные домены, совершенно разные сайты, но файлы фреймворка общие (разные базы, разные конфиги, совершенно разные сайты) – смысла в этом не вижу, но поддержка должна быть


    CMS'ка, сделанная на фреймворке должна поддерживать только мультиязычность.
    То есть только пункты 1 и 2 из списка, который выше. А именно: я могу из админки отредактировать содержимое для англ. языка, могу русский сайт отредактировать. Но доступа к другим сайтам из этой админки у меня нет


    Ну что-то в этом роде. А вы как думаете?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 11 мая 2010 г. 18:18, спустя 21 минуту 20 секунд

    Мое мнение, что такие слова как многосайтовость и мультиязычность для CMS - суть маркетинг и только. А для фреймворка вообще непонятно, что это такое.
    CMS-ка должна работать с абстрактными объектами, а многосайтовость и мультиязычность это уже то, как этими объектами распорядится разработчик. Т.е. это метод ее применения, а не ее свойство как таковое.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 мая 2010 г. 18:20, спустя 1 минуту 46 секунд

    хуета все это
    Спустя 16 сек.
    AlexB, сейчас попробую найду адрес
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:26, спустя 6 минут 39 секунд

    Мое мнение, что такие слова как многосайтовость и мультиязычность для CMS - суть маркетинг и только. А для фреймворка вообще непонятно, что это такое.


    Ну смотри, есть у меня 2 сайта от одной конторы.
    http://stocktours.ru/
    http://stockreklama.ru/

    Мультисайтовый фреймворк:
    php-файлы общие для обоих сайтов, за исключением bootstrap и configs. Базы - разные (или разный префикс таблиц)

    application/

    –stocktours/
    —-config/
    —-bootstrap.php

    –stockreklama/
    —-config/
    —-bootstrap.php


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

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

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:27, спустя 19 секунд

    Я думаю, что, так как один фреймворк, то двиг один и тот же, поэтому работа с переводом везде одинакова как бы.
    Сейчас делаю фреймворк с поддержкой различных сайтов. При этом кусок структуры выглядит так
    /
    /core
    /modules
     /applicaions
      /site1
      /site2
     /user

    при этом хочу что бы поддерживались как бы для любой точки доступа все шаблоны: PageController FrontController ApplicationController
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:33, спустя 6 минут 37 секунд

    односайтовая одноязычная CMS:
    content:
    id, parent_id, title,


    односайтовая многоязычная CMS:
    content:
    id, parent_id, title, lang_code


    многосайтовая многоязычная CMS:
    sites:
    id, title

    content:
    id, parent_id, title, site_id, lang_code

    вот я считаю, что последний вариант - излишество, остановимся на односайтовой многоязычной
    Спустя 144 сек.
    kostyl, да, иногда модуля должны быть разные для разных сайтов, это следует учесть
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:37, спустя 3 минуты 22 секунды

    kostyl, да, иногда модуля должны быть разные для разных сайтов, это следует учесть

    так эти модули находятся в
    /applicaions
    /site1
    /modules


  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:50, спустя 13 минут 21 секунду


    kostyl, да, иногда модуля должны быть разные для разных сайтов, это следует учесть

    так эти модули находятся в
    /applicaions
    /site1
    /modules



    и тогда мы получаем повторяющийся код… точнее сайт1 и сайт2 имеет общий модуль новости а значит и два раза повторяются файлы с кодом для модуля.
    Тут уж лучше один список модулей, нужные грузятся в зависимости от конфига сайта. А еще лучше сделать отложенную загрузку… вот так вот я вижу проблему с модулями.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 18:59, спустя 8 минут 53 секунды

    mario, нету проблемы, код не повторяется, общий код используется из внешних модулей, разный из внутренних
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 19:00, спустя 1 минуту 34 секунды


    mario, нету проблемы, код не повторяется, общий код используется из внешних модулей, разный из внутренних
    бля сори не заметил цитату:

    kostyl, да, иногда модуля должны быть разные для разных сайтов, это следует учесть



  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 11 мая 2010 г. 19:21, спустя 20 минут 58 секунд


    дминка односайтовая - то я должен перейти в админку другого сайта, там залогиниться и редактировать ее. На каждый сайт свой админка
    Дык все зависит от того, как админка устроена. Если CMS гибая - т.е. работает с абстрактными объектами, то я в ней создаю два объекта "новости первого сайта" и "новости второго сайта" и вуаля. Вот она многосайтовость в одной админке.
    А если модуль новостей в CMS это что-то жесткое, нетиражируемое и слабонастраивоемое … вот тогда и нужна эта маркетинговая многоязычность.
    Т.е. CMS должна быть прежде всего гибкой, ибо с тчки зрения админки "новости первого сайта" и "новости второго сайта" нечем сушественно не отличаются от "новости сайта" и допустим "новости бизнеса" в рамках одного сайта.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 21:39, спустя 2 часа 17 минут 56 секунд

    kostyl, а как их подгружать? сначала посмотреть в общей папке, а если не нашли в ней - смотрим в локальной? Я просто [man]file_exists[/man] по минимуму использую, мне кажется, что в таких случаях APC не работает.

    AlexB, ну как бы да, но не естественно это. http://pyha.ru/forum/topic/4429.msg95059#msg95059 вот просто добавляем site_id и вуаля. В мадженте примерно такой подход.


    короче пока я ехал с работы домой вот какие мысли посетили меня: многосайтовость на одном фреймворке это как бы круто, по-хорошему ее нужно реализовать. Но так ли часто она нужна? И удобно ли ей пользоваться? Ну да, если у нас фреймворк установлен где-то в /var/php5/PEAR/BL - то да. Но часто ли вы ставите какие-то похапэ-скрипты в shared-папки? я ни разу еще не ставил.

    А какие преимущества нам это даст?
    - экономия места (хуйня а не преимущество)
    - легкость в обновлении: обновили только в одном месте. Ага, а если какие-то проблемы с обратной совместимостью? тоже ниахти какое преимущество

    А вот давайте подумаем, как хранить будем статические файлы (картинки, css, js)? css/site.ru/file1.css? ерунда какая-то.


    Короче в ближайшем будущем мультисайтовости даже на уровне фреймворка в BL не будет. Есть более приоритетные вещи.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 22:03, спустя 23 минуты 24 секунды

    kostyl, а как их подгружать? сначала посмотреть в общей папке, а если не нашли в ней - смотрим в локальной? Я просто file_exists по минимуму использую, мне кажется, что в таких случаях APC не работает.

    хрен знает как лучше, еще не дошел ;)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 11 мая 2010 г. 22:29, спустя 26 минут 23 секунды

    Абырвалг,
    А вот давайте подумаем, как хранить будем статические файлы (картинки, css, js)? css/site.ru/file1.css? ерунда какая-то.

    так как у тебя практически по-любому будет юзаться мод_реврайт, то указываешь в нем с какой папки брать реальные картинки при запросе "http://example.com/images/*.jpg" и тоже со стилями и т.д. В общем, указываешь к какой папке в реале обращаться для получения статичных файлов для конкретного сайта. Ну и для каждого сайта свой .htaccess
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 мая 2010 г. 22:45, спустя 15 минут 39 секунд

    так а как сделать для каждого сайта свой .htaccess, если структура такая

    application/
    –site1/
    –site2/
    img/
    –site1/
    –site2/
    index.php # точка входа здесь. Этот файл со всех доменов доступен


    ?

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