Волков Николай

Волков Николай

С нами с 03 октября 2015; Место в рейтинге пользователей: #210
Волков Николай
20 октября 2017, 00:34
+1
Естественно, что на 1.12 пашет, т.к. ДО 3 был ready, а после уже нет.
Deprecated: document-ready handlers other than jQuery(function)

Due to historical compatibility issues there are a multitude of ways to set a document ready handler. All of the following are equivalent and call the function fn when the document is ready:

$(fn);
$().ready(fn);
$(document).ready(fn);
$(«selector»).ready(fn);

As of jQuery 3.0 the recommended way to add a ready handler is the first method, $(fn). As noted in the Event section, the $(document).on(«ready», fn) event form has slightly different semantics and was removed in jQuery 3.0.
Волков Николай
20 октября 2017, 00:30
0
github.com/bezumkin/miniShop2/blob/e8d674f0ebf80450c3bb3830dfd49413f44a84ff/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L278

Вот, пожалуйста…

Код скопирован с продакшена и прямо сейчас работает на одном сайте
Ты фортовый, что тут еще скажешь :-) Видимо ошибка не всплыла, т.к. во всех заказах по одному товару и поэтому ID в таблицах шли вровень :-)
Волков Николай
20 октября 2017, 00:27
1
+2
jquery.com/upgrade-guide/3.0/#deprecated-document-ready-handlers-other-than-jquery-function

