Блог пользователя Nelex

Хостинг с которым я работаю. Так что это даже как-бы не реклама

Хостинг unihost.com плюс домен бесплатно
Пользовательский поиск

Понравилось? Поделитесь с знакомыми и друзьями!

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

ExtJs

Введение

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

Описание

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

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

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

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

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

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

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

$ _JAVA_AWT_WM_NONREPARENTING=1; export _JAVA_AWT_WM_NONREPARENTING

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

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

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

Предисловие

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

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

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:

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

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

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

Предисловие

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


Оригинал

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

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

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

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

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

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

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

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


Оригинал

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

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 запросов. И тут я решился взяться за поиски.
Первым на что пал выбор - блок категорий. Ввиду большого уровня вложенности, количество запросов там вполне могло быть достаточно высоким. Но нет... Первое место достается не ему. Блок поставщиков тоже после отключения не снял нагрузки. Ни просмотренные товары, ни другие модули. Но есть несколько кандидатов. Остальное под катом.

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

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


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

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

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

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

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

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

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

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

Kohana 3.3 MySQLi драйвер

Kohana 3
В один прекрасный момент подключение mysql было обьявлено deprecated и потребовалось использовать mysqli.
Сам драйвер можно найти здесь. Для подключения драйвера достаточно просто закинуть его содержимое в папку modules/database/ и

PrestaShop 1.5 и 404 ошибка(страница не найдена) при клике по категориям

prestashop 404 error
Пришлось по колдовать над решением этой загадочной 404 ошибки(страница не найдена) при клике на категорию в PrestaShop 1.5.4. Некоторые люди правили все путем манипуляции с базой данных. У меня проблема решилась куда как проще.

Страницы

Subscribe to RSS - Блог пользователя Nelex