скрыть блок после даты публикации документа

Modx Revolution. Есть лента событий с календарем eventsCalendar2, каждое событие — отдельный документ, дата его в календаре — дата публикации publishedon. У этого события есть форма заявки (FormIt).

Как сделать так, чтобы форма заявки скрывалась на странице вывода события при наступлении даты публикации? Ну и вместо неё вывести другой блок с текстом типа «Прием заявок окончен».

Подозреваю, что можно это сделать на js — я хоть и не пишу на нем, сообразить смогу и найти примеры подобного поведения, но как мне обратиться к дате публикации документа modx?
Andrey
20 февраля 2015, 14:39
modx.pro
1 617
0

Вывод msGallery из другого контекста

Подскажите как грамотно вывести содержимое msGallery из другого контекста? То есть необходимо в испаноязычном контексте выводить msGallery из русского контекста.
Roma
20 февраля 2015, 13:45
modx.pro
1 500
0

Tickets

у меня в логах пишет вот это!

[2015-02-20 13:23:03] (ERROR @ /connectors/index.php) Could not load class: TicketsSection from mysql.ticketssection.

как это убрать ?? есть идеии
и еще когда я создаю права на пользователей и манагеров
происходит фигня какая то вообщем под этим паролем который я задаю он тупо не пускает и в логах ни чего не пишет
Александр
20 февраля 2015, 10:35
modx.pro
1 133
0

Последовательное соединение(innerJoin) таблиц

Подскажите пожалуйста, как сделать объединение 4 таблиц связанных с друг другом последовательно.
$c = $modx->newQuery('newEraObj');
$c->innerJoin('newEraM', 'newEraM');
$c->innerJoin('newEraDtObj', 'newEraDtObj');
$c->innerJoin('newEraDtData', 'newEraDtData', 'id_dt_obj = id_dt_data');
$c->where(array(
    'newEraM.id:IN' => $_POST['m_dostup']
));
$c->select('newEraM.id, newEraM.name AS m_name, newEraObj.id AS id_obj, newEraObj.id_m, newEraObj.name AS obj_name, newEraDtObj.id_obj AS id_dt_obj, newEraDtObj.name AS dt_obj_name, newEraDtData.id AS id_dt_data, newEraDtData.id_obj');
$objects = $modx->getCollection('newEraObj', $c);
Работать отказывается.

  1. У меня есть newEraM которая composite по id к newEraObj id_m.
  2. newEraObj id composite -> newEraDtObj id_obj
  3. newEraDtObj id composite -> newEraDtData id_obj
Хочу сделать вывод с фильтрами, через ajax. Необходимо, чтобы выводилась последняя таблица newEraDtData.

Буду очень благодарен за помощь.
GrinRom
20 февраля 2015, 09:56
modx.pro
2 019
0

Вызов сниппета в условии

Здравствуйте! Столкнулся с такой небольшой проблемой, как можно вызвать сниппет в условии if else?

Пример:

[[*isfolder:is=`1`:then=`
                [[!pdoMenu? 
         		    &level=`2` 
         		    &outerClass = `side-menu`
         		    &parents=`[[*id]]` 
         		    &where=``
         		    &tplParentRow=`@INLINE <li[[+classes]]><h3 [[+attributes]]>[[+menutitle]]</h3>[[+wrapper]]</li>`
     		    ]]`:else=`
     		    [[pdoResources?
                    &parents=`52`
                    &depth=`0`
                    &tpl=`tpl.SideNews`
                ]]
     		    `]]
Lori
20 февраля 2015, 05:49
modx.pro
1
4 255
0

Работа с удаленным сервером mysql

Доброго времени суток!

Вот код подключения к удаленной бд
<?php

ini_set("display_errors",1);
error_reporting(E_ALL);


// Задаем подключения к сторонней базе данных:
$host = 'text';                // — хост.
$username = 'text';    // — имя пользователя.
$password = 'text';   // — пароль пользователя.
$databasename = 'text'; // — имя базы данных.
$port = 3306;                       // — номер порта.
$charset = 'utf-8';                 // — кодировка.

