52

Artikel

123

Abschnitte

28

Benutzer

0

Stellenangebote

Arbeit

Add-ons

Neue Version

Sie können immer schnell laden Sie die neueste Version von unserer Website MODX.

MODX revolution – v3.1.2-pl


MODX evolution – 3.0rc3


Neu

mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)

28 march 2018, 18:05

mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)

Вывод сниппета mFilter2 выглядит у нас следующим образом:

{'!mFilter2' | snippet : [
                    'parents' => $_modx->resource.id,
                    'limit' => 12,
                    'class' => 'msProduct',
                    'element' => 'msProducts',
                    'tpl' => 'tpl.Site.msFilter2.productTpl',
                    'tplOuter' => 'tpl.Site.mFilter2.outerTpl',
                    'tplPageWrapper' => '@INLINE [[+pages]]',
                    'tplPage' => '@INLINE <a href="[[+href]]">[[+pageNo]]</a>',
                    'tplPageActive' => '@INLINE <a class="selected" href="[[+href]]">[[+pageNo]]</a>',
                    'where' => '{"class_key":"msProduct"}',
                    'suggestions' => 'true',
                    'filters' => '
                        ms|width:select,
                        ms|height:select,
                        ms|length:select,
                        ms|made_in:checkbox,
                        ms|vendor:vendors,
                    ',
                    'sort' => '
                        ms|price:desc
                    ',
                    'tplFilter.outer.ms|vendor' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|vendor' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|made_in' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|made_in' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|width' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|height' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|length' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|width' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|height' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|length' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.outer.ms|popular' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|popular' => 'tpl.Site.mFilter2.filter.select.whl',
]}

Read more
SEQUEL.ONE
1    8008    0
+1

Дополнительные поля профиля User (не extended)

28 march 2018, 17:39

Дополнительные поля профиля User (не extended) modx revo

Потребовалось на одном проекте в форму профиля добавить для пользователей дополнительные поля. Отдельно Имя, Фамилия, Отчество и поля для добавления ссылок на социальные группы.

Инструкция получения дополнительных полей, как на скриншоте выше

Первым делом идём в phpMyAdmin (или что-то подобное) и создаём:

столбец name в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `name` VARCHAR(255) NOT NULL;

столбец surname в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `surname` VARCHAR(255) NOT NULL;

столбец lastname в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `lastname` VARCHAR(255) NOT NULL;

Read more
SEQUEL.ONE
1    8769    0
+1

Проблемы с провайдерами VK и Facebook в HybridAuth

28 march 2018, 16:27

Недавно заметил что авторизация через VK и Facebook перестали работать, после долгих поисков решения оно было найдено. Сейчас подробно опишу действия которые нужно сделать для того чтобы всё у вас заработало. Начнём с провайдера Vkontakte. Для начала нужно зайти на сервер и заменить содержание файла по пути /www/site.com/core/components/hybridauth/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Vkontakte.php следующим содержимым:


Read more
SEQUEL.ONE
1    17210    0
+1

Замена текста в больших файлах через SSH

25 march 2018, 18:21

Шпаргалка о том, как заменить текст в файле на сервере, который не загружается в текстовый редактор из-за большого размера.

Столкнулся с описанной выше проблемой, нашел несколько вариантов решения, делюсь ими.

Массовая замена текста через SSH в нескольких файлах

find /folder/ -name '*.html' -exec sed -i 's/старый_текст/новый_текст/g' '{}' \;

Read more
MODX.ONE
2    2551    0
+1

Перенос файлов с сервера на сервер через rsync

25 march 2018, 17:35

Покажу на примере переноса данных с одной панели ISPmanager 5 в другую. Перенос осуществляется с сервера на который вы хотите перенести файлы.

rsync -av root@192.168.182.34:/var/www/ /var/www/

Read more
MODX.ONE
1    2390    0
+1

ISPmanager 5 импорт из OpenSSH 7.x+ с помощью rsync

25 march 2018, 17:30

ISPmanager использует ключи ssh-dss, которые по-умолчанию запрещены в openssh 7.x, поэтому импорт пользователя с использованием rsync не работает.

Выглядит это следующим образом: импорт проходит, ошибок нет, а файлов нет, есть только структура пользователя. Так же не работает импорт с авторизацией «по ключу».

