Поиск в GoogleSheets

Подскажите, пожалуйста, какие инструменты использовать.
Задача: есть гугл таблица с данными, необходимо на сайте сделать поиск, который будет искать данные в таблице и выводить определенные поля из найденной строки поиска.
Попробовал взять компонент GoogleSheets из модстора. Связал документ, даннные из таблицы получаю с помощью модификатора:
{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16AXIj1Dw0Cnx0neYHavZUuuDDmDMNkp8/edit#gid=0',
    'range' = 'Manhattan!A1:J10'
] | table: 'table table-hover'}
Данные выводятся, все хорошо.

Но вот как сделать поиск? Можно ли предварительно забрать данные куда-нибудь в MIGX таблицу, а потом как-то реализовать поиск уже по MIGX таблице и вывести результат?
За ранее благодарен!
С Уважением, Вячеслав.
Вячеслав
20 января 2021, 22:06
modx.pro
1
726
0

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

Наумов Алексей
21 января 2021, 10:11
1
+1
Я решил такой вам помочь… хотя сам в жизни не работал с GoogleSheets…

Открыл яндекс, набрал там «GoogleSheets modx»…
Первая же ссылка — внезапно (!) на документацию компонента… окей… посмотрим… обращаем свой взор на навигацию слева и видим… волшебное слово MIGX! Откроем, почитаем… и правда, вот он, импорт из таблицы в migx!
docs.modx.pro/komponentyi/googlesheets/migx
    Вячеслав
    21 января 2021, 12:54
    0
    Спасибо большое! Я просто предположил вариант решения и интересовался, в правильном ли направлении я мыслю?)) Чтобы двигаться в правильном направлении, а не идти в тупик)
    Алексей, спасибо за ответ) с Уважением ;)
      Наумов Алексей
      21 января 2021, 15:23
      1
      +1
      Но уж если на то пошло, я бы в migx хранил с целью промежуточного кеширование, если это конечно имеет смысл для вашей задачи.

      Если кеширование не нужно — то сохранять данные в TV странное решение будет… проще их получать и сразу обрабатывать.
        Вячеслав
        21 января 2021, 20:11
        0
        Алексей, благодарю!
        Не могли бы Вы дать простейший пример, как реализовать поиск в таблице через компонент GoogleSheets?
        Правильно ли я думаю: из документации сказано, что мы получаем данные в виде массива docs.modx.pro/komponentyi/googlesheets/vyivod-dannyix, тогда я с помощью javascript могу сохранить этот массив в переменную и потом просто сравнивать введенное значение в input с данными из массива. Если совпадение есть, вывести информацию о совпадении?
        За ранее благодарен.
        С Уважением.
    Aleksandr Huz
    21 января 2021, 21:47
    1
    +1
    Почему вы не пишите это автору, то есть мне? Вы купили компонент, могли бы написать и в ТП.
    забрать данные куда-нибудь в MIGX таблицу, а потом как-то реализовать поиск уже по MIGX таблице и вывести результат?
    Если данных много и они не обновляются часто, то можно экспортировать данные в json файл. И затем сделать поиск по нему, а не по мигс таблице. Но этот вариант нужно дорабатывать.

    Выпустил обновление.
    Теперь сниппет GoogleSheets принимает 2 параметра query и where

    1. query — для точного поиска. Значение массива должно совпадать со значением параметра query. Например:
    {'!GoogleSheets' | snippet: [
         'table' => 'https://docs.google.com/spreadsheets/d/16eyRIpKGbw/edit#gi1',
         'range' => 'ExportProducts',
         'query' => 'Мобильный'
    ] | table: 'table table-hover'}

    2. where — для поиска по определенному полю. Например:
    {'!GoogleSheets' | snippet: [
         'table' => 'https://docs.google.com/spreadsheets/d/16eyRIpKGbw/edit#gi1',
         'range' => 'ExportProducts',
         'where' => [
              'pagetitle' => 'Мобильный'
         ],
    ] | table: 'table table-hover'}
    Будет искать слово 'Мобильный' в значение поля pagetitle

    P.S. Можно использовать 2 параметра одновременно.
      Вячеслав
      21 января 2021, 22:34
      0
      Александр, спасибо за помощь!
      Не хотел столкнувшись с проблемой, сразу писать автору. Как говориться, сначала надо загуглить))

      Спасибо большое Алексею и Александру!
      Вячеслав
      22 января 2021, 23:00
      0
      Вот решение:
      <form action="" method="post">
        <label for="POST-name">number:</label>
        <input id="POST-name" type="text" name="number">
        <input type="submit" value="go">
      </form>
      <div>
      {'!GoogleSheets' | snippet: [
           'table' => 'https://docs.google.com/spreadsheets/d/1th/edit#gid=0',
           'range' => 'sheet1',
           'query' =>  $.post.number,
      ] | table: 'table table-hover'}
      </div>
      Поиск работает по введенному значению))

      Отдельное спасибо Aleksandr Huz!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7