Korew

Korew
Рейтинг
195
Регистрация
31.12.2007
Должность
UI Developer
Интересы
HTML/CSS/JS, WP, DLE

Скорее всего нужно установить права "666" для файла robots.txt. Делается через фтп или панель управления (что у вас там на хостинге, я не в курсе)

Miracle:
подскажите что вы читали по поводу Google Apps Script и телеграмма и вайбера.

Про вайбер вообще ничего не знаю, по телеграму - гуглите "telegram bot google script". Я посмотрел пару мануалов как сделать простеньких ботов, вник как все работает и адаптировал для контактной формы

Вот мой код, который сейчас работает (писал давно, не исключаю что-то можно сделать лучше, но цели такой сейчас нет)

GAS:


function sendMessage(chatId, text) {
var url = botUrl + "/sendMessage?chat_id=" + chatId + "&text=" + text + "&parse_mode=Markdown";
var response = UrlFetchApp.fetch(url);
}

function doGet(e) {
var name = e.parameter.name || '- Не указано -';
var email = e.parameter.email || '- Не указан -';
var phone = e.parameter.phone || '- Не указан -';

var messageToSend = '*Имя:* ' + name + '%0A*Телефон:* [' + phone + '](tel:' + phone + ')%0A*Email:* ' + email;
sendMessage(CHATID, messageToSend); // CHATID - прихардкоженый ID чата куда бот шлет сообщения
var MyResponse = 'OK';
return ContentService.createTextOutput(MyResponse).setMimeType(ContentService.MimeType.JAVASCRIPT);
}

В JS на сайте:


$contactForm.submit(function (e) {
e.preventDefault();
var $submit = $('input:submit', $contactForm);
var defaultSubmitText = $submit.val();
var data = $contactForm.serialize();
$.ajax({
url: '<<_ТУТ_ССЫЛКА_НА_ГУГЛ_СКРИПТ>>',
method: 'GET',
data: data,
beforeSend: function beforeSend() {
$submit.attr('disabled', true).val('Подождите');
},
success: function success() {
$submit.val('Сообщение отправлено!');
$('.contact-form-sent').addClass('ok');
},
error: function error(_error) {
console.log('error: ', _error);
$submit.val('Что-то пошло не так...');
setTimeout(function () {
$submit.attr('disabled', false).val(defaultSubmitText);
}, 5000);
}
});
});

Давайте на примере кода РСЯ покажу решение (рабочее, сам так делаю). Есть код который дает нам РСЯ:


<!-- Yandex.RTB R-A-777777-1 -->
<div id="yandex_rtb_R-A-777777-1"></div>
<script type="text/javascript">
(function(w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: "R-A-777777-1",
renderTo: "yandex_rtb_R-A-777777-1",
async: true
});
});
t = d.getElementsByTagName("script")[0];
s = d.createElement("script");
s.type = "text/javascript";
s.src = "//an.yandex.ru/system/context.js";
s.async = true;
t.parentNode.insertBefore(s, t);
})(this, this.document, "yandexContextAsyncCallbacks");
</script>

Мы в html вставляем только:


<div id="yandex_rtb_R-A-777777-1"></div>

А вторую часть (но уже без тега <script>) вставляем в js файл:


(function(w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Context.AdvManager.render({
blockId: "R-A-777777-1",
renderTo: "yandex_rtb_R-A-777777-1",
async: true
});
});
t = d.getElementsByTagName("script")[0];
s = d.createElement("script");
s.type = "text/javascript";
s.src = "//an.yandex.ru/system/context.js";
s.async = true;
t.parentNode.insertBefore(s, t);
})(this, this.document, "yandexContextAsyncCallbacks");

Это общий принцип как выводить код. Теперь для вашего конкретно случая (у вас есть 2 кода разных). Т.е. в одно место в html вставляем 2 дива:


<div id="yandex_rtb_R-A-777777-1"></div>
<div id="yandex_rtb_R-A-777777-2"></div>

Ну а в js уже в зависимости от условий выполняем один из двух кодов. Например:


