Вопросы

Тег состоящий из нескольких слов и неразрывные пробелы

Всем привет. На сайте сделано облако тегов через такой сниппет. Теги в админке заполняются сразу с неразрывным пробелом (наружная ?nbsp; реклама). К сожалению в сниппете ?nbsp; заменяется на C2 A0 — как это можно исправить?

<?php
$base = $modx->config['base_url'];
$tvname = $modx->getOption('tvname', $scriptProperties, "autotag");
$output = "";

$content_type = $modx->getObject('modContentType', array('mime_type' => 'text/html'));
if(substr_count($_SERVER["REQUEST_URI"], $content_type->get('file_extensions'))) {
	$parent = $modx->resource->parent;
	$url = $modx->makeUrl($modx->resource->parent);
}else{
	$parent = $modx->resource->id;
	$url = $modx->resource->uri;
}

$q = $modx->newQuery('modTemplateVarResource');
$q->select('DISTINCT(`modTemplateVarResource`.`value`)');
$q->innerJoin('modTemplateVar', 'tv', "tv.id = modTemplateVarResource.tmplvarid");
$q->innerJoin('modResource', 'res', 'res.id=modTemplateVarResource.contentid');
$q->where(array(
		'tv.name' => $tvname, 
		'res.context_key' => $modx->resource->context_key,
		'res.parent' => $parent
	)
);

if($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[] = $row['value'];
	}
}
if($result) {
    $result = implode($result, ',');
    $result = array_unique(explode(',', $result));
    
    foreach($result as $value) {
    	$output .= "<a href='{$base}{$url}?tag={$value}' class='ui label'>{$value}</a> ";
    }
}
return $output;
Alex
25 февраля 2020, 09:47
modx.pro
819
0

Ресурсы без ссылок

Всем привет!

Есть такая структура ресурсов:
  • Новости
    • Посты
      • Пост 1
      • Пост 2
      • Пост 3
    • Категории
      • Категория 1
      • Категория 2
      • Категория 3
В стандартном виде конкретный пост/конкретная категория имеет URL вида:
news/posts/post-1 или news/categories/category-1

С помощью манипуляций с ЧПУ я изменил вид URL на желаемый:
news/post-1 или news/category-1

В данном примере ресурсы «Посты» и «Категории» не имеют шаблонов и используются в качестве папок, также ID этих ресурсов нужны в технических целях. Мне нужно сделать так, чтоб на эти ресурсы нельзя было перейти.

Очень рассчитываю на вашу помощь. Честно говоря — не знаю, как более грамотно сформулировать вопрос. Надеюсь, что более-менее понятно объяснил.
Никита Боднар
24 февраля 2020, 17:19
modx.pro
1 106
0

Bitrix24 и miniShop2 - отправка названия товара, количества и цены за ед. в лид

Добрый вечер. Столкнулся с проблемой: пытаюсь отправить товары в лид в Битриксе, вся остальная информация из заказа подтягивается без проблем:
$data = array(
            'order' => $msOrder->toArray(),
            'delivery' => $msOrder->Delivery->toArray(),
            'payment' => $msOrder->Payment->toArray(),
            'address' => $msOrder->Address->toArray(),
            'user' => $msOrder->User->toArray(),
            'user_profile' => $msOrder->UserProfile->toArray(),
        );
lkmarketing24
24 февраля 2020, 17:00
modx.pro
865
0

Хочу написать статью но не хватает рейтинга

Всем привет!
Хотелось бы поделиться опытом, но не хватает рейтинга. Хочу написать статью в раздел Готовые решения или Пошаговые инструкции (кстати в чем разница?)
Что делать, как быть?
Algirdas
24 февраля 2020, 12:43
modx.pro
799
+3

Изменение изображения при наведении на пункт меню

Здравствуйте, уважаемые колеги!
Подскажите, пожалуйста, как можно реализовать такое действие через тивишки (или, возможно, как-то по-другому)?
При наведении на пункт меню, меняется изображение.
Сергей
23 февраля 2020, 17:13
modx.pro
1
1 224
0

Использование старых файлов

Здравствуйте.

Используется MODX Revolution 2.5.2-pl. Функционал стандартный, без настроек:


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

Всем заранее спасибо.
Александр Коноплёв
23 февраля 2020, 15:00
modx.pro
735
0

Передать TV в чанк

Всем привет!
Подскажите пожалуйста что я делаю не так.
У меня интеграция с 1С.

Через Msync передаю TV параметр товара- kolvo. Потом в чанке msProduct вызываю:

[[pdoResources?
&parents=`2572`
&depth=`0`
&includeTVs=`kolvo`
&processTVs=`1`
]]

Количество: [[+tv.kolvo]]

В итоге строка нулевая. Но если вызываю родителя выше и ставлю:
&parents=`2571`
&depth=`1`

то в списке вижу, что в Id=2572 поле tv.kolvo =>1

Подскажите пожалуйста что не так делаю.

— Разобрался самостоятельно:

[[pdoResources?
&parents=`{$id}`
&depth=`0`

&includeTVs=`kolvo`
&processTVs=`0`
]]

Количество: [[#{$id}.kolvo]]
---
alex
23 февраля 2020, 09:38
modx.pro
946
0

Как удалить часть страницы в Fenom?

Как можно удалить часть содержания страницы в Fenom? Нашёл такое выражение:
{$content | preg_split : 'разделитель'}
Он разбивает содержимое на 2 элемента массива, мне нужно вывести только Array[0]. Подскажите, как это сделать.
Павел
22 февраля 2020, 20:03
modx.pro
1 084
0

Синхронизация 1С через msync

Приветствую!
Не получается при синхронизации товаров из 1С в minishop2 через компонент msync удалить неактуальный товар. В 1С, у товара делаем пометку на удаление
<ПометкаУдаления>true</ПометкаУдаления>

В файле выгрузки (import.xml) значение меняется, но с сайта товар не удаляется и не снимается с публикации.
Все остальное давно настроено, выгрузка работает как нужно.

Помогите разобраться
Сергей
21 февраля 2020, 19:38
modx.pro
1 571
0

Почему в modx не работает метод save() для существующего объекта? (РЕШЕНО)

Все привет! Подскажите, пожалуйста, почему метод save() не работает для существующего объекта, хотя для нового — работает?
Пробую так:

$test = $modx->getObject('LjValues', ['order_id' => 3, 'field_id' => 1]);
echo $test->get('value');
$test->set('value', "тестовый тест");
if($test->save() === true){
    echo $test->get('value');
}
И всё как бы отлично, выводит сначала старое значение, потом в $test->save() === true, выводит новое значение. Но в базе остаётся старое, лог молчит.

Схема:

<object class="LjValues" table="lj_values" extends="xPDOSimpleObject">
  <field key="field_id" dbtype="int" precision="11" phptype="integer" null="false" />
  <field key="value" dbtype="varchar" precision="191" phptype="string" null="false" />
  <field key="order_id" dbtype="int" precision="11" phptype="integer" null="false" />
  <aggregate alias="LjFields" class="LjFields" local="field_id" foreign="id" cardinality="one" owner="foreign" />
  <aggregate alias="LjOrders" class="LjOrders" local="order_id" foreign="id" cardinality="one" owner="foreign" />
</object>
Пробовал убирать связи, менять на xPDOObject, не работает…

При этом для соседних объектов работает прекрасно. И на новые, и на существующие. Хотя там всё аналогично.
Овчинников Егор Эдуардович
modx.pro
1 386
0