Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
11 апреля 2015, 16:15
1
+1
Тут уже готовое решение, а там — работа на заказ. Конечно, цены выходят совсем разные.
Василий Наумкин
11 апреля 2015, 13:42
0
Вспоминай, какие на сайте есть скрипты импорта или обновления ресурсов.
Василий Наумкин
11 апреля 2015, 12:57
0
Все чанки для оформления настраиваются, ссылки можно убрать там же. Читай документацию.

Arcticles можно заменить Tickets — он работает на этом сайте.
Василий Наумкин
11 апреля 2015, 12:01
0
Начни с selectel — там всё гораздо проще на самом сервисе.

С Amazon без бутылки не разберешься в его правах и разрешениях.
Василий Наумкин
11 апреля 2015, 11:28
0
Dropbox — отличный, и компонент полезный, просто ты используешь их не по назначению.

Для хранения статических файлов, типа картинок и документов, нужен сервис, который выдаёт их по прямым ссылкам.
Попробуй Selectel, для начала, там точно всё проще. Вот готовый пакет, а вот инструкция в их блоге.

Думаю, разберёшься.
Василий Наумкин
11 апреля 2015, 11:18
0
Судя по ссылке, компонент Dropbox сам вытягивает файлы из удалённого сервиса. Это не прямая ссылка, как при использовании Amazon S3.

Использую удалённый сервис таким образом, ты ничего не выиграешь, а даже немного затормозишь сайт, потому что для вывода картинки он будет делать запрос в Dropbox, грузить оттуда файл и выводить тебе через PHP, вместо выдачи прямой ссылки на файл, которую откроет сам веб-сервер.
Конечно, он может кэшировать эти файлы, но всё равно это медленнее, чем отдавать их напрямую.

А вот если настроить хранение файлов в Amazon S3 то ссылки будут прямые и картинки будут загружаться сразу с Amazon, что позволит:
1. Не хранить их на сервере. вообще
2. Разгрузить свой сервер, переложив нагрузку на S3
3. Ускорить работу сайта, потому что тяжелые картинки будет отдавать Amazon и браузер их быстрее загрузит.

Есть и российский сервис, аналог S3 — storage.selectel.ru. Так что подумай, нужно ли тебе вообще работать с Dropbox.
Василий Наумкин
11 апреля 2015, 11:10
0
А ты точно не пропустил пункт 4?
4. link_tag_scheme «Схема URL» — abs;

url могут «наращиваться» только если ссылки не от корня сайта, а относительные. Изменить это можно в настройках сайта (если используются сниппеты pdoTools последней версии) или напрямую, указав сниппету
[[!pdoMenu?
	&parents=`0`
	&scheme=`abs`
]]
Василий Наумкин
11 апреля 2015, 10:41
0
Они взаимозаменяемы насколько это вообще возможно было сделать.

Есть даже встроенная конвертация параметров Wayfinder в pdoMenu. Обычно достаточно просто сменить название сниппета при вызове и всё должно работать.

Если что — вот документация.
Василий Наумкин
11 апреля 2015, 10:37
0
Да, ms2Gallery в принципе работает только через источники файлов, будь то Filesystem или Amazon S3. Но компонент для работы с Dropbox должен выдавать прямые ссылки на файлы, чтобы юзер мог увидеть их на сайте.
Не знаю, как у Dropbox, но у Яндекс.Диск так нельзя в принципе, поэтому он не подходит для хранения файлов галереи.

Компонент можно проверить перед покупкой на modhost.pro — просто выбери ms2Gallery для установки при создании тестового сайта.
Василий Наумкин
11 апреля 2015, 05:32
0
Тебе нужно вдумчиво ознакомиться вот с этим — bezumkin.ru/training/course1/2136/, если будет интересно — то читай все заметки с начала.

По идее, ты сейчас пытаешься написать что-то уже в объекте, а тебе нужен просто класс, который будет работать с этими объектами.

Обычно в дополнениях есть один общий класс, который реализует всю логику + его объекты, в которых прописана какая-то логика чисто для них. Например, общий класс miniShop2 и объект товара или категории.
Василий Наумкин
11 апреля 2015, 05:28
0
Что тебя смущает в моих заметках и фамилии?

Seriously?
Василий Наумкин
11 апреля 2015, 05:14
2
+3
Это и сейчас можно, нужно просто вызывать сниппет TicketsComments со своим произвольным &thread.

По умолчанию он равен, грубо говоря, "resource-[[*id]]", поэтому и получется одна ветка для ресурса.

Таким образом можно комментировать и картинки галереи, и профили пользователей и что угодно.
Василий Наумкин
11 апреля 2015, 05:10
0
Должно работать вот так:
[[!ms2Gallery?
	&parents=`0`
	&frontend_js=``
]]
Василий Наумкин
10 апреля 2015, 20:37
0
Ты внутри newEraChange создаёшь еще один newEraChange и сохраняешь его.

Не знаю, что там у тебя за логика, но выглядит это совсем не здорово. Может, ты хотел применить эти данные к текущему объекту?
public function IniChanges() {
	$this->fromArray($this->data);
	$this->save();
	print_r($this->toArray());
}

Но вообще, судя по ошибкам в логе, у тебя вообще модель компонента не грузится и работать с этими объектами ты не сможешь, пока это не исправишь.
Василий Наумкин
10 апреля 2015, 19:15
0
Надо уже как-то определяться, «на ты» или «на вы» мы общаемся. А то в сообществе одно, в поддержке другое, а на почте как получится.

Поэтому, держи новую версию сниппета — code.re/7IG
[[!Test?
	&rows=`0,3,4`
	&input=`1||2||3||4||5||6`
	&separator=`||`
]]
Номера строк нужно указывать от нуля — именно так они идут в массиве.

Заодно добавил еще возможность указания разделителя строк. Если пустой — то будет разбиваться как обычно, по переносам.
Василий Наумкин
10 апреля 2015, 18:20
+1
Можно попробовать указать явно таблицу:
&sortby=`msCategory.menutitle`

Ну и вообще, стоит убедиться, что menutitle везде заполнен, потому что mySql не подставит pagetitle вместо пустого menutitle как сниппет pdoMenu.
Василий Наумкин
10 апреля 2015, 13:37
+2
$arr = explode(',', $ids);
Здесь передаётся строка и в ней запросто может быть лишний пробел.

Я делаю так:
$arr = array_map('trim', explode(',', $ids));

Ну и дальше нужно добавить проверку, иначе при неверном id будет fatal error:
if ($captionTv = $modx->getObject('modTemplateVar', $tvID)) {
	$captionVal = $captionTv->get("caption");
	$val = $modx->resource->getTVValue($tvID);
	print '<tr><td>'.$captionVal.'</td><td>'.$val.'</td></tr>';
}
else {
	print 'Не могу получить ТВ c id = ' .  $tvID;
}
Василий Наумкин
10 апреля 2015, 08:47
0
Не, наоборот. eventsCalendar был вообще моим первым готовым дополнением для MODX.