Для исправления надо включить опцию в OpenSSH на сервере в /etc/ssh/sshd_config

Код:

PubkeyAcceptedKeyTypes=+ssh-dss

Read more
MODX.ONE
1    2551    0
+1

Курс цен от производителей miniShop2

25 march 2018, 16:33

На одном проекте нужно было сделать курс цен от производителей, чтобы была одна глобальная цена и возможность выставлять индивидуальные курсы у производителей. Готовых решений на тот момент не было, по этому пришлось импровизировать. Нужно к ценам умножать курс от производителя для price, если производитель у товара не указан, то выводить глобальный курс, который создаём системными настройками как ms2_curs_global_enable (включить/выключить) и ms2_curs_global куда мы собственно и забиваем глобальный курс, который включается по настройке ms2_curs_global_enable. Добавил новое поле в таблицу modxms2vendors под названием curs, а также добавил изменения в файлах модели, схемы и extjs, чтобы добавить новое поле с курсом пересчёта и установить на эти файлы CHMOD 444, чтоб при обновлении эти файлы не затёрлись.

Список изменённых файлов:

/site.ru/core/components/minishop2/model/minishop2/msvendor.class.php
/site.ru/core/components/minishop2/model/schema/minishop2.mysql.schema.xml
/site.ru/assets/components/minishop2/js/mgr/settings/vendor/grid.js
/site.ru/assets/components/minishop2/js/mgr/settings/vendor/window.js

Затем написал плагин CursPrice и повесил на события msOnGetProductPrice.

Код плагина:

<?php 
switch ($modx->event->name) {
    case 'msOnGetProductPrice':

        $curs_global = $modx->getOption('ms2_curs_global');
        $curs_global_enable = $modx->getOption('ms2_curs_global_enable');
        $product = $modx->getObject('msProduct', $data['id']);
        $curs = $product->get('vendor.curs');
        $oldPrice = $product->get('old_price');

    if (!isset($modx->event->returnedValues['price'])) {
            $modx->event->returnedValues['price'] = $price;
        }
        $price = &$modx->event->returnedValues['price'];

        //exit(var_dump($values['price']));

        if($curs_global_enable != 1) {
            $price = $price * $curs;
        } else {
            $price = $price * $curs_global;
        }
    break;
}

Read more
SEQUEL.ONE
2    3029    0
+3

Перенос данных из custom таблицы в таблицу site_content

19 march 2018, 13:51

При переносе данных с сайта с отличным движком можно перенести контентную часть через такой простенький запрос.

INSERT INTO `modx_site_content`(`id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`,    `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`) SELECT '', 'document', 'text/html', `pagetitle`, `longtitle`, `description`, `alias`, '', 1, 0, 0, 8630, 0, `introtext`, `content`, 1, 4, 0, 1, 1, 1, 1521462907, 0, 0, 0,   0, 0, 1521462907, 1, '', 0, 0, 0,   0, 1, 'modDocument', 'web', 1, '', 0, 0, 1, NULL FROM `s_brands`;

Read more
MODX.ONE
2    2463    0
+3

Обновление TYPO3. Как узнать какой плагин используется?

13 december 2017, 07:53




Узнать, какой плагин используется на сайте можно с помощью не большого лайфхака:
 

  1. 1. Заходим в phpMyAdmin
  2. 2. Выбираем таблицу tt_content
  3. 3. Определяем, какие комбинации могут быть — CType обычно содержит имя расширения. Если плагин выбран здесь, то обычно это «список», в зависимости от плагина, но может быть синонимом здесь что-то еще.

    SELECT DISTINCT CType FROM tt_content

    Read more
MODX.ONE
0    2730    0
+2

Canvasmenu для Typo3 с использованием jQuery Sidr

20 october 2017, 06:55

Canvasmenu для Typo3 с использованием jQuery Sidr

Хотел с вами поделиться простым и удобным Canvas Menu Sidr jQuery для Typo3, но использовать можно на любых других движках.


Read more
MODX.ONE
0    3186    0
+3

Перезапуск Docker

05 october 2017, 12:58

