Антон

Антон

С нами с 17 ноября 2015; Место в рейтинге пользователей: #527
Антон
26 июля 2022, 22:18
0
ломаю голову над подобной же ситуацией. Файл летит на сервер, но не отображается в TV в самом документе. Тив ввода выбран файл. Вам удалось победить эту тему?
Антон
26 июля 2022, 21:37
0
с именем решил вопрос, добавив секунды-минуты, проблема в самом главном. Файл не передается в TV video. На сервер летит, в папку кладется, в самом документе твшка пустая.
Антон
26 июля 2022, 11:51
0
С именем файла согласен, косяк, нужно хотя-бы время добавить, чтобы перезаписи не было. Основной вопрос на какое событие вешать плагин? Ресурс создан из фронта и пока не опубликован, висит в не активном состоянии. Вчера перечитал все существующие события, ничего не подошло.
Антон
19 июня 2022, 20:05
0
после переноса на хостинг в логах стал ругаться:
/home/httpd/vhosts/site.com/httpdocs/core/components/assetstv/elements/tv/input/assetstv.class.php 78
PHP warning: implode(): Invalid arguments passed
и после сохранения стал исчезать заполненный alt для изображений.
Антон
09 июня 2022, 21:53
0
такая конструкция вызывает ошибку:
Fatal error: Uncaught Error: Call to a member function getTVValue() on null in C:\OSPanel\domains\ave.com\core\cache\includes\elements\modsnippet\38.include.cache.php:97 Stack trace: #0

Вызов первого изображения делаю таким образом:
[[!pdoResources?
&parents=`6`
&limit=`30`
&sortby=``
&tpl=`mainpage_model_tpl`
&includeTVs=`assetsTV,name`
]]
Сам mainpage_model_tpl:
<a class="slider_item" href="[[~[[+id]] ?&scheme=`full`]]" style="background-image: url([[!assetsTV? &resId=`id` &tv=`assetsTV` &tpl=`@CODE:[[+atv.url]]` &limit=`1`]])">
<div class="slider_item__tags">
....
Что не так?
Антон
09 июня 2022, 00:04
0
Добрый вечер!
Подскажите, как вытащить из assetsTV ссылку на первую картинку из группы галереи? Пытаюсь через pdo, ничего не получается:
[[!pdoResources?
&parents=`6`
&limit=`30`
&sortby=``
&tpl=`mainpage_model_tpl`
&includeTVs=`assetsTV,name,hour_price`
]]
<a class="slider_item" href="[[~[[+id]] ?&scheme=`full`]]" style="background-image: url([[!assetsTV? &resId=`` &tv=`assetsTV` &tpl=`assetsTV-tpl`]])">
Антон
06 июня 2022, 21:51
0
Друзья, подскажите как здесь работает водяной знак. Вижу в настройках ТВ следующий механизм вывода:
<img src="'+url+'" width="'+tmb_width+'" height="'+tmb_height+'" alt="'+alt+'" title="'+description+'" class="thumb"/>
Не пойму как это коррелирует с выводом самого ТВ:
<img class="media picture-media" src="[[+atv.url]]" alt="[[+atv.alt]]"/>
Антон
27 января 2021, 15:23
0
как я понимаю, regexp проверяет поле на соответствие заданному формату. Это не проверка на запрет цифровых символов
Антон
26 января 2021, 15:48
0
с вами все Ок) в последнее время активности какой-либо вообще нет, форум умирает по-моему. На modx.com обсуждение проблем идет, здесь вообще тишина
Антон
26 января 2021, 14:55
0
Просто заменить $_POST на $_FILES.
Отсутствие каких-либо ответов наводит на мысль о необходимости перехода на modx.com. Форум как-то омертвел по-моему…
Антон
23 января 2021, 13:28
0
не сработало. Отключил сниппет проверки количества фото и сделал правки в default.js. Но никакого уведомления 'Файлов должно быть не меньше 3' не появилось и форма не отправилась
Антон
23 января 2021, 13:22
0
Что в это поле класть? Возможный выбор уже есть внутри селекта со значениями же
Антон
23 января 2021, 13:11
0
теперь This field is required даже если мультиполе заполнено
Антон
23 января 2021, 12:57
0
для мультивыбора, насколько я знаю, required[]
Антон
23 января 2021, 11:49
0
можете как-то подробней расписать, я пытаюсь внести измы в код от программиста, который убежал)
Антон
23 января 2021, 11:29
0
Сделал ЛК по аналогии с вашей инструкцией. Для Загрузки изображений к тикету сделал проверку на количество загружаемых фото меньше 3х нелзя. Проверяю сам, проверка работает. Но иногда проскакивают тикеты с количеством изображений меньше 3х. Голову уже сломал, в чем проблема. В логах висит ошибка:
core/cache/includes/elements/modsnippet/33.include.cache.php	87
Ошибка при загрузке файла. Код ошибки: 4
Сниппет 33 строка 87
<?php
// Получить профиль пользователя
$profile = $modx->user->getOne('Profile');
// Получить значение поля photo
$pathToPhoto = $profile->get('photo');
// Установить полю photo текущее значение
$hook->setValue('photo',$pathToPhoto);

