Что такое код get_resource_type


Содержание

get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type — Возвращает тип ресурса

Описание

Функция возвращает тип данного ресурса.

Список параметров

Определенный дескриптор ресурса.

Возвращаемые значения

Если данный дескриптор handle является ресурсом, функция возвращает строку, указывающую его тип. Если тип не определяется функцией, возвращаемым значением будет строка Unknown.

Функция возвращает FALSE и вызывает ошибку, если handle не является ресурсом resource .

Примеры

Пример #1 Пример использования get_resource_type()

// выводит: mysql link
$c = mysql_connect ();
echo get_resource_type ( $c ) . «\n» ;

// выводит: file
$fp = fopen ( «foo» , «w» );
echo get_resource_type ( $fp ) . «\n» ;

// выводит: domxml document
$doc = new_xmldoc ( «1.0» );
echo get_resource_type ( $doc -> doc ) . «\n» ;
?>

Что такое URL адрес и как с ним работать

Заблудиться можно не только в лесу, но и в онлайне. И тому виной может стать неверный путь или адрес, ведущий к ресурсу. Вы не знаете, что такое URL адрес? Тогда прежде, чем пускаться в дальнейшее путешествие по виртуальному пространству, давайте разберемся с системой электронных адресов.

Что такое URL

URL является общепринятым стандартом записи адреса и указания на расположение ресурса в интернете. С английского его название ( Uniform Resource Locator ) переводится как единый указатель ресурсов. Можно встретить более раннюю расшифровку аббревиатуры URL — Universal Resource Locator ( универсальный локатор ресурсов ). Но оба значения скорее дополняют понятие URL , чем перечат друг другу.

Основной формат записи структуры URL адреса выглядит так:
://:@:/?#
— чаще всего имеется в виду протокол.
логин – логин пользователя, используемый для авторизации на ресурсе.
пароль – пароль пользователя для авторизации.
хост – доменное имя хоста.
порт – порт хоста, используемый во время подключения.
URL – путь, по которому находится запрашиваемый ресурс на сервере.
параметры и якорь – значение переменных и идентификатор на определенном ресурсе.

Передача значения переменных в строке запроса возможна лишь с помощью метода GET .

Рассмотрим формат URL адреса страницы запрашиваемого ресурса на практических примерах. На клиентской стороне URL отображается в адресной строке браузера:

Чаще всего встречаются такие варианты:

  • http:// ru.wikipedia.org/wiki/Заглавная_страница – для передачи запроса используется http ( протокол передачи гипертекста );
  • https://ru.wikipedia.org/wiki/Заглавная_страница — в качестве способа передачи используется https . Является защищенной формой протокола http , использующего шифрование ( SSL или TLS );
  • fttp://wikipedia.org/wiki/file.txt – протокол передачи файлов fttp ;
  • http://mail.ru/script.php?num=10&type=new&v=text – передача значений переменных в строке запроса с помощью метода GET .

Любой формат URL адреса представляет собой, прежде всего, символьную строку. В ее состав могут входить:
2; Латинские буквы.
2; Арабские цифры (0-9).
2; Зарезервированные символы («+», «=», «!» и другие).
2; Специальные символы – на них остановимся более подробно.

Использование специальных символов в URL

Конечно, таких уж слишком «специальных» символов в URL не используют. Но несколько есть:

  • ? – служит для отделения в строке запроса блока с передаваемыми параметрами;
  • & — отделяет передаваемые параметры друг от друга;
  • = — отделяет в параметре переменную от ее значения;
  • : — служит для отделения протокола от остальной части URL;
  • # — символ используется в локальной части адреса. Позволяет обратиться к определенной части запрашиваемой страницы;
  • @ — указывается в регистрационных данных пользователя и при передаче данных с помощью протокола mailto.

Но все это лишь теория. Поэтому перед тем, как узнать остальное, рассмотрим небольшой практический пример.

Наглядный пример

Возьмем для наглядности вот такую простую форму регистрации:

Вот ее код:

Первой строкой в начале формы мы прописали для нее файл обработчика (php) и метод передачи данных через URL адрес сервера:

Теперь приведем код файла обработчика (1.php) :

Введем данные в форму и отправим их для обработки на сервер. Вот что мы получим в итоге:

Обратите внимание на формат URL в адресной строке на первом скриншоте. После введения данных и нажатия на кнопку « Отправка данных » значения всех полей отправляются для обработки на сервер. А нас перенаправляет на страницу 1.php , где размещен код обработчика.

Перед тем, как посмотреть на результат обработки, взгляните на адресную строку на втором рисунке. В ней отображаются значения полей, переданных на обработку с помощью метода GET.

Для того чтобы скрыть данные, отправляемые на сервер, используется метод POST. Тогда приведенный выше URL будет выглядеть следующим образом:

Формат URL адресов на сайтах


Чаще всего на сайтах используется древовидная система URL . То есть правильный URL адрес состоит из нескольких вложенных друг в друга элементов, последний из которых и является нужной веб-страницей.

Для наглядности возьмем конкретный URL , являющейся одним из разветвлений адреса нашего сайта:

https://www.internet-technologies.ru/templates//page_2.html

Разберем его по частям:

  • www.internet-technologies.ru – эта часть является доменным именем сайта. Если набрать его в адресной строке браузера, то оно выведет на главную страницу сайта. В большинстве случаев это файл index. html ;
  • templates – данная часть адреса указывает на определенный раздел сайта. В нашем случае это раздел с шаблонами;
  • page_2.html – является конечным элементом URL , ведущего на веб-страницу тематического раздела ресурса.

Чаще всего URL адреса основных разделов полностью отображают карту сайта. Но не все так просто обстоит с переадресацией на сайтах, развернутых на основе популярных движков ( CMS ).

Особенности построения URL в WordPress

В WordPress , как и в любом движке, построенном на php , генерация всех страниц сайта происходит динамически. То есть одна часть берется из одного шаблона, другая генерируется « на лету » на основе нескольких.… Но такая летучесть имеет один существенный недостаток – наличие кусков передаваемых параметров в URL .

Причем это ущемляет не только эстетическую составляющую отображения адресов, но и неоднозначно воспринимается поисковиками. А это может негативно влиять на продвижение сайта:

Поэтому лучше использовать на своем сайте чистые URL адреса. Но где взять их, если CMS система не предусматривает возможности их редактирования.

Самый простой способ настройки отображения URL в WordPress – это использование специализированных плагинов:

  • Cyr-To-Lat – преобразует русские символы в адресах в латиницу;
  • Permalink Editor – добавляет дополнительные опции для настройки через админку (раздел «Постоянные ссылки»);
  • .html on pages – убирает расширение html c конца URL .

Ну а если и это не помогает, то нужно лезть собственными руками в само сердце CMS . Но это уже тема другого и более обширного по объему материала.

MODX. getResources компонент для вывода ресурсов

Отредактировано: 05 Ноября 2020

getResources — компонент для вывода ресурсов (страниц) на сайте. На момент написания статьи существует более продвинутая версия аналогичного сниппета — pdoResources, входящий в комплект pdoTools. Оба этих сниппета имеют практически одинаковые параметры, но за счет оптимизаторского таланта Безумкина, pdoResources обрабатывает запросы быстрее.

Использование getResources

Простейший вывод всех страниц каталога с id — 1

В параметре tpl указывается имя чанка с шаблоном вывода элемента. Если параметр tpl не указывать, на странице будет выведен массив из элементов выборки.

Для вывода ресурсов текущей страницы вместо id указывается — [[*id]].

