Роман

Роман

С нами с 06 октября 2013; Место в рейтинге пользователей: #320
Роман
11 июня 2023, 15:56
0
Проблема была не только в типе поля VARCHAR но и в эмодзи в тексте JSON массива, изменил тип поля на LONGTEXT и кодировку базы поменял на utf8mb4
Роман
11 июня 2023, 14:38
0
Да, заметил что обрывает на слове «погода», а за словом погода идет иконка "… а лучше могла быть погода 😜" Что можно сделать в таком случае? Другие иконки проходят.
Роман
11 июня 2023, 14:25
0
Нет, там отзывы, да могут быть спец символы всякие, люди вставляют смайлики, из за этого может быть обрыв?
Роман
11 июня 2023, 11:50
0
Руками сейчас вставляю.
Роман
11 июня 2023, 11:49
0
да, уже речь про поле в бд
Роман
11 июня 2023, 00:04
0
что бы я не указал, не сохраняется значение в этом поле, пишу 536870911 сохраняю, редактирую снова и вижу что поле пустое
Роман
10 июня 2023, 22:50
0
Спасибо, но все равно сохраняет обрезанным, а у типа TEXT есть ограничения по количеству?
Роман
17 марта 2023, 00:13
0
Кстати идея, благодарю! Попробую на Fenom и через pdoResoutrces реально, попробую…
Роман
16 марта 2023, 23:38
0
ну вот да, такая задача, есть разные ресурсы, в них заполнен один и тот же TV MIGX, и вот все эти данные нужно вывести на главной странице, с трех id, друг за другом, но дублировать циклы друг за другом, совсем не хочется :(
Роман
07 февраля 2023, 22:42
0
Спасибо, а как будет через newQuery? :)
Роман
01 февраля 2023, 11:26
0
да вот и сам бы так не стал делать, но есть такая конструкция а я перевожу на Fenom шаблон, но может действительно стоит сам сниппет изменить. Благодарю!
Роман
22 января 2023, 14:32
0
Понял идею, спасибо! Да можно и так, пока вроде получилось, своим снипетом tours_sort вот так,

$array;

foreach($array as $key => $val) {

$res = $modx->getObject('modResource',$val['id']);
$field_date = $res->getTVValue('field_date');
$array_field = json_decode($field_date, true);

foreach($array_field as $key => $val) {
      $sort_array[] = $val['date1'];
}
}
array_multisort($sort_array, SORT_ASC, $array);
return $array;
И подставляю уже на сайте вместо массива $tours {foreach $tours as $el}

{set $tours_sort = $_modx->runSnippet('!tours_sort', ['array' => $tour])}
{foreach $tours_sort as $el}
Роман
22 января 2023, 13:14
0
Пока для массива $tour пишу свой снипет,

<?php
$tour;
foreach($tour as $key => $val) {

$res = $modx->getObject('modResource',$val['id']);
$field_date = $res->getTVValue('field_date');
$array_field = json_decode($field_date, true);

foreach($array_field as $key => $val) {
      $date_tour[] = $val['date1'];
}
}
echo '<pre>';
print_r($date_tour);
echo '</pre>';
Получил тады, теперь хочу отсортировать их, но пока не получается

Array
(
[0] => 2023-02-18 14:21:00
[1] => 2023-02-11 15:06:00
)
Роман
22 января 2023, 12:45
0
Суть такая, есть список ресурсов контейнеров по месяцам, структура документов такая

-Туры (id 6)
-январь
— тур1
— тур2
-февраль
-март


Месяцы вывожу через pdoResources
{set $month = 'pdoResources' | snippet : [
'return' => 'json',
'parents' => 6,
'depth' => '0',
'limit' => '12',
'sortby' => ['menuindex' => 'asc'],
'where' => [
    'isfolder:=' => 1,
    'AND:published:=' => 1,
    'AND:hidemenu:=' => 1
]
] | json_decode : true}

///месяцы
{foreach $month as $item}
{$item.pagetitle} //название месяца 

///туры
{set $tour = '!pdoResources' | snippet : [
'return' => 'json',
'parents' => $item.id,
'showHidden' => 0,
'showUnpublished' => 0,
'sortby' => ['menuindex' => 'asc'],
] | json_decode : true}

{foreach $tour as $el}
{$el.id | resource: 'title'}  ///название тура

{set $date = json_decode($el.id | resource: 'field_date', true)}  //ДАТЫ ТУРА
{foreach $date as $idx => $item}
{$item.date1 | date_format : "%e %b %Y"} ////ДАТА ТУРА
{/foreach}

{/foreach}

{/foreach}
Так вот у туров ресурсов, есть TV MIGX FIELD_DATE у которого разные поля есть и нужное мне поле date1, вот по этому полю я хочу отсортировать вывод самих ТУРОВ. Это {foreach $tour as $el} массив $tour. Но пока слабоват как решить эту задачу.
Роман
22 января 2023, 10:36
0
Осталось понять как это сделать
Роман
21 января 2023, 14:55
0
Пока так получилось, осталось отсортировать по дате по полю date1 которое содержит дату

<?php
$array;

foreach($array as $key => $val) {

$res = $modx->getObject('modResource',$val['id']);
$field_date = $res->getTVValue('field_date');
$array_field = json_decode($field_date, true);

  foreach($array_field as $key => $val) {
      echo $val['date1'].'---
';
  }
}
Роман
21 января 2023, 12:10
0
да разницы нет я думаю MIGx просто или db, все равно придется для $field_date массива вывод делать не через fenom, а своим снипетом просто. Думаю хватит ума, передать в сниппет массив $field_date и там поле date получить и сформировать массив отсортировав по дате ил поля date и уже через echo распечатать.