Генерация ORM-класса для таблицы в Битрикс

Генерация ORM-класса для таблицы в Битрикс
  1. Добавляем GET-параметр orm=y, то есть до # и после ?lang=ru добавляем &orm=y.
  2. Пример: https://site.ru/bitrix/admin/perfmon_tables.php?lang=ru&orm=y#iblock_element
  3. После в контекстном меню таблицы появится дополнительный пункт — ORM.

ORM_CLASS_GENERATE_BITRIX

Как добавить ПОИСК в любом месте WordPress

Как добавить поиск в любом месте вордпресс

В этой небольшой статье хочу показать Вам как можно вывести поиск в любом месте Вашей темы WordPress. Сложного в этом ничего нет, но все же многим интересен такой вопрос. По умолчанию поиск можно вывести с помощью виджетов в любом месте сайдбара но не далее. Конечно, Вы можете создать место под виджеты и уже в нем вывести поиск, но по-моему это не один из простейших путей.

Строка поиска
В этом вопросе нам поможет стандартная функция WordPress — get_search_form();. Ее можно подключить в любом месте темы. Если это нужно сделать там, где код HTML, то нужно заключить функцию в PHP теги.

< ?=get_search_form(); ? >

Теперь перед Вами появится стандартная строка поиска WordPress. Если Вам надо, можете добавить стилей и настроить внешний вид строки. Чтобы узнать классы элементов строки, Вам поможет инструмент браузеров, который помогает просмотреть код элементов страницы.

Плагины и Шаблоны для WordPress
Возможно, Вы захотите изменить текст в строке поиска или на кнопке или просто удалить его, то Вам нужно изменить уже саму строку. Сделать это можно в файле searchform.php. Если У Вас нет такого файла то можете создать его и добавить в него следующий код:

 < form method="get" id="searchform" action="">
< input type="text" class="field" name="s" id="s" placeholder="" />
< input type="submit" class="sim" name="submit"  value="" />
< /form>');

(при копировании уберите пробелы после открывающихся тегов!!!)

Если у Вас был такой файл, то в нем будет похожий код. По коду видно, что это форма с двумя элементами — input. В моем коде во второй строке — это строка поиска и в конце текст, который будет выводится внутри по умолчанию — Что будем искать?. Можете поменять на — Поиск, или что ищем, ну и тд.

В строке номер три находится элемент input — это кнопка поиск. В конце как и в строке — текст на кнопке. Можете его поменять или удалить, если захотите вместо кнопки установить какую-то картинку.

Элементам присвоены классы, так что можете им задать нужные стили. Думаю, если Вы немного разбираетесь в CSS, то труда Вам это не составит. Вы сможете привести строку в тот внешний вид, который полностью удовлетворит Ваш вкус.

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

Не работает Sypex Geo или MaxMind в Битрикс

Не работает Sypex Geo или MaxMind в Битрикс

Новость не очень хорошая — на 02.03.2022 по известным причинам сайт Sypex Geo лежит и сервис недоступен.

В связи с этим, пришлось перейти на MaxMind

Но решение из коробки Битрикс также не работает даже при заполненных полях регистрации (логина и ключа).

В итоге, решение простое — в классе MaxMind (файл /bitrix/modules/main/lib/service/geoip/maxmind.php) устаревшая ссылка запроса — ее надо заменить на рабочую с сайта.

Для GeoIP2 Lite  — https://geolite.info/geoip/v2.1/city/{$ipAddress}?pretty

И все заработает в штатном режиме.

Вывести пользовательское свойство ( UF_ ) типа ФАЙЛ в каталоге Битрикс

Решение проблем с сайтом на Битрикс

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

Копал инет, в итоге - рабочий способ:
[exec off]

