test

ExtJS 4: Отображение связанных моделей в сетке(Grid) Перевод

Примечание переводчика

Буквально пару дней назад я делал перевод статьи о том как использовать контроллеры и представления в ExtJS согласно архитектуре MVC. Но в ней не было использования моделей, хотя основы использования фреймворка вполне прекрасно обозначались. И вот новый перевод, небольшой но достаточно содержательный. Мы рассмотрим как использовать связанные модели и отображать их в сетке. Думаю это далеко не последний мой перевод по теме ExtJS, лишь текущий.

Если кому не понравиться перевод, можете смело читать в оригинале: Rendere association values in a grid panel

Перевод

ExtJS 4 предоставляет отличный механизм моделей данных. Важным аспектом в Ассоциациях является определение отношения между разными моделями в вашем приложении. Это важная возможность с всего парой побочных эффектов.

Вы не можете использовать данные ассоциации в шаблонах XTemplate потому что соответствующие данные не в формате массива. Опять же, отображение ассоциативных данных в сетке не являются интуитивно понятными. Последнее мы и рассмотрим в этой статье.

В моем примере у меня есть Документы(Documents) связанные с Компонентами(Components). В нашем натуральном языке обработки[NLP] модель строит приложение, каждый документ может быть использован в разных аспектах модели. В любом случае, Компоненты могут быть изменены, удалены из системы, или добавлены новые, по этому я отслеживаю их как отдельные обьекты и ассоциирую их с обьектом Документ.

test

ExtJS: Приложение с авторизацией и меню

Форма входа

Предисловие, мое как переводчика.

Как обычно, ру-интернет сильно отстает в плане хороших примеров. Не скажу что их нет, но их несоизмеримо меньше чем в англоязычном. А ведь иногда так хочется почитать нормальные статьи на русском языке. В этом раз я сделаю перевод статьи о написании Приложении написанного на ExtJS 4 с формой авторизации и меню.

Проверять полную валидность кода не буду ввиду того что мне нужны только части кода. Если есть какие-то баги, их вы сможете увидеть на странице оригинала.

Оригинал по ссылке: http://blog.jardalu.com/2013/5/7/user-login-sencha-extjs

И да, спасибо автору этого материала.


В предшествующей статье(простая форма авторизации), мы создали простое форму авторизации с помощью библиотеки ExtJS Sencha. На сколько не была бы полезна предшествующая статья, все что она делала - показывала форму(представление). В этой статье мы покажем как изменять экран(представление) если авторизация прошла успешно.

В этой статье используется архитектура MVC фреймворка ExtJS. Предшествующая статья не использовала эту архитектуру. Сказать точнее, мы будем использовать только VC(Views,Controller) часть из MVC. MVC состоит из Модели(Model), Представления(View) и Контроллера(Controller). "The MVC Application Architecture" хорошая статья для понимания их MVC архитектуры. В общем-то их архитектура не отличается от стандартного паттерна, всего-лишь формализует путь написания, хранения и использования моделей, контроллеров и представлений.

test

PrestaShop и кеширование внутри модуля

PrestaShop позволяет кешировать данные. Для этого нужно выбрать метод кеширования в админке и внутри модуля использовать функции для работы с кешем.

Чтобы не быть многословным, проще показать кусок кода:

test

ExtJS Grid(компонент сетка) + Ajax(Kohana 3 framework) + ORM. Пагинация. Сортировка.

ExtJs

Введение

Нужно использовать сетку(Grid) в ExtJS, с ее возможностью пагинации и сортировки данных на стороне сервера.

Описание

Как подключать и использовать ExtJS написано много. Но иногда не хватает деталей. Итак, пример того как в компоненте сетка(Grid) использовать данные получаемые в ajax. Эту часть я делал на фреймворке Kohana 3, но не думаю что у вас возникнут особые сложности перевести все это в свой нужный код. Так как код на Kohana 3, то используется HMVC(MVC). Сейчас немного о логике. Данные взяты из прототипа одного проекта, по этому могут быть не совсем полными, но основную суть передают. У нас есть основной контроллер на который мы переходим вызывая отображение нашей страницы с таким вот кодом:

test

Кросс-браузерная верстка(Видео)

На просторах сети много чего можно найти. Толкового правда не всегда много, но есть. Вот попался мне видео-курс по кросс-браузерной верстке. 8 Частей. Длительные, но посмотреть стоит.

Под катом несколько видео.

test

Awesome WM + Java = Белый экран(white screen)

При запуске PhpStorm из-под Awesome WM у меня вместо среды разработки начало показываться просто белое окно. Решение уже существует и находиться Здесь.

Заключается оно в том чтобы использовать OpenJDK с уже существующими фиксами этой проблемы. Для использования из консоли нужно ввести следующую команду:

$ _JAVA_AWT_WM_NONREPARENTING=1; export _JAVA_AWT_WM_NONREPARENTING

