vit

vit

С нами с 03 июня 2022; Место в рейтинге пользователей: #172

Статичный сниппет не работает INSERT

Здравствуйте, помогите не могу разобраться
создал статичный сниппет
и хочу данные записать в БД
делаю так, но не работает
$file_path="3";
    $data3 = array('file_path' => $file_path); 
    $table = 'table_name';
    $query = $modx->prepare("INSERT INTO `$table` (`file_path`) values (:file_path)");
    $query->execute($data3);
В обычном сниппете все норм, проблема только в статичном
Как сделать запись в бд в статичном сниппете?
выдает ошибку
Uncaught Error: Call to a member function prepare() on null
vit
vit
28 января 2023, 17:14
modx.pro
459
0

TicketComments не работает

Не дает опубликовать, точнее форма появляеться, заполняю ее нажимаешь отправить, но не чего не сохраняется. в чем проблема?
[[!TicketComments?
&allowGuest=`1`
&autoPublish=`1`]]
регистрации на сайте нет, нужно чтобы гости могли оставить коммент
vit
vit
29 ноября 2022, 19:10
modx.pro
515
0

Проблемы с буквой И

Установил чистый MODX 3
Все работает кодировка везде utf 8
Но когда я ввожу в админке или на сайте И
То показываются красозябры.
Что делать подскажите
vit
vit
27 ноября 2022, 19:01
modx.pro
1
495
0

передать из сниппета в чанк

Подскажите как я могу переать из сниппета в чанк данные?
$json = '{"1":"один","2":"два"}';
$assoc = json_decode($json, true);

foreach ($assoc as $title) {
  $output .= $modx->getChunk('tpl.title2',
                              array('title2' => $title));
}
return $output;
чанк такой
<input type="text" name="title2[]" value="[[+title2]]">
но при выводе в formIt
<div class="input-append">
      <input type="text" id="title" name="title2[]"value= "[[title2]]">
      <span class="btn" id="add_title">+</span>
      <div id="addtitles">[[!titleAdd]]</div>
    </div>
всегда показывается первый Input пустой, хотя там должно быть первое значение из [[+title2]], а они показываються только в [[!titleAdd]]
как сделать что бы первое попадало сюда
vit
vit
06 ноября 2022, 21:05
modx.pro
574
0

FormIt валидатор

в FormIt есть встроенный валидатор
password2:password_confirm=^password^
можно ли, как то с помощью этого валидатора проверить что то типо этого
input1:password_confirm<^input2^
нужно узнать что одно поле больше другого или это только через сниппет получиться сделать?
vit
vit
05 ноября 2022, 20:19
modx.pro
458
0

Динамический input

Доброе утро, помогите решить проблему
добавляю поле в FormIt динамически
но в БД записывается просто Array (а должны все значения из полей)
подскажите куда копать
....
<input type="text" value="[[!+title]]" class="form-control" id="title" name="title[]" placeholder="79991112233">
...
сниппет
if (!$_POST['list']) {
    $processor = '_list/create';
} else {
    $_POST['id'] = $_POST['list'];
    $modx->setPlaceholder('id', $_POST['id']);
    $processor = 'list/update';
   
}
$processorProps = array('processors_path' => $modx->getOption('core_path')
               . 'components/list/processors/');
$response = $modx->runProcessor($processor, $_POST, $processorProps);
if ($response->isError()) {
    $hook->addError('process_error', $response->getMessage());
    return false;
}
return true;
vit
vit
02 ноября 2022, 11:51
modx.pro
875
0

csv загрузка

Здравствуйте, помогите пожалуйста.
Есть форма загрузки файла (создал документ)
И есть обработчик (создал статичный снипет)
код полность работает прсто на сервере но в (MODX не в какую)
<form action="upload.php" method="post" enctype="multipart/form-data">
      <div class="input-group">
        <div class="custom-file">
          <input type="file" class="custom-file-input" id="customFileInput" aria-describedby="customFileInput" name="file">
          <label class="custom-file-label" for="customFileInput">Select file</label>
        </div>
        <div class="input-group-append">
           <input type="submit" name="submit" value="Upload" class="btn btn-primary">
        </div>
      </div>
  </form>
снипет он видит точно так как выдает ошибку и так же знает что есть такая таблица
вот обработчик
<?php
if (isset($_POST['submit']))
{
$fileMimes = array(
        'text/x-comma-separated-values',
        'text/comma-separated-values',
        'application/octet-stream',
        'application/vnd.ms-excel',
        'application/x-csv',
        'text/x-csv',
        'text/csv',
        'application/csv',
        'application/excel',
        'application/vnd.msexcel',
        'text/plain'
    );
 if (!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'], $fileMimes))
    {
 
$csvFile = fopen($_FILES['file']['tmp_name'], 'r');
  fgetcsv($csvFile);
 while (($getData = fgetcsv($csvFile, 10000, ",")) !== FALSE)
            {
                $name = $getData[4];
 $data3 = array('name' => $name); 
    $table = 'modx_test';
    $query = $modx->prepare("INSERT INTO `$table` (`name`) values (:name)");
    $query->execute($data3);

            }
 fclose($csvFile);
}
    else
    {
        echo "Please select valid file";
    }
}
vit
vit
21 октября 2022, 00:11
modx.pro
504
0

Custom validators FormIt

Нашел в документации FotmIt такой снипет
$value = (float)$value;
$success = $value > 1000;
if (!$success) {
    // Note how we can add an error to the field here.
    $validator->addError($key,'Not big enough!');
}
return $success;
Не особо понял где указывать свое поле и как должен выглядеть сама форма и валидатор.
Если не сложно пришлите пожалуйста небольшой пример. Заранее благодарю
vit
vit
16 октября 2022, 11:18
modx.pro
1 563
0

Переменная из Снипита в шаблон

сделал снипет, который передирает таблицу
$sth = $modx->query("SELECT * FROM clients");
print 'Количество клиентов - '.$sth->rowCount();?></br><?
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    foreach ($result as $data) {
    $name = $data['name'];
    }
$modx->setPlaceholder('output',$name);
но почему то не хочет выводить ее в шаблоне
[[snipet]]
[[+output]]
что делаю не так
в $name выводятся все поля из БД задача записать каждле в radio кнопки и вывести их
vit
vit
11 октября 2022, 17:27
modx.pro
904
0

PdoPage фильтр

Добрый день, помогите пожайлуйста не могу понять как реализовать фильтр
вывожу через PdoPage
<div id="pdopage">

    <div class="rows">
 [[!pdoPage?
    &class=`BasicSetting`
    &tpl=`tpl.basicSetting`
    &element=`getSheets`
    &limit=`2`
&where=`{"created_by":[[!+modx.user.id]], "title":[[!title]]}`
&ajaxMode=`button`
]]
[[!+page.nav]]
</div>
</div>
как сделать, так чтоб при вводе в то поле
<p>Title: <input type="text" name="title" /></p>
происходила выборка, т.е. записывалось в
&where=`{"created_by":[[!+modx.user.id]], "title":[[!title]]}`
буду благодарен если скинете пример
vit
vit
03 июня 2022, 10:25
modx.pro
959
0