Вопросы

Replace для знака =

Добрый день! Подскажите, как можно сделать замену непосредственно самого знака = в выражении replace. Например в выражении =2 нужно сделать замену примерно :replace=`=2==2`. Но тот знак, который нужно заменить, воспринимается как разделитель
Анастасия
08 мая 2020, 19:12
modx.pro
986
0

Обязательный поля в msOrder

Добрый день.
Можно ли как-то с помощью jquery менять обязательные поля формы в msOrder?
Задача вот какая, по нажатию на checkbox нужно делать обязательным поле Улица.
Попробовал input'у Улица добавить класс required, но это не помогло.
Денис
07 мая 2020, 23:21
modx.pro
871
0

Помощь с всплывающим окном -закрытие после отправки данных

Всем привет. Помогите пожалуйста с формой. Есть форма на сайте

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

Код html

<div class="popup">
  <!--div class="popup_close"></div-->
  <!--div class="popup_title"></div-->
  <div class="popup_content">
    <div class="popup_text">Заполните простую форму ниже для того чтобы получить актуальную цену<h1></h1></div>
    <form action="/_mzbi/popup_tovar.php" method="POST" name="form_popup">
      <input type="tel" placeholder="+7(999)999-99-99" name="phone"  required>
      <input type="email" placeholder="Введите Вашу почту" name="email"  required>
      <input class="tovar2" name="tovar2" value="<?= $f_title ?>" hidden>
      <input type="hidden" name="token" id="token">
      <input type="hidden" name="action" id="action">
      <input type="submit" class="popup_submit" value="Узнать актуальную цену">
    </form>
  <script>
        let captcha_action = 'add_comment';
     
        grecaptcha.ready(function() {
            grecaptcha.execute('API', {action: captcha_action})
                .then(function(token) {
                    if (token) {
                        document.getElementById('token').value = token;
                        document.getElementById('action').value = captcha_action;
                    }
                });
        });
    </script>
    <script>
        $(document).on('af_complete', function(event, response) {
        if (response.success) {
        // 1. Просто закрыть
            $('.popup').hide();
        // 2. Или с анимацией
            $('.popup').fadeOut();
        }
 });
    </script>
    <div class="popup_text2">Нажимая на кнопку, Вы даёте согласие на обработку персональных данных и соглашаетесь с политикой конфидециальности</div>
  </div>
</div>

<div class="bg_popup"></div>
Код php

<?php
 
if (isset($_POST['token']) && isset($_POST['action'])) {
    $captcha_token = $_POST['token'];
    $captcha_action = $_POST['action'];
} else {
    die('Капча работает некорректно. Обратитесь к администратору!');
}
 
$url = 'https://www.google.com/recaptcha/api/siteverify';
$params = [
    'secret' => 'API',
    'response' => $captcha_token,
    'remoteip' => $_SERVER['REMOTE_ADDR']
];
 
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
$response = curl_exec($ch);
if(!empty($response)) $decoded_response = json_decode($response);
 
$success = false;
 
if ($decoded_response && $decoded_response->success && $decoded_response->action == $captcha_action && $decoded_response->score > 0) {
    $success = $decoded_response->success;
		$email = $_POST['email'];
		$phone = $_POST['phone'];
		$tovar2 = $_POST['tovar2'];

		mail("ostrovskijj@ya.ru","Запрос цены","На сайте был сделан запрос цены. \nEmail клиента: $email \nТелефон клиента: $phone \nТовар: $tovar2"); // обрабатываем данные формы, которая защищена капчей
		
		} else {
    // прописываем действие, если пользователь оказался ботом
}

$result = $success ? 'Капча пройдена успешно!' : 'Неверная капча!';
echo json_encode($success);
Код js

