Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
20 сентября 2015, 14:24
0
Так у вас в схеме для объекта Towns указано cardinality=«one»
<composite alias="Areas" class="Areas" local="id" foreign="town_fk" cardinality="one" owner="local" />
А вы запрашиваете getMany()
$areas = $town->getMany('Areas');
Сергей Шлоков
20 сентября 2015, 14:16
0
Ну я больше не знаю чем помочь.
Попробуйте поэтапно.
1. Проверьте, если ли записи в таблице городов.
2. Если есть, вызов $modx->getCollection('Towns') что-нибудь возвращает?
3. Если да, есть ли запись с id=1
и т.д.
Сергей Шлоков
20 сентября 2015, 14:04
0
Также неплохо было бы проверить, существует ли запись с id = 1
Сергей Шлоков
20 сентября 2015, 13:52
0
Уже лучше. А теперь осталось разобраться вот с этим
$towns = $modx->getCollection('Towns',1);
Судя по названию переменной $towns и методу getCollection запрашивается список городов. Т.е. городов, определенных условием, указанным во втором параметре метода getCollection. И что мы так видим? Единичку. Т.е. вы получаете всего один объект. Теперь читаем что должно быть
type: object|array|string 
Desc: An xPDOCriteria object or an array.
Т.е. или объект xPDOCriteria или массив или строка (для where).
П.С.
Сергей Шлоков
20 сентября 2015, 13:26
0
Я надеюсь, вы пакет загружаете перед запросами. Если нет, то нужно вставить следующий код перед вызовом ваших объектов.
$path = $modx->getOption('core_path') . 'components/geolocation/model/';
if (!$modx->addPackage('geolocation', $path)) return '[geolocation] Пакет не найден.';
Сергей Шлоков
20 сентября 2015, 12:56
0
Вариант 1.
Ставьте CMPGenerator. Открываете и создаете новый пакет «geolocation». Указываете таблицы, префикс, генерируете и схему и пакет, предварительно сохранив свою старую схему. Далее, в новой схеме прописываете связи aggregate и composite из своей схемы.
Опять открываете пакет в CMPGenerator, только теперь схему генерировать не надо (ставите Нет), только пакет. Сохраняйте. Все.

Вариант 2.
Или вручную — найти все map-файлы и у них поправить все что нужно. Как правило, они лежать в папочке mysql.

Первый вариант самый простой.
Сергей Шлоков
20 сентября 2015, 12:43
0
А map файлы пересоздали/изменили? MODX не работает со схемой, он работает с готовыми map файлами.
Сергей Шлоков
20 сентября 2015, 12:28
+1
Как минимум в схеме вижу одну повторяющуюся ошибку: owner может быть или local или foreign.
Сергей Шлоков
20 сентября 2015, 11:07
0
Это решение будет у Tickets или только на этом сайте?
Сергей Шлоков
18 сентября 2015, 19:56
1
0
Эх, мне бы на десять лет назад слетать, я бы тоже знал это. :)
Сергей Шлоков
18 сентября 2015, 18:34
0
Офигеть. Как так получается? Причем еще и счетчик просмотров накручивается!
Сергей Шлоков
16 сентября 2015, 07:29
+2
Да пользователи давно уже привыкли. В телефоне почти каждое приложение при установке просит доступ к данным, контактам и т.п. А тут Яндекс просит доступ к своему же ящику, что в этом страшного.
Сергей Шлоков
15 сентября 2015, 02:50
+2
[[pdoResources:default=`<div>Новостей пока нет</div>`]]
Сергей Шлоков
14 сентября 2015, 11:55
+1
А если почитать документацию, то станет еще проще получить нужный результат.
&totalVar — page.total — Имя плейсхолдера для сохранения общего количества результатов.
Сергей Шлоков
14 сентября 2015, 11:37
1
0
Если на странице один thread, то проще простого.
Создаем сниппет CountComments
$thread = $modx->getObject('TicketThread', array('resource' => $modx->resource->get("id")));
if (empty($toPlaceholder)) {
	// или сразу выводим значение
	return $thread->get('comments');
} else {
	// или записываем его в плейсхолдер
	$modx->toPlaceholder($toPlaceholder,$thread->get('comments));
}
Вызываем его перед местом использования (если вывод через плейсхолдер) или сразу в нужное место (если вывод напрямую).
// Если вывод через плейсхолдер, то указываем его
[[!CountComments? &toPlaceholder=`countComments`]]
Теперь вставляем плейсхолдер [[+countComments]] куда нужно.
Сергей Шлоков
11 сентября 2015, 14:44
+1
добавление столбца или строки пока еще нет?

В разработке вместе с созданием таблиц и индексов.
А все-таки, после какого процессора возникала эта ошибка на 5.3?
П.С. Нашел трабл.
Сергей Шлоков
11 сентября 2015, 14:23
0
Вряд ли. Я тоже на 2.4.0 работаю. Все ОК. Возможно опять виновата версия php. При просмотре таблицы вызываются 2 процессора — getfield и getdata. Это видно в консоли браузера. После какого возникает ошибка?