Так же можно заставить поверить Java что вы используете другой рабочий стол командой:
$ wmname LG3D
Из пакета suckless-tools

test

Контроллеры в PrestaShop 1.5

Контроллеры в PrestaShop

Предисловие

Сейчас мы рассмотрим Контроллеры в архитектуре PrestaShop, чтобы еще больше разложить по полочкам понимания работы самой PrestaShop. Это сильно поможет нам в дальнейшем не делать лишних действий, покажет нам где брать образцы кода для собственных модулей и покажет что и как работает. Дальше, текст в большей мере представляет перевод официальной документации PrestaShop, который может быть найден тут.

В MVC архитектуре, контроллер управляет синхронизацией данных между Представлением(View) и Моделью(Model). Контроллеры обрабатывают все события и триггеры событий вызываемые пользователем.
Если нужно чтобы какие-то данные были изменены, Контроллер говорит об этом Модели, и передает данные запрошенные/возвращенные из Модели в Представление.
Все контроллеры в PrestaShop могут быть перекрыты классами контроллеров которые наследуют класс-родитель, например AdminController, ModuleAdminController, FrontController или же ModuleFrontController.

test

PrestaShop: Страницы категорий/каталога (Controller, Modules, Hooks) в Prestashop(Перевод)

Presta Контроллер категорий и товаров

Приветствую, Читатель!

Интро

Ну вот очередной перевод "для себя" и заодно для вас, читатели. Так как тема PrestaShop для меня на текущий момент весьма актуальна, а материала по нему в ру-язычном сегменте достаточно мало, а платить за модули готовые для разработчика дело... не правильное. Тем более там по большей части украшалки и ничего толкового. Мое имхо как итого: можно сделать хороший высоконагруженный магазин, но только если взять за основу саму архитектуру CMS и полностью перепилять ее модули и контроллеры. Как итого я уже сделал для себя модуль меню(блок категорий) который при 300+ категориях делает всего 2 запроса, вместо 300 как у того что присутствует в поставке самой CMS. Так же я доделываю фильтры и контроллер категорий. Все это в одном модуле. Все в купе вместо 1200+ запросов к базе кушает около 40+ запросов. Приятно? Очень.

Я отвлекся. В общем и целом дальше перевод статьи Category/Catalog page (Controller, Modules, Hooks) in Prestashop, которая даст нам еще больше понять и прояснить в архитектуре и работе PrestaShop.

Дальше сам перевод.


Контроллер CategoryController

/controllers/front/CategoryController.php

CаtegоryCоntrоller контроллер ответственный за генерацию страниц каталога. Наследуется от класса FrontController. Давайте рассмотрим методы вызываемые этим контроллером. Но сперва давайте упорядочим в том порядке, в котором они вызываются.

Методы класса CаtegоryCоntrоller:

test

PrestaShop обновление 1.5.4 до 1.5.5 версии

PrestaShop
Вышло обновление с нужными мне фиксами движка. Обновление достаточно простая задача, но после Drupal, PrestaShop в этом плане все-таки не торт. Но, сейчас о том как я это делал. Не забывайте делать бекапы CMS и базы данных на случай если вы нечаянно когда-то что-то перепутаете.

1) Качаем новую версию с сайта престы.
2) Создаем по соседству с сайтом папочку, к примеру presta155
3) Заливаем в нее скачанную новую версию престы.
4) Заливаем с текущей в новую версию папки в которых есть кастомные наши файлы(images, logos, photos, translations, modules, другие)
5) Делаем бекап базы(mysqldump -p prestadb154 > /путь/prestadb155.sql) и заливаем его в созданную по соседству новую базу, к примеру presta155(mysql -p prestadb155путь/prestadb155.sql)
6) перезаливаем конфиг с старой версии в новую скопировав файл /config/settings.inc.php, меняем реквизиты на новую базу prestadb155

test

PrestaShop 1.5 и передача данных через Ajax из собственного контроллера модуля

Как создавать контроллер в собственном модуле можно посмотреть в двух сегодняшних заметках:

Теперь конкретно пример контроллера отдающего данные в JSON формате, к которому можно обращаться через Ajax:
/filtershop/controllers/front/ajax.php

class filtershopajaxModuleFrontController extends ModuleFrontController
{
    public function init() {
        parent::init();
    }

    public function initContent()
    {
        parent::initContent();
        die(Tools::jsonEncode(array("test"=>1,"t2"=>2)));
    }
}

Таким образом перейдя по ссылке /index.php?fc=module&module=filtershop&controller=ajax увидим вывод наших данных в JSON:

{"test":1,"t2":2}

Вывод шаблона Smarty

test

PrestaShop: создаем собственную страницу(контроллер) фронт-енда(Перевод)

Предисловие

