Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #5
24 августа 2015, 18:52
0
Я готов. Но вряд ли без твоего согласия решусь коммитить. Ведь ежели чего поломается, меня же потом тухлыми помидорами закидают.
Кстати, там же Илья вроде уже дирижирует.
24 августа 2015, 18:32
0
Точно. Выставил вместо статических id динамические
id: config.id + '-class',
Теперь работает. Спасибо.
Но проблема с утечкой (хоть и не большой) в modExtra остается. Есть смысл в репозиторий modExtra писать?
23 августа 2015, 10:35
0
Тут же проблема не в самом принципе расширения, а в том, что не до конца продуман функционал. С таким же успехом можно было бы озаглавить топик «Как не надо программировать в MODX» или вообще обобщить «Как не надо программировать».
Прошу не относится критически, просто размышление.
П.С. Но к содержанию претензий нет, поэтому плюсанул.
23 августа 2015, 08:53
0
Зашел прочитать статью «Как не надо расширять MODX-процессоры», а тут баг репорт.
22 августа 2015, 12:05
0
В том то и дело, что теоретически, между получением и записью, другой пользователь тоже получит старое значение и увеличит. Практически получится увеличение на единицу, а должно на две единицы. Это не вариант.
Теоретически да, но практически вряд ли. Разница между этими операциями составляет доли секунды. Вероятность, что кто-то попадет как раз между, крайне мала. Думаю, что даже если постараться нажать одновременно с кем-то, то все равно не получится.
Ну а в случае использования PDO для таких страхов вообще нет почвы.
22 августа 2015, 07:45
+1
Вы не совсем понимаете суть транзакций. Их, как правило, используют для одновременного изменения нескольких записей. И если одну из операций выполнить не удалось, то нужно откатить уже проведенные. В вашем примере они не причем.
Хорошо, с транзакциями диалога не получается, может быть подскажите как на xPDO составить такой запрос
UPDATE VotesTable SET votes = votes+ 1 WHERE id = 10
На xPDO такой запрос можно сделать в 2 этапа:
1. Сначала получить количество голосов, увеличить на 1 и записать в переменную.
2. Выполнить тот запрос, который указан в конце вашего поста с подстановкой переменной из первого шага.
А можно сделать на PDO, как выше написал Василий.

П.С. Кстати, можно упростить ваш пример. Вместо
$c =$modx->newQuery('VotesTable');
$c->where(array(
	'id' => 10,
));
//Получили объект
$item = $modx->getObject('VotesTable', $c);
достаточно сделать так
$id = 10;
$item = $modx->getObject('VotesTable', $id);
21 августа 2015, 08:31
0
Проверьте, если ли папка tmp в /assets/components/dbadmin. Если нет, создайте.
20 августа 2015, 13:22
0
Даже у нас тут редко всплывает проблема взлома. А на joomla постоянно.
Был кипишь, когда AgelNash в открытую выложил дыру. Но потом вроде затихло.
А вообще лучше перебдеть.
20 августа 2015, 13:18
+2
Человек, ценящий чужой труд и чужое мнение, никогда не напишет
Отдельно про дескрипшн: не представляю, кому это надо
Ни один человек в мире не знает насколько хорошо вы можете себе что-либо представлять, чтобы считать ваше мнение авторитетным.
Я от этой болезни излечился 20 лет назад. Ни в коем разе не хотел вас обидеть. Просто перечитайте первую строчку моего предыдущего комментария.
П.С. Меня не расстраивают минусы. Главное, чтобы Вам помогало.
20 августа 2015, 12:18
0
Вот список всех шорткатов
20 августа 2015, 11:58
-1
Проще в настройках отключить дескрипшн для меню ...
Всегда забавляет подобная формулировка. Кому проще? Вам? Значит эта заметка не для вас. Кроме того, решение с отключением описания меню уже обсуждалось. Лично мне не нравится такой вид. Я предложил альтернативу. Вы лично против существования в мире альтернативных решений???
20 августа 2015, 10:48
0
Самое интересное, что оно добавилось. Видимо проблема с кэшем была.
20 августа 2015, 10:43
0
Ширина определяется не автоматически, хотя можно сделать и так. В моем примере только 2 колонки предусмотрено — width: 544px;
Кому надо 3 колонки — увеличиваем width до 816.
П.С. Я же говорю, что решение простенькое :) Да и пригодится единицам. Так что пулреквест будет мертворожденным.
20 августа 2015, 10:24
+1
Думаю, с вашей ценой вы скорее нарветесь на игнор, чем на обиды. Даже вами же предложенный объем работ (заниженный, кстати) не соответствует предложенной вами стоимости. Сейчас средняя цена фрилансера около 500 руб/час. Если считать день за 8 часов, то получаем 7 дней = 56 часов. Умножаем на 500 и получаем 28 тыс. р. И это только по вашей оценке. Вот и думайте.
20 августа 2015, 08:46
0
Упс. Коммент улетел не туда… метился в корень.
20 августа 2015, 08:29
0
Не думаю, что даже половина разработчиков меняет расположение этих папок. Но для безопасности лучше это сделать.
Перемещают обычно только core — выносят на уровень выше. А manager и connectors обычно просто переименовывают.
И еще вот совет
//Чтобы исключить подмены HTTP_HOST, нужно в конфиге вместо
$http_host= $_SERVER['HTTP_HOST'];
// указать свой хост или определить константу
define('MODX_HTTP_HOST', 'mysite.com');
// или в настройках контекста указать site_url или вызывать тег [[!++site_url]] некэшированным
19 августа 2015, 20:46
0
Зачем сразу 10 тыс. предлагать. Я бы посоветовал начать с 3 тыс. Подождал бы годик, потом поднял бы на тыщу.
19 августа 2015, 20:26
0
У меня при обновлении выдало ошибку обновления таблицы modManagerLog и вот такое в журнал пишет
[2015-08-19 20:20:25] (ERROR @ /connektors/index.php) Error 42S22 executing statement: 
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'modCategory.rank' in 'field list'
)
19 августа 2015, 15:59
0
Теперь зависимости пакетов появились. Может это чего ломает.