Сначала надо перевести бутстрап в движке на 5.0
Loadырь
По сути подборка на главной формируется динамически исходя из интересов пользователя.
Нет. Подборка на главной формируется исходя из обновлений на сайте, а заинтересуют эти обновки посетителя или нет это другой вопрос. Ведь главная это не только для пользователей, но также для гостей и ботов.
Если мы понимаем, что человек смотрит категорию по вопросам продажи товаров на маркетплейсах и курсы по этой теме, значит они ему интересны, в связи с чем система делает подборку курсов из этих и вложенных категорий.
Виджет «Похожий контент» с выводом контента из категории и подкатегорий с этим легко спаравится.
При этом, мы в админке могли бы задавать «перекресные интересы» — т.е мы например знаем, что тем, кто хочет продавать на вайлдбериз интересна категория «маркетинг» и мы могли бы через админку задать связь этих категорий друг с другом, чтобы система рекомендаций учитывала подобный параметр.
Виджет «Похожий контент» или «Список контента», выведенный в записи о «вайлдбериз» и показывающий записи из категории «маркетинг» тоже с этим справится.
Сейчас общий тренд именно на релевантный контент. На сколько это реально в данной системе?
Это не в системе дело, это отдельный сотрудник или их группа в штате предприятия. Который настраивает ИИ на работу с BigData. Поэтому, если по дешмански, то Elips прав и в движке почти всё для этого есть. Иначе надо вести историю запросов пользователя, вести историю его активности на сайте (куда ткнул, где «завис», где «покинул» и т.п.) и потом искать «похожих» товарищей и смотреть на их активность и при «всеобщем» совпадении выдавать «рекомендации».
ИМХО это пустая трата времени и ресурсов. Читал я дзен яндекса по рекомендациям. Прочитал несколько статей, яндекс подкорректировал свой алгоритм выдачи под мои предпочтения исходя из его же рекомендаций. Затем я прочитал ещё несколько «рекомендаций». Яндекс снова подкорректировал свой алгоритм под мои предпочтения, которые опять же основаны на его же рекомендациях. Спустя несколько таких итераций, яндекс стал вывдавать в дзене то, что я уже читал. И теперь глядя на «рекоммендации» дзена я пришел к выводу, что я прочитал весь дзен и теперь я не читаю дзен 😃.
API API — рознь.
Есть компонент github.com/instantsoft/icms2-json-api-component, с помощью которого, можно редактировать записи (при доработке и создавать). Он позволяет получать данные скажем с мобильника или другого web-приложения, выполнять поставленные ему действия и возвращать результат. При этом инициатором на запуск механизма API выступает другая сторона, а не CMS.
В вашем же случае — есть стороннее API, которое предоставляет файл в формате json или xml (может быть ещё в других форматах yml, csv, xls и т.п.). То в этом случае инициатором на запуск механизма API выступает CMS. Ваш сайт обращается к тому API, получает некий массив данных и потом должен занести эти данные в свою базу данных. Чтобы в итоге вывести их в нужном виде на вашем сайте. Для этого существуют разного рода парсеры. В коробке CMS их нет, поэтому на вопрос
Может ли CMS добавлять сама записи контента подтягивая данные по API ?
Ответ: нет. Сама не может, но может с некоторыми компонентами, которые по крону будут запрашивать данные через API и заносить их в базу сайта.
Только правкой файла github.com/instantsoft/icms2/blob/master/system/controllers/admin/grids/grid_users.php#L16 в массиве $columns
Не проверял, но может одно из них поможет
$field['visible_depend'] $field['handler']->getProperty('visible_depend') $field['handler']->visible_depend
после обновления, не слетит ли это?
Вполне может слететь, не в следующем, так в будущих обновлениях. Чтобы не терять правки в шаблоне, надо делать дочерний шаблон и в нем хранить правленные файлы.
Наверное как-то через join
Именно
$this->model_content-> filterEqual('category_id', 5)-> filterIsNull('u.unsubscribe')-> joinUserLeft()-> groupBy('user_id')-> get('con_news', function ($item){ return $item['user_id']; }, 'user_id');
Если надо как у Ris, то тогда так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; }, 'user_id');
У меня 1 и 13 — id записей, у него 1 и 3 — id пользователей
Если не важны записи с допкатегориями, то как-то так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; });
Иначе надо джойнить таблицу с биндами категорий.
Зашел в базу данных. Там есть
Да, только это от компонента instantcms.ru/blogs/faily-free.html, а вам надо найти cms_uploaded_files
Возможно удалили компонент, да не ту таблицу снесли )))
а в uploaded что обычно лежит?
А cms_uploaded_files — почти то же самое, но из «коробки» движка
Картинки будут показываться, так как прописан их прямой путь к файлу в месте показа. Эта таблица нужна, чтобы удалять файлы вместе с записями. И судя по ошибке этой таблицы нет. Возможно она есть под другим префиксом.
Выдает это
Смотрите там вкладку «Preview» или «Response».
У вас ошибка 503 при удалении. Включить отладку и смотреть, что появится в инструментах разработчика на вкладке «Сеть». при нажатии на удаление изображения.