$(function() {
  $('.open_popup').click(function(){

	$('.popup .popup_text h1').text($(this).data('tovar')); 
	
    $('.popup').fadeIn();
    $('.bg_popup').fadeIn();

    $('.bg_popup, .popup_close').click(function(){
      $('.popup').fadeOut();
      $('.bg_popup').fadeOut();
    });
    return false
  });
	
});
Vladislav
07 мая 2020, 22:22
modx.pro
721
0

Выборка ресурсов по значению тв параметра множественный выбор

Нужно сделать выборку ресурсов, значения Тв которых содержит $team. Тв множественный выбор. В тв хранятся id документов, их может быть один или два (разделитель ||).

Мой сниппет находит ресурсы у которых в значении только один id.
Подскажите, как поправить?

<?php
//ид TV по которому нужно сделать отбор ресурсов
$team_home = 19;

//массив для ID ресурсов
$output = array();


// выбираем все TV с ID=19
$tvs = $modx->getCollection('modTemplateVarResource',  array(
      'tmplvarid'=>$team_home
));

//перебираем TV
foreach ($tvs as $tv) {

//если значение нашего TV = $team тогда
if ($tv->value==$team)

//добавляем ID ресурса в массив
$output[] = $tv->contentid;

}

// возвращаем строку где ID ресурсов разделены ,
return implode(',',$output);
Александр
07 мая 2020, 12:52
modx.pro
1 229
0

[РЕШЕНО] Вывод pdoResources по MULTISELECT

diskoden
07 мая 2020, 12:48
modx.pro
2
951
0

Ошибка сразу после установки

Здравствуйте.
Пытаюсь поставить себе локально MODX. Установил, все проверки прошли успешно перед установкой. Страница авторизации в панель управления появилась. Ввожу логин с паролем и попадаю на пустую белую страницу. Догадываюсь включить отображение ошибок в файле /var/www/html/manager/index.php и пустая страница сменяется длинной ошибкой:
Andrey
07 мая 2020, 12:26
modx.pro
2 613
0

На могу запустить Localizator

Всем привет
чувствую себя полным дебилом,
но ни как не получается настроить Localizator, и судя по комментариям к пакету такой я один,
у всех получается не вызывая при этом проблем, ПОМОГИТЕ разобраться, в чем может быть проблема?
Сделал демо сайт
доступы:
s22374.h10.modhost.pro/manager/
Логин s22374
Пароль s22374s22374
Greza
07 мая 2020, 12:14
modx.pro
1 095
0

Как в mFilter2 вывести модификации с ненулевым остатком

Имеются товары с модификациями подобного вида — prntscr.com/scgm57
Проделал манипуляции с кастомным классом, чтобы фильтровать по модификациям, но в фильтре выводит все доступные модификации — prntscr.com/scgo3c.

А я бы хотел выводить только те, у которых ненулевой остаток. Подскажите, как прописать это условие. Вот вызов mFilter2:
mekirile
07 мая 2020, 12:12
modx.pro
879
0

Проблемы с авторизацией через Яндекс в HybridAuth

Добрый день!

У всех нормально работает авторизация через Яндекс в HybridAuth?

У меня с сегодняшнего дня (07.05.2020) начала вываливаться ошибка в логах:
[HybridAuth] Provider returned an error: invalid_scope Не удалось определить список запрашиваемых доступов
Соответственно Яндекс пишет:
Не удалось определить список запрашиваемых доступов (invalid_scope)
Проблема, по всей видимости, с GET-параметром scope, сейчас в нем передаются пустые данные "scope=". В документации указано «Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.». Проверил, права в приложении указаны, но авторизация не проходит. Если в GET-параметре вручную указать "scope=login:birthday login:email login:info login:avatar", то авторизация проходит норм.

PS Ну соответственно слетела авторизация через Яндекс на всех моих сайтах.
Sphinx
07 мая 2020, 10:23
modx.pro
1
3 005
0

Проблемы с дополнением Login

Всем привет! Кто может подсказать что с дополнением Login?
Сергей
06 мая 2020, 21:38
modx.pro
691
0