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

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

С нами с 31 января 2013; Место в рейтинге пользователей: #5
25 марта 2016, 11:58
0
Если ты про ошибку в окне привязки периодов к объектам, то обновись еще раз. )

П.С. Прошу прощения у автора за оффтоп.
25 марта 2016, 11:49
-4
мой стаж программирования не позволяет мне похвастаться крупными вкладами в open source проекты, но я за бесплатное ПО и за улучшение его качества.
Это и есть ответ на вопрос. Вот когда сделаешь что-то большое, значимое для себя, вот тогда и решишь для себя как реагировать, когда какой-нибудь новичок в приступе борьбы за все хорошее будет копировать твое творение. Если ты найдешь и выпустишь много элементарных вещей за 190 руб. никто в обиде не будет. Главное найти хотя бы одну такую вещь.

Ещё раз повторю, дело не в деньгах. Ты не задумывался, почему я более крутые дополнения делаю бесплатно, а сайтстатистик за деньги? Только из соображений «внутренней» порядочности и из уважения к Валентину из АртДевю. Я сделал свое позже. А мой доход позволяет мне покупать новую Ауди А4 каждый месяц и ещё немного останется. Мне эти 300 руб. вообще никуда не упирались. Вопрос только в уважении разработчиков друг к другу. Ваше отношение с Гвоздем к уважению ясно, но Михаил проявил себя вполне достойно. Настоящий мужик. Уважаю.

Лично я готов сделать свое дополнение бесплатным хоть сейчас. Уверен Валентин не будет против.
25 марта 2016, 11:21
0
Да, pdoFetch решает проблему со скоростью. По-моему, Василий писал, что оптимизировал вызов getChunk() в цикле — т.е. он зачитывает его в кеш при первом обращении и потом достает его при повторном запросе. Т.е.
foreach ($rows as $row) {
	...
	// Первый запрос в базу, остальные в кэш
	$output .= $pdo->getChunk('name', $row);
}
Но мой кусок кода будет чуть-чуть быстрее только из-за многочисленных проверок методов класса pdoFetch, сделанных для универсальности и проверки разных условий.

П.С. Кстати, ты проверил годовые периоды?

П.П.С. И еще хотел сказал про феном, но Василий уже ответил.
25 марта 2016, 08:53
-5
И не поймешь до поры до времени. Перечитай мой последний комментарий.
Исходя из этого, у меня получается лишь один вывод:
Не получается. Разговор только о нашем тесном сообществе, где многие разработчики друг друга знают уже давно.

У меня стоит задача сделать себе на сайт промокоды. Вот я сделаю его и выложу здесь, чтобы послушать аплодисменты. А потом чуть допилю и сделаю купонатор. Тоже для аплодисментов. Ни строчки кода не скопирую с твоих компонентов. А чё, здоровая конкуренция. И тогда логика тебе в руки, а эмоции заверни в газету и убери на чердак.

