Offline версия (клиет) сайта на Drupal

Главные вкладки

Аватар пользователя mzhulaev mzhulaev 19 апреля 2010 в 22:48

Дорогой drupal.ru,

Размышляю над выбором CMS – рассматриваю Drupal как самого вероятного кандидата.
Вопрос в следующем: можно ли прикруить к сайту Drupal offline версию (клиент)?

Смысл следующий:
Есть некоторый контент и некоторая бизнес-логика (БЛ) на сайте (т.е. это непросто блог). Хотелось бы иметь возможность работать с сайтом в офф-лайне: т.е. получать материал, просматривать его, юзать БЛ (ту же самую что и на сайте), делать изменения в контенте (которые впоследствии будут синхронизироваться).
Развитием идеи, соответственно, является возможность иметь stand-alone приложение с БЛ сайта (и всеми возможностями описанными выше).

Подвох в том, что не хочется использовать языки, технологии и возможности отличные от тех, на чём будет написана БЛ. Ибо поддерживать БЛ на двух разных языках программирования не хочется и кажется нецелесообразным. Максимум можно взять графическую библиотеку от другого языка для рисовалки ГУЯ (однако однозначно не хочется переписывать БЛ).
Приемлем вариант генерации кода из php в другой язык (Java или C#), так как в таком случае БЛ будет одна. Нашёл интересный вариант от ребят из Facebook’a.
Однако интересно ваше мнение по данному вопросу. Также желательно чтобы «генератор» был адоптирован под Друпал.

Есть ещё одно возможное решение: погуглив немножко, я обнаружил, что можно подружить Друпал с Flash и\или Flex. (пруф).
Соответственно можно подумать о привязке к Adobe Air (что и есть, насколько я понимаю, копирование БЛ и контента сайта в виде stand-alone (offline) приложения).

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

Заранее спасибо.

Комментарии

Аватар пользователя john1123@drupal.org john1123@drupal.org 19 апреля 2010 в 23:09

У нашей компании был опыт разработки сайта с backend-ом на друпале и frontend-ом на флеше. Вот ссылка: http://www.oklahomachildcare.org Полёт нормальный. Суть была в том, что через друпал сам администрируется, наполняется контентом, меняются менюшки. А Флей это всё подгружает и красиво показывает. К сожалению ответить могу лишь теоретически, так как непосредственного участия в разработке не принимал.

UPD. Похоже же сейчас там только главное меню на флеше осталось . Совсем уж наглядного примера не получилось. Но сути это не меняет Друпал с флешем умеют дружить.

Аватар пользователя mzhulaev mzhulaev 20 апреля 2010 в 14:07

john1123@drupal.org: Я тоже подумываю об идее с Flex (Flash). В данном случае Adobe Air может помочь решить проблему.

Также нашёл на drupal.org несколько интересных предложений:
Использовать Google Gears или Qt framework, чтобы генерировать desktop standalone приложения. Однако насколько я понял после первичного анализа – данные технологии заточены пока только лишь на HTML/JavaScript, т.е. не могут работать со скриптовыми языками типа PHP.

Интересно кто-нибудь из адептов Drupal уже пытался их использовать совместно с Drupal?

igor701:

"igor701" wrote:
Ну я MS Access подключал - http://www.drupal.ru/node/10429
но это наверное не совсем то ...

Как я понял, в вашем случае генерируется только база-данных.
Мне, однако, нужна ещё и бизнес-логика (БЛ) с сайта.

kyky: по поводу xmlrpc – правильно ли я понимаю, что в моём standalone приложении будет создан rpc вызов к сайту?
Если так, то это не приемлемо, ибо хочется (ну очень хочется Smile ) иметь offline версию независимо от сайта (т.е. не конектиться при каждом запросе к сайту).

Аватар пользователя kyky kyky 21 апреля 2010 в 3:04

Не понятно до конца, что вам нужно.
Если нужна простая копия сайта, в которую вы НЕ БУДЕТЕ вносить изменения, то достаточно автоматизировать ежедневный дамп базы и ее загрузку в локальный сайт-двойник.
Если же вы хотите вносить в базу изменения, не при этом не коннектится к сайту, то... как синхронизировать? Накапливать изменения, а потом слать репликацию? А если на сайте тоже произошли изменения в том контенте, что вы правили? Это может привести к коллизиям.

Аватар пользователя Shift-Web Shift-Web 21 апреля 2010 в 10:13

john1123@drupal.org: Я тоже подумываю об идее с Flex (Flash). В данном случае Adobe Air может помочь решить проблему.

Эйр очень тормозной ): есть альтернатива, но надо знать c++ или делфи, есть реализация на dll.