Последнее время очень много проблем доставляет Docker, где висят альтернативные базы данных. Время от времени отваливается контейнер, который нужно перезапустить для продолжения работы. Чтобы перезапустить контейнеры Docker, используйте две команды:

# docker stop $(docker ps -a -q) 
# docker start $(docker ps -a -q)

Также можно создать bash скрипт, который сам мониторит работает Docker или нет и запускает его если получен сигнал об остановке работы. Создаём в папке root файл docker-check.sh с содержимым:

#!/bin/bash

while true; do #Начинаем бесконечный цикл

TSTMYSQL=` docker ps | grep Up` #Запрашиваем рабочие контейнеры

if [ "$TSTMYSQL" == "" ]; then #Проверяем статус, и если статус  не "Up "

docker start $(docker ps -a -q) #запускаем докер

fi #заканчиваем проверку

sleep 30 #Замираем на 30 секунд

done #Начинаем все с начала

Запускаем под root'ом:

sh docker-check.sh

Перезагружаем сервер. Теперь скрипт автоматически чекает наш Docker на работоспособность и если Docker отключен включает его.


Read more
SEQUEL.ONE
1    2360    0
+3

Перенос сайта на TYPO3 с сервера на сервер

25 september 2017, 13:50

Сегодня переносил сайт на TYPO3 с одного сервера на другой. Процесс крайне увлекательный, если умеешь работать c SSH. Хотелось бы описать сам процесс, может кто-то как и я постигает премудрости создания сайта на TYPO3. Мне нужно было загрузить базу данных, которая весила около 700 Мб. Для этого очень кстати пришлась команда:

mysql -h localhost -P 3306 -uroot -p database < dump.sql

Для того чтобы перенести TYPO3 с одного сервера на другой, нужно установить на принимающем сервере схожую версию TYPO3 с переносимой. Установить TYPO3 вы можете с помощью моей предыдущей статьи. Далее с помощью SSH переносим в нашу директорию с сайтом TYPO3 папки:

fileadmin

templates

uploads

typo3conf

typo3temp

используя команды SCP (переноса) из нашей статьи. В папке typo3conf необходимо в файле LocalConfiguration.php настроить доступы. После вышеупомянутых действий нам нужно зайти по адресу https://yourwebsite.com/typo3/install/ и выполнить обновление таблиц, а также сброс кэша и проверку работы обработки изображений.


Read more
SEQUEL.ONE
0    3702    0
+1

Установка Typo3 на сервер Unix

25 september 2017, 10:34

Установка Typo3 на сервер Unix

  1. Получите исходный пакет из http://typo3.org/download/ и загрузите этот пакет на свой веб-сервер. Поместите его на один уровень выше корня документа. В этом руководстве мы будем использовать файл .tar.gz. Используйте оболочку для выполнения соответствующих команд:
/var/www/site/htdocs/$ cd ..
/var/www/site/$ wget get.typo3.org/7.6 -O typo3_src-7.6.x.tar.gz
  1. Распакуйте файл typo3_src-7.6.x.tar.gz на своем веб-сервере:
/var/www/site/$ tar -xzf typo3_src-7.6.x.tar.gz

Read more
SEQUEL.ONE
0    3413    0
+3

Копирование файлов с одного сервера на другой в Linux

25 september 2017, 08:00

Этот способ достаточно удобен по причине того, что отпадает необходимость копирования данных на промежуточное хранилище (в данном случае — ПК). Копирование файла происходит напрямую с одного сервера на другой и для выполнения этого действия используется абсолютно не сложная команда:

scp -P 22 mysite.tar.gz root@192.168.0.1:/home/www/site.com/html/

Read more
SEQUEL.ONE
1    3434    0
+3

Удаление всех файлов кроме последних на PHP

23 september 2017, 15:19

Недавно было необходимо на сайте, где генерировались изображения с веб-камеры каждые 20 секунд, очищать всю эту папку за исключением последних 10 файлов. Было необходимо написать всё это в связке PHP + Cron, хотя Bash скрипт + Cron сделал бы это намного быстрее, но хозяин барин. В принципе к моменту написания скрипта на сайте было 9к изображений и на их удаление потребовалось чуть больше секунды, так что ощущения длительного процесса не замечено.


Read more
SEQUEL.ONE
0    3195    0
+3