Для дальнейшей настройки вывода страниц, надо просто добавлять к текущей конструкции параметры, из списка ниже, исходя из конкретных нужд.

Параметры getResources

Параметры шаблонизации

Параметр По умолчанию Описание
&tpl Имя чанка, выступающего в качестве шаблона для ресурса. Если не установлен, свойства выдаются в виде списка для каждого ресурса
&tplOdd Имя чанка, выступающего в качестве шаблона для ресурсов с нечетным индексом (см. параметр idx
&tplFirst Имя чанка, выступающего в качестве шаблона для первого ресурса
&tplLast Имя чанка, выступающего в качестве шаблона для последнего ресурса
&tpl_N Имя чанка, выступающего в качестве шаблона для N-ного ресурса, например &tpl_4=`tpl4th`
&tpl_nN Имя чанка, выступающего в качестве шаблона для каждого N-ного ресурса, например шаблон &tpl_n4=`tpl4th` будет применен к каждому элементу, порядковый номер которого кратен 4
&tplPath assets_path + «elements/chunks/» Дополнительный каталог для поиска чанков на основе файлов при использовании биндинга @FILE
&outputSeparator \n Дополнительные строки для разделения каждого ресурса после шаблонизации
&toPlaceholder Если установлен, присвоит результат в указанный плейсхолдер вместо вывода напрямую
&toSeparatePlaceholders Если установлен, присвоит КАЖДОМУ результату отдельное имя плейсхолдера в виде суффикса из значения этого параметра и порядкового номера (начиная с 0) Добавлено в версии: 1.3.0

Параметры выборки

Может использоваться для фильтрации ресурсов по определенным значениям переменных шаблона (TV). Они задаются как [(tvname)(operator)](value). Можно использовать несколько разделителей для объединения условий фильтра.

Любое поле ресурса (за исключением переменных шаблона) для сортировки. Некоторые из общих полей для сортировки — это publishedon, menuindex, pagetitle и др., но смотрите документацию по ресурсам для всех полей. Укажите только имя поля, без использования синтаксиса тегов. Обратите внимание, что при использовании таких полей, как template, publishedby и подобных для сортировки, они будут сортироваться по сырым значениям, таким как ID шаблона или юзера, а не по их именам.

Вы также можете отсортировать в случайном порядке, используя RAND(), вот так:

Начиная с версии 1.3.0 это также может быть JSON массив для сортировки по нескольким полям, например:

Если вы хотите сортировать в определенном порядке, вы можете сделать это, указав список идентификаторов ресурсов следующим образом:

Тоже самое возможно, если вы передадите список ID для сортировки в переменной шаблона, например:

Параметр По умолчанию Описание
&parents ID текущего ресурса Список идентификаторов родительских ресурсов, разделенных запятыми. Используйте -1 для исключения родительских ресурсов.
&resources Список идентификаторов ресурсов, разделенных запятыми, для включения их в результат выборки. Префикс в виде минуса исключает ресурсы из результата выборки.
&depth 10 Целое число, указывающее глубину поиска для ресурсов от каждого из родителей.
&tvFilters
&sortby publishedon
&sortbyAlias Псевдоним запроса для поля из sortby
&sortbyEscaped Экранировать имя поля заданного в sortby
&sortdir DESC Порядок сортировки
&sortbyTV Переменная шаблона (Template Variable) для сортировки
&sortdirTV DESC Порядок сортировки при использовании sortbyTV
&sortbyTVType string Указывает тип данных сортировки по TV. Возможные значения: string, integer, decimal, datetime
&limit 5 Ограничение количества возвращаемых ресурсов
&offset Смещение ресурсов для пропуска, которые возвращаются в соответствии с критериями
&where Выражение критериев в json-стиле для построения любых дополнительных условий. Смотрите ниже пример. Подробнее http: //rtfm.modx.com/display/xPDO20/xPDOQuery.where
&context текущий контекст В каком контексте следует искать.

Другие параметры

Параметр По умолчанию Описание
&showUnpublished Если true, то будут показаны также ресурсы, которые не опубликованы.
&showDeleted Если true, то будут показаны ресурсы независимо от того, удалены они или нет.
&showHidden Если true, покажет ресурсы независимо от того, показываются они в меню или нет.
&hideContainers Если указан, то не будут показаны ресурсы, помеченные как контейнер (is_folder).
&includeContent Указывает, что содержание каждого ресурса должно возвращаться в результатах выборки.
&includeTVs Указывает, что значения переменных шаблона должны быть включены в набор свойств, доступных для каждого шаблона ресурса
&includeTVList Дополнительный список разделенных запятыми имет переменных шаблона для явного включения в результат, если includeTVs установлен в 1
&processTVs Указывает, что переменные шаблона должны быть отрисованы так как они были бы представлены в ресурсе. Переменные шаблона должны быть включены для обработки (см. includeTVs/includeTVList).
&processTVList Дополнительный список имен переменных шаблона, разделенных запятыми, для явной обработки. Переменные шаблона, заданные здесь, должны быть включены через includeTVs/includeTVList
&tvPrefix tv. Префикс для свойств в виде переменных шаблона.
&idx 1 Вы можете задать начало idx ресурсов, что представляет собой свойство, котороые увеличивается с каждым отрисованным ресурсом.
&first 1 Задает idx, который представляет собой первый ресурс.
&last количество ресурсов Задает idx, который представляет последний ресурс.
&totalVar total Задает ключ плейсхолдера, устанавливаемого getResources для показа общего количества ресурсов, которые будут выбраны не учитывая значения limit.
&debug false Если true, будет записывать sql-запросы в log MODX.

Дополнительные плейсхолдеры


[[+idx]] — порядковый номер выводимого ресурса. Увеличивается с каждой итерацией, начиная с 1 (или со значения, установленного параметром &idx)

Показ дополнительных полей (TV)

По умолчанию getResources не получает значения TV. Для их вывода надо включить следующие параметры:

В чанке с шаблоном, дполнительные поля выводятся следующим образом: [[+tv.my_tv]]. К названию поля добавляется префикс tv., его можно изменить с помощью параметра &tvPrefix.

Примеры

Вывод списка дочерних ресурсов текущего ресурса, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’, за исключением ресурса 10, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’, за исключением текущего ресурса, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’ с сортировкой как в дереве ресурсов используя чанк ‘myRowTpl’:

Вывод только заданных ресурсов, используя чанк ‘myRowTpl’:

Вывод последних 5 опубликованных ресурсов, у которых родительский ресурс с ID ‘5’, используя шаблон ‘blogPost’:

Вывод списка дочерних ресурсов текущего ресурса, основанного на шаблоне ресурсов:

Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1 или 2:

Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1, 2 или 3 (вы не можете использовать тот же ключ больше одного раза):

РНР: Внимание: get_resource_type () ожидает параметр 1, чтобы быть ресурсом, данный объект

Я просмотрел для этой ошибки и не могу найти ответ. Я пытаюсь моднику сценарий, написанный для MySQL, чтобы Mysqli и были успешными до этой ошибки:

Внимание: get_resource_type () ожидает параметр 1, чтобы быть ресурсом, данный объект (и т.д.)

Я не могу за жизнь мне понять, как изменить это, чтобы обновить его Mysqli. помочь ли кто-нибудь?

В отличие от старых MySQL функций, Mysqli методы обычно не возвращают ресурсы. Они , как правило , либо возвращают объект или какой — либо другой строки / целое / булево / нулевой тип. Сообщение об ошибке кристально чистые. Функция get_resource_type() ожидает ресурс, в качестве аргумента, и вы даете ему объект.

Обязательно прочитайте о типах в PHP для разъяснения о различиях между типами ресурсов и типами объектов .

Мое предположение в том , что вы ожидаете , $this->queryid чтобы быть MySQLi_Result объектом, и это то, что вы пытаетесь проверить. Таким образом , вместо get_resource_type() использования instanceof оператора вместо того , чтобы проверить тип объекта.

Кроме того , вы можете просто ввести Hint прототипа функции только дозволеные объекты типа , MySQLi_Result чтобы упростить код и сделать его проще тестировать.

Кроме того , пожалуйста , прекратите использование оператора ошибки молчания @ . Ничего хорошего никогда не может прийти в этом.

редактировать

Убедитесь , что вы звоните , mysqli_free_result() а не старую mysql_free_result() функцию, а также, как уже упоминалось в комментариях.

HTTP Методы: GET vs. POST

Два наиболее используемых метода HTTP: GET и POST.

Что такое HTTP?

Протокол HTTP предназначен для обеспечения связи между клиентами и серверами.

HTTP работает как протокол запроса-ответа между клиентом и сервером.

Веб-обозреватель может быть клиентом, а приложение на компьютере, на котором размещается веб-узел, может быть сервером.

Пример: клиент (обозреватель) отправляет HTTP-запрос на сервер; Затем сервер возвращает ответ клиенту. Ответ содержит сведения о состоянии запроса, а также может содержать запрошенное содержимое.

Два метода HTTP-запроса: Get и POST

Два часто используемых метода запроса-ответа между клиентом и сервером: Get и POST.

  • GET — Запрашивает данные из указанного ресурса
  • POST — Отправка данных для обработки в указанный ресурс

Метод Get


Обратите внимание, что строка запроса (пары «имя-значение») отправляется в URL-адрес запроса GET:

Некоторые другие заметки о запросах GET:

  • GET запросы могут кэшироваться
  • GET запросы остаются в истории браузера
  • GET запросы могут быть закладками
  • GET запросы никогда не должны использоваться при работе с конфиденциальными данными
  • GET запросы имеют ограничения по длине
  • GET запросы должны использоваться только для извлечения данных

Метод POST

Обратите внимание, что строка запроса (пары «имя-значение») отправляется в теле HTTP-сообщения запроса POST:

Некоторые другие примечания по запросам POST:

  • POST запросы никогда не кэшируются
  • Запросы POST не сохраняются в журнале обозревателя
  • Запросы POST не могут быть закладками
  • Запросы POST не имеют ограничений по длине данных

Сравнить GET vs. POST

В следующей таблице сравниваются два метода HTTP: Get и POST.

Никогда не используйте Get при отправке паролей или другой конфиденциальной информации!

GET POST
Кнопка возврата/перезагрузка Безвредны Данные будут повторно отправлены (браузер должен предупредить пользователя о том, что данные будут повторно отправлены)
Закладка Можно закладка Не может быть Закладка
Кэшированные Может кэшироваться Не кэшируется
Тип кодировки application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Использование многокомпонентной кодировки для двоичных данных
Истории Параметры остаются в журнале обозревателя Параметры не сохраняются в журнале обозревателя
Ограничения по длине данных Да, при отправке данных метод Get добавляет данные в URL-адрес; и длина URL ограничена (максимальная длина URL составляет 2048 символов) Без ограничений
Ограничения типа данных Разрешены только символы ASCII Никаких ограничений. Двоичные данные также разрешены
Безопасности Get менее безопасен по сравнению с POST, поскольку отправляемые данные являются частью URL-адреса POST немного безопаснее, чем Get, поскольку параметры не сохраняются в журнале обозревателя или в журналах веб-сервера
Видимость Данные видны всем в URL Данные не отображаются в URL-адресе

Другие методы HTTP-запросов

В следующей таблице перечислены некоторые другие методы HTTP-запросов:

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

get_resource_type — Возвращает тип ресурса

Описание

Функция возвращает тип данного ресурса.

Список параметров

Определяемый дескриптор ресурса.

Возвращаемые значения

Если данный параметр handle является ресурсом, функция возвращает строку, указывающую его тип. Если тип не определяется этой функцией, возвращаемым значением будет строка Unknown.

Функция возвращает NULL и вызывает ошибку, если handle не является ресурсом ( resource ).

Список изменений

Версия Описание
5.3.0 Если handle не является ресурсом ( resource ), то эта функция вернет NULL . Ранее возвращался FALSE.

Примеры

Пример #1 Пример использования get_resource_type()

// выводит: mysql link
$c = mysql_connect ();
echo get_resource_type ( $c ) . «\n» ;

// выводит: stream
$fp = fopen ( «foo» , «w» );
echo get_resource_type ( $fp ) . «\n» ;

// выводит: domxml document
$doc = new_xmldoc ( «1.0» );
echo get_resource_type ( $doc -> doc ) . «\n» ;
?>

User Contributed Notes 4 notes

Try this to know behavior:

function resource_test ( $resource , $name ) <
echo
‘[‘ . $name . ‘]’ ,
PHP_EOL ,
‘(bool)$resource => ‘ ,
$resource ? ‘TRUE’ : ‘FALSE’ ,
PHP_EOL ,
‘get_resource_type($resource) => ‘ ,
get_resource_type ( $resource ) ?: ‘FALSE’ ,
PHP_EOL ,
‘is_resoruce($resource) => ‘ ,
is_resource ( $resource ) ? ‘TRUE’ : ‘FALSE’ ,
PHP_EOL ,
PHP_EOL
;
>

$resource = tmpfile ();
resource_test ( $resource , ‘Check Valid Resource’ );

fclose ( $resource );
resource_test ( $resource , ‘Check Released Resource’ );


$resource = null ;
resource_test ( $resource , ‘Check NULL’ );
?>

It will be shown as.

[Check Valid Resource]
(bool)$resource => TRUE
get_resource_type($resource) => stream
is_resoruce($resource) => TRUE

[Check Released Resource]
(bool)$resource => TRUE
get_resource_type($resource) => Unknown
is_resoruce($resource) => FALSE

[Check NULL]
(bool)$resource => FALSE
get_resource_type($resource) => FALSE
Warning: get_resource_type() expects parameter 1 to be resource, null given in . on line 10
is_resoruce($resource) => FALSE

In PHP5 (on Linux), the above example identifies the «file» handler as a ‘stream’, not ‘file’.

This can be particularly worrisome if you’re trying to determine the type of stream using this function.

The alternative is to use () ?> , which returns an array containing «stream_type (string) — a label describing the underlying implementation of the stream.»

Furthermore, this function returns ‘stream’ on php 4.3 on windows & linux.
You if you want to differentiate between a file resource and other stream resources, as stated before stream_get_meta_data() gives you an array which, on my system, contains the following elements which might suggest a file handle:
[wrapper_type] => plainfile
[stream_type] => STDIO

However I’ve only compared this to a stream from a url, so I include this only as a suggestion.

This function will generate an error and return NULL instead FALSE in the next example:

= 3 ;
var_dump ( get_resource_type ( $var ));

Что такое код get_resource_type

Общая цель — вывод списков Ресурсов и обощающий сниппет.

Требования

  • MODX Revolution 2.0.0-beta5 или новее
  • PHP5 или новее

История

getResources был написан Джейсоном Ковардом (Jason Coward, aka opengeek) и выпущен 30 июня 2009.

Загрузка

Пакет можно загрузить из админки MODX Revolution через Управление пакетами или из репозитория дополнений MODX здесь

Использование

Сниппет getResources может быть вызван при помощи тега:

Вызовы без заданного параметра &tpl будет просто выводить массив в виде списка каждого конечного ресурса и его полей.

Доступные параметры

Параметры шаблонизации

# Параметр Описание
1 tpl Имя чанка, выступающего в качестве шаблона для ресурса. Если не установлен, свойства выдаются в виде списка для каждого ресурса
2 tplOdd Имя чанка, выступающего в качестве шаблона для ресурсов с нечетным индексом (см. параметр idx
3 tplFirst Имя чанка, выступающего в качестве шаблона для первого ресурса
4 tplLast Имя чанка, выступающего в качестве шаблона для последнего ресурса
5 tpl_N Имя чанка, выступающего в качестве шаблона для N-ного ресурса, например &tpl_4=`tpl4th`
6 tpl_nN Имя чанка, выступающего в качестве шаблона для каждого N-ного ресурса, например шаблон &tpl_n4=`tpl4th` будет применен к каждому элементу, порядковый номер которого кратен 4 Добавлено в версии: 1.4.1-pl
7 tplPath Дополнительный каталог для поиска чанков на основе файлов при использовании биндинга @FILE По умолчанию: assets_path + «elements/chunks/»
8 outputSeparator Дополнительные строки для разделения каждого ресурса после шаблонизации По умолчанию: «\n»
9 toPlaceholder Если установлен, присвоит результат в указанный плейсхолдер вместо вывода напрямую
10 toSeparatePlaceholders Если установлен, присвоит КАЖДОМУ результату отдельное имя плейсхолдера в виде суффикса из значения этого параметра и порядкового номера (начиная с 0) Добавлено в версии: 1.3.0

@FILE и @INLINE шаблоны

Вы можете указать любому шаблону в качестве префикса @FILE или @INLINE для использования чанков, основанных на файлах или просто разметки соответственно.

  • @FILE — Этот префикс позволяет использовать файл вместо чанка в базе данных в качестве шаблона. Путь и имя файла будет задано по умолчанию, если не указать параметр tplPath и поиск для шаблона @FILE будет вестись относительно вашей конфигурации assets_path + «elements/chunks/».
  • @INLINE — Этот префикс позволяет задать разметку для использования в качестве шаблона прямо в значении параметра. Рекомендуется использовать это только когда определены tpl\* параметры в Property Set, в противном случае любой плейсхолдер в вашей строчной разметке может быть обработана до того, как контент будет передан getResources, так как кешируемые вложенные теги в MODX Revolution обрабатываются до начала обработки самого тега, содержащего эти вложенные теги.

Параметры выборки

Может использоваться для фильтрации ресурсов по определенным значениям переменных шаблона (TV). Они задаются как [(tvname)(operator)](value). Можно использовать два разделителя для объединения условий фильтра.

У вас могут быть фильтры с условием «ИЛИ» (OR) в виде двойной вертикальной черты. OR-фильтр получает ресурсы, которые имеют одно из перечисленных значений переменной шаблона (TV).

Вы также можете использовать фильтр «И» (AND) используя запятую. Этот фильтр проверит, чтобы все условия выполнялись.


Для тонкой фильтрации вы можете также группировать их. Важно знать, что сначала идут условия, разделенные по условиям ИЛИ (||), затем условия И (,). Давайте посмотрим такой пример:

Ресурсы будут отфильтрованы по одному из следующих условий (на самом деле в запросах к БД используется функция LIKE):

  • mytv == foo, ИЛИ:
  • mytv == bar И bartv == 3, ИЛИ:
  • bartv == 1

Приведенные выше примеры ищут точные совпадения. Если вы хотите, вы также можете использовать знак процента (%) в качестве шаблона. Например:

Находит любые ресуры, которые имеют «a» в значении mytv.

Находит любые ресурсы, значение mytv которых начинается с «a» и содержит все что угодно после «a».

Находит любые ресурсы, которые которые имеют значение mytv, заканчивающееся на «a» и содержащее все что угодно до «a».

И конечно, вы можете совмещать это с OR (||) и AND (,) разделителями, которые описаны выше.

Новые операторы в фильтрах доступны в 1.4.2-pl

Начиная с релиза getResources 1.4.2-pl имеется целый ряд новых операторов сравнения, которые можно использовать при построении условий фильтрации. Кроме этого, при использовании многих из этих новых операторов при сравнении с числовыми значениями значения переменных шаблона автоматически приводятся к числовым типам. Вот список новых операторов:

безопасное сравнение с NULL

# Параметр Описание
1 parents Список идентификаторов родительских ресурсов, разделенных запятыми. Используйте -1 для исключения родительских ресурсов. По умолчанию: current Resource id
2 resources Список идентификаторов ресурсов, разделенных запятыми, для включения их в результат выборки. Префикс в виде минуса исключает ресурсы из результата выборки.
3 depth Целое число, указывающее глубину поиска для ресурсов от каждого из родителей. По умолчанию: 10
3 tvFilters
Оператор фильтра Оператор SQL Приведение к числу
Да
=== = Да
!== != Да
<> <> Да
== LIKE Нет
!= NOT LIKE Нет
> > Да
>= >= Да
=> => Да

Любое поле ресурса (за исключением переменных шаблона) для сортировки. Некоторые из общих полей для сортировки — это publishedon, menuindex, pagetitle и др., но смотрите документацию по ресурсам для всех полей. Укажите только имя поля, без использования синтаксиса тегов. Обратите внимание, что при использовании таких полей, как template, publishedby и подобных для сортировки, они будут сортироваться по сырым значениям, таким как ID шаблона или юзера, а не по их именам.

Вы также можете отсортировать в случайном порядке, используя RAND(), вот так:

Начиная с версии 1.3.0 это также может быть JSON массив для сортировки по нескольким полям, например:

Если вы хотите сортировать в определенном порядке, вы можете сделать это, указав список идентификаторов ресурсов следующим образом:

Тоже самое возможно, если вы передадите список ID для сортировки в переменной шаблона, например:

По умолчанию: publishedon Добавлено в версии: 1.3.0 4 sortbyAlias Псевдоним запроса для поля из sortby 5 sortbyEscaped Экранировать имя поля заданного в sortby sortdir Порядок сортировки По умолчанию: DESC 6 sortbyTV Переменная шаблона (Template Variable) для сортировки Добавлено в версии: 1.2.0 7 sortdirTV Порядок сортировки при использовании sortbyTV По умолчанию: DESC Добавлено в версии: 1.2.0 8 sortbyTVType Указывает тип данных сортировки по TV. Возможные значения: string, integer, decimal, datetime По умолчанию: string Добавлено в версии: 1.3.0 9 limit Ограничение количества возвращаемых ресурсов По умолчанию: 5 10 offset Смещение ресурсов для пропуска, которые возвращаются в соответствии с критериями По умолчанию: 0 11 where Выражение критериев в json-стиле для построения любых дополнительных условий. Смотрите ниже пример. Подробнее http: //rtfm.modx.com/display/xPDO20/xPDOQuery.where 12 context В каком контексте следует искать. По умолчанию текущий контекст.

Другие параметры

# Параметр Описание
1 showUnpublished Если true, то будут показаны также ресурсы, которые не опубликованы. По умолчанию: 0
2 showDeleted Если true, то будут показаны ресурсы независимо от того, удалены они или нет. По умолчанию: 0
3 showHidden Если true, покажет ресурсы независимо от того, показываются они в меню или нет. По умолчанию: 0
4 hideContainers Если указан, то не будут показаны ресурсы, помеченные как контейнер (is_folder). По умолчанию: 0
5 includeContent Указывает, что содержание каждого ресурса должно возвращаться в результатах выборки. По умолчанию: 0
6 includeTVs Указывает, что значения переменных шаблона должны быть включены в набор свойств, доступных для каждого шаблона ресурса По умолчанию: 0
7 includeTVList Дополнительный список разделенных запятыми имет переменных шаблона для явного включения в результат, если includeTVs установлен в 1 Добавлено в версии: 1.4.0
8 processTVs Указывает, что переменные шаблона должны быть отрисованы так как они были бы представлены в ресурсе. Переменные шаблона должны быть включены для обработки (см. includeTVs/includeTVList). По умолчанию: 0
9 processTVList Дополнительный список имен переменных шаблона, разделенных запятыми, для явной обработки. Переменные шаблона, заданные здесь, должны быть включены через includeTVs/includeTVList Добавлено в версии: 1.4.0
10 tvPrefix Префикс для свойств в виде переменных шаблона По умолчанию: tv.
11 idx Вы можете задать начало idx ресурсов, что представляет собой свойство, котороые увеличивается с каждым отрисованным ресурсом По умолчанию: 1
12 first Задает idx, который представляет собой первый ресурс По умолчанию: 1
13 last Задает idx, который представляет последний ресурс. По умолчанию это количество ресурсов, которые будут складываться + первый — 1 (?)
14 totalVar Задает ключ плейсхолдера, устанавливаемого getResources для показа общего количества ресурсов, которые будут выбраны не учитывая значения limit. По умолчанию: total
15 debug Если true, будет записывать sql-запросы в log MODX. По умолчанию: false

Доступные плейсхолдеры

Плейсхолдеры доступные в ваших чанках форматирования getResources в основном зависят от ресурсов, которые вы перечисляете.

См. Все теги на странице «Часто используемые теги шаблона» — это список свойств, доступных для всех ресурсов.

Если ваш ресурс имеет переменные шаблона, те в свою очередь будут иметь соответствующие плейсхолдеры (помните, что плейсхолдеры будут использовать префикс, заданный через параметр &tvPrefix)

Кроме того, существуют следующие плейсхолдеры:

Плейсхолдер Описание
Увеличивается с каждой итерацией, начиная с 1 (или со значения, установленного параметром &idx)

Примеры

Вывод списка дочерних ресурсов текущего ресурса, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’, за исключением ресурса 10, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’, за исключением текущего ресурса, используя чанк ‘myRowTpl’:

Вывод всех дочерних ресурсов ресурса с ID ‘5’ с сортировкой как в дереве ресурсов используя чанк ‘myRowTpl’:

Вывод только заданных ресурсов, используя чанк ‘myRowTpl’:

Вывод последних 5 опубликованных ресурсов, у которых родительский ресурс с ID ‘5’, используя шаблон ‘blogPost’:

Вывод списка дочерних ресурсов текущего ресурса, основанного на шаблоне ресурсов:

Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1 или 2:

Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1, 2 или 3 (вы не можете использовать тот же ключ больше одного раза):


Показ сообщения, когда ничего не найдено (эквивалент «empty» в Ditto):

Показ переменных шаблона (Template Variables) с getResources

Чтобы уменьшить время обработки, getResources не получает значения TV по умолчанию. Если вы хотите показывать TV, вы должны включить следующие параметры:

Вам также нужен либо префикс для всех TV с tv. или использовать этот параметр в теге вашего сниппета:

В чанке tpl, который вы используете для вывода getResources, используйте тег плейсхолдера как здесь (но с именем вашего TV):

Использование getPage для постраничной навигации

В сочетании с getPage getResources позволяет делать мощные и гибкие нумерации ваших страниц.

Примеры

Берет первые 10 ресурсов, отсортированные по дате публикации (publishedon), которые внутри ресурса с ID 17, не больше чем на 2 уровня в глубину, с шаблоном ‘blogListPost’, включая переменные шаблона (TV) и содержимое (content):

и чанк blogListPost:

Вывод последних за месяц ресурсов

Допустим у вас есть сниппет, который преобразовывает необходимую дату во время Unix, с которым сравнивается значение поля publishedon:

Далее просто добавьте параметр where, например если вы хотите узнать все опубликованные ресурсы за последний месяц:

Поиск и устранение неисправностей

Ничего не происходит

Прежде чем биться головой о стену, убедитесь, что это дополнение установленно на вашем сайте.

Выводится массив атрибутов

Вы забыли указать параметр `&tpl`. Без &tpl сниппет будет пытаться определить ресурсы, но вы не сказали ему как их форматировать. Проверьте, указан ли параметр &tpl в вызове вашего сниппета, как тут:

Вы допустили ошибку в имени чанка. Возможно у вас и указан &tpl, но чанк действительно существует? Если вы указали имя чанка, который не существует, getResources не будет знать как форматировать ваши ресурсы.

Даже если вы правильно задали параметр &tpl, возможно, вы случайно забыли амперсанд к одному из ваших других параметров. Например limit=`5` приведет вызов сниппета к фейлу и атрибуты будут выведены без форматирования. Правильный формат должен быть &limit=`5`.

Тот же самый ресурс выводится несколько раз (1.2.2 и предыдущие релизы)

Если вы видите, что один и тот же ресурс показывается несколько раз, попробуйте убрать параметр &sortbyTV.

Содержимого там нет

Вы извлекаете правильные ресурсы и вы видите какие-топравильно отформатированные результаты, но ваш плейсхолдер

ничего не выводит. Что происходит? Вам нужно указать параметр &includeContent=`1` чтобы получить содержимое.

См. также

Если вам нужно получить одно поле из другого ресурса, попробуйте использовать getResourceField.

Что такое URL (Uniform Resource Locator)

К огда Вы вводите адрес в свой веб-браузер, многие вещи происходят невидимо. И большинство из них определяется различными частями введенного Вами URL-адреса. Давайте рассмотрим это подробнее.

URL-адрес может состоять из нескольких частей. Существует имя хоста, которое сопоставляется с IP-адресом определенного ресурса в Интернете и связью дополнительной информации, которая сообщает Вашему браузеру и серверу, как общаться. Вы можете думать о том, что IP-адрес является чем-то вроде номера телефона. Имя хоста похоже на имя человека, номер телефона которого Вы хотите найти. И стандарт под названием Domain Name System (DNS) работает в фоновом режиме, как телефонная книга, переводя более удобные для пользователя имена хостов в IP-адреса, используемые сетями для маршрутизации трафика.

Помня об этой аналогии, давайте посмотрим на структуру URL-адреса и на то, как он работает.

Структура URL

Структура URL-адреса была впервые определена сэром Тимом Бернерсом-Ли, парнем, который создал веб-сайт и первый веб-браузер, — в 1994 году. URL-адреса в основном объединяют идею доменных имен с идеей использования пути к файлу для идентификации конкретной папки и файла. Таким образом, это похоже на использование пути, такого как C:\Documents\myfile.txt, в Windows, но с некоторым дополнительным материалом в начале, чтобы помочь найти нужный сервер в Интернете, где этот путь существует, и протокол, используемый для доступа к информации.

URL-адрес состоит из нескольких разных частей. Возьмем, к примеру, базовый URL-адрес http://www.example.com.

Этот простой URL-адрес разбит на два основных компонента: схема и полномочия.

Схема


Многие люди считают URL-адрес просто веб-адресом, но это не так просто. Веб-адрес — это URL-адрес, но все URL-адреса не являются веб-адресами. Другие сервисы, к которым Вы можете получить доступ в Интернете, например FTP, также являются URL-адресами. Часть схемы URL (эти буквы, за которыми следует двоеточие) обозначает протокол, с которым должно взаимодействовать приложение (например, Ваш веб-браузер) и сервер.

Веб-адреса являются наиболее распространенным URL-адресом, но есть и другие. Таким образом, Вы можете увидеть такие схемы, как:

  • HyperText Transfer Protocol (HTTP): это базовый протокол Интернета и определяет, какие действия должны выполнять веб-серверы и браузеры в ответ на определенные команды.
  • HTTP Secure (HTTPS): это форма HTTP, которая работает над защищенным, зашифрованным слоем для более безопасной транспортировки информации.
  • File Transfer Protocol (FTP): этот протокол часто используется для передачи файлов через Интернет.

В современных браузерах схема не является технически необходимой частью URL-адреса. Если Вы введете веб-сайт, например «guidepc.ru», Ваш браузер автоматически определит правильный протокол для использования. Тем не менее, некоторые другие приложения (и протоколы) требуют использования схемы.

Полномочия

Часть полномочий URL (которому предшествуют два слэша) сама разбивается на кучу частей. Начнем с очень простого URL-адреса, который приведет Вас на домашнюю страницу веб-сайта.

В этом простом примере вся часть «www.example.com» называется именем хоста, и она разрешает IP-адрес. Вы также можете ввести IP-адрес в адресную строку браузера, а не имя хоста, если вам это известно.

Но при анализе имени хоста он помогает прочитать его назад, чтобы понять, что происходит, поэтому вот те компоненты:

  • Домен верхнего уровня. В приведенном здесь примере «com» — это домен верхнего уровня. Это самый высокий уровень иерархии доменных имен (DNS), используемый для перевода IP-адресов на простые языковые адреса, которые нам легче запомнить. Эти домены верхнего уровня создаются и управляются Internet Corporation for Assigned Names and Numbers (ICANN). Три наиболее распространенных домена верхнего уровня: .com, .net и .gov. В большинстве стран также есть свой двухбуквенный домен верхнего уровня, поэтому Вы увидите такие домены, как .ru (Россия), .uk (Великобритания), .ca (Канада) и многие другие. Также есть некоторые дополнительные домены верхнего уровня (например, .museum), которые спонсируются и управляются частными организациями. В дополнение к ним есть также некоторые общие домены верхнего уровня (например, .club, .life и .news).
  • Субдомен: поскольку DNS — это иерархическая система, обе части «www» и «example» нашего URL-адреса рассматриваются как поддомены. Часть «www» является субдоменом домена «com» верхнего уровня, а часть «www» является субдоменом «example» домена. Вот почему Вы часто видите компанию с зарегистрированным именем «google.com», разломанным на отдельные поддомены, такие как «www.google.com», «news.google.com», «mail.google.com» и подобные.

Это самый простой пример раздела полномочий URL-адреса, но все может усложниться. Есть два других компонента, которые могут содержать раздел полномочий:

  • Информация о пользователе: раздел полномочий также может содержать имя пользователя и пароль для сайта, к которому Вы обращаетесь. Редко можно увидеть эту структуру в URL-адресах сегодня, но это может произойти. Если присутствует, часть информации пользователя появляется перед именем хоста, а за ней следует знак @. Таким образом, Вы можете увидеть что-то вроде «//username:password@www.example.com», если оно содержит информацию о пользователе.
  • Номер порта: сетевые устройства используют IP-адреса для получения информации на нужном компьютере в сети. Когда этот трафик прибывает, номер порта сообщает компьютеру приложение, для которого предназначен этот трафик. Номер порта — это еще один элемент, который Вы не будете часто видеть при просмотре в Интернете, но Вы можете увидеть его в сетевых приложениях (например, в играх), в которых вам нужно ввести URL-адрес. Если URL-адрес содержит номер порта, он появляется после имени хоста и ему предшествует двоеточие. Это будет выглядеть примерно так: «//www.example.com:8080».

Итак, это схема и часть полномочий URL-адреса, но, как Вы могли догадаться, просмотрев много URL-адресов при просмотре веб-страниц, они могут включать в себя еще больше вещей.

Пути, запросы и фрагменты

Есть три дополнительные части URL-адреса, которые Вы можете увидеть после части полномочий: пути, запросы и фрагменты. Вот как они работают.

Раздел полномочий URL-адреса получает Ваш браузер (или любое другое приложение) на нужный сервер в сети. Следующий путь, который работает так же, как путь в Windows, macOS или Linux, попадает в нужную папку или файл на этом сервере. Пути предшествует косая черта, и между каждым каталогом и подкаталогом есть косая черта, например:

Последняя часть — это имя файла, который открывается при доступе к веб-сайту. Хотя Вы не видите его в адресной строке, это не значит, что его нет. Некоторые языки, используемые для создания веб-страниц, скрывают имя файла и расширение, которое Вы просматриваете. Это упрощает запоминание и ввод URL-адреса и дает ему более чистый вид.

Запрос

Часть запроса URL-адреса используется для идентификации вещей, которые не являются частью строгой структуры пути. Чаще всего Вы увидите, что они используются при выполнении поиска или когда веб-страница передает данные через форму. Перед частью запроса предшествует знак вопроса и приходит после пути (или после имени хоста, если путь не включен).

В качестве примера возьмем этот URL-адрес, который был представлен, когда мы искали на aliexpress по ключевому слову «wi-fi»:

Форма поиска передала информацию поисковой системе aliexpress. После вопросительного знака Вы можете увидеть, что в запросе есть две части: URL-адрес для поиска (это часть «wholesale?») и ключевые слова, которые мы набрали (это «SearchText=wifi»).

Это довольно простой пример, и Вы часто увидите URL-адреса с дополнительными (и более сложными) переменными. Например, вот URL, когда мы искали в Google по ключевому слову «guidepc»:

Как Вы можете видеть, там есть какая-то другая информация. В этом случае Вы можете увидеть, что есть дополнительная информация, указывающая язык поиска, браузер, который мы использовали (Chrome), и даже номер версии браузера.

Фрагмент

Конечный компонент URL-адреса, который Вы можете увидеть, называется фрагментом. Фрагменту предшествует хэш-метка (#) и используется для указания определенного местоположения на веб-странице. При кодировании веб-страницы разработчики могут создавать привязки для определенного текста, например заголовки. Когда соответствующий фрагмент используется в конце URL-адреса, Ваш браузер загрузит страницу, а затем перейдет к этому якорю. Якоря и URL-адреса с фрагментами часто используются для создания таблиц контента на веб-страницах, чтобы упростить навигацию.

Вот пример. Страница Википедии о ренессансе — довольно длинный документ, и он разбит примерно на 14 разделов, каждый из которых имеет несколько подразделов. Но каждый заголовок на странице содержит привязку, а оглавление в верхней части статьи содержит ссылки, которые позволяют перейти к различным разделам. Эти ссылки работают, включая фрагменты.

Вы также можете использовать эти фрагменты непосредственно в своей адресной строке или в качестве разделяемых ссылок. Скажем, например, Вы хотели показать кому-то раздел этой страницы, который содержим информацию о науке. Вы можете просто отправить им эту ссылку:

Часть «#Наука» в конце URL-адреса перемещается прямо в этот раздел после загрузки страницы.

Итак, теперь Вы знаете больше, чем когда-либо хотели узнать о том, как работают URL-адреса.

PHP: Предупреждение: get_resource_type() ожидает, что параметр 1 будет ресурсом, объект указан

Я искал эту конкретную ошибку и не могу найти ответ. Я пытаюсь модифицировать сценарий, написанный для mysql, для mysqli и успешно прошел эту ошибку:

Предупреждение: get_resource_type() ожидает, что параметр 1 будет ресурсом, указанным объектом (и т.д.)

Я не могу для жизни понять, как изменить это, чтобы обновить его до mysqli. Кто-нибудь может помочь?

В отличие от старых функций MySQL, методы MySQLi обычно не возвращают ресурсы. Обычно они возвращают объект или какой-либо другой тип string/integer/boolean/null. Сообщение об ошибке кристально чистое. Функция get_resource_type() ожидает ресурс в качестве аргумента, и вы даете ему объект.

Не забудьте прочитать о типах в PHP для уточнения различий между типами ресурсов и типами объектов.


Я предполагаю, что вы ожидаете, что $this->queryid будет объектом MySQLi_Result и тем, что вы пытаетесь проверить. Поэтому вместо get_resource_type() вместо этого используйте instanceof operator, чтобы проверить тип объекта.

Кроме того, вы можете просто набрать MySQLi_Result для прототипа функции, чтобы принимать объекты типа MySQLi_Result для упрощения вашего кода и упрощения тестирования.

Также прекратите использование оператора молчания ошибок @ . Из этого ничего хорошего не выйдет.

редактировать

Убедитесь, что вы вызываете mysqli_free_result() а не старую mysql_free_result() , также, как указано в комментариях.

getResourses

Что такое getResources?

getResources — это многоцелевой сниппет MODX Revolution, который может извлекать содержимое полей из других ресурсов и выводить его в любом удобном виде. Это не замена Ditto, а скорее альтернатива, сниппет, который может выполнять функции более специализированных компонент, таких как Ditto, Wayfinder, Breadcrumbs; фактически любых компонент, которые выполняют вывод данных из списка ресурсов.

Требования

  • MODX Revolution 2.0.0 или выше
  • PHP5 или выше

Установка getResources

Установка производится из панели управления MODX Revolution стандартным способом через Система->Управление пакетами->Загрузить дополнения.

Использование

Снипет getResourses может быть вызван с использованием тега:

вызов без &tpl свойста выведет просто список всех ресурсов и их полей.

Доступные свойства:

Параметры шаблонизации

Название Описание Значение по умолчанию Добавлено в версии
tpl Название чанка, отвечающего за вывод ресурсов. Если не указано, выводятся список всех ресурсов текущего уровня.
tplOdd Название чанка выступающего в качестве шаблона с нечётным значением idx. (смотрите свойство idx).
tplFirst Назнание чанка, который будет шаблоном вывода первого ресурса
tplLast Назнание чанка, который будет шаблоном вывода последнего ресурса
tpl_N Назнание чанка, который будет шаблоном вывода n-ного ресурса, например, &tpl_4=`tpl4th`
tpl_nN Назнание чанка, который будет шаблоном вывода каждого n-ного ресурса, например, &tpl_n4=`tpl4th` будет применяться к любому элементу, у которого id делится на 4. 1.4.1-pl
tplPath Дополнительный каталог для поиска файлов на основе чанков при использовании @FILE assets_path + «elements/chunks/»
tplWrapper Название чанка, выступающего в виде обёртки шаблона для вывода [Примечание: не работает с toSeparatePlaceholders]. Плейсхолдер, где элементы вставлены — [[+output]]. 1.6.0-pl
wrapIfEmpty Если истина, выведёт обёртку, указанную в &tplWrapper даже если вывводимые данные отсутствуют. false 1.6.0-pl
outputSeparator Дополнительная строка для разделения каждого tpl . «\n»
toPlaceholder Если установлено, присвоит результат данному плейсхолдеру вместо его непосредственного вывода.
toSeparatePlaceholders Если установлено, будет назначать каждый результат отдельному плейсхолдеру, названному по имени этого параметра с суффиксом в виде последовательных чисел, начиная с 0. 1.3.0

Префиксы шаблонов @FILE и @INLINE

@FILE — этот префикс позволяет вам указать файл вместо чанка в базе данных в качестве шаблона. Путь и имя файла, который вы указываете, будут заданы по умолчанию, если вы не задаете свойство tplPath, а поиск шаблона @FILE будет выполняться относительно вашей конфигурации assets_path + «elements/chunks/.

@INLINE — этот префикс позволяет вам указать разметку для использования с вашим шаблоном непосредственно в значении параметра. Рекомендуется использовать этот префикс шаблона только при указании свойств tpl* в наборе свойств [Property Set], в противном случае любые плейсхолдеры в строковой разметке могут быть вычислены перед передачей содержимого getResourses, поскольку кэшируемые вложенные теги в MODX Revolution вычисляются перед началом обработки содержащего их тега. @INLINE должен сопровождаться пробелом, например : «@INLINE
[[+pagetitle]] «.

Пример использования некэшируемой ссылки с префиксом шаблона @INLINE :

Параметры выборки :

Название Описание Значение по умолчанию Добавлено в версии
parents Список ифентификаторов, разделённых запятыми, выступающих в качестве родителей. Используйте -1 для игнорирования родителей при указании ресурсов. Если этого параметра не указать, getResources принимает &parents как текущий ресурс и выбирает дочерние ресурсы от него (а также ресурсы, указанные в параметрах &resourses). id текущего ресурса
resources Разделённый запятыми список идентификаторов, включаемых в результат. Добавте перед идентификатором «- «, чтобы исключить его из результата.
depth Целочисленное значение, указывающее глубину поиска документов от каждого родителя. 10
tvFilters Может быть использован для фильтрации ресурсов по определённым TV параметрам. Они вводятся как [(имя tv-параметра)(оператор)](значение). Вы можете использовать два разделителя для объединения условий фильтра.

Вы можете использовать фильтры «ИЛИ» (OR), в виде двойной вертикальной черты ( ||). Фильтр «ИЛИ» (OR) извлекает ресурсы, которые имеют один из перечисленных tv-параметров.

mytv==одно значение||mytv==другое значениеe

Вы можете также использовать фильтр «И» (AND) указывая запятую (,). Этот фильтр проверяет соблюдение всех условий.

mytv== одно значение ,othertv== другое значениеe

Для расширения возможностей фильтрации вы можете группировать эти значения. Важно знать, что вначале обрабатываются условия «ИЛИ» (||), а затем «И». Давайте рассмотрим это на примере:

Это будет фильтрация ресурсов, удовлетворяющим одному из следующих условий:

mytv равно foo, или:
mytv равно bar И bartv равно 3, или:
bartv равно 1

Выше приведены примеры поиска точных значений. Если хотите, вы так же можете использовать знак процента(%) в качестве маски. Например:

Соответствует любым ресурсам, имеющим «а» в значении mytv.


Соответствует любым ресурсам, имеющим значение mytv, начинающееся с «а».

Соответствует любым ресурсам, имеющим значение mytv, заканчивающееся на «а».

В этих случаях вы также можете использовать разделители «ИЛИ» ( ||) и «И» (,).

Важно знать, что эта функция ищет необработанное значение tv-параметра для определенного ресурса. Это означает, что данное значение точно установлено для ресурса и, что оно не будет обработано в соответствии с типом tv-параметра (или же является типом по умолчанию в релизах до 1.4.2-pl; в этом релизе добавляется поддержка фильтрации, включая значения по умолчанию). Поэтому, если у вас tv-параметр «авто-метка», это означает, что необработанное значение представляе собой список, ограниченный запятыми, и он не разделен на теги, как вы это видите в панели управления.

Начиная с версии 1.4.2-pl, возможно использование новых операторов фильтра. Имеется целый ряд новых операторов сравнения, которые можно использовать при создании условий фильтрования. Кроме того, при использовании многих из этих операторов перед сравнением tv-параметры приводятся к числовым величинам. Вот перечень допустимых операторов :

Оператор фильтра SQL оператор Числовое преобразование
(безопасное сравнение с NULL) Да
=== = Да
!== != Да
<> <> Да
== LIKE Да
!= NOT LIKE Да
> > Да
>= >= Да
=> => Да
sortby Позволяет выполнять сортировку по любому полю ресурса (исключая tv-параметры). Некоторыми обычными полями, по которым возможна сортировка, являются : publishedon, munuindex, pagetitle и другие. Указывайте только имя поля, не используя синтаксис тега. Отметим, что при использовании для сортировки полей, подобных template, publishedby, они будут сортироваться по необработанным значениям, а не по их именам.

Вы также можете использовать случайную сортировку, указав параметр RAND ():

Начиная с версии 1.3.0 для сортировки по нескольким полям может использоваться массив JSON, например:

Если вы хотите выполнить сортировку в определенном особом порядке, вы можете сделать это, указав список идентификаторов (ID) ресурсов, подобно следующему :

&sortby=` FIELD(modResource.id, 4,7,2,5,1 ) `

Это же возможно, если вы поместите идентификаторы в tv-параметр:

publishedon Модифицировано в версии 1.3.0.
sortbyAlias Выстраивает псевдонимы для поля sortby.
sortbyEscaped Исключает имя поля, указанное в sortby.
sortdir Порядок, по которому производится сортировка.
(По умолчанию: DESC)
sortbyTV tv-параметр, по которому производится сортировка.
sortdirTV Порядок, по которому производится сортировка при использовании sortbyTV.
sortbyTVType Указывает тип данных для sortbyTV. Возможными значениями являются : string, integer, decimal, datetime.
(По умолчанию: string)
limit Ограничивает количество выдаваемых ресурсов. Используйте `0` для выдачи результатов без ограничений.
(По умолчанию: 5)
offset Сдвиг выдаваемых по некоторому критерию ресурсов.
(По умолчанию: 0)
where Выражение для критерия типа JSON для построения дополнительных условий. Смотрите примеры ниже, а также
context В каком контексте должен выполняться поиск.
(По умолчанию в текущем)

Прочие параметры:

Название Описание Значение по умолчанию Добавлено в версии
showUnpublished Если истина, будут отображаться ресурсы, снятые с публикации.
showDeleted Если истина, будут отображаться ресурсы, помеченные для удаления.
showHidden Если истина, будут отображаться ресурсы, независимо от того, отображаются ли они в меню.
hideContainers Если установленно, не будут отображатся любые ресурсы, отмеченные как контейнер (is_folder).
includeContent Указывает должно ли выдаваться в результатах содержимое каждого ресурса .
includeTVs Указывает должны ли значения tv-параметров включаться в параметры, доступные каждому шаблону ресурса.
includeTVList Дополнительный, разделяемый запятыми список имен tv-параметров для включения в явном виде, если includeTVs установлен в 1. 1.4.0
prepareTVs Подготавливает значения tv-параметров, зависяшие от среды. 1 1.5.0
prepareTVList Органичивает tv-параметры теми, которые указаны по имени в разделенном запятыми списке. 1.5.0
processTVs Указывает должны ли быть tv-параметры обработаны так, как они были бы представлены в ресурсе. tv-параметры а должны быть включены для обработки (см. includeTVs/includeTVList).
processTVList Дополнительный разделенный запятыми список имен tv- параметров, обрабатываемых явно . tv-параметры, указанные здесь, должны быть включены при помощи includeTVs/includeTVList 1.4.0
tvPrefix Префикс для свойств tv-параметров. tv.
idx Вы можите определить начальный >ресурсов , который представляет собой свойство , увеличивающееся при обработке каждого ресурса . 1
first Определяет idx, представляющий собой первый ресурс. 1
last Определяет idx, который представляет собой последний ресурс. По умолчанию это значение равноколичеству суммируемых ресурсов + first — 1
totalVar Задает ключ плейсхолдера, устанавливаемого getResources для показа общего количества ресурсов, которые будут выбраны не учитывая значения limit. total
debug Если истина, отправит SQL запрос в лог-файл MODx false

Имеющиеся плейсхолдеры

Перечень плейсхолдеров, доступных для getResourses при форматировании чанков, зависит от ресурсов, с которыми вы работаете.

Смотрите раздел на странице «Обычно используемые теги шаблонов» («Commonly Used Template Tags») — здесь перечислены параметры, доступные для всех ресурсов.

Если ваш ресурс имеет tv-параметры, они будут иметь соответствующие плейсхолдеры (помните, что плейсхолдеры будут использовать префикс, задаваемый параметром &tvPrefix).

Кроме того имеется следующий плейсхолдер :

[[+idx]] Увеличивается с каждой итерацией, начиная с 1 (или со значения, заданного параметром &tvPrefix)

Примеры

За более детальными примерами обращайтесь к подразделу документации .

Пример вывода списка дочерних ресурсов текущего ресурса с использованием чанка ‘myRowTpl’ :

[[!getResources? &parents=`71` &tpl=`myRowTpl`]]

Вывод списка всех дочерних ресурсов, начиная с 5, за исключением 10, используя чанк ‘myRowTpl’:

[[!getResources? &parents=`5` &resources=`-10` &tpl=`myRowTpl`]]

Вывод указанных ресурсов с использованием чанка ‘myRowTpl’

[[!getResources? &parents=`-1` &resources=`10,11,12` &tpl=`myRowTpl`]]

Выводит 5 последних опубликованных ресурсов с помощью чанка ‘blogPost’

[[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost` &includeContent=`1`]]

Выводит список дочерних ресурсов текущего ресурса, где id шаблона ресурсов 1 или 2

Выводит список дочерних элементов текущего ресурса с id шаблонов 1, 2 или 3 (вы пожете использовать один ключ несколько раз)

Сообщание, выдаваемое при отсутствии результата:

[[!getResources:default=`No results found`? &parents=`71` &tpl=`myRowTpl`]]

Отображение TV параметров в getResources

Чтобы уменьшить время поиска , g etResources не получает TV параментр по умолчанию. Если вы хотите отобразить TV, вы должны включать в вызов следующие параметры :

Вам необходим префикс перед каждым TV параметром.

В Tpl чанке , который вы использовать для отображения g etResources используйте placeholder в месте, где должен отображаться TV параметр:

Использование getPage для нумерации страниц

В сочетании с GetPage , GetResources позволяет делать мощное и гибкое разбиение на страницы вашего сайта.

Пример:

[[!getPage?
&element > &element=`getResources`
&parents=`17`
&depth=`2`
&limit=`10`
&pageVarKey=`page`
&includeTVs=`1`
&includeContent=`1`
&tpl=`blogListPost`
]]

Илон Маск рекомендует:  Поволжская ИТ-конференция РИФ.Технологии. Всё, что вы хотели знать о технологиях и разработке
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL