Jump to content

NitroGenerate

Members
  • Posts

    14
  • Joined

  • Last visited

Profile Information

  • Location
    RU
  • Activity
    Freelancer

NitroGenerate's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. В нашу компанию, на постоянной основе, требуется Backend программист. С отличными навыками работы с PrestaShop, знанием всех его тонкостей и "узких мест". От кандидата: Уверенное владение PHP и MySQL. Знание javascript и библиотеки jQuery. Опыт работы с Git. Задачи: написание нового функционала сайта, обновление существующего. Работать в основном придется с бэком и немного фронта в виде банальных slideup slidedown и ajax. Работаем с PrestaShop 1.6. Верстать не придется. Гибкий график работы (удаленная, либо в офисе г.Санкт-Петербург). Оплата от 60 000 руб. в месяц(обсуждается на собеседовании). По всем вопросам обращаться в личку, дабы не заспамить свою почту и телефон.
  2. Как вы решили, что он у вас пашет не напрягаясь. По тому, что вы нажали на страницу, и она тут же открылась ? =) С отключенным кешированием чего ? Кешированием шаблонизатора смарти ? Кешированием системой кеширования престы? Кешированием sql сервера ? Есть много систем кеширования, о какой конкретно вы говорите ? Причем тут nginx ? Мы не о нем говорим, он тут совершенно не причем. Впрочем как и ваше api, которое обновляет цены. Тут суть в подходе разработки. Некоторые вещи, совсем не ориентированы на высокую нагрузку или большую базу. Не буду с вами спорить, возможно мы действительно не умеем настраивать сервера под систему престашоп. На сайте престашопа мы не видели никаких рекомендаций по настройке. Некоторые вещи в моделях престашопа даже под кеширование даже не попадают и при генерации и заставляют апатч жрать процессор с огромной силой. Я имею ввиду переборку огромных массивов и их хранение в памяти.
  3. Не могу сдержаться и не высказаться как мы решили добавить кладер городов в престу. Для тех, кто не знает, кладер городов - это база всех городов, областей, населенных пунктов, деревень, сел, поселков, хуторов и тд.. Так вот, там добра на 600 000 строк. Залили их в ps_state (назовем ее городами), прицепили их все к country = 7 (Россия). И сайт упал. Начали разбираться. Как открыли код, так ужаснулись. И у нас возникла редкостная ненависть к разработчикам. Что они сделали. В моделях они создают массив из всех state к country. В результате мы получаем allowed memory size. А в чекауте, когда мы заполняем страну и к ней выбираем state такое же веселье. Преста перебирает все города и записывает их в js массив, который висит в браузере, процессор на локальной машине начал зашкаливать... все жутко тормозило. И это 1% из всех тех прелестей с которыми мы столкнулись при разработке магазина на престашопе. Но выбора у нас не было, нужно на престе делать. В общем мы перепилили все фронт контроллеры престы. Модели тоже почти все перепилили, но в некоторых местах все еще используются престовские. Выкинули шаблонизатор смарти, все шаблоны у нас в php и рендерятся из фронт контроллера. систему хуков тоже переработали. С кешированием тоже траблы. Даже если не работает кеширование, то преста запоминает все запосы и их результат выполнения, тем самым не освобождая память. Решили поэксперементировать, подняли магазин дефолтный из коробки на сервере. И получили, что он даже из коробки жутко тормозит, со своими 10тью продуктами. Причем машина отнюдь не слабая. 2 ядра по 3 ггц, 4 гб оперы, сас винты. Подведу итог, разработчики постарались максимально охватить рынок, показав какая преста классная, красивая, с графиками, с кучей возможностей, мультиязычность, мультимагазинность, скидки, купоны, наборы, мультикарточки, характеристики и тд. Но все это дело, жутко тормозит. И не годится для нормальных коммерческих проектов. А что бы все это у нас завелось, на коммерческом проекте, с 30 тыс продуктами, мы переписали 90% фронт офиса.
  4. Доброго времени суток. Прошу вашей помощи в освоении модулей оплаты для престы. Никак не могу разобраться в логике оплаты, что за чем следует. Вопросов много, надеюсь знатоки мне смогут пролить на них свет. начнем... Допустим есть модуль myPayment ( рассматриваю вариант для оформления заказа в 1 шаг), который позволяет нам оплачивать заказ допустим через платежную систему "Х" В корне лежит файл: mypayment.php Как я понимаю, в нем обязательно регистрировать 2 хука: "payment" и "paymentReturn". Вопрос, когда каждый будет выполнятся ? В какой момент времени и из какого контроллера. Ибо пробежавшиcь по коду, я нигде не нашел вызов хука payment, типо Hook::exec('payment',... controller/validation сюда человек попадает сразу после успешной валидации формы контактных данных покупателя, тут мы просто аксептим форму и .... Что дальше ? Если все ок, то отправляем его на "X" для оплаты, тогда где мы возьмем order_id если он еще не сформирован? А с "X" пользователь попадает... импровизируем controller/success, controller/fault. Которые, в свою очередь зарегистрируют успешный и не успешный платеж и дальше перекинут на контроллер OrderConfirmationController.php Который вызывает 2 хука, смысл одного из которых мне не ясен displayPaymentReturn - Зачем он нужен ? Что он делает ? displayOrderConfirmation - ну тут понятно, успешный заказ, и тд... В общем тупик....
  5. $this->registerHook('displayHeader') Регистрирую свой хук в престе. Сообщаю престе, что когда она начнет отрабатывать displayHeader в шаблоне. То что бы она не забыла про мой модуль. Заглянула в него и выполнила метот связанный с этим хуком. function hookdisplayHeader(); Кстатит я могу хоть так зарегать свой хук $this->registerHook('njhjahdjas') При регистрации преста увидит, что у нее в базе нет таких хуков и запишет его. Далее я объявляю свой метод выдачи инфы к этому хуку function hooknjhjahdjas(); А в шаблоне в нужном месте мы заставляем вывести все модули связанные с хуком {hook h='njhjahdjas'} В нашем случае это будет только 1 модуль.
  6. Kerm, повторяю, я взял по аналогии с каким-то дефолтным модулем престы(не помню каким), и реализовал на основе свой. Мне кажется это бредом, так как я того и добиваюсь. Так как оно завязано в престе, то в моем модуле отработает этот завязанный хук с престой, который сделает свою работу. Но на самом деле причина была в другом. Как я и писал выше: Я был прав. В системе всегда должн находиться только одни фронт контроллер, будь то index на главной, cms в статических страницах и тд... В своем модуле я стартанул свой контроллер, который создал вторую копию другого контроллера. Визуально ошибок не было, да и контроллер стартанул нормально. Но по факту все остальные файлы, которые подключались после старта моего котроллера в модуле(js css) попросту срубились, так как они подключались не к index контроллеру уже (если я нахожусь главной странице) а к моему, который я стартанул в модуле. Исправил благодаря статическим методам в своем контроллере. Вообще считаю это недоработкой со стороны престы.
  7. Ребят, подскажите, почему преста брыкается и не дает подключить мой js файл в моем модуле? Взял модуль по аналогии с другими. При инициализации зарегистрировал свой хук: $this->registerHook('displayHeader') Метод: public function hookdisplayHeader($params) { $this->context->controller->addJS('http://juliett.ccxx/js/city-select.js'); $this->context->controller->addJS(($this->_path).'js/city-select.js'); $this->context->controller->addCSS(($this->_path).'css/city-select.css', 'all'); } Метод отрабатывет, это проверено. Файлы тоже есть на месте, и проверку при добавлении проходят. Полез в classes/controller/controller.php Метод addJS($js_uri) В конце метода вывожу состояние свойства js_files И по началу все нормально, он набирает этот массив файлов, а потом что-то случается, и этот массив удаляется и становится новый, затем еще один и еще один(ну и в каких-то есть мои файлы добавленные), в общем перезаписывается. А в результате получается, что все, что было до первой перезаписи, отрисовалось. А все остальное нет. Как это побороть ? С виду ощущение что в системе всегда должна быть одна актуальная копия контроллера, и сайт должен с ней работать и тогда сам массив js файлов не будет сбрасываться, а постепенно наращиваться... В общем лирика-лирикой а js не инклудится. Что делать ? Как быть ?
  8. Доброго времени суток коллеги. Подскажите пожалуйста, как сделать для разных городов россии разные цены доставки? Изначально у престы логика зоны, есть зона, к ней привязываются страны, а в них регионы (state's), соответственно у меня в states залито, Москва, Санкт-Петербург, Казань, Нижний Новгород и тд. Так вот как сделать так, что бы для каждого региона была своя стоимость доставки ?
  9. Доброго времени суток. Подскажите пожалуйста, как подгрузить контент в нужный мне див блок. Делаю ajax запрос на свой контроллер, дальше стопор.... нужно получить данные, забиндить их в шаблон и вернуть уже отрендеренный шаблон. Как это сделать я не знаю, по этому прошу помощи.
  10. Ага, вот только у меня скрипт упирается в мaximum execution time, в 30 сек, поставил 60, сек, аналогично. На сайте 13 000 товаров. С 60 секундами успеваю обработать только тысячи полторы товаров.
  11. Доброго времени суток. Создал свой контроллер в престе, для своей уникальной страницы. Как мне забиндить линк от него в шаблон, точнее я знаю как забиндить, как сделать его чпушным? Есть что-то на подобии $link->setLink('my-link-name', 'controller-name'); ?
  12. Спасибо sors, но вопросов стало еще больше. Создам контролллер в папке overrite/controllers/front ? И контроллер будет по аналогии с, допустим cms контроллером из папки controllers/front ? Еще есть вопрос по поводу последовательности выполнения. Как я понимаю сначала выполняются контроллеры, потом модули. Следовательно, если модуль может принять переменную и записать ее в сессию, то я до нее не достучусь в текущей прогрузке страницы, только в следующей. И еще как проще и правильнее грузить контент аяксом, допустим выпадающий список, если я его буду юзать и в шапке и модуле заказов, допустим выбор города? Кхе, еще вопрос по поводу добавления хелперов разных. Как и куда нужно добавлять свои хелперы? Допустим какие либо статические методы, которые я могу заюзать в любом месте? И как мне достучаться из одного контроллера до другого?
  13. Доброго времени суток. Не столь давно начал разбираться в престе. И вот есть цель, как сделать страницу со своим php кодом. А цель такова, нужна страница с информацией о доставке, которая динамично изменялась бы от выбранного города пользователя. И на сколько я знаю, преста в своих страницах CMS не предоставлят возможность писать код, ну оно и понятно, эти CMS страницы немного для другого предназначены. Конечно можно родить пару костылей, придумать тэг php, написать текст в этом теге, затем при инициализации CMS страницы чекнуть теги, выдрать текст, между тэгами, а туда впендорить результат отработки кода. Либо создать свою php страницу, заинклудить туда ядро с боди и футером сайта, но это костыль. Неужели, такая простая задача, так сложно решается?
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More