Никого не хочу обидеть. Ответ чисто гипотетический, если бы вдруг меня об этом спросили.
25 марта 2016, 07:33
0
У меня опечатка в коде. В первой строчке должно быть так
$rows = $modx->getCollection('modResource', $q); // Про это я говорил заменить на newQuery.
Вот поправленный вариант
// Если использовать pdoTools
$where = array(); // Указать необходимое условие
$rows = $pdo->getCollection('modResource', $where); // Второй параметр: или id, или JSON, или массив
$output = '';
// Нужно указать название чанка
$chunk= $modx->getChunk('чанк');
foreach ($rows as $row) {
	// В чанке плейсхолдеры должны совпадать с именами ключей массива $row
	$modx->setPlaceholders($row);
	$modx->getParser()->processElementTags('', $chunk, false, false, '[[', ']]', array(), 10);
	$modx->getParser()->processElementTags('', $chunk, true, true, '[[', ']]', array(), 10);
	$output .= $chunk;
	$modx->unsetPlaceholders($row);
}
25 марта 2016, 07:23
0
Какой проблемы?
24 марта 2016, 20:05
-4
Михаил, не надо меня убеждать, что мои эмоции неправильные. Почему Василий обиделся на Володю за копирование небольшой части офиса (пользовательских контроллеров)? Ты сможешь это понять, когда будешь в такой же ситуации.
Я сделал сайтстатистик, чтобы заменить у себя HitsPage. И сделал его платным только из-за того, что считаю неправильно отбивать у них пользователей. Поэтому сделал выбор для пользователя — бесплатно меньше функций, платно больше. И ребятам из АртДевю не обидно. А чтобы пользователь чувствовал вес платного варианта, добавил ещё usersOnline, который вы и дарите тут.
Вопрос не в деньгах, а в солидарности разработчиков и уважении друг друга. Представь, что я сделаю свой бесплатный компонент, который копирует твой бесплатный. Т.е. ты ничего не потеряешь, но какие получишь эмоции?
24 марта 2016, 19:00
-3
Я разделил с тобой радость копирования функционала моего дополнения.
24 марта 2016, 18:57
0
Михаил, я имел ввиду свое дополнение.
24 марта 2016, 18:28
0
Да, стоит. Точно, плагин проверяет. Вот какое хорошее дополнение, поставил и проблемы сами решаются.
Ещё разделяю твою «радость» когда кто-то дарит функционал твоего платного дополнения.
24 марта 2016, 18:01
0
Еще одна встречающаяся проблема — после блокировки пользователь может делать на сайте все, что угодно, пока жива его сессия.
Вроде уже нет такой проблемы.
24 марта 2016, 08:43
0
Забыл сказать, ещё и папку админки не светишь.
24 марта 2016, 08:17
0
С токенами есть в AdminTools — вводишь логин и на почту получаешь ссылку для входа. Никакие переборы не страшны. Можно выпилить.
22 марта 2016, 20:06
1
-1
На вскидку.
...
// Я бы заменил getCollection() на newQuery(). Быстрее и меньше памяти жрет.
$rows = $pdo->getCollection('modResource', $q);
$output = '';
// Нужно указать название чанка
$chunk= $modx->getChunk('чанк');
foreach ($rows as $row) {
	// В чанке плейсхолдеры должны совпадать с именами ключей массива $row
	$modx->setPlaceholders($row);
	$modx->getParser()->processElementTags('', $chunk, false, false, '[[', ']]', array(), 10);
	$modx->getParser()->processElementTags('', $chunk, true, true, '[[', ']]', array(), 10);
	$output .= $chunk;
	$modx->unsetPlaceholders($row);
}
На 30 объектах время сократится раза в 2.
22 марта 2016, 18:01
0
Самый простой вариант оптимизации — это вынести getChunk из цикла. Т.е. вызывать его один раз, а не 30.
21 марта 2016, 08:24
0
Не в ногу вы идете с Росстатом. У них инфляция доли процента в месяц, а вы сразу на 20 поднимаете.
Ещё стоимость садика подняли на 25%. Придется выбирать — или сайт содержать или детей в садик водить. :))
21 марта 2016, 07:11
0
Переименованы всего лишь 2 папки — коннекторы и админка. И этому «всё ни по чём» детектору оказалось «не по зубам». :)
15 марта 2016, 22:59
+1
$assigned   =  $instance;
Этот код клонирует объект $instance и записывает в переменную $assigned указатель на клонированный.
Вообще не так. Подумай, зачем тогда нужна конструкция clone? И почему тогда, если это разные объекты, изменение $assigned изменяет $instance?

На самом деле объект всегда один (начиная с PHP 5). Но в первом случае создается ещё один псевдоним объекта и получается, что две переменных ссылаются на один объект. Когда мы разрываем одну связь ($instance = null), вторая переменная ($assigned) всё ещё хранит ссылку на объект. Работая с двумя переменными, мы, на самом деле, работаем с одним объектом. Но удалить можно только связь с объектом. И когда удалится последняя связь, то удалится и сам объект. Похоже на жесткую ссылку в Linux.
А во втором случае, переменная $reference — это прямая ссылка на объект в памяти. И в данном случае, присваивая переменной $reference NULL, обнуляется не связь, а сам объект, т.е. в память по адресу объекта записывается NULL.
13 марта 2016, 13:41
0
А так не работает?
$q->where(array('MONTH(date)' => 4));