Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 147 комментариев

Василий Летуев
Василий Летуев
не знаю куда это писать поэтому тут:

в чанках опечатка

tpl.msGetOrder.row

<td class="weight"><img src="[[++site_url]][[+thumb:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]" /></td>
класс не weight а image

в других чанках в таком же месте та же опечатка
Сергей Глазунов
Сергей Глазунов
Сергей Глазунов
Сергей Глазунов
1. Да, видел, но это точно не относится к моему случаю. Там про разрешение говорилось, а я ни чего не менял.

3. Все файлы заменил, но результат не изменился. Ну ладно буду ждать обновления — это не столь важная проблема.

4. Все выполнил, как надо, mSearch установил. Кстати, когда генерируешь ключ галочку «Включить» не видно! Пока не включил ключ, mSearch не находился в репозитории. И теперь появилась новая проблема после установки mSearch — любой документ теперь не сохраняется после полного редактирования пишет «Доступ закрыт» :( только если делать «Быстро обновить» то сохраняет, что это за глюк?
Сергей Глазунов
Сергей Глазунов
1. Дочитал до самого конца коменты, в самом конце сказано, что из за локалки — значит, когда на хост перенесу видно будет.

3. Двойное нажатие получается, потому что, когда вводишь данные курсор стоит в поле ввода и если сначала щелкнуть в любом пустом месте, дабы убрать курсор из поля ввода, тогда кнопка «Сделать заказ» срабатывает с первого раза. А Область все же все портит… Ну думаю, что это тоже косяк локалки может.

4. Я что то совсем не понял, как качать и устанавливать из Вашего репозитория? Поясните пожалуйста. Ни кнопки купить, ни скачать, ни чего такого не вижу.

5. Вроде разобрался [[!msProducts? &sortby=`msProduct.pagetitle` &where=`{«Data.popular»:1}`]]
Василий Козлов
Василий Козлов
Проблему решил.
Cufon оказался очень даже при чем)
Вся проблема заключалась в том, что скрипты .font.js оказались без поддержки кириллицы и соответственно wayfinder-у никаких текстов ссылок не доставалось, стоило сгенерить скрипты заново, уже с поддержкой кириллицы, как все начало отображаться.
Перетягин Илья
Перетягин Илья
Для будущих поколений так сказать, напишу на чем я спотыкнулся и как решил. Многое в комментах уже написано, я только соберу немного все в кучу. Еще учитываем, что данный текст для тех, кто первый раз увидел подобные дебри.

1. Письмо упорно не хотело отправляться.
Перед установкой
apt-get install nginx php5-fpm mysql-server php5-mcrypt php5-mysql php5-curl php-db php5-gd unzip zip sendmail htop

(а если уже установили, то после, но лучше до, иначе как и написано в видео будет долго думать в одном месте) идем в /etc/hostname в этот файл пишем имя (любое слово), далее идем в /etc/hosts и меняем вторую строчку на
111.111.111.111 Имя Домен

Первое это ваш IP, его можно посмотреть в админке linode, второе это имя которое вы внесли в файл hostname, третье имя домена которое вы хотите сделать. (Это можно вычитать в комментах). А дальше… все равно же не работает))). Вычитываем в комментах про DNS и начинаем понимать, что суть настройки немного отличается от тех, как нас научили shared-хостинги. Идем в админку linode и находим там раздел DNS Manager, кликаем Add a domain zone… дальше все подробно расписано вот тут
library.linode.com/dns-manager
После этих действий перезагружаем сервак (хотя скорее всего можно перезапустить одну какую то службу, но мне это пока не ведомо) коннектимся обратно и видим, что сменился не только пользователь под которым вы зашли, но и localhost сменился на ваше имя которое вы задали в hostname. На этот раз все должно получится.

2. addplace.sh упорно не работает, сайты не создаются и вообще все плохо.
Убедитесь, что выполнены следующие пункты:
2.1 в /etc/php5/cli/php.ini записано date.timezone = Europe/Moscow
2.2 создан каталог www в var
2.3 Создана группа sftp addgroup sftp
2.4 Разрешили выполнение скриптам chmod +x ./*
Я много раз переустанавливал систему и постоянно, что то терялось, в результате сайты не создавались, решил проблему когда просто поспал.

3. phpMyAdmin
В целом была только одна не большая проблема, когда лезем в /var/www/pma/www/examples/create_tables.sql и начинаем там что то чудовищное делать, главное не промазать и заменить ровно столько раз, сколько показано на видео, лечиться так же сном.

п.с. нашел удобную команду – ctrl+alt+enter (причем левые клавишы а не правые), эта комбинация вставит имя файла/каталога на котором вы сейчас находитесь в командную строку. Когда по видео надо открыть файл редактором nano, то приходится писать имя файла, вот что бы его не писать……

Надеюсь кому то будет полезно.
Василий Наумкин
Василий Наумкин
1. Тут нужно прочитать, как работает галерея. Там же в комментариях выясняли, отчего пропадают превью в админке — от неверной системной настройки.

2. Php 5.2 не пользуюсь уже года 2, так что — не знаю. Однозначно могу сказать, что там не работает нормально сохранение опций товаров в админке.

3. Второе нажатие кнопки вроде убрали в последних версиях. Глюк с областью не знаю отчего может быть.

4. Обе версии есть в нашем репозитории.

5. Читай, как работает msProducts.
Василий Козлов
Василий Козлов
Дмитрий Чумак
Дмитрий Чумак
Весь плагин Tikets
switch($modx->event->name) {
case 'OnManagerPageInit':
$cssFile = $modx->getOption('tickets.assets_url',null,$modx->getOption('assets_url').'components/tickets/').'css/mgr/tickets.css';
$modx->regClientCSS($cssFile);
break;

case 'OnSiteRefresh':
if ($modx->cacheManager->refresh(array('default/tickets' => array()))) {
$modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default').': Tickets');
}
break;

case 'OnDocFormRender':
if ($resource->class_key == "TicketsSection") {
/* @var TicketsSection $resource */
$resource->set('syncsite', 0);
}
break;