Вслед за PrestaShop 1.5: Добавляем контроллер в собственный модуль(Перевод) решил сразу добавить перевод еще одной небольшой заметки. Перевод для логичности с небольшими изменениями оригинального текста.


Оригинал

Prestashop предоставляет возможность добавить новые страницы в ваш модуль. Несколько шагов ниже позволят вам создать новую страницу.

Шаг 1 - Создание нужной структуры директорий

Переводчик: Создание и установка их описана в большом количестве статей и легко доступна в интернете.

Допустим название вашего модуля testmodule, тогда после установки вы можете проверить директорию module в которой найдете директорию testmodule

test

PrestaShop 1.5: Добавляем контроллер в собственный модуль(Перевод)

Собственный контроллер модуля

Предисловие к переводу

Статей о том как создать собственный модуль для PrestaShop в принципе достаточно. А вот на счет добавления контроллера в собственный модуль все обстоит гораздо печальнее. Так как мне нужно создать модуль для PrestaShop 1.5., а значит в любом случае читать материал на английском, заодно сразу и переведу. Может еще кому помогу, возьму, так сказать, на карму себе доброе дело )) Но вполне вероятно есть неточности перевода, а значит будьте внимательны.


Оригинал

Prestashop 1.5.x порадовала нас чудесной возможностью создавать контроллеры в модулях. Это главная задача классов ModuleFrontController и ModuleAdminController. Давайте рассмотрим их ближе(уделите особое внимание комментариям):

test

PrestaShop 1.5 и 903+ запросов к базе данных при создании интернет-магазина с высокой нагрузкой(Не сложная но эффективная оптимизация о которой не пишут)

PrestaShop
Понравилась CMS PrestaShop, в ней есть практически все что нужно для создания интернет-магазина.

Введение

Собственно задача у меня сделать магазин, в котором более 50 тыс. видов товара. Бывшая CMS WebAsyst за сроком годности и ввиду платности отпадает. Как дополнение к выше сказанному - несколько лет работы разных фрилансеров сделали систему крайне тяжелой для поддержки. Как важное условие, CMS должна быть совместима с импортом-экспортом товаров в/из программ разработчика Elbuz Content Creator и Price List Importer(общение с их тех. поддержкой сплошной вынос мозга). Но все это напоролось на крайне медленную производительность сайта. Повторюсь, количество видов товара более 50 тыс. Включение отладки в /config/defines.inc.php:

define('_PS_DEBUG_PROFILING_', true);

Отладка(внизу сайта) показала наличие 903 запросов. И тут я решился взяться за поиски.
Первым на что пал выбор - блок категорий. Ввиду большого уровня вложенности, количество запросов там вполне могло быть достаточно высоким. Но нет... Первое место достается не ему. Блок поставщиков тоже после отключения не снял нагрузки. Ни просмотренные товары, ни другие модули. Но есть несколько кандидатов. Остальное под катом.

test

Подборка статей по интерфейсам(UI,UX,Юзабилити) и статейка по SEO

Хабр
Отобрал достаточно интересные и содержательные статьи по UI, UX и SEO. На текущий момент выделил для себя именно их. Тут только части материала. Все остальное можете прочитать перейдя по ссылкам.


Грань между UI и UX

В последнее время часто сталкиваюсь с проектировщиками интерфейсов, которые вышли из дизайнеров, и на мой взгляд их объединяет одно свойство они не корректируют бизнес процесс. И в итоге остаются хорошие, сделанные по правилам интерфейсы, которые не решают главную проблему:

«Основная проблема интерфейса в том что это интерфейс. Интерфейсы — это препятствия на пути. Я не хочу сосредоточивать свои силы на интерфейсе. Я хочу сосредоточиться на работе… Я не хочу осознавать себя использующим компьютер, я хочу осознавать себя делающим дело».

Дональд Норман

Проблема заключается в том, что если процесс, обслуживаемый интерфейсом, сложный и запутанный, то и интерфейс будет такой же. Процесс мутный — интерфейс мутный. У вас будут россыпи тогглов, чекбоксов и списков, а перед использованием интерфейса, нужно будет пройти 2-ух недельные курсы подготовки, и сдать экзамен.

Я думаю многие сталкивались с такими интерфейсам в ERP системах, и там это кажется допустимым, ведь это же корпоративный софт. Однако часто проблема скрывается не в том, что у вас сложный бизнес-процесс, а в том, что он не систематизирован и не подготовлен для пользователя.

test

Основы создания отказоустойчивого сервиса(серверная ферма). Доклад. Видео.

Load Balancing
В докладе рассказывается о том как построить архитектуру отказоустойчивого сервиса. Весьма полезно для тех кто планирует работать с высокими нагрузками. Достаточно полезно для тех кто хочет вспомнить некоторые основы тем кто уже работает с высоконагруженными сервисами. Построение кластерной основы для высоконагруженных сервисов.

Страницы

Subscribe to Nelex.in.ua RSS