//Получаем нужное свойство. Айди основного инфоблока и Айди подраздела обязательны, свойства можно получить все, задав UF_*
<? $rsSeo = CIBlockSection::GetList(array("SORT"=>"ASC"), array("IBLOCK_ID"=>$arResult["ORIGINAL_PARAMETERS"]["IBLOCK_ID"], "ID"=>$arResult["ORIGINAL_PARAMETERS"]["SECTION_ID"]), false, array("UF_CAT_IMAGE"));

while($arSeo = $rsSeo->GetNext())
{
//если есть свойства, выводим

if($arSeo['UF_CAT_IMAGE'] != false) { ?>
<divclass="col-xs-12 cat_image_wrapper"style="">
<h4>Фотографии <b><?=$arResult["NAME"];?></b> интерьере</h4>
<br>
<?
foreach($arSeo['UF_CAT_IMAGE'] as $item) {
if(empty($item)) break;
$arFile[$item] = CFile::GetFileArray($item);
// Ресайзим если надо
$arFileTmp = CFile::ResizeImageGet(
$item,
array("width" => 1024, "height" => 768),
BX_RESIZE_IMAGE_PROPORTIONAL,
true, $arFilter
);
?>

//Выводим в нужном нам формате и стилях

<div class="cat_image" data-entity="image">
<ahref="<?=$arFileTmp["src"];?>"rel="lightbox-cats">
<imgsrc="<?=$arFileTmp["src"];?>"alt=""class="lightbox"title=""itemprop="image">
</a>
</div>
<?
}
echo'</div>';
}
}

?>

[/exec]

Установка Google reCaptcha v3 на сайт. Как установить капчу на сайт в форму.

Как установить recaptcha на сайт в форму

Взято отсюда.

Как устанавливать Google Recaptcha v3 на сайт.

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

Первым делом вам нужно зарегистрировать google почту и авторизоваться.

Далее переходим по данной ссылке https://www.google.com/recaptcha/intro/v3.html и нажимаем на кнопку «Admin console»

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

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

Далее вы выбираете тип капчи. Сегодня мы рассматриваем капчу версии 3, поэтому выбирайте её.

После это прописываем доменные имена. Если вы пользуетесь локальным сервером, то прописывайте localhost или название папки, если это OpenServer.

!!!Внимание при работе с локальным сервером могут возникнуть проблемы в аутентификации пользователей. Google Recaptcha может работать некорректно, поэтому лучше тестировать на реальных хостингах!!!

После того как вы прописали домены, вы принимаете условия использования reCaptcha и нажимаете на кнопку отправить.

После этого вы попадаете на страницу с ключами. Вам нужно скопировать данные ключи.

Нажав на кнопку «Перейти в google аналитику» вы попадаете на страницу статистики, где показаны все выполнения и блокировки представленной капчи.

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

Код для Google reCaptcha

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

Весь код выглядит так…

<?php
/*КЛЮЧИ*/
define('SITE_KEY', '6LfH-aIUAAAAANTmsRDS2lZRIjjOxL4Q9q0fIFTl');
define('SECRET_KEY', '6LfH-aIUAAAAAEWJIQJizklZldRxFeTGseZSbRxu');

