test

Если DPKG/APT/APTITUDE медленно работает

Когда DPKG, APT, APTITUDE начинают медленно работать стоит попробовать выполнить следующие команды:

1) dpkg --clear-avail
2) dpkg --forget-old-unavail
3) Если используете grep-available или другую утилиту для проверки доступных файлов, обновите файл используя sync-available (в пакете dctrl-tools).

Оригинал на английском

test

PrestaShop 1.5+ Получаем содержимое корзины

cart

Чтобы получить содержимое корзины достаточно столь короткого кода:

$cart = new Cart($this->context->cookie->id_cart);
$cartProducts = $cart->getProducts();

Так же, чтобы увидеть больше можно взглянуть на файл контроллера корзины, который находиться в /classes/Cart.php

test

Правила для Ассоциаций Содержит-Один(HasOne) и Принадлежит(BelongsTo) в ExtJS

Правила для Ассоциаций Содержит-Один(HasOne) и Принадлежит(BelongsTo) в ExtJS

  1. Помещайте прокси в модель, пока у вас не будет веской причины как в случае [1]
  2. Всегда используйте полное имя модели
  3. Всегда устанавливайте getterName
  4. Всегда устанавливайте setterName
  5. Всегда устанавливайте associationKey, если подключаемый обьект возвращает тот же ответ что и текущий
  6. Всегда устанавливайте foreignKey, если хотите загружать связанный обьект только по надобности
  7. Делайте как можно короче instanceName
  8. Геттер ведет себя по разному в зависимости от того, иностранные объект загружается или нет. Если он загружен, внешний объект возвращается. В противном случае, вам нужно передать в функцию обратного вызова, чтобы получить его.
  9. Нужно установить название свойства, если планируете перегрузить ассоциацию.
  10. Вам не нужно отношение belongsTo для работы с hasMany
  11. Установите primaryKey если ID поле родителя не "id"
  12. Иногда вам нужно использовать uses или require для ассоциации belongsTo.
  13. Вызов сеттера setter() не создает экземпляр. Установите object.belongsToInstance = obj если вызываете setter().

...

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

Страницы

Subscribe to Nelex.in.ua RSS