В общем, начиная с 3 версии в jQuery иначе реализовано многое и я сталкивался со случаями, когда не работает:
$(document).ready(function() {
Если я не ошибаюсь, то все из-за того, что раньше ready был event, а сейчас это Promise. Лично я пишу так:
$.when($.ready).then(function(){...});
Волков Николай
19 октября 2017, 23:55
-6
Приходит сопляк, тыкает всем
Завидуешь, пенсионер, что у меня есть чем потыкать?
хамит всем через раз. То клоуны у него все, то школота.
Не понял, что именно через раз хамство? Клоуны или школота тебя обидели?

школота.
Школоло — это немного другое
Волков Николай
19 октября 2017, 23:16
-2
Теперь нам нужно добавить собственно наше поле «track» в нашу БД

Через phpMyAdmin перейдем в таблицу modx_ms2_orders -> структура и добавим поле в самый конец:
Имя: track
Тип: varchar
Длина: 255
Null: true
Если будет писаться компонент в modstore, то вместо этого надо:

$manager = $modx->getManager();
и уже им таблицу изменять
Волков Николай
19 октября 2017, 23:13
0
"msOrderAddress":{"class":"msOrderAddress", "on":"msOrderAddress.id = msOrder.id"}
Ошибка. У них связь:

"msOrderAddress":{"class":"msOrderAddress", "on":"msOrderAddress.address= msOrder.id"}
Волков Николай
19 октября 2017, 23:09
0
Требования к фронту сайта:
Jquery 3+ (на более низких версиях не тестировалось)
Третий бутстрап c jQuery выше 2.2.4 не работает… Мне кажется, что бутстрап — это одна из must have в плане поддержки для компонентов.
Волков Николай
19 октября 2017, 21:50
0
Можно ли как то написать свой тип tv с кастомным data-picker?
Можно! Extend вам в помощь.
Волков Николай
19 октября 2017, 21:35
0
Да и пока не забыл:
Сейчас, например, я захотел отказаться от Bootstrap в пользу Foundation (их же ещё используют, верно?) — мне придётся править и шаблоны, и чанки, и `@INLINE` сниппетов, т. е. происходит смешение представления и логики.
У тебя в докладе ничего не будет про коннекторы, modRequest и т.д.? modRequest тут для меня целым открытием стал. Да и последнее: на мой взгляд все из-за того, что приходим к MVVM…
Волков Николай
19 октября 2017, 21:26
-3
Я одного понять не могу: на картинке под графиком 4 движка, а кривых только 3… Где Drupal? :-D
Волков Николай
19 октября 2017, 21:13
-1
Потому что админка MODX удобна моим клиентам (серьёзно, некоторые прям чуть ли не посреди ночи звонили со слезами и соплями от радости, как им приятно работать с MODX после ДруМла Прессов на Битриксе)…
Хочется отметить 2 момента:
1) Удобство зависит ТОЛЬКО от разработчика. MIGX таблицы в количестве 20 штук под каждый слайд в слайдере до сих пор убивают :-)
2) docs.modx.com/revolution/2.x/administering-your-site/customizing-the-manager/manager-templates-and-themes только недавно об этом прочел и блин что же можно будет сейчас с темами админки творить то…
Волков Николай
19 октября 2017, 21:09
-6
Да, MODX в этом плане с каждым днём всё дальше и дальше от современных стандартов. :(

Если не секрет: что же в твоем понимании «современные стандарты»? Не хочу тебя сильно расстраивать, но это ТЫ
с каждым днём всё дальше и дальше
, а не CMF MODX. Кстати, последняя буква в слове CMF расшифровывается, как Framework и ты уже хотя бы словами
Для описанных задач больше подойдут и NodeJS и php фреймворки.
Подтверждаешь то, что я написал выше. Да и
Зачем использовать этот убогий MODX RESTful API
… Разумеется не потому, что ДЛЯ ТЕБЯ
есть круче и проще
, ибо 3 версия MODX угадай под что в приоритете пишется? Да, да, да под эти самые контроллеры, которые будут связывать… Ну да ладно. Честное слово, школоло, блин.
Волков Николай
19 октября 2017, 16:28
0
просто размещаю ссылки на css в шапке, а javascript в подвале — как обычно.
WebFontLoader гугловский + счетчики в head. Также добавил бы lazy load абсолютно всех картинок + для особенно крутых(платежеспособных) service worker кэширование.
Волков Николай
19 октября 2017, 16:25
0
Оптимизируйте загрузку видимого контента – на bootstrape все, заинлайнить стили видимой части в head не хочется.
не нужно инлайнить если не хочется. Но достаточно будет переместить критикал css в вверх станицы.
перемещение Critical Rendering CSS вверх особо не исправит эту проблему. Да, рендеринг CSS
переместится в потоки head'а и тем самым возможен прирост скорости, но… Как минимум это не решит проблему перерисовки с 0 в результату работы JS или т.п
И да, инлайнить тем более не нужно :-)
Волков Николай
19 октября 2017, 12:07
0
Собственно, я думал, что второй раз из кэша берется уже нормальные значения именно массивов, в отличии от первого раза, когда по каким-либо причинам значения еще не успевают обработаться… Собственно, я был прав. Ошибка была в том, что речь шла про msProductOption, а не поля из msProductData…
Волков Николай
19 октября 2017, 12:02
0
Так надо использовать сниппет msProductOptions :-)
Волков Николай
19 октября 2017, 11:29
0
Через плагины или т.п. модель расширяли?
Волков Николай
19 октября 2017, 11:00
0
{foreach $options as $key => $value}
<div class="form-group">
    <label class="col-md-2 control-label" for="option_{$name}">
        {('ms2_product_' ~ $key) | lexicon}:
    </label>
    <div class="col-md-10">
        {if $array | iterable}
            <select name="options[{$key}]" class="input-sm form-control" id="option_{$key}">
                {foreach $values as $value}
                    <option value="{$value}">{$value}</option>
                {/foreach}
            </select>
        {else}
            <input id="option_{$key}" type="text" class="input-sm form-control" name="options[{$key}]" value="{$value}" />
        {/if}
    </div>
</div>
{/foreach}
Я указал, чтобы в случаях, когда не массив, то вместо выпадающего списка обычный text
Волков Николай
19 октября 2017, 10:44
0
Если вы имеете ввиду стандартный почтовый ящик, то никак. Максимум привязать их друг к другу, т.к. обычная и корпоративная (к домену привязанная) почта это разные вещи.