http://www.f-in-box.com/

Продукт стоит бабла. Там просто надпись демо мигает - отключается грубой модификацией исходника компонента. Из плюсов можно отметить скорость обработки флеша(любого практически), выбор как инклюдить флеш - можно прямо с уэрэл подрегбать из сети, можно в бинарник защить, можно на локалке просто swf-ку подключать. В итоге получается своя полноценная независимая оболочка.

Делал на базе этой шняги клиент для flash-игры, играть в которую с браузера и их клиента было невозможно из-за тормозов.

пробуйте, если интересно

p.s.: тока что посмотрел - там уже дохрена чего есть )))))

Аватар пользователя igor701 igor701 21 апреля 2010 в 12:38

А может вам просто надо на локальный комп поставить Вертриго/Денвер и загрузить туда свой сайт? Будет полностью рабочая оффлай-версия вашего сайта. Может вам это надо?

Аватар пользователя mzhulaev mzhulaev 21 апреля 2010 в 13:40

Shift-Web: Спасибо за идею. Там кстати исчо .NET имеется (что есть ИМХО лучше dll и Delphi).

Как я понял из описания, это что-то типа обёртки для вызова flash и actionScript функционала.
Не совсем понятно можно ли с помощью этого F-IN-BOX иметь толстого клиента в виде standalone offline приложения (т.е. не подключаться к серверу). Не подскажите?
Да и я пока не уяснил работает ли это с Flex? Скорее всего да, но что-то чётко нигде не написано.

Идея на счёт «хака триала» конечно интересна.
А они потом не «отключают грубо автора модификации их ТМ-компонента»?
Я имею ввиду не было ли у вас каких-либо претензий со стороны F-IN-BOX? Flash-игра была в Рунете?

По поводу Adobe Air: есть какие-нить пруфы по поводу тормознутости онного?
Я, погуглив, нашёл такое мнение на форумах, но реальных тестов пока не видел.
У мну кстати стоит одно небольшое приложение на Air (Klok – для хронометража рабочего времени). В принципе не тормозит, но может иногда (пару раз в день) проц на 30% загрузить на пару сек. Но это и не очень видно.

igor701, kyky: извиняюсь за неясноcть.
Идея в следующем: нужно предоставить простым пользователям возможность работать с оффлайн версией сайта.

Для простоты допустим, что они могут изменять данные своего профайла из standalone приложения, не коннектясь к серверу. Позже они нажимают кнопочку сихронизации – и соединяются с сервером.
Потенциально возможные коллизии достаточно легко разрешимы, ибо материал «особо критичный к изменениям» править off-line не разрешается. В основном можно править только инфу специфичную для каждого конкретного пользователя.
Также то, что можно править всегда имеет возможность выбрать между использовать «старую» версию сервера или «новую» из standalone приложения пользователя.

При этом юзверы должны иметь возможность использовать некоторую часть бизнес-логики с сервера, т.е. имеем клиента средней такой толщины.
В итоге, не хочется нагружать юзверей установкой чего-либо сложного вроде сервера. Максимум – скачать exe-файл обёртки (Adobe Air, Google Gears) или виртуальную машину (напр: JRE).

Аватар пользователя Shift-Web Shift-Web 21 апреля 2010 в 15:36

«Не совсем понятно можно ли с помощью этого F-IN-BOX иметь толстого клиента в виде standalone offline приложения (т.е. не подключаться к серверу). Не подскажите?»
Можно ... Размер оболочки будет в итоге меньше даже чем на воздушке.

