Поправьте путь в медиасурсе Controllers. У вас там абсолютный путь.
Всем добрый день!
Сегодняшняя новость наверняка не будет воспринята однозначно, но могу точно заверить, что при правильном подходе все заинтересованные стороны только выиграют, и плюс ко всему, скорее всего все наши платные компоненты скоро будут выложены исходниками в паблик, так что кто не захочет платить за них, не будет. Но обо всем по порядку…
Вообще, в последнее время на сайте Клуба наша активность существенно снизилась, многие это заметили, но это, что называется, «затишье перед бурей». Мы совсем не сидели сложа руки, и вот сегодня ночью я все-таки добрался и сделал очень важный шаг по смене курса развития MODX-Клуба. Многие подумают, что это курс лично на наше развитие, но это совершенно не так, и далее по ходу статьи я расскажу почему, описав то, что есть сейчас, и что мы планируем сделать в ближайшем будущем.
Для начала о самом неприятном
Все наши пакеты без исключения становятся платными. То есть теперь, чтобы подключиться к нашему репозиторию rest.modxstore.ru/extras/, надо указать в настройках подключения свой логин и API-ключ (найти его, и при желании изменить, можно в личном кабинете Клуба), а так же приобрести подписку, которая сейчас пока стоит всего 3000 рублей в месяц. При попытке добавления нашего репозитория, если допущены ошибки, вы получите соответствующие сообщения joxi.ru/1A5be4ahKpKK8r
Много ли это или мало 3000 в месяц? Как посмотреть. Для сравнения, мы выложили несколько наших пакетов в modxstore.ru, так вот один только modImporter стоит без десяти рублей 3000, и да, его покупают joxi.ru/82QV3dNu1KDNQA. А тут все наши пакеты, при чем без ограничения по количеству скачиваний, целевых сайтов и т.п. за эти 3000 рублей. Разница весьма существенная.
Вообще, изначально планировалось, что каждый пакет будет приобретаться в отдельности, и вообще там ряд есть тонкостей, в которые я сейчас не буду вдаваться, но в итоге решили на первых парах ввести именно подписку без всяких заморочек. Это учитывает интересы всех сторон (кроме тех, кто в принципе не платит, но и им скоро будут варианты). К слову, отдельные специалисты могут вскладчину покупать подписку на один отдельный аккаунт и использовать один общий логик/ключ для всех, устанавливая компоненты на все свои сайты, в этом нет сейчас никаких ограничений.
В общем, впереди еще много изменений в этой схеме будет, но пока вот лазейки есть, пользуйтесь :)
А теперь о приятном :)
На самом деле мы не просто так вводим плату. Это не тот случай, когда «заплатите нам, и мы будем счастливы». Нет. В первую очередь, данный шаг направлен на дифференцирование внешней нагрузки на нас и бОльшая ориентированность на тех, кто нам платит. То есть как было раньше? Мы выпускали не мало пакетов, и тот же ShopModxBox был бесплатным всегда, хотя некоторые спрашивали «А почему вы его не продается? Это же огромный труд». Ну, мы не продавали, потому как зарабатывали с платной поддержки тех, кто не справлялся, да и конечные заказчики у нас на наши продукты были (на самом деле сначала заказчики были, а потом компоненты появлялись, решавшие их задачи). Так вот, кто-то платил, и получал техническую и информационную поддержку, а кто-то ничего не платил, но все равно отвлекал, задавал вопросы (и вопросов было не мало). Вот, получается несправедливость, это раз. А во-вторых, сутки не резиновые, и оказывая бесплатную информационную поддержку по бесплатным же компонентам, мы автоматически теряли в качестве этих пакетов, да и поддержку на высоком уровне в таких условиях не могли оказать.
К слову, за последние полгода я пару раз уже говорил на счет донейтов, крайний раз здесь modxclub.ru/topics/shopmodx-v2-kak-zamena-bitriksu-2104.html. И что вы думаете? Ни одного донейта. Вообще. То есть никто даже 100 рублей не отправил. Единственный неожиданный донейт пришел в оффлайне, в Минске, на конференции, от Василия Наумкина. При этом я сомневаюсь, что он вообще хоть раз использовал ShopModxBox. Понятное дело, что в таких условиях качество и количество компонентов, и поддержка по ним, расти не могли.
Так в чем же смысл и хитрость в оплате наших компонентов? Смысл в том, что теперь у каждого пользователя здесь появился свой собственный накопительный баланс, и часть оплаты за пакеты/подписки возвращается пользователю на этот баланс, при чем сейчас это целых 50%! То есть, заплатив за подписку 3000 рублей, вам на счет падает 1500 монет (внутренняя условная валюта). Баланс этот можно видеть у себя в личном кабинете. joxi.ru/8AnXDv9uqw1Oxm
Как вы можете использовать эти монеты? Например, заказать консультацию, или даже непосредственную помощь в разработке сайта. При чем эти монеты не обязательно должны тратиться именно на приобретенные пакеты. Вы можете оплатить ими любую услугу, в рамках имеющегося бюджета. Более того, эти монеты будут приниматься в более высоком приоритете, чем даже если вы придете отдельно за услугой с деньгами, так как мы сейчас будем больше ориентироваться именно на развитие MODX-Клуба и наших компонентов, и будем приоритет отдавать тем, кто участвует в этом процессе, чем тем, кто приходит с разовыми отвлеченными задачами. Здесь важный момент в том, что мы будем ориентироваться на общий банк этих монет и всегда держать достаточный ресурс сотрудников, чтобы максимально оперативно и качественно оказывать поддержку.
Собственно говоря, эта схема как раз и позволяет нам допускать такие, казалось бы, дыры, как групповая покупка подписок и использование их без ограничения. В рамках текущей схемы нам не важно сколько вы скачали пакетов. Нм важно сколько вы нам заплатили денег и в рамках каких объемов мы должны оказать вам поддержку/услуги. То есть если вы вдесятером купили одну подписку, заплатив 3000 рублей и получив 1500 рублей на баланс, вы сможете воспльзоваться только этими 1500 рублей. Когда баланс закончится, там уже обращаться не получится. Таким образом и вы не много денег теряете, и мы не сильно отвлекаемся. Все довольны.
А теперь о том, почему это выгодно для всех.
1. Повторюсь: качество и количество пакетов, а так же поддержка по ним значительно повысится. Это значит, что конечные разработчики получат более надежные и стабильные компоненты и получат исчерпывающие ответы практически на любые свои вопросы.
К слову, все давно ждут новую версию сборки ShopModxBox. Так вот, новая версия давно уже вышла и теперь доступна для скачивания в репозитории :) Документация миграции с предыдущей версии на новую тоже уже написана и переход осуществляется весьма просто и надежно. Каждый, кто приобретет подписку, может рассчитывать на обновление своего текущего магазина до новой версии лично моими силами. В новой сборке много плюсов, но об этом я чуть позже напишу в отдельной статье. Но коротко скажу, что главный плюс — это новая версия самого модуля shopModx. Он теперь не использует CRC и в магазин можно превратить любой дейстующий MODX-сайт, без необходимости менять типы документов или типа того. Вот минимальный набор компонентов для развертывания магазина: joxi.ru/VrwoaO9IKbn6br
К слову, он может даже работать поверх минишопа. То есть управление категориями, товарами, галереями и т.п. — это все минишоп, а сам биллинг и заказы — это shopModx.
Или вот еще, уже озвученный выше компонент — modImporter. Мы уже на нем выполнили более десятка импортов из разных источников, включая 1С (сейчас еще допиливаем обмен заказами с 1С, чтобы с сайта в 1С выгруажлись заказы). Просто мега-компонент! Ранняя его версия маячила уже давно, и народ спрашивал когда появится для все. Вот здесь писал про него modxclub.ru/blog/vehicles/145.html. Так вот, на прошлой неделе настроили импорт 105 000 товаров. На бегет.ру за час импортирует все (про это тоже отдельная статья будет). А буквально дней пять назад в нем еще и появилась функция работы по крону, при чем так же с пошаговостью, то есть можно на крон ставить даже на шаред-хостинге (много кто крон дает выполнять). Вот, пожалуйста, тоже «получите, распишитесь».
А есть выгрузка магазина во Вконтакте. modx.pro/components/7922-modvkmarket-1-0-0-beta/
В общем, нам есть что предложить сообществу.
2. Сейчас пока еще в репозитории только наши пакеты будут. Но скоро мы дадим возможность и другим разработчикам выкладывать свои компоненты в наш маркетплейс. При чем комиссия у нас скорее всего будет не более 10%, а авторы пакетов сами будут решать какой процент с оплаты будет возвращаться на их накопительный счет, в рамках которого они будут оказывать платную поддержку. Таким образом зарабатывать на написании компонентов будет не только MODX-Клуб. И надеемся, что это простимулирует рост рынка качественных приложений и поддержки для MODX.
3. Это уже забегая чуть, дальше, но все-таки тоже планы на ближайшие месяцы. Мы планируем все-таки проработать и вопросы монетизации накопительных балансов. К примеру, у кого-то на балансе скопились монетки, но наша помощь ему не нужна, а кому-то наоборот нужна наша помощь, но, как я и говорил выше, мы больше будем переходить в сторону оплаты монетками. То есть человеку, которому нужна будет наша помощь, надо будет эти монетки купить. Следовательно, здесь есть три заинтересованные стороны. Да, мы будем делать биржку.
Но вопрос не только в возможности перепродать монетки. Вот простой кейс: я сейчас практически каждый день занимаюсь настройкой импорта с использованием modImporter, так как спрос на него большой. Но мои услуги не дешевые, импорт у меня сейчас от 3000 рублей за источник. Так вот, если кто освоит этот компонент, наверняка сможет предлагать свои услуги по более выгодной цене (если у него офис не в центре Москвы, то есть издержки рабочие ниже). Таким образом тот, кто купил пакет и получил монетки, может услугу настройки импорта получить по более выгодной стоимости, оплатив работу этими монетками другому специалисту по более низкой ставке. А наличие биржы позволит этому специалистку получить за монетки живые деньги.
В общем, я написал довольно много всего. Мог бы еще написать, но и этого достаточно, чтобы понимать, куда мы катимся. Очень хотелось бы услышать мнение/предложения других пользователей. Пожалуйста, не стесняйтесь, выссказывайтесь. Спасибо!
UPD 28.03.2016: Стоимость подписки стала 5000 рублей/месяц. На накопительный счет возвращается соответственно 2500 монет.
Доброго времени суток! Я разрабатывал сайт на локальном сервере. Использовал phpTemplates, modxSite, modxSmarty. Начал переносить сайт на хостинг sprinthost: залил файлы сайта,
поменял пути во всех config — файлах, залил базу данных на сервер, очистил cache — папку в core. При запуске сайта появляется ошибка «Fatal error: require(): Failed opening required 'C:\Program Files\Ampps\www\brigantina/core/components/modxsite/controllers/base.php' (include_path='.:/usr/local/share/pear') in /home/dkbriganti/domains/dkbrigantina.ru/public_html/core/components/phptemplates/model/phptemplates/phptemplate.class.php on line 29». Как я понимаю, я где-то не изменил путь к базовому шаблону? Если так, то где его нужно изменить?
надеюсь ты понимаешь, что в админке всегда активен контекст mgr, поэтому твое
>> $cultureKey = $modx->getOption('cultureKey');
не работает
тебе нужно всего лишь узнать, в каком контексте находится редактируемый документ
$parent = 0; switch($modx->resource->context_key){ case 'ru': $parent = 88; break; case 'en': $parent = 95; break; default: } $output = $modx->runSnippet('pdoResources',array( 'parents'=> $parent, 'tpl'=>'@CODE:[[+pagetitle]] / [[+longtitle]]==[[+id]]', 'hideContainers'=>'1', 'outputSeparator'=>'||'));<br />
Добрый день, коллеги.
Очень нужна Ваша помощь в решении вопроса.
Делаю вывод ТВ (чекбоксами) в админку вот так:
@EVAL $output = $modx->runSnippet('pdoResources',array( 'parents'=> '88,94,95', 'tpl'=>'@CODE:[[+pagetitle]] / [[+longtitle]]==[[+id]]', 'hideContainers'=>'1', 'outputSeparator'=>'||')); return '' . $output;
Все хорошо работает, вот только сайт мультиязычный и в строке:
'parents'=> '88,94,95',
должен быть только один ид, тот который принадлежит языку, а не все 3 сразу.
Никак не могу этого добиться. Я не думаю, что первый, кто столкнулся с данным вопросом, но, к сожалению, найти ответ не удалось.
Уже пробовал разные вариации.
1.
'parents'=>$modx->getOption('myParentId'),
В контексты забил опцию myParentId и каждому языку присвоил нужный ид. Просто создал сниппет (для теста вывода):
return $modx->getOption('myParentId');
Во фронтенде он возвращает ид шаблона соответствующего данному языку, а в админке подтягивает непонятно что.
2. И так пробовал:
$cultureKey = $modx->getOption('cultureKey'); $parent = ''; switch($cultureKey){ case 'ru': $parent = 88; break; case 'ua': $parent = 94; break; case 'en': $parent = 95; break; } $output = $modx->runSnippet('pdoResources',array( 'parents'=>$parent,
Может есть у кого-то решение, или предположения?
Это все верно, что запрос возвращает больше одной строки. Но вот это тебе ни о чем не говорит?:
foreach($modx->getIterator('class', $q) as $obj){ ... break; }
Нет, в плоской таблице все значения выдаются (перемножение таблиц). Особенности, видимо, уже при её обработке.
Спасибо! Значит возвращаемся к старым проверенным методам.
Там на столько дебри все, что я давно уже для себя решил: оно того не стоит. Left join тебя тут и губит, скорее всего. Ведь он только одну запись получает за раз, как будто это один-к-одному. А у тебя один-ко-многим.
Спасибо! Мне казалось, что разное. По крайней мере SQL после getCollectionGraph выдаётся с LEFt JOIN по всем связям. А дальше, судя по коду, из плоской простыни методами HydrateParent и HydrateNode (через addMany, конечно) наполняется свойство _relatedObjects у объекта верхнего уровня. Так мне раньше казалось. Но на практике как-то странно это сработало. Я не прав?
Замените на getObject() и оставьте так, если работает. Все равно количество обращений к БД одно и то же.