Василий Наумкин · 17 мая 2017, 12:19 А я собираю всё на сервере — modhost.pro позволяет не поднимать рабочее окружение на своём компе. 'use strict'; const gulp = require('gulp'), sass = require('gulp-sass'), rename = require('gulp-rename'), uglify = require('gulp-uglify'), cssmin = require('gulp-clean-css'), chmod = require('gulp-chmod'); const build = './assets/'; const assets = '../../../assets/components/startpage/'; gulp.task('default', ['css', 'js']); gulp.task('watch', function () { gulp.watch([build + 'scss/*.scss', build + 'scss/**/*.scss'], ['css']); gulp.watch([build + 'js/*.js', build + 'js/app/*.js'], ['js']); }); gulp.task('css', function () { var src = build + 'scss/*.scss'; var dst = assets + 'css/web/'; gulp.src(src) .pipe(sass().on('error', sass.logError)) .pipe(cssmin()) .pipe(gulp.dest(dst)); }); gulp.task('js', function () { var src = build + 'js/*.js'; var dst = assets + 'js/web/'; gulp.src(src) .pipe(uglify().on('error', function (e) { console.log(e); })) .pipe(gulp.dest(dst)); src = build + 'js/app/*.js'; dst = assets + 'js/web/app/'; gulp.src(src) .pipe(uglify().on('error', function (e) { console.log(e); })) .pipe(gulp.dest(dst)); }); gulp.task('copy', function () { var src = [ './node_modules/backbone/backbone-min.js', './node_modules/underscore/underscore-min.js', './node_modules/alertifyjs/build/alertify.min.js', './node_modules/backbone.syphon/lib/backbone.syphon.min.js', './node_modules/jquery/dist/jquery.min.js', './node_modules/tether/dist/js/tether.min.js', './node_modules/requirejs/require.js', './node_modules/js-cookie/src/js.cookie.js', './node_modules/html5sortable/dist/html.sortable.min.js', './node_modules/autocomplete-js/dist/autocomplete.min.js', './node_modules/bootstrap/dist/js/bootstrap.min.js' ]; var dst = assets + 'js/web/lib/'; var i = 0; gulp.src(src) .pipe(uglify().on('error', function (e) { console.log(e); })) .pipe(chmod({ owner: {read: true, write: true, execute: false}, group: {read: true, write: false, execute: false}, others: {read: true, write: false, execute: false} })) .pipe(rename(function (path) { path.extname = '.min.js'; path.basename = path.basename.replace(/([-.])min/, '').replace(/\.bundle/, '').toLowerCase(); console.log(path.basename); })) .pipe(gulp.dest(dst)); // Fonts gulp.src('./node_modules/font-awesome/fonts/**').pipe(gulp.dest(assets + 'fonts/')); }); Сайты на MODX / Обновление webstartpage.ru 11 +1 1
Воеводский Михаил · 14 мая 2017, 20:42 provisioner понятное дело не работает на текущих версиях.Попробуй этот пакет: yadi.sk/d/y-lau_ll3J8xM3 Когда-то собирал Provisioner под 2.4, это может быть поправленный пакет. Вопросы / перенос ресурсов из modx evo в modx revo 12 +3 2
Виктор Руденко · 28 апреля 2017, 03:21 Готовое решение: ld+json [[pdoCrumbs? &showHome=`1` &tplWrapper=`@INLINE <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ [[+output]] ] } </script>` &tplHome=`@INLINE { "@type": "ListItem", "position": [[+idx]], "item": { "@id": "[[+link]]", "name": "Главная" } },` &tplCurrent=` @INLINE { "@type": "ListItem", "position": [[+idx]], "item": { "@id": "[[+link]]", "name": "[[+menutitle]]" } }` &tpl=`@INLINE { "@type": "ListItem", "position": [[+idx]], "item": { "@id": "[[+link]]", "name": "[[+menutitle]]" } },` ]] Готовые решения / pdoCrumbs Разметка с помощью microdata 16 +1 1
yani · 26 апреля 2017, 08:10 да, только не стандартным migx Нужна своя таблица в БД и настройки jonybang.blogspot.ru/2015/09/migx-db-modx.html Вопросы / Migx пагинация 2 +1 1
Владимир · 25 апреля 2017, 15:46 Файл assets/components/tinymcerte/js/mgr/tinymcerte.js После (у меня это 29 строка) this.cfg.file_browser_callback = this.loadBrowser;добавить this.cfg.valid_elements = '*[*]'; Вопросы / Tinymce rich text editor удаляет пустые теги 3 +1 2
Володя · 20 апреля 2017, 09:42 $fenom->addModifier("dateformatter", function ($input) use ($modx) { switch ($input) { case "01": return $modx->lexicon('abcd.month.january'); break; default: return $input; } }); Вопросы / Fenom модификатор и лексиконы (решено) 5 +2 1
Сергей Шлоков · 20 апреля 2017, 09:37 Очень много ошибок в коде. 1. Ты используешь в функции модификатора переменную $modx. А откуда она взялась? Её нужно пробросить через замыкание ... $fenom->addModifier('dateformatter', function ($input) use ($modx){ ...2. Загружать сервис не обязательно — он уже загружен. 3. Этот код содержит лишние строки $output = $monthname; // Эта строка для чего? return $output; // Можно заменить на return $monthname;4. Так как $monthname может быть не определена, в switch нужно добавить default: $monthname = '';Попробуй всё это собрать самостоятельно. Вопросы / Fenom модификатор и лексиконы (решено) 5 +2 1
Володя · 07 апреля 2017, 16:27 можно например вот так github.com/modxcms/revolution/blob/fbf126690f6ce903faeaeb9f1d958211fc2203c9/core/model/modx/processors/resource/data.class.php#L62-L73 public function getCacheSource() { $this->resource->_contextKey= $this->resource->get('context_key'); $buffer = $this->modx->cacheManager->get($this->resource->getCacheKey(), array( xPDO::OPT_CACHE_KEY => $this->modx->getOption('cache_resource_key', null, 'resource'), xPDO::OPT_CACHE_HANDLER => $this->modx->getOption('cache_resource_handler', null, $this->modx->getOption(xPDO::OPT_CACHE_HANDLER)), xPDO::OPT_CACHE_FORMAT => (integer) $this->modx->getOption('cache_resource_format', null, $this->modx->getOption(xPDO::OPT_CACHE_FORMAT, null, xPDOCacheManager::CACHE_PHP)), )); if ($buffer) { $buffer = $buffer['resource']['_content']; } return !empty($buffer) ? $buffer : $this->modx->lexicon('resource_notcached'); }то есть проверяется есть ли _content, если есть ресурс из кеша Вопросы / OnLoadWebDocument, как узнать, что ресурс из кеша? 4 +2 1
Николай · 01 апреля 2017, 14:48 Постарался чуть более универсальное решение написать для тех случаев, когда обратный слеш нужен не только для папок, но и для документов. Те. сайт/категория/товар/ <?php if ($modx->context->key == 'mgr') {return;} $uri=$_SERVER['REQUEST_URI']; if (substr($uri, -1) != '/' && $uri != '/' && !strpos($uri, '?')&& !strpos($uri, '.')) { $url = $modx->getOption('site_url'); if(substr($url, -1)=='/'){ $url=substr($url, 0, -1); } $url .= $uri.'/'; $modx->sendRedirect($url,array('responseCode' => 'HTTP/1.1 301 Moved Permanently')); } Вопросы / Слэш в конце адреса 44 +1 4
Дмитрий · 29 марта 2017, 12:44 Примерно так это выглядит для Revo (взял из одного проекта, и не проверяя подкорректировал). <?php set_time_limit(500); $modx->setDebug(E_ALL & ~E_NOTICE); // sets error_reporting to everything except NOTICE remarks $modx->setLogLevel(modX::LOG_LEVEL_DEBUG); $result = $modx->query("SELECT k2.id,k2.title, k2.fulltext, k2.introtext, k2.created, k2.hits, k2.alias, FROM `joomlasite_k2_items` k2"; if (!is_object($result)) { return 'No result!'; } else { while ($row = $result->fetch(PDO::FETCH_ASSOC)) { $data['pagetitle'] = $row['title']; $data['content'] = $row['introtext']; $data['template'] = 4; $data['context_key'] = 'web'; $data['createdon'] = strtotime($row['created']); $data['tvs'] = true; $data['tv43'] = $row['hits']; $response = $modx->runProcessor('resource/create', $data); if ($response->isError()) { html .= ($modx->error->failure($response->getMessage())) . '<br /> </br>?'; } else { $object = $response->getObject(); $html .= " Был обновлен документ с ID {$object['id']}"; } } return $html;Но дело в том, что в Revo есть процессоры, а в Evo, вроде бы (последний раз работал с Evo в 2014), нет. А смысл простой — взять нужные данные из таблиц Джумлы, завернуть их в массив и вставить с помощью какой-то матери в таблицу для Evo. Если погуглить, то можно найти такую ссылку. Осталось только присобачить пример выше к примеру по ссылке и добавлять данные как-то так, судя по статье: // где $new_document это массив с данными из базы. $newDocId = $modx->db->insert( $new_document, $modx->getFullTableName('site_content') ); Вопросы / Перенести статьи с Joomla перенести на Modx EVO 6 +1 2
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Когда-то собирал Provisioner под 2.4, это может быть поправленный пакет.
Нужна своя таблица в БД и настройки
jonybang.blogspot.ru/2015/09/migx-db-modx.html
После (у меня это 29 строка)
добавить
1. Ты используешь в функции модификатора переменную $modx. А откуда она взялась? Её нужно пробросить через замыкание
2. Загружать сервис не обязательно — он уже загружен.
3. Этот код содержит лишние строки
4. Так как $monthname может быть не определена, в switch нужно добавить
Попробуй всё это собрать самостоятельно.
github.com/modxcms/revolution/blob/fbf126690f6ce903faeaeb9f1d958211fc2203c9/core/model/modx/processors/resource/data.class.php#L62-L73
то есть проверяется есть ли _content, если есть ресурс из кеша
Те. сайт/категория/товар/
Но дело в том, что в Revo есть процессоры, а в Evo, вроде бы (последний раз работал с Evo в 2014), нет.
А смысл простой — взять нужные данные из таблиц Джумлы, завернуть их в массив и вставить с помощью какой-то матери в таблицу для Evo. Если погуглить, то можно найти такую ссылку. Осталось только присобачить пример выше к примеру по ссылке и добавлять данные как-то так, судя по статье: