Вопросы

Опросник со множеством вопросов и подсчетом голосов

Здравствуйте! пожалуйста, подскажите, как реализовать на сайте систему опросов с несколькими вопросами, и страницей результатов, и заполнением из админки? ни один из компонентов не подходит (Polls, xPoller, xPoller2, voteForms), все они реализуют вывод только 1 вопроса. что делать если не хватает знаний чтобы самостоятельно реализовать создание динамических форм из админки, с сохранением и подсчетом количества голосов, и возможностью голосовать без регистрации, но 1 раз для каждого ip?
может у кого-то есть опыт реализации такой задачи через migx? прошу подсказки. версия MODX самая последняя.
Martina
04 августа 2020, 07:41
modx.pro
588
0

stop words и socialtools

всем привет

буду рад если поможете с данной реализацией

есть пример

Select Data With PDO (+ Prepared Statements)

Example (PDO)

<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator {
    function __construct($it) {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }

    function beginChildren() {
        echo "<tr>";
    }

    function endChildren() {
        echo "</tr>" . "\n";
    }
}

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

в socialtools есть таблицы modx_soc_dialogReceive и modx_soc_dialogSend

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

в modx_soc_dialogReceive и modx_soc_dialogSend

есть table fields

Name

subject
message

sender

приведите пожалуйста простой пример с поиском по subject и message например в stop words «у нас можно купить сайт такойто link»
чтобы при запуске ресурса например resource stopwords искал по словам и если количество определённых слов больше 5 (или заданного количества определённого) «у нас» «сайт» и тд
осуществлялся временный blocked user данного пользователя и создавался report user в каком нибудь parent user reports

например parent 72
reported spam users

создаёться ресурс с pagetitile данного юзера перед его temporary blocked на уровне modx revo user (ну тоесть как сам в manager panel выбрал Blocked user) только както программно

я думаю всем интересна будет такая реализация в различных вариация

с помощью pdotools или каким либо другим образом

ну да и пока незабыл

был бы рад за совет как вывести определённый field из родных полей user или добавленных и уже как родных ))))

в Users во frontend (тоесть где сразу all users отображаються а потом уже detailed смотриться в manager)

всем спасибо за внимание
Кирилл
03 августа 2020, 22:33
modx.pro
810
0

Сортировка по цене, 0 в конце

Возможно ли как-то задать сортировку в msProducts так, чтобы товары с 0 были в конце списка?
Владимир
03 августа 2020, 19:51
modx.pro
1 363
0

modx revo mSearch2 синтаксис условий where

[[!pdoPage?
    &element=`mSearch2`
    &parents = `14`
    &templates = `4`
    &minQuery = `1`
    &where = `[[!additionalParammSearch]]`
    &includeTVs = `image,price,old_price,new_good,sku,model,brand,quantity`
    &tpl = `SimpleSearchResult`
    &tplWrapper = `@INLINE  <div class="sisea-results-list box inline">
                                [[+output]]
                            </div>`
    &limit = `[[!#GET.count-search:default=`12`]]`
]]
Подскажите как правильно составить условия фильтрации?

<?php
$items_for_json= [];
if( isset($_GET['ff_price']) && is_array($_GET['ff_price']) ){
    $items_for_json[] = '"price:":'.(int)$_GET['ff_price']['min'];
}
$ret_param = "{" . implode(',', $items_for_json) . "}";
return $ret_param;
при таком запросе фильтрует по цене, а как добавить несколько параметров? больше или равно? так `{«price:>=»:1,«price:<=»:100}` не работает
Евгений
03 августа 2020, 19:48
modx.pro
1 041
0

Как правильно в феноме пройтись по циклу for?

Для foreach понятно:
{foreach $list as $key => $value}
    {$key}: {$value}
{/foreach}
Даже нашел от такой вариант:
{foreach 1..31 as $value}
    {$value}
{/foreach}
Но мне надо шаг поставить свой.
Смотрел по этому примеру, но не понял как правильно все же должен виглядеть конечний вариант.
Подскажите может ктото уже сталкивался и есть готовый пример.
Тодор
03 августа 2020, 16:33
modx.pro
886
0

Как привязать к форме Tickets редактор CKEditor?

Всем привет. Кто-нибудь привязывал к форме Tickets данный редактор ckeditor.com/docs/ckeditor5/latest/builds/guides/overview.html#balloon-block-editor? У меня возникли сложности с Bootstrap. Что-то перекрывает стили и с левой стороны не появляется кнопка с выбором кнопок редактиррвания, а вторая проблема заключается в том, что этот тип редактора не поддерживает Textarea только конструкцию:

<div id="editor"></div>
Следовательно textarea нужно скрыть стилем:

display: none
И каким-то образом весь введенный код сохранять в textarea.
SEQUEL.ONE
03 августа 2020, 14:10
modx.pro
900
0

проверка нескольких tv

Добрый день!
Есть такой простой вывод переменной.
[[+tv1:is!=``:then=`[[+tv1]]`:else=`[[+tv2]]`]]
Как добавить туда еще одно условие — если tv1 и tv2 пустые, то вывести какую-либо фразу?
Олег
03 августа 2020, 12:00
modx.pro
883
0

ExtJS Пустое значение поля datefield

Есть поле с типом datefield:
{
					xtype        : 'datefield'
					,name        : 'date'
					,fieldLabel  : 'Date'
					,anchor      : '100%'
					,format      : MODx.config.manager_date_format
					,allowBlank  : true
					,emptyText   : null
				}
БД:
,'date' => array(
			'dbtype'   => 'date'
			,'phptype' => 'date'
			,'null'    => true
			,'default' => null
		)
Оно работает, т.е. сохраняет всё корректно.
Но есть одна проблема
Не получается сохранить пустое значение.
Т.е. если убрать (стереть, очистить) значение из поля, то оно (значение) не сохраняется, а остается прежним.
Как сохранять пустые значения?
П.С. мне нужно только выбор даты, без времени
Решено
Все оказалось гораздо проще. ExtJS отдает пустую строку, а не null
Соответственно нужно просто в процессоре написать:
public function beforeSet() {

		if(empty($this->getProperty('date'))){

			$this->setProperty('date', null);

		}


	}
Максим
03 августа 2020, 10:54
modx.pro
2 057
0

Tickets и pdoPage

Всем привет. Столкнулся с такой проблемой. При создании нового тикета, если отправить тикет в черновики, то в выводе pdoPage (который вызывается некэшированным) ссылка на неопубликованный ресурс ведёт на главную. После сброса кэша из админки ссылка появляется. Пробовал отключать везде кэш.

Пробую через плагин на событие OnLoadWebDocument прописать сброс кэша через API MODX:

$modx->cacheManager->clearCache();
и так

$modx->cacheManager->refresh();
Но без результатно. Подскажите что можно сделать.
SEQUEL.ONE
02 августа 2020, 22:31
modx.pro
828
0

Корзина на всех страницах. Обновление $order.

День добрый.

На сайте корзина располагается на все страницах, в фикс. блоке.
Вроде все работает хорошо, товары обновляются, заказы отправляются.
Но с доставкой проблемы.

Доставка не может получить данные заказа (заполненных полей), через

$miniShop2->order->get()
массив пустой (из за чего доставка индекс не получает).
Если страницу обновить, все хорошо. Но если пользователь кладет товар в корзину и тут же открывает корзину, возникает проблема.

В этом вопрос, как обновить данные $order без перезагрузки страницы?
Максим
02 августа 2020, 17:10
modx.pro
781
0