Всего 123 801 комментарий

Vladimir
01 мая 2023, 11:55
0
Я использую для бэкапа бд этот скрипт github.com/ifsnop/mysqldump-php/blob/master/src/Ifsnop/Mysqldump/Mysqldump.php хорошо работает бэкапил бдшку с 50к товарами, и кучей страниц, конечно же через крон
Николай Савин
01 мая 2023, 09:54
+1
exec на шаред хостингах обычно отключен.
Правда это не отменяет того, что подобные операции через shell выполняют по SSH подключению
Дима Касаткин
01 мая 2023, 02:29
0
Дамп и сразу архивация, через php shell_exec вот так:
mysqldump -ERv -u[user] -p[password] --databases [db_name] | gzip > dump_name.sql.gz
Но @Илья все равно спасибо что поделился решением!
deleted
30 апреля 2023, 21:51
0
дамп базы можно одной строкой через exeс сделать, правда не помню как
Павел
30 апреля 2023, 21:50
0
Спасибо, я что-то начал городить по типу
{set $idparenrt = $modx->getObject('modResource', $modx->resource->get('parent'))}
Денис Усманов
30 апреля 2023, 19:43
+1
В чанке article вывести [[+parent]]
Александр Мельник
30 апреля 2023, 09:25
+6
Человек решил свою проблему, поделился и молодец.
Использовать нам или нет — это уже наше дело. Кто может — напишет лучше. Кто не может — возьмет этот пример. Зачем прям минусовать заметку.
weranda
30 апреля 2023, 09:09
0
Есть два вопроса к вам:
1. Знаете реализацию того, что нужно?
2. Аргументировать возможность загрузки файла — почему не очень хорошая идея?
Андрей
30 апреля 2023, 00:03
0
Выпиливать проверку авторизации в компоненте. Но давать возможность загрузить файлы гостю не очень хорошая идея.
Павел Бигель
29 апреля 2023, 22:47
0
Что это? Зачем это?

Удачи выполнить такой запрос на более менее большой бд
$result = $connection->query("SELECT * FROM $table");
Илья
29 апреля 2023, 12:08
0
Данный скрипт был написан для сайта на котором BackupMODX, по ряду причин не устанавливался корректно и не выполнял свои функции.
Артур Шевченко
28 апреля 2023, 22:05
+1
mSync всё требуемое может. Более того, в mSync руками можно ничего не прописывать, а задать совокупность характеристик товара, по которым он будет искать соответствие. А если вдруг что-то потребуется чего из коробки нет, всегда можно плагином докрутить.
Денис Усманов
28 апреля 2023, 16:02
-1
Могу дать развёрнутое объяснение по данной задаче, напишите мне в ЛС в ТГ (указан в моем профиле). После обсуждения в ЛС, могу сюда сам или Вы самостоятельно напишите, какое я предлагаю решение. И скажу заранее, возможно mSync приобретать даже не обязательно…
Руслан Алеев
28 апреля 2023, 13:15
0
В FormIt есть встроенная защита от спама, в виде математического уравнения, см. docs.modx.com/current/ru/extras/formit/formit.hooks/math Но мало видел, что ее используют, хотя, думаю, что нормально работает.
Эдуард
28 апреля 2023, 13:00
0
На многих сайтах я делал простой append (точнее prepend) в форму с фиксированной строкой, не заморачивался с генерацией случайно строки.
Спама было мало, но тоже подтверждаю на некоторых сайтах спам-боты пробивали и сыпался спам, тут как повезет. Так как способ простой, то ставил в формы по умолчанию на все сайты. Защищает от ботов, которые не умеют в JavaScript (интересно много таких сейчас?)
Денис Усманов
28 апреля 2023, 10:04
0
Тоже хотел сделать именно при наведении, но решил, напишу сначала простенькую статью. А там глядишь люди дадут хорошие советы, и я перепишу статью… Благодарю! За это утро, мне уже несколько человек дали хорошие решения, которые я обязательно тут покажу!
Константин Ильин
28 апреля 2023, 10:00
+1
Если вкратце у меня работает так (Подсмотрено у Артур Шевченко, спасибо ему)
1. тоже генерируется рандомная строка
2. тоже проверяется через contains
3. и полю nobot эта рандомная строка присвоится только(!) при наведении на форму, а у вас как я понял сразу.

У меня полет нормальный
{set $secret = md5(rand(0,999999999))}
{'!AjaxForm' | snippet :[
    ....
    'secret' => $secret ,
    'validate' => 'vscval:contains=^'~$secret~'^'
    ....
]}

//В форме
<input type="hidden" name="vscval" style="display:none" data-vscval="{$_pls['secret']}">

//Js
function watchForms(){
    if(document.querySelector('form')){
        document.querySelectorAll('form').forEach((ff) => {
            ff.addEventListener('mousemove', (e) => {
                if(ff.querySelector('input[name="vscval"]')){
                    let inpSecret = ff.querySelector('input[name="vscval"]'),
                        inpSecretData = inpSecret.getAttribute('data-vscval');
                    if(inpSecret.value == ''){
                        inpSecret.value = inpSecretData;
                    }
                }
            });
        });
    }
}
watchForms()
Андрей Степаненко
28 апреля 2023, 09:24
0
Есть отличная статья на мой вгляд
Показывает что сейчас произошло с GPT
habr.com/ru/articles/727092/

Процесс идет и его не остановить)