// Соединяемся с базой данных:
$dsn = "mysql:host=$host;dbname=$databasename;port=$port;charset=$charset";
$xpdo = new xPDO($dsn, $username, $password);

// Проверяем успешность подключения:
echo $o = ($xpdo->connect()) ? 'Подключились…' : 'Не удалось подключиться!';



$results = $xpdo->query("SELECT * FROM modx_po_site_content");
$kolichestvo_zapisei = $results->rowCount();
echo 'Обнаружено записей: '. $kolichestvo_zapisei;

Все здорово подключается! SELECT отрабатывает и выдает 753 записи(в бд столько же), все ок

Но вот пытаюсь работать так:
$res = $xpdo->getObject('modResource',1);
$output = $res->get('pagetitle');
return $output;
ошибка
Fatal error: Call to a member function get() on a non-object in

Сниппет вызывается на странице сайта.
Что-то еще нужно подключить или подковырять?
Аль все так на чистом MySQL работать придется?
Константин Ильин
19 февраля 2015, 22:34
modx.pro
1
2 874
0

Компонент MODX Tickets

Доброго времени суток! Работаю над сайтом, где используется компонент Tickets. Читал документацию по нему тут: modstore.pro/packages/users/tickets и все же не понял, как можно вывести конкретный тикет полным перечнем его информации и плюс вся ветка комментариев пользователей для данной статьи?

Сделал пока так. Вызов общего каталога тикетов (статей):

[[!pdoPage?
        &element=`getTickets`
	&includeTVs=`type_article`
	&limit=`4`
	&tvPrefix=`tv.`
	&showHidden=`1`
        &parents=`2`
  ]]
Все тикеты прикреплены к другому шаблону и в чанке, выводятся в простейшем виде

<div class="details">
	<span class="icon-image">[[*date_ago]]</span>
	<h1 class="title">[[*pagetitle]]</h1>
	<p>[[*content]]</p>
         Автор: [[*createrby]]
</div>
Работает только [[*pagetitle]], [[*content]]. Поля [[*date_age]], [[*createby]] не работают. Также не ясно, как выводить комментарии конкретной статьи.
Андрей
19 февраля 2015, 20:37
modx.pro
1 002
0

Иконка на кнопке добавить в корзину Minishop 2

Здравствуйте, как поменять иконку на кнопке добавить в корзину Minishop 2
ArtVirus
19 февраля 2015, 18:14
modx.pro
1 068
0

Вывод новостей начинающиеся с букв/цифр и т.п

Пример:
site.ru/catalog/А
site.ru/catalog/Б
site.ru/catalog/В
Spam
19 февраля 2015, 11:27
modx.pro
10
2 214
+4

Оптовые цены свыше 10 000руб.

Добрый день, необходимо реализовать функционал, когда товаров в корзине на сумму больше 10 000руб., начинаются учитываться оптовые цены товаров. В PHP не силён, нашёл такой пример, там есть вариант плагина, пробовал его адаптировать под себя, не получилось:

<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
        $miniShop2 = $modx->getService('minishop2','miniShop2',
        	MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
        if (!($miniShop2 instanceof miniShop2)) return '';
        
        // Инициализируем класс в текущий контекст
        $miniShop2->initialize($modx->context->key, $scriptProperties);
        $total_cost = $miniShop2->cart->status()['total_cost'];
        $tmp = $miniShop2->cart->get();
        if ($total_cost > 10000) { // если 10000руб и более – оптовые цены, в интернет-магазине оптовые цены забиваются в поле old_price
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$optPrice = $product->get('old_price'); // вместо old_price можно указать любое другое поле товара
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        else {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$tmp[$key1]['price'] = $realPrice;
                }
            }
        }
        $miniShop2->cart->set($tmp);
        break;
}


Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
Klike
19 февраля 2015, 08:57
modx.pro
1
1 067
0