/*ОБРАБОТКА ЗАПРОСА*/
if($_POST){
    /*СОЗДАЕМ ФУНКЦИЮ КОТОРАЯ ДЕЛАЕТ ЗАПРОС НА GOOGLE СЕРВИС*/
    function getCaptcha($SecretKey) {
        $Response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".SECRET_KEY."&response={$SecretKey}");
        $Return = json_decode($Response);
        return $Return;
    }
    
    /*ПРОИЗВОДИМ ЗАПРОС НА GOOGLE СЕРВИС И ЗАПИСЫВАЕМ ОТВЕТ*/
    $Return = getCaptcha($_POST['g-recaptcha-response']);
    /*ВЫВОДИМ НА ЭКРАН ПОЛУЧЕННЫЙ ОТВЕТ*/
    var_dump($Return);
    
    /*ЕСЛИ ЗАПРОС УДАЧНО ОТПРАВЛЕН И ЗНАЧЕНИЕ score БОЛЬШЕ 0,5 ВЫПОЛНЯЕМ КОД*/
    if($Return->success == true && $Return->score > 0.5){
        echo "Succes!";
    }
    else {
        echo "You are Robot";
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
   <form action="/" method="POST">
       <input type="text" name="name" /><br/><br/>
       <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response" /><br/><br/>
       <input type="text" value="Submit" />
   </form>
   
    <script src="https://www.google.com/recaptcha/api.js?render=<?php echo SITE_KEY?>"></script>
    <script>
        grecaptcha.ready(function() {
            grecaptcha.execute('<?php echo SITE_KEY;?>', {action: 'homepage'}).then(function(token) {
                //console.log(token);
                document.getElementById('g-recaptcha-response').value=token;
            });
        });
    </script>

</body>
</html>

HTML

Давайте начнем разбор с HTML. Здесь я создал простую форму которая состоит из двух полей и кнопки. Каждому полю необходимо прописать значение для атрибута name . Одно из полей мы будем использовать для капчи, поэтому зададим ему специальный идентификатор — g-recaptcha-response.

<form action="/" method="POST">
       <input type="text" name="name" /><br/><br/>
       <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response" /><br/><br/>
       <input type="submit" value="Submit" />
</form>

Данные из формы будут отправляться методом POST, обработку я буду проводить в этом же файле, поэтому в атрибуте action ставлю значение /.

JavaScript

Забегая немного в перед скажу… в самом верху я добавил ключи от капчи в константы, чтобы с ними было проще работать.

<?php
/*КЛЮЧИ*/
define('SITE_KEY', '6LfH-aIUAAAAANTmsRDS2lZRIjjOxL4Q9q0fIFTl');
define('SECRET_KEY', '6LfH-aIUAAAAAEWJIQJizklZldRxFeTGseZSbRxu');
...
...
?>

Ниже я прописываю JavaScript код. Здесь мы подключаем API от Google и прописываем основной скрипт который подключает капчу. Здесь в качестве параметра нужно передать значение ключа который вы получали при создании капчи. Вы можете передать значение целиком или как я передать значение из константы в которой находится данный ключ.

<script src="https://www.google.com/recaptcha/api.js?render=<?php echo SITE_KEY?>"></script>
    <script>
        grecaptcha.ready(function() {
            grecaptcha.execute('<?php echo SITE_KEY;?>', {action: 'homepage'}).then(function(token) {
                //console.log(token);
                document.getElementById('g-recaptcha-response').value=token;
            });
        });
  </script>

Раскомментируйте функцию console.log(token), чтобы увидеть токен в консоли. Данный токен мы будем передавать в качестве значения для поля #g-recaptcha-response.

PHP

Теперь рассмотрим PHP. Вначале я занес ключи в константы, чтобы с ними было удобнее работать(одну из них я уже прописывал в js скрипте).

Ниже мы прописываем проверку что массив POST не пустой и данные из формы записываются.

Далее мы создаем функцию которая будет делать запрос на google сервис и возвращать нам данные этого запроса.

После этого мы записываем работу функции в переменную, чтобы с ней было удобнее работать.

В документации написано, что если значение параметра score ниже 0.5 то скорее всего это бот, а если выше то это человек. Исходя из этого мы создаем данное условия и плюсом проверяем что проверка прошла успешно.

/*КЛЮЧИ*/
define('SITE_KEY', '6LfH-aIUAAAAANTmsRDS2lZRIjjOxL4Q9q0fIFTl');
define('SECRET_KEY', '6LfH-aIUAAAAAEWJIQJizklZldRxFeTGseZSbRxu');

/*ОБРАБОТКА ЗАПРОСА*/
if($_POST){
    /*СОЗДАЕМ ФУНКЦИЮ КОТОРАЯ ДЕЛАЕТ ЗАПРОС НА GOOGLE СЕРВИС*/
    function getCaptcha($SecretKey) {
        $Response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".SECRET_KEY."&response={$SecretKey}");
        $Return = json_decode($Response);
        return $Return;
    }
    
    /*ПРОИЗВОДИМ ЗАПРОС НА GOOGLE СЕРВИС И ЗАПИСЫВАЕМ ОТВЕТ*/
    $Return = getCaptcha($_POST['g-recaptcha-response']);
    /*ВЫВОДИМ НА ЭКРАН ПОЛУЧЕННЫЙ ОТВЕТ*/
    var_dump($Return);
    
    /*ЕСЛИ ЗАПРОС УДАЧНО ОТПРАВЛЕН И ЗНАЧЕНИЕ score БОЛЬШЕ 0,5 ВЫПОЛНЯЕМ КОД*/
    if($Return->success == true && $Return->score > 0.5){
        echo "Succes!";
    }
    else {
        echo "You are Robot";
    }
}
На этом всё!

Массовая замена текста в PHPMyAdmin. Простая инструкция

Массовая замена текста в PHPMyAdmin. Простая инструкция
  1. Заходим в phpmyadmin
  2. Идем в нужную базу данных
  3. ДЕЛАЕМ БЭКАП!
  4. Ищем в ПОИСКе (SEARCH) нужное слово или фразу во всех таблицах
  5. Выполняем запрос во вкладке SQL (открываем во втором окне для того, чтобы не потерять результаты поиска)
UPDATE table SET field = REPLACE(field, 'старое слово', 'на новое слово');

где:
table — это название вашей таблицы (берем из результатов поиска)
field — поле в этой таблице (берем из результатов поиска, нажав кнопочку Просмотр)

Можно вставлять сразу несколько строк с нужными таблицами и полями.

Например запрос на смену всех ссылок (c site.ru на site.org) в постах в SQL выглядит так:

UPDATE post SET pagetext = REPLACE(pagetext, 'site.ru', 'site.org');

Если нужно заменить все и сразу во всех таблицах — скачиваете БД, открываете, например, в SublimeText и поиском меняете все фразы.

BOSCH Service. Поддержка и доработка сайта для отличного СТО в Новосибирске

BOSCH service Новосибирск, WEBSTUDIUS, сделать интернет магазин, интернет-магазин, WordPress, Bitrix, 1c-bitrix, разработка сайтов, создание сайта, поддержка сайта, калибровка мониторов, профилирование принтеров, профилирование широкоформатного принтера, профилирование плоттера, MIMAKI, ROLAND, EPSON, CANON, HP, печать ООО, печать ИП, заказать печать или штамп, сколько стоит сайт, стоимость сайта онлайн, копировальный центр Новосибирск, копи-центр

Продолжает автомобильную тематику в нашем портфолио сайт официального представителя БОШ Сервис в Новосибирске.

Ребята на очень качественном уровне занимаются ремонтом и постгарантийным обслуживанием автомобилей концерна VAG, плюс, ROVER, MERCEDES, PORSHE (тоже, кстати, VAG), BMW.

Сайт очень легкий, написан на обычном PHP и HTML5+CSS3, без систем управления.

Все самое необходимое присутствует, ведь вряд ли поиски СТО и заказ необходимой услуги должны занимать много времени  — обычно это требуется «в моменте».

Заказать сайт-визитку, лендинг, форум, портал или интернет-магазин вы можете, написав нам в Директ, WhatsApp, в ВК, на почту или позвонив нам по телефону +7-913-013-45-51.

Заказывайте у нас сайт любой сложности, на WordPress, 1C-Bitrix или на той системе, которая удобнее вам. Все сделаем в лучшем виде!

#WEBSTUDIUS

Открыть чат
1
Попробуйте написать нам в WhatsApp!
Попробуйте написать нам в WhatsApp!