«Да и я пока не уяснил работает ли это с Flex? Скорее всего да, но что-то чётко нигде не написано.»
Да, работает. Тестилось на flash + flex клиент-серверном приложении. Т.е. было 2 варианта:

1. движок swf был на локалке и запускался со своего компа.
2. всё хозяйство лежало на серваке в сети, а бразеру кормилось инклюдом флэш на html. тупо был сделан пресет для настройки пути напрямую к swf-ke

«Я имею ввиду не было ли у вас каких-либо претензий со стороны F-IN-BOX? Flash-игра была в Рунете?»
Да в рунете. Мне как-то пофигу было ... наврятли там это предусмотрено... Траблов не возникало.

«По поводу Adobe Air: есть какие-нить пруфы по поводу тормознутости онного?»
Как известно, размер оболочки на выходе и ресурсожручесть не есть сильная черта всяких эйров, цинков и тому подобного рода софтвара.

Все-го то в готовом приложении 2 файла и размер не больше 800кб. Если будете на чистом api писать - наверняка будет еще компактнее.

в общем как-то так...

Аватар пользователя _UE_ _UE_ 29 апреля 2010 в 19:54

"Shift-Web" wrote:
«Я имею ввиду не было ли у вас каких-либо претензий со стороны F-IN-BOX? Flash-игра была в Рунете?»
Да в рунете. Мне как-то пофигу было ... наврятли там это предусмотрено... Траблов не возникало.

наткнулся на тему, довольно интересно. а где-нибудь можно глянуть на вашу программу? можно в личку Smile

спасибо!

Аватар пользователя Shift-Web Shift-Web 29 апреля 2010 в 21:09

Там нечего смотреть ... Индикатор коннекта с сервером, 4 кнопки: 2 режима игры(напрямую через инет и локально, если установлены сорцы родного клиента), отключение звука и дисконект. + комбо панель для пользовательских наборов действий.

Посмотреть как работает Вы наврятли сможете, написано всё с заточкой под Win7 x64... на другой не запустится... делалось для себя и друзей

Аватар пользователя karmike karmike 26 сентября 2023 в 10:53

Тоже интересует данный вопрос... экспериментировать на локальном, а когда все отладил, засинхронизировать... Но понял, что синхронизировать нужно виртуальный сервер целиком. Потому как там и локально может оказаться разные версии Linux, PHP, всякие разные настройки Apache и т.д.
Копаем в ту сторону.

Аватар пользователя karmike karmike 27 сентября 2023 в 10:22

Я хотел совсем просто: сделать копию сайта на локальном USB-диске, но не только сайта, а вместе с LAMP, и перезагружать компьютер с него. Но как с ним работать? У меня же тогда будет только терминал... Может, тупо сделать диск с той же версией Линукс, а на нем копию сайта? Сейчас думаю...
Да, я не специалист по сайтам, я поневоле продвинутый юзер Sad

Аватар пользователя karmike karmike 29 сентября 2023 в 14:55

Сейчас двигаюсь в другую сторону. Прочитал у одного человека в и-нете, что для экспериментов он использует сервер на отдельном локальном компьютере. Мне эта идея понравилась, потому что я могу в этом варианте работать с тестовым сайтом со своей рабочей машины точно так же, как с реальным (т.н. продакшн) сервером, не прыгая с виртуальной машины на локальную. Пробовал Virtual Box, не понравилось. Там еще проблемы с драйвером дисплея...
Дело в том, что у меня после апгрейда своей машины осталась материнка с процессором I5 от 2008 года и памятью, БП тоже валялся в углу... купил б/у корпус за 500 р. и за час собрал сервер.
Накатил такой же Линукс, как на хостинге, LAMP, воткнул в локальную сеть, подключился по SSH с помощью Bitvise SSH (замечательный бесплатный инструмент, включающий файл-менеджер, который видит все файлы на хостинге, как на своем компьютере), и увидел знакомую картину, точно такую же, как на хостинге. Теперь осталось сделать копию сайта на Друпале, базы данных, и распаковать на локалке. Еще надо DNS-ы подправить, чтобы ссылки работали.
Да, Битвизе очень удобно править конфиги Апач, а лучше скопировать с оригинала.