Доработка функционала сайта на Тильде
Доброго времени друзья! Ко мне часто обращаются владельцы сайтов созданных на конструкторе Тильда, интернет-магазинов, сайтов ресторанов и кафе, агентств недвижимости и прочих, с вопросом — можно ли доработать функционал сайта? Ведь известно, что сайт созданный на конструкторе, практически всегда не предоставляет доступ к своему коду, а все его изменения и доработки, возможны лишь за счет изменения предусмотренных настроек. Что ограничивает свободу владельца сайта, по части функциональных изменений. Но, к счастью осуществить доработку функционала сайта на Тильде, все таки — можно! О том, как это делать я расскажу далее.
Доработка путем размещения JavaScript кода
О данном способе доработки(изменения, добавления) функционала много где написано, в том числе в документации самой Тильды. Суть заключается в том, чтобы разместить на сайте с Тильда(Настройки сайта -> Ещё -> HTML-код для вставки внутрь Head), который будет работать со структурой DOM дерева страницы сайта. Это позволяет добавить, изменить или удалить любые элементы на странице сайта, манипулировать ими и т.д. Можно также разместить любой готовый виджет, от мессенджера(форма связи с владельцем), до различных сортировщиков товаров, фильтров поиска и т.д. Тильда включает во все свои страницы библиотеку jQuery, что тоже несомненно упрощает работу с сайтом, из кода.
Недостаток данного метода заключается в том, что он не позволяет сайту работать с более сложными технологиями, например взаимодействие сайта по REST/JSON API с банковским интернет-эквайрингом, который требует передачу в запросах между сайтом и банком, секретных ключей доступа(токена) и т.д. Но, для решения этой проблемы, есть другой способ доработки сайта на Тильде, о чем далее.
Доработка путем интеграции с PHP скриптом на внешнем хостинге
Как известно на самом сайте сделанном на Тильде, нельзя размещать скрипты написанные на PHP или Python, но это ограничение можно обойти, разместив такой скрипт на внешнем хостинге, с поддержкой соответственных интерпретаторов языка программирования. При этом, связь с таким внешне-размещенным скриптом будет обеспечиваться за счет JvasScript кода, который уже в свою очередь будет размещен на вашем сайте(на Тильде). Иногда(например в случае с интеграцией с тем же банковским интернет эквайрингом), размещение PHP скриптов которые будут взаимодействовать с API банка, запрещено на доменах не относящихся к основному домену вашего сайта(на сторонних доменах). Это может создать определенную проблему, но для этого также есть решение.
Если вы подключили к Тильде свой домен второго уровня(прописав в его настройках NS, адреса Тильды), то вы можете попросить поддержку Тильды(отправив им соответствующее обращение) о том, чтобы они создали поддомен третьего уровня, и прописали в настройках DNS запись типа A, с указанием IP адреса, вашего внешнего хостинга с поддержкой PHP. Таким образом имея домен второго уровня, например myshop.ru, вы с легкостью получите домен третьего уровня, например engine.myshop.ru на котором сможете разместить любые серверные скрипты. И при этом, это не будет нарушать правил, установленных внешними сервисами(как пример выше, банковский эквайринг), с которыми вы планируете взаимодействовать.
Пример кода:
jQuery(document).ready(function($) { // Добавление в корзину, под полем Итог, информационное сообщение о скидке $('.t706__cartwin-prodamount').after(`<span class="">Скидка 100 руб.</span>`); }); |
Доработка путем манипуляции объектами JS
Еще один способ функциональных доработок сайта на Тильде, это манипуляция JavaScript объектами на странице сайта, которые объявлены в глобальном пространстве имен, и доступны через глобальные объекты window и document. Например, на страницах сайта интернет-магазина Тильды, есть глобальный объект tcart, доступ к которому можно получить, соответственно winodw.tcart, с целью дальнейшего изменения данных в этом объекте. Например так можно реализовать, изменение цен в корзине интернет-магазина, в зависимости от количества заказанного товара и т.д. Но, справедливости ради стоит отметить, что в некоторых случаях, все же без хитростей не обойтись, например если вы хотите изменить стоимость товара, путем манипуляции JS объектом, его новая цена все-же должна быть предусмотрена в системе товара-учета Тильды(вашего сайта). Иначе, разумеется Тильда обнаружит несостыковку данных(в момент перехода на оплату), и выдаст ошибку, сославшись на попытку взлома сайта(реально на практике встречалось такое).
Пример кода:
jQuery(document).ready(function($) { // Отправка запроса на ваш поддомен третьего уровня, который делегирован на хостинг с поддержкой PHP $.ajax({ url: 'https://engine.myshop.ru/index.php', data: "param1=test&param2=foo", dataType: 'json', type: 'POST', success: function(obj) { // Получение ответа и выполнение действий на странице сайта на Тильде }, complete: function(obj) {}, error: function(jxhr, msg, err) {}, }); }); |
Что можно реализовать?
Что вообще можно реализовать выше описанными способами? К счастью большую часть задумок как правило, реализовать можно. Добавить на страницу новые элементы, настроить взаимодействие с пользователем с дальнейшим динамическим изменением контента на странице, изменение параметров заказа и прочее. Интеграция с большинством API различных сервисов. И даже реализация личного кабинета(как пример) пользователя на сайте Тильды с уникальным функционалом, разумеется бэкенд которого будет хранится на внешнем хостинге с поддержкой PHP.
jQuery(document).ready(function($) { var timer = setInterval(function() { if(typeof window.tcart == 'object' || countLoading >= 30) { // Дождались загрузки объекта корзины Тильда tcart // Работаем с объектом console.log(rcart); clearInterval(timer); } else { countLoading++; console.log('Загрузка...'); return; } }); |
Заключение
Принято считать, что сайт на Тильде, это ограниченное решение в плане возможностей по доработке функционала, и многие веб-разработчики, видя перед собой подобные задачи, сразу спешат поставить вердикт — невозможно. Но, это не так, и я готов помочь вам в реализации ваших идей на сайте Тильда.
Друзья, если вам нужна помощь с реализацией ваших идей на сайте Тильда, пожалуйста обращаетесь буду рад помочь!
Похожие записи
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- PHP работа с изображением, класс SimpleImage
- Интеграция с API ОСАГО сайта sravni.ru
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Обзор Insurance CMS — платформы для сайтов по страхованию к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
Archive
- +2025 (3)
- Январь 2025 (3)
- +2024 (35)
- Декабрь 2024 (7)
- Ноябрь 2024 (13)
- Октябрь 2024 (8)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Плагин WordPress для настройки robots.txt 13.01.2025
- Скрипт проверки товара на оригинал (для WordPress и прочих) 08.01.2025
- Флаги Apache при переадресации RewriteRule 02.01.2025
- Интеграция сайта(ресторана) с API сервиса Quick Resto 23.12.2024
- Шифрование в PHP и расшифровка в JavaScript по ключу 15.12.2024