Веб-разработка является неотъемлемой частью многих проектов и включает в себя множество технологий и фреймворков. Одним из таких популярных инструментов для разработки веб-сайтов является MODX. MODX является мощной платформой управления контентом (CMS) с большим количеством возможностей для разработчиков.
Одной из важных функций, которую предоставляет MODX, является управление пользовательскими TV-полями. TV-поля (Template Variables) позволяют добавить дополнительные поля к объектам MODX, таким как страницы или ресурсы. Они могут содержать текст, числа, изображения и другие типы данных. Кроме того, разработчики имеют возможность работать с этими полями через JavaScript.
В этой статье мы рассмотрим, как получить значение TV-поля с помощью JavaScript в MODX. Захватывающая сторона использования JavaScript для работы с TV-полями заключается в том, что мы можем динамически изменять контент на странице без необходимости выполнения сложных операций на сервере. Это позволяет нам производить мгновенное обновление информации на сайте, что может быть полезно для пользователей.
MODX MIGX Resource List ID’s as Pagetitle
Для начала нам понадобится установленный MODX. Затем мы создадим TV-поле и добавим его к нужным объектам. Давайте создадим простое TV-поле с именем «my_tv». Зайдите в админ-панель MODX, перейдите в раздел «ТВ» и создайте новое поле с этим именем. Мы можем указать желаемые параметры для TV-поля, такие как тип данных или значения по умолчанию.
Теперь мы можем приступить к написанию JavaScript-кода для получения значения TV-поля. Все, что нам нужно сделать, это использовать функцию MODx.run, чтобы выполнить нужную операцию на сервере. В нашем случае мы хотим получить значение TV-поля, поэтому будем использовать метод getTemplateVar().
Давайте представим, что у нас есть кнопка на странице, и при нажатии на нее мы хотим получить значение TV-поля «my_tv». Вот как будет выглядеть наш HTML-код:
Get TV Value
Теперь мы можем написать JavaScript-функцию getTvValue, которая будет обрабатывать нажатие на кнопку и получать значение TV-поля:
function getTvValue() < MODx.run(< url: ‘path/to/your/file.php’, method: ‘getTemplateVar’, params: < name: ‘my_tv’, id: 123 // здесь нужно указать ID объекта, для которого мы хотим получить значение TV-поля >, success: function(response) < var tvValue = response.results[0].value; console.log(tvValue); // или сделайте что-то еще с полученным значением >>); >
В этом коде мы используем функцию MODx.run и передаем ей несколько параметров. В параметре «url» мы указываем путь к файлу, в котором будет выполняться операция. В параметре «method» мы указываем метод, который мы хотим вызвать (в нашем случае это getTemplateVar). В параметре «params» мы передаем дополнительные параметры для метода (в нашем случае это имя TV-поля и ID объекта).
Когда операция завершена успешно, функция success будет вызвана. В этой функции мы можем получить значение TV-поля из объекта response.results. В нашем случае мы получаем первый результат и извлекаем значение TV-поля в переменную tvValue. Мы также можем выполнить другие операции с этим значением, например, отобразить его на странице или выполнить другие действия.
Перенос верстки в MODx. Дополнительные поля TV MODx
Наконец, чтобы код работал должным образом, нам нужно добавить инициализацию JavaScript-функции в главную страницу MODX. Мы можем сделать это, добавив следующий тег в свой HTML-код или в шаблон MODX:
function getTvValue() < // ваш JavaScript-код >
Это позволит браузеру понять, что этот код является нашим собственным JavaScript-кодом и должен быть выполнен при запуске страницы.
Таким образом, мы рассмотрели, как получить значение TV-поля с помощью JavaScript в MODX. Все, что нам понадобилось, это написать функцию JavaScript, использующую функцию MODx.run и передать необходимые параметры для получения значения TV-поля. Это предоставляет разработчикам возможность управлять контентом на странице динамически и персонализировать пользовательский опыт. Надеюсь, эта статья была полезной и помогла вам в ваших проектах MODX.
Источник: qaa-engineer.ru
MODX: как узнать номер TVs в базе данных?
MODX — это популярная и мощная система управления контентом, которая позволяет разработчикам создавать гибкие веб-приложения и сайты. Одним из важных элементов в MODX являются плагины, которые предоставляют дополнительные функциональные возможности для работы с контентом.
Один из таких плагинов — это TV (Template Variable), который позволяет добавить пользовательские поля для контента, такие как текстовые поля, флажки или выбор из списка. Однако иногда возникает необходимость узнать номер TV в базе данных MODX, чтобы сделать манипуляции с его значениями.
Существует несколько способов, как можно узнать номер TVs в базе данных MODX. Исследуем каждый из них более подробно.
1. Использование административной панели MODX.
— Войдите в административную панель MODX.
— Откройте раздел «Элементы» и выберите «TV» из выпадающего списка.
— Список доступных TV будет отображаться с номерами в таблице.
— Вы можете найти номер нужного TV в этом списке.
2. Использование инструментов разработчика браузера.
— Откройте сайт в браузере Google Chrome.
— Щелкните правой кнопкой мыши в любом месте страницы и выберите «Инспектировать элемент».
— В открывшейся панели разработчика выберите вкладку «Application» (Приложение).
— Разверните раздел «Storage» (Хранилище) в левой колонке и выберите «Local Storage» (Локальное хранилище).
— Вернитесь на страницу сайта и обновите ее.
— В разделе «Local Storage» появится элемент «tv_ids», в котором будут содержаться номера всех TV на данной странице.
3. Использование SQL-запросов к базе данных MODX.
— Войдите в административную панель MODX.
— Откройте раздел «Элементы» и выберите «SQL» из выпадающего списка.
— В окне SQL можно выполнить запрос к базе данных MODX.
— Введите следующий запрос: «SELECT id, name FROM modx_site_tmplvars».
— Нажмите кнопку «Выполнить».
— В результате выполнения запроса будет выведена таблица со всеми TV и их номерами.
Теперь у вас есть несколько способов узнать номера TVs в базе данных MODX. Вы можете использовать любой из этих способов в зависимости от вашего удобства и предпочтений. Их комбинация также может быть полезной и помочь вам найти номера нужных TV.
Источник: qaa-engineer.ru
Modx в tv получить id
Хорошо работающий сниппет, написанный мною для учета количества просмотров. Не дублирует. Работает на куках. Прост в использовании и редактировании.
resource; $val = $r->getTVValue($tv_name); $val = $val + 1; $r->setTVValue($tv_name, $val); $r->save(); // отправка COOKIE setcookie(‘viewpage’, ‘1’, time() + (86400 * 365), $_SERVER[‘REQUEST_URI’]); }
17 сентября 2023, 08:00
Установка нескольких пакетов за один раз
Написал небольшой php скрипт, с помощью которого можно за один раз установить сразу несколько пакетов. Провайдер по умолчанию стоит с ID 1, то есть modx.com
Для его использования, необходимо:
-
Склонировать репозиторий в папку core
git clone https://github.com/litosh-web/loadpackages.git
05 сентября 2023, 08:00
Поиск части кода
Пришлось поработать с MODx Evolution. Очень понравилась функция быстрого поиска по шаблонам, чанкам и т.д.
Жаль, что такой функции в Revolution нет. Но запланировал себе разобраться в будущем, как это можно реализовать. Оказалось, что это очень просто.
Файл находиться по адресу: core/ model/modx/processors/search/search.class.php
Добавляем под каждым запросом в массив where дополнительное условие:
‘OR:content:LIKE’ => ‘%’ . $this->query .’%’,
Пример для modChunk, modSnippet, modPlugin, modTemplate:
$c->where(array( ‘name:LIKE’ => ‘%’ . $this->query . ‘%’, ‘OR:description:LIKE’ => ‘%’ . $this->query .’%’, ‘OR:id:=’ => $this->query, ‘OR:content:LIKE’ => ‘%’ . $this->query .’%’, ));
Данное решение очень помогает разобраться с неизвестным вам сайтом в разы быстрее, нежели без. Найти любой код, любой ID’шник, который закопан неизвестно где, можно найти за считанные минуты.
Источник: litosh-web.ru