var rnd = Math.round(Math.random());
if (rnd) {
// выполнить первый код
} else {
// выполнить второй код
}

В заголовке вам нужен телеграм бот для сайта, а по факту вы интересуетесь настройкой сертификата. Или я не так понимаю? ))

Если телеграм бот все-таки нужен, я делал как раз то что вы описали с помощью Google Apps Script - бесплатно и работает даже для статических сайтов.

Если есть небольшие знания в js - погуглите как это сделать, там ничего сложного. Минусов у такого решения я не нашел.

skapunker:
все что не видно не участвует в поиске.

Что за чушь???

beastmaster28, конечно проиндексирует. Вот я когда-то очень давно верстал:

https://korew.github.io/YellowMoon/

В гугле просто поищите site:korew.github.io test и убедитесь что индексирует и в поиске выдает.

LyalinDV,

Две функции:

date.getDate();
date.setDate();

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

Готовый код:


<script>
var d = new Date();
var day = d.getDate();
d.setDate(day + 2);
d.toLocaleString();
</script>

Напишите в каком формате вам нужна итоговая дата - поправлю код.

PS Вместо <script language="javascript" type="text/javascript"> просто <script> используйте

ziliboba0213:
Korew, извините, но вы не правы в данном эфимерном случае ТС

Ну что значит не прав? ТС попросил выводить баннеры отдельно для десктопа и мобил - я предлагаю написать готовый код и гарантирую, что это будет работать именно так, как нужно ТС. Как я могу быть не прав?

ziliboba0213:
ТС ничего не писал про коды РСЯ и адсенс, он спросил про баннеры

Я ничего не утверждал, я просто предположил и готов доказать/показать, что мой вариант будет работать и с картинками и с кодом РСЯ/адсенс и вообще с чем угодно. Хоть два баннера текстом сделайте.

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

Если, например, указать фон в css, то загрузятся только нужные медиа, тут можно не переживать. Если в html коде будут две картинки и одну из них скрывать через медиа-запросы в цсс, то тогда все-равно будут грузится две картинки.

Sitealert:
Сам такой.

бе-бе-бе

По делу:

Если это какая-то монетизация, то 99,9% что код баннера представляет из себя JS код. Если ТС продал рекламу напрямую, например, и ему нужно отдельно отслеживать переходы с мобил и десктопа через utm-метки (самое банальное, что можно придумать и точно стоит сделать), либо вообще в абсолютно разные места сливать отдельно трафик с мобил и десктопа - то тут srcset вообще не подойдет.

Так что извините, но я прав пока что, а некоторые вышеотписавшиеся - нет :)

PS Ну и перечитайте внимательно все что я писал, даже если ТС выберет вариант с srcset или тупо картинки или даже баннеры будет менять (скрывать/показывать) через css media - я все равно был прав.

Sitealert:
Это именно неправильное направление. Не морочьте человеку голову.

Я в этом "неправильном направлении" напишу код, который будет идеально работать в любых условиях. А с вашим решением я могу показать ситуацию когда на компе покажется баннер предназначенный для мобильного.

Я знаю о чем говорю и не надо рассказывать что я морочу кому-то голову.

Sitealert:
А если "вдруг", то и вопрос надо будет решать применительно к этому "вдруг", а не фантазировать на пустом месте. Пока исходим из того, что написано в стартпосте.

Я именно так и сделал - исходил из того, что написано в стартпосте. А вы наоборот исходите из того, что там не написано - придумали себе что-то и выдаете это за истину.

Это уже прям вызов :D

ТС, давайте сюда ваши баннеры - специально заморочусь и напишу вам готовое решение

Sitealert, как раз это именно то. Просто это не готовый код, а лишь правильное направление ))

Вдруг у ТС "баннеры" это коды блоков адсенса или РСЯ? Ваш вариант ничем не поможет, а через js все решается в один миг ))

Grimm Patron, если хотите готовый код - покажите сначала готовый код ваших текущих баннеров.

Средствами js можно легко и максимально надежно сделать.

https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser

С учетом того, что js можно написать прям в html, рискну предположить что этот вариант должен вам подойти.

Всего: 1519