case 'OnDocFormSave':
      // Указываем путь, пробовал $modx->getOption('assets_url').'path/to/dir/';
      // получается со слэшем вначале: /assets/images/.
      $path = 'assets/images/blogs/'; 
      if($mode == 'new'){  // Режим создания документа
        if (!empty($_FILES)) {  // Проверка на пустоту массива $_FILES
          @mkdir($path, 0777, true); // Создаем папку для хранения изображений, с правами 0777, третий аргумент - рекурсивное создание папок.
          foreach($_FILES as $k => $v) {
            $name = $v['name'];
            $size = $v['size'];
            $tmp = $v['tmp_name'];

            $ext = pathinfo($name, PATHINFO_EXTENSION); //получаем расширение файла
            $hash = md5(time().$name.$size); // новое название файла
            $uploadfile = $path.$hash.$ext; // объединяем в конечный путь к файлу

            if (copy($tmp, $uploadfile)) { // копируем изображения из временной папки в нужное место
              $resource->set('photo', $uploadfile); 
              $resource->save(); // Сохраняем объект.
            }
          }
        }
      } else {
        //resource update
      
/* @var TicketsSection $resource */
if ($mode == 'upd' && $resource->class_key == 'TicketsSection') {
if (method_exists($resource, 'clearCache')) {
$resource->clearCache();
}
}}
break;

case 'OnWebPagePrerender':
$output = & $modx->resource->_output;
$output = str_replace(array('[',']'), array('[',']'), $output);
break;

case 'OnPageNotFound':
// It is working only with friendly urls enabled
$q = trim($_REQUEST['q']);
$matches = explode('/', $q);
$count = count($matches);
if ($count < 3) {return;}

$section = $matches[$count - 3];
$ticket = $matches[$count - 2];

// Redirect to requested page, when you moved ticket from one section to another
if ($modx->getCount('TicketsSection',array('class_key' => 'TicketsSection', 'alias' => $section, 'deleted' => 0, 'published' => 1))) {
if (preg_match('/^\d+$/', $ticket)) {
if ($modx->getCount('Ticket', array('id' => $ticket, 'published' => 1, 'deleted' => 0))) {
$url = $modx->makeUrl($ticket, '', '', 'full');
$modx->sendRedirect($url);
}
}
}
break;

case 'OnWebPageComplete':
$Tickets = $modx->getService('tickets');
$Tickets->logView($modx->resource->id);
break;

}
Выдает файлы такого плана
8c03a5ee81fb5a5c5054159cdf5a1771png
, не проставляет точку к расширению. И как загруженый файл можно привязать чтобы он прописывался TV параметром?
Василий Наумкин
Василий Наумкин
Это не две части, а две версии одного и того же.

Первая версия оставлена по многочисленным просьбам, из-за комментариев. Там нет автоматизации установки и более подробно расписана ручная настройка хостов.

В общем, используй нынешнюю статью с видео, и не парься.
Перетягин Илья
Перетягин Илья
Василий добрый день!
Во первых – огромное тебе человеческое спасибо за такое видео и текстовое содержимое! Подобных мануалов я просто не видел.
Примерно за три дня все заработало, и это если учесть, что знаний в этой теме полный нуль.
Очень хочется разораться до конца, закрыть все непонятки в голове так сказать, по этому появился вопрос:
Этот обучающий урок разделен на две части, в одном речь идет про Selectel, во втором уже про Linode и добавлено видео. Сделав все по видео, получился работающий сервер, то есть создал сайт, «покрутил» его, удалил и т.д., вроде бы все хорошо, но в первом материале, который про Selectel есть раздел озаглавленный «Настройка сервисов», вот именно в этом моменте становится не понятно – эти настройки были нужны до Linode или и сейчас надо их делать, причем такие строчки как
post_max_size = 100M
еще можно понять, что надо бы сделать, а вот такой текст
«Следующий сайт можно создать просто скопировав конфиг этого и поменяв site1 на site2.»
становится не понятным, мы же уже создали директории скриптом и вроде бы как все хорошо работает.
Суть вопроса: часть материала из первого обучения устарела или нет, а может устарело не все? и т.д.