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

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

С нами с 31 января 2013; Место в рейтинге пользователей: #5
09 февраля 2015, 15:25
0
Сделай так и не мучайся
<p>Количество просмотров [[!HitsPage?]]</p>
09 февраля 2015, 10:24
0
В предыдущем комментарии (1 половина) я и предложил вариант с разными годами — формируй новый массив с ключами по годам и возвращай через JSON. А скриптом уже разбирай — беги циклом и добавляй в нужный блок.
09 февраля 2015, 10:18
0
Чего-то я с утра не разгонюсь пока. :) Тогда не понимаю в чем проблема. Ну и зачитывай по 5. Если нужно разбить на года, то формируй из полученных строк новый массив:
Array(
	2015=>array(id=>1,id=>2,id=>3),
	2014=>array(id=>4,id=>5)
)
Я предложил вариант с группировкой по годам. Зачитываешь год порциями. А последняя порция идет например, не 5, а оставшиеся 3 записи. Т.е. год полностью зачитан. А при следующем нажатии кнопки идет опять порция по 5 записей, но следующего года.
09 февраля 2015, 09:59
0
Не совсем понял, надо чтоб так работало или наоборот, чтобы так не работало?
09 февраля 2015, 09:49
1
0
Если ты выводишь документы по годам, то кнопке «Загрузить еще» нужно добавить атрибут, например, data-year, в котором и указываешь год. Изначально может быть пусто (значит текущий год). Нажал — зачитались документы 2015, а кпопке присваиваешь data-year=2014. Потом 2013 и т.д. Передаешь его через ajax. А в pdpTools в where указываешь этот год
&where=`{"YEAR(createdon)": $_POST['year']}`
П.С. $_POST['year'] предварительно лучше обработать.
08 февраля 2015, 10:36
0
Можно. Но придется пошаманить. Т.е. залезть в код сниппета.
08 февраля 2015, 10:32
0
делал все по аналогии
Видимо, твоя аналогия не аналогична. Включай внимательность и проверь все еще раз.
07 февраля 2015, 09:51
0
Это поможет, если пишется не в TV.
02 февраля 2015, 18:10
0
Я думаю, что найдется и 300 чел, которые пользуются miniShop. Каждому скинуться по 1 тыс. и готово.
Только мне кажется, что затянется это все на год как минимум.
01 февраля 2015, 22:20
0
addPackage() нужен для работы со сторонними таблицами, чтобы можно было работать как с объектами — getObject(), newObject. Если таблиц у компонента нет, то addPackage() не нужен, достаточно loadClass() или getService().
Вот почитай
П.С. Проверь, создается ли в базе табличка. Если нет, то смело удаляй addPackage.
28 января 2015, 15:00
0
А на гитхабе есть?
28 января 2015, 14:10
0
Везде по коду 1 заменить на 0.5 и убрать intval.
19 января 2015, 18:26
0
А еще настройки пользователя.
modx::setOption() просто меняет значение в массиве modx::config
public function setOption($key, $value) {
  $this->config[$key]= $value;
}
18 января 2015, 14:59
0
Ром, думаю, тебе здесь вряд ли помогут с этим вопросом. Ты представляешь себе, что будет, если ты закомментируешь это
else{
    $doc->set('editedby', $modx->user->get('id'));
}
18 января 2015, 13:49
0
Советую начать с modx.ws. Многие вопросы отпадут сами собой.
17 января 2015, 07:47
0
В новой версии исправлено. Только сначала лучше деинсталировать, чтобы вручную системные настройки не править.
17 января 2015, 07:42
0
В репозитории версия 1.0.0-rc2.
Ситуация в следующем. Ошибка возникает из-за нового поля в таблице. Я не знаю как его добавить в таблицу в установщике. В console код
Alter table `Table`ADD field
работает, а в ресолвере resolve.table нет. А удалять таблицу и создавать новую мне кажется не правильным. А так как пакет скачали единицы, то у большинства таких проблем не будет.
Исправить ошибку можно добавлением поля в таблицу Orphoman
resource_url varchar(40) not null
или выполнить код
$modelPath = $modx->getOption('core_path') . 'components/orphoman/model/';
$modx->addPackage('orphoman', $modelPath);
$table = $modx->getTablename('OrphoMan');
$sql = "ALTER TABLE {$table} ADD `resource_url` VARCHAR(40) NOT NULL";
$stmt = $modx->prepare($sql);
$stmt->execute();
П.С. Кстати, если знаешь как работать с таблицами при установке, подскажи. Спрашивал у Василия, но он видимо очень занят.
16 января 2015, 19:28
0
Оно не отвечает на вопрос «Откуда здесь берется кэширование?» Это мне важно для понимания принципов ModX, а фраза «чанк в этой конструкции абсолютно лишний» не дает разъяснений. Можете пояснить, что я сделал неправильно в предыдущем решении?
Причины могут быть разные, но это не важно, так как твой код не оптимален. Ты идешь сложным путем. Я тебе предложил упростить конструкцию и не париться. Хочешь разобраться почему твоя конструкция не работает, разбирайся. Кроме тебя это никому не интересно. Честно.
Решение, которое я рекомендую
// $tpl=`Adv` можно указать или в самом сниппете или в параметрах по умолчанию сниппета (или просто вызвать $modx->getChunk('Adv', $props);) 
[[!GetRandomAdv?]] - в обычных местах проекта
// Сниппет GetRandomAdv вызывается внутри сниппета GetStudios
[[!GetStudios?]] - в выводе ресурсов с которым я работаю
16 января 2015, 17:28
0
чанк в этой конструкции абсолютно лишний. В других местах тоже используй сниппет с шаблоном.
16 января 2015, 15:58
0
Я уже вставил в сниппет uniqid() вместо рекламы — во всех рекламных местах появляется один и тот же идентификатор, значит вывод чанка кэшируется.
Не совсем понятно, что ты имел ввиду. Вставляешь в сниппет, а кешируется чанк? Это как?