Esser

Рейтинг
1
Регистрация
27.10.2018

Добрый вечер.

Вот Вам пример на скорую руку, если не хотите заморачиваться с плагинами и статьями.

Откройте файл /components/com_jcomments/tpl/default/tpl_form.php и найдите в нем условие (128 строка):

if ($this->getVar('comments-form-captcha', 0) == 1) {

Закомментируйте условие полностью и допишите строку после закрывающего тега пхп:

<div class="g-recaptcha" data-sitekey="ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ"></div>

Как показано на скриншоте http://joxi.ru/E2ppPX3C9qWgZ2 обратите внимание на открывающие/закрывающие теги php.

Теперь откройте файл /components/com_jcomments/jcomments.ajax.php и найдите в нем условие (примерно 230 строка):

if ($acl->check('enable_captcha') == 1) {

И также полностью закомментируйте и добавьте код:

if (isset($post['g-recaptcha-response']) && $post['g-recaptcha-response']) {

$secret = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';
$ip = $_SERVER['REMOTE_ADDR'];
$g_response = $post['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $g_response . "&remoteip=" . $ip);
$arr = json_decode($rsp, TRUE);
if (!$arr['success']) {
self::showErrorMessage('Вы не прошли проверку, попробуйте еще раз.');
return $response;
}
} else {
self::showErrorMessage('Код безопасности не был передан, попробуйте еще раз.');
return $response;
}

Как показано на скриншоте http://joxi.ru/l2ZxJEKcw59bbr

Там где написано "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" и "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" - пропишите свои значения, которые Вам выдал гугл.

И последнее, откройте индексный файл Вашего шаблона /templates/ВАШ_ШАБЛОН/index.php (возможно у Вас в другом файле) и перед закрывающим тегом </head> добавьте строку:

<script src='https://www.google.com/recaptcha/api.js'></script>

Проверяйте.

Но это прям "топорный" вариант решения. Лучше всё же советую обновить сайт и сделать по нормальному.

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

veb674:
Esser, спасибо, что отозвались. Ваши ссыли смотрел, но мне все равно не понятно в инструкции у Гугла вот этот момент: "Вставьте этот фрагмент в конце объекта <form> (там, где нужно разместить виджет reCAPTCHA)". Куда вставлять, в какой обьект? Или без правки кода не обойтись?

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

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

Отсюда - да, без правки кода никак не обойтись. К сожалению разработчики JComments так и не озаботились о том, чтобы прикрутить гуглокапчу.

Добрый день. Извините за столь поздний ответ, очень много работы.

Т.к. у Вас Joomla 2.5, то я настоятельно рекомендовал бы Вам обновить её до последней актуальной версии.

Если таковой возможности нет, то ознакомьтесь первоначально со статьей https://forum.joomla.org/viewtopic.php?t=956087#p3499158 по поводу того как вообще добавить reCaptcha v.2 к Joomla 2.5

После этого ознакомьтесь со статьей https://ogri.me/ru/web-design-development/1075-joomla-integriruem-recaptcha-v2-no-captcha-v-jcomments о том, как добавить reCaptcha в jComments.

Если Вы не хотите добавлять reCaptcha v.2 в саму Joomla, а сделать её просто через отдельный скрипт, то на основе второй статьи Вы самостоятельно можете сделать подобное подключение, заменив код импорта плагина captcha на прямое подключение скриптов.

Если в конечном итоге у Вас так и не получится ничего сделать, сообщите, постараюсь найти время и помочь с этим вопросом.

Так Вы для начала укажите, какой компонент комментариев Вы используете? А то их много, как тут подсказать в какой файл, у каждого из компонентов своя структура.

piton_chel:
Апокалипсис, я правильно понимаю, что это php и поэтому данный код не работает?

Если Вы вставляете этот код в html файл, то да, он не будет работать.

piton_chel:
Esser, а можно сделать что бы список ссылок был вида:
http://site1.com
http://site2.com
...
http://site99.com

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

Json требует указания ключа массива, поэтому нет, тот код не подойдет, воспользуйтесь тогда таким

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$.get('links.txt', function(data) {
var textData = $.makeArray(data);
var links = [];
links = textData[0].split("\n");
var randomIndex = Math.floor(Math.random() * links.length);
$('a').attr('href', links[randomIndex]);
});
</script>
<a href="">
<div class="test"></div>
</a>

Соответственно файл links.txt будет содержать следующий набор:

Ссылка 1
Ссылка 2
Ссылка 3

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

Для множественного использования лучше это конечно же вынести в отдельную функцию и уже в нее передавать идентификатор элемента <a> для которого необходимо подобрать ссылку и соответственно ссылку на файл ссылок (странно звучит). Также элемент <a> у Вас должен как-то идентифицироваться, например class или id, т.к. в коде выше рандомная ссылка будет задана для всех элементов <a> страницы.

Leks007:

а если упростить, без учета параграфа сделать, как будет выглядеть код ? я просто вывожу блок после самой статьи уже, внизу.
после тела wp-content (основного контента/статьи).

<?php if ( ! is_single ( array(1026, 1027, 1029, 1040) ) ) { ?>

здесь ваш код рекламы

<?php } ?>

В if перечисляете все id записей, для которых не должна показываться реклама.

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

Советую посмотреть в сторону дополнительных полей, например ACF или самостоятельно через add_meta_boxes. В таком случае Вы сможете в админке для записей добавить доп.поле, например чекбокс "не показывать рекламу" и уже в файле single.php сделаете проверку на наличие этого поля.

Добрый день. Если у Вас именно html сайт без возможности использования PHP, могу предложить воспользоваться jQuery getJSON.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<script>
$.getJSON('links.json', function(data) { // обращаемся к файлу links.json
var links = []; // создаем пустой массив ссылок
$.each(data, function(key, val) { // обходим все ссылки, полученные из links.json
links.push(val); // добавляем ссылку в массив
});
var randomIndex = Math.floor(Math.random() * links.length); // получаем случайный индекс по количеству ссылок
$('a.link').attr('href', links[randomIndex]); // выводим ссылку в атрибут href в элемент <a>
});
</script>
<a href="">
<div class="test"></div>
</a>

А вот так будет выглядеть файл links.json:

{

"1": "Ссылка 1",
"2": "Ссылка 2",
"3": "Ссылка 3"
}
S_A_N_T_A:
Спасибо! Но там много кода!

Не совсем понял, что значит "много кода". Обернуть картинку в ссылку с классом и добавить js-код:

$('.swipebox').swipebox({

useSVG : false,
hideBarsDelay: 0,
loopAtEnd: true,
removeBarsOnMobile: false
});

Это много? Или Вы про то, что необходимо подключить целую библиотеку?

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

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

Если автору всё еще интересно.

В случае, если Вам достаточно частичного обновления информации о товаре (артикул, количество, цена и т.д.) при выборе атрибута (в Вашем случае ткани), то легко решается на Joomla + Jshopping через зависимые атрибуты.

Если же Вам необходимо полное обновление информации с переходом на новый урл, где по каждой вариации будет отдельный товар, то Joomla + VM3.

Фильтры под них можно легко найти как платные, так и бесплатные, в крайнем случае допилить руками.

Также можно взять за основу WP + Woocommerce. Он также умеет работать с вариациями товаров, там нет ничего сложного.

Всё перечисленное выше также умеет Prestashop, но я Вам его ни за что не посоветую, ибо намучаетесь. На худой конец лучше возьмите OpenCart.

А вообще люди Вам правильно пишут, всё зависит от Ваших намерений. Если Вы готовы вложиться в проект и развивать его, то смотрите сразу в сторону 1С-Битрикс.

P.S.:

qvaro:
Или такого нет?

Когда Вы так спрашиваете, действительно, возникает вопрос, смотрели ли Вы вообще варианты и пробовали ли? Вряд-ли кто-то даст конкретный ответ Вам, т.к. каждый будет отдавать больше предпочтения той CMS, с которой чаще работает.

12
Всего: 12