Fi1osof

Fi1osof

С нами с 05 мая 2014; Место в рейтинге пользователей: #10
Fi1osof
01 декабря 2016, 16:53
1
+1
Лучше все-таки удалять средствами самого MODX, так как как правило нужные зависимости прописаны и связанные объекты удаляются автоматом. В phpMyAdmin вы можете просто пропустить связанные объекты.
Ваша проблема сейчас связана с тем, что MODX просто не может получить весь объем документов из-за нехватки времени и/или памяти.
Сделайте так: в консоли пропишите такой код:

ini_set("max_execution_time", 0);
ignore_user_abort(true);

$q = $modx->newQuery("modResource", array(
	"deleted"	=> 1,
));

print "<br />Документов на удаление: " . $modx->getCount("modResource", $q);

$q->limit(10);

foreach($modx->getIterator("modResource", $q) as $doc){
	$doc->remove();
}

print "<br />Удалено";
Выполняйте, пока не будут удалены все документы. Лимит сами скорректируйте исходя из того, как быстро будет выполняться скрипт.

Не забывайте предварительно сделать бэкап базы данных.
Fi1osof
01 декабря 2016, 16:09
0
Кстати, на счет примитивности: тут API тоже не сложное, но важно было еще сохранять в базе смски. Сейчас все попытки отправки записываются в базу данных и можно позже запросить статус, что довольно удобно. Планирую в ближайшее время сделать еще интерфейс произвольной отправки сообщений прям через управление пользователей (как в switchUser сделано «Авторизоваться», так будет «Отправить сообщение» если номер указан). На отдельных проектах вполне может пригодиться такая функция для оперативного уведомления.
Fi1osof
01 декабря 2016, 15:59
+4
Все, компонент опубликован. modstore.pro/packages/alerts-mailing/smsgate
Fi1osof
01 декабря 2016, 15:02
0
Спасибо! Гляну.
Fi1osof
01 декабря 2016, 14:58
0
Спасибо! Посмотрю.
Fi1osof
01 декабря 2016, 14:57
0
letsads.com тоже Украинский, и норм все. Гораздо интересней вопрос сколько у них стоит официальный канал, а не интернетовский, но позже посмотрю детальней. Спасибо!
Fi1osof
01 декабря 2016, 14:55
0
Это не стоит расценивать как дыру в безопасности напрямую. Это просто логическая ошибка. И речь не о том, что ей можно воспользоваться для взлома, а о том, что логика не позволяет корректно обрабатывать ошибки. Вот при сохранении документа вы же можете прописать плагин, который в случае чего будет говорить «Документ нельзя сохранить потому-то и потому-то», а вот здесь этого не получается сделать.
Fi1osof
01 декабря 2016, 14:53
0
Это просто в плагине прописывается и все. Не обязательно 'false', можно написать 'bla-bla-bla'
Fi1osof
01 декабря 2016, 10:40
0
Именно с кавычками. false без кавычек — это логическое нет, и оно empty(). А вот с кавычками — это строчное 'false' 5 символов, и это не равно empty(). С false без кавычек и не будет работать.
Fi1osof
01 декабря 2016, 09:28
0
У многих sms-провайдеров жены указаны в районе +-40 копеек
Дешевые жены у них...
Опечатка по Фрейду))

Что включает в себя компонент для работы? Сниппет? Интерфейс в админке?
Службу. То есть
$smsGate = $modx->getService("smsGate");
$smsGate->send($phone, $message);
Еще есть таблица в БД, куда складываются отправляемые СМСки и их статусы. Есть метод проверки статуса СМС, при этом ее статус в БД обновляется при запросе.

Будут продажи и будут пожелания: будут интерфейсы и прочие плюшки.
Fi1osof
28 ноября 2016, 07:43
+1
Вот еще отличный кейс:
Переношу сайт с вордпресса, а там УРЛы были не ЧПУ. На новом сайте они ЧПУ, ну и просто IDшники не совпадают. Сложность еще оказалась в том, что все УРЛы с параметром $_GET['p'] ведут на корень сайта, так что 404-ую это не отдает, просто главная страница и все.
Задача состояла в том, чтобы роутер написать (который бы подмену документов делал и отдавал 404-ые для не найденных документов), ну и отслеживать это дело потом, чтобы видеть какие страницы вдруг не были найдены.
Визуально получилось вот так: joxi.ru/4Ak3wb9tMxnWWA
Можно легко сделать выборку всех страниц с таким параметром, и у которых статус не 200 (то есть не ОК) joxi.ru/Dr8Ke8OIkV5NkA
Отличная помощь в отладке проекта. И в ядро компонента не надо лезть, все делается на уровне плагина. Вот плагин вместе с кодом роутинга: gist.github.com/Fi1osof/726cb632b4861c4df8aee00d7863559e
Fi1osof
27 ноября 2016, 18:09
+1
Не за что!
Не забывайте, что скрыть или открыть по умолчанию те или иные поля вы можете самостоятельно на уровне плагина. Пример я описывал здесь. Все колонки дефолтные находятся в массиве $controller->requests_grid_columns
Fi1osof
27 ноября 2016, 16:14
+1
IP тоже есть, просто несколько полей по умолчанию скрыты. joxi.ru/D2PjRW0SdMzgvr
Fi1osof
27 ноября 2016, 14:16
+1
Выложил 2.6.3 с данными реферера и юзерагента, и поиска по ним joxi.ru/KAxeRO7c4WXXpr
Поиск стандартный для SQL: % — любое количество любых символов, _ — один любой символ.
Можно впереди ставить восклицательный знак, будет расценено как отрицание.
Fi1osof
25 ноября 2016, 15:25
0
Обсудить здесь или в своих кругах? Просто вроде здесь самое что ни на есть обсуждение.
Fi1osof
25 ноября 2016, 14:59
0
Я детали не раскрываю. И, как мне кажется, клиенты в общих чертах должны понимать у кого с кем какие взаимоотношения, здесь нет коммерческой тайны.
Вы лучше скажите, планируете ли поправить соглашение и убрать положение о том, что возврат можно получить даже после скачивания программного продукта?
Fi1osof
25 ноября 2016, 14:38
+1
Спасибо!
Свою позицию высказал ниже.
Fi1osof
25 ноября 2016, 14:35
-2
Вот это я считаю в корне не правильно. @Леонид, дай комментарии, плиз.
Я официально заявляю, что возвратов никаких не буду делать. Магазин, если ему хочется, может выполнять возвраты, но это уже его воля и ему в минус. У меня по агентскому договору не прописано необходимости выполнять возврата денежных средств по первому требованию, так что я этого выполнять не буду. А де юре у меня отношения с самим магазином как с агентом, а не с конечным клиентом. Оплату же не я напрямую получаю.
Fi1osof
25 ноября 2016, 13:36
+1
Вот это уже больше похоже на правду.