Как запустить поиск по id с помощью mSearch2

К примеру если мне нужно в поиске вбить id ресурса и он мне его вернет
Максим
22 июля 2018, 23:57
modx.pro
1 687
0

Комментарии: 5

Баха Волков
23 июля 2018, 14:40
+1
Могу подсказать как сделать поиск по id из трех спичек и старой аудио-кассеты))
    Максим
    24 июля 2018, 23:10
    0
    подскажи
      Баха Волков
      26 июля 2018, 21:20
      0
      Смотри, очень примитивно покажу, чтобы суть была понятна. (Это то как бы я сделал. Ни в коем случае не претендую на джедайский ум):

      Помещаем форму в нужном месте:

      <form action="Ссылка на страницу с выдачей" method="GET или POST">
          <input type="search" name="query" placeholder="Введите id ресурса если он вам известен">
          <button type="submit">Жмякни чтобы получить желанное</button>
      </form>

      На странице с выводом:

      // MODX
      
      [[pdoResources:default=`Нихрена не нашлось, иди поспи`?
          &parents=`0`
          &resources=`[[#GET.query:default=`9999`]] или [[#POST.query:default=`9999`]]` // 9999 - это id несуществующего ресурса
          ...    // Тут чанки и другие параметры
          &checkPermissions=`...` // По-моему нужно указать права доступа, «Но это не точно»
      ]]
      
      // Fenom
      
      {var $search = $_modx->runSnippet('pdoResources', [
          'parents' => 0,
          'resources' => $.get.query ?: 9999 или $.post.query ?: 9999,
          ...        // Тут чанки и другие параметры
          'checkPermissions' => '...'   // По-моему нужно указать права доступа, «Но это не точно»
      ])}
      
      {$search ?: 'Нихрена не нашлось, иди поспи'}
      
      // Или
      
      {if $search}
          {$search}
      {else}
          Говорю же, нихрена не нашлось, иди поспи
      {/if}

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

      Это вариант вывода, но если что-то другое захочется, то можно при вводе id отправлять ajax-ом запрос на свой php-скрипт, который по идее должен будет в ответе вернуть название и ссылку например, и подсказкой вывести. Получится при клике отправлять на страницу.

      Короче вариантов наверное много
        Максим
        26 июля 2018, 21:25
        0
        Эх… я то думал все mSearch2 сделать можно… Просто он у меня есть и хочется по мимо слов и фраз с которыми он так хорошо работает добавить id товара…
          Баха Волков
          26 июля 2018, 22:45
          0
          Так никто и не мешает:

          1. Если поиск запускается через сниппет mSearchForm, то укажи параметр minQuery поменьше
          2. Идем в системные настройки, msearch2, ключ mse2_index_fields или также mSearchForm передаешь fields указывая поля поиска с весом для каждого из них и id присваиваешь больше веса. Например: &fields=`id:5,pagetitle:5,content:3 и т.д.`
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5