Добрый вечер.
Вот Вам пример на скорую руку, если не хотите заморачиваться с плагинами и статьями.
Откройте файл /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>
Проверяйте.
Но это прям "топорный" вариант решения. Лучше всё же советую обновить сайт и сделать по нормальному.
Код править в любом случае придется, либо пересаживайтесь на другой компонент комментариев. Соответственно обновлять компонент нельзя, иначе все правки слетят.
Если Вы будете делать по тем статьям, что я скинул, то Вам не нужна инструкция гугла, совершенно, от него Вам нужен будет только ключ и секрет.
А вот если Вы хотите сделать в обход статьям, то да, Вам нужно будет следовать инструкции гугла. По поводу того в какое место - смотрите вторую ссылку, что я дал, просто так воткнуть куда попало не получится, т.к. еще обязательно понадобится добавить обработчик, а иначе комментарий будет улетать в обход капчи.
Отсюда - да, без правки кода никак не обойтись. К сожалению разработчики 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 на прямое подключение скриптов.
Если в конечном итоге у Вас так и не получится ничего сделать, сообщите, постараюсь найти время и помочь с этим вопросом.
Так Вы для начала укажите, какой компонент комментариев Вы используете? А то их много, как тут подсказать в какой файл, у каждого из компонентов своя структура.
Если Вы вставляете этот код в html файл, то да, он не будет работать.
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> страницы.
<?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" }
Не совсем понял, что значит "много кода". Обернуть картинку в ссылку с классом и добавить js-код:
$('.swipebox').swipebox({ useSVG : false, hideBarsDelay: 0, loopAtEnd: true, removeBarsOnMobile: false });
Это много? Или Вы про то, что необходимо подключить целую библиотеку?
Смотря чего именно Вы хотите добиться. Если просто для пользователей размыть, то достаточно простого наложения блока с полупрозрачным фоном, можно и на js это сделать.
Если же Вас волнует именно гугл с "шокирующим содержимым", то просто воспользуйтесь любым плагином нанесения вотермарок, где в качестве водяного знака добавьте картинку с рызмытым фоном и текстом "не для слабонервных".
Если автору всё еще интересно.
В случае, если Вам достаточно частичного обновления информации о товаре (артикул, количество, цена и т.д.) при выборе атрибута (в Вашем случае ткани), то легко решается на Joomla + Jshopping через зависимые атрибуты.
Если же Вам необходимо полное обновление информации с переходом на новый урл, где по каждой вариации будет отдельный товар, то Joomla + VM3.
Фильтры под них можно легко найти как платные, так и бесплатные, в крайнем случае допилить руками.
Также можно взять за основу WP + Woocommerce. Он также умеет работать с вариациями товаров, там нет ничего сложного.
Всё перечисленное выше также умеет Prestashop, но я Вам его ни за что не посоветую, ибо намучаетесь. На худой конец лучше возьмите OpenCart.
А вообще люди Вам правильно пишут, всё зависит от Ваших намерений. Если Вы готовы вложиться в проект и развивать его, то смотрите сразу в сторону 1С-Битрикс.
P.S.:
Когда Вы так спрашиваете, действительно, возникает вопрос, смотрели ли Вы вообще варианты и пробовали ли? Вряд-ли кто-то даст конкретный ответ Вам, т.к. каждый будет отдавать больше предпочтения той CMS, с которой чаще работает.