// Запрос на удаление картинки (глобальный массив POST имеет ключ delete-photo-btn со значением отличным от NULL)
if (isset($_POST['delete-photo-btn'])) {
  // Если поле photo не пустое, то..
  if ($pathToPhoto) {
    // Сформировать полный путь к файлу (фото)
    $fullPathToPhoto = $modx->config['base_path'].$pathToPhoto;
    // Если файл (фото) есть, то удалить его
    if(file_exists($fullPathToPhoto))
      unlink($fullPathToPhoto);
    // Установить полю photo пустое значение
    $hook->setValue('photo','');
  }
}

// Запрос на обновление (глобальный массив POST имеет ключ login-updprof-btn со значением отличным от NULL)
if (isset($_POST['login-updprof-btn'])) {
  // Допустимые расширения (jpg, png, jpeg)
  $validExt = array('jpg', 'png', 'jpeg');
  // Директория для хранения фото пользователей
  $pathToPhoto = $modx->config['base_path'] . 'assets/photouser/';
  // Имя файла пользователя 
  $nameFile = $_FILES['photo']['name'];
  // Получить расширение загруженного пользователем файла в нижнем регистре
  $extFile = mb_strtolower(pathinfo($nameFile, PATHINFO_EXTENSION));
  // Временное имя, с которым принятый файл был сохранён на сервере
  $tmpFile = $_FILES['photo']['tmp_name'];
  // Если файл загружен посредством HTTP POST и ошибок в процессе загрузке не возникло, то...
  if ((is_uploaded_file($tmpFile)) && !($_FILES['photo']['error'])) {
    // Проверям соответствует ли расширение файла допустимому. Если всё хорошо, то...
    if(in_array($extFile, $validExt)) {
      // Формируем имя файлу (фото)
      $nameFilePhoto = 'user'.$modx->user->get('id'). '_'. time(). '.'. $extFile;
      // Получаем полное имя файла (фото)
      $fullNameFilePhoto = $pathToPhoto . $nameFilePhoto;
      // Перемещаем временный файл на новое место $fullNameFilePhoto. Если всё прошло успешно, то...
      if (move_uploaded_file($tmpFile, $fullNameFilePhoto)) {
        // если файл phpthumb.class.php не был подключён, то включить его
        require_once MODX_CORE_PATH.'model/phpthumb/phpthumb.class.php';
        // Создать новый экземпляр класса phpThumb
        $phpThumb = new phpThumb();
        // Указываем исходное изображение
        $phpThumb->setSourceFilename($fullNameFilePhoto);
        // Устанавливаем ширину изображению
        $phpThumb->setParameter('w', 245);
        // Устанавливаем высоту изображению
        $phpThumb->setParameter('h', 336);
        // Задаём тип обрезки
        $phpThumb->setParameter('zc', '1');
        // Задём качество изображения
        $phpThumb->setParameter('q', '90');
        // Генерируем уменьшенное изображение. Если действие прошло успешно, то...
        if ($phpThumb->GenerateThumbnail()) {
          // Сохраняем изображение в файл $fullNameFilePhoto. Если данное действие завершилось успехом, то..
          if ($phpThumb->RenderToFile($fullNameFilePhoto)) {
            // Устанавливаем в поле photo путь к файлу 
            $hook->setValue('photo',$modx->getOption('assets_url'). 'photouser/' . $nameFilePhoto);
          }
          else {
            $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка при сохрании изображения в файл '.$fullNameFilePhoto);
          }
        }
        else {
          // Записываем полученую ошибку в журнал MODX
          $modx->log(modX::LOG_LEVEL_ERROR, print_r($phpThumb->debugmessages, 1));
        }
      }
      else {
        // Записываем в журнал что произошла ошибка при перемещении файла на новое место
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка при перемещении временного файла '.$tmpFile.' на новое место '.$fullNameFilePhoto);
      }
    } 
    else {
      // Записываем в журнал сообщение о том, что расширение файла не соответствует разрешённому
      $modx->log(modX::LOG_LEVEL_ERROR, 'Изображение имеет недопустимое расширение');
    }
  }
  else {
    // Записываем в журнал что произошла ошибка при загрузке файла
    $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка при загрузке файла. Код ошибки: '.$_FILES['photo']['error']);
  }
}
return true;
Сам сниппет проверки количества фото:
<?php
$tid = (int)$_POST['tid']; //replaces the line $tid = (int)$value;
//Query the amount of images in the database table modx_tickets_files
$q = $modx->newQuery('TicketFile');
$q->where(array('class' => 'Ticket'));
$q->andCondition(array('parent' => $tid, 'deleted' => 0, 'createdby' => $modx->user->id), null, 1);
$img_count = $modx->getCount('TicketFile', $q);

if ($img_count < 3) {
    //Less than 3 images found
    $validator->addError($key,'You must submit at least 3 photos!');
    return false;
}
return true;
Антон
19 декабря 2020, 15:52
0
В БД ее почему-то не оказалось? Переустановить модуль?
Антон
18 декабря 2020, 00:10
0
не знаете случаем как поставить минимальное количество загружаемых фото, но не более максимального, установленного в системе?