Добавление нового параметра в WebloginPE Modx Evo

2 ноября 2016, 15:29

Добавление параметра &dobFormat в сниппет WebloginPE в Modx Evo.

Редактируем код сниппета:

Пример Bruno

$dateFormat = isset($dateFormat) ? $dateFormat : '%A %B %d, %Y at %I:%M %p';
$dobFormat = isset($dobFormat) ? $dobFormat : '%m-%d-%Y';//add by Bruno

А также 

$wlpe->CustomTable($customTable, $customFields, $prefixTable, $tableCheck);
$wlpe->dobFormat=$dobFormat;//add by Bruno



Редактируем файл webloginpe.class.php:

$age = substr($ageDecimal, 0, strpos($ageDecimal, "."));
$modx->setPlaceholder('view.dob', strftime($this->dobFormat, $viewUser['dob']));//dobFormat by Bruno
$modx->setPlaceholder('view.age', $age);

А также

// CREDIT : Guillaume for not format an empty date
$value==0?'':$modx->setPlaceholder('user.'.$key, strftime($this->dobFormat, $value));//dobFormat by Bruno
$modx->setPlaceholder('user.age', strftime('%Y', time() - $value));



В этом же файле перепишем функцию MakeDateForDb:

function MakeDateForDb($date)//modified by Bruno for $dobFormat
    {
        $formatArray= split('[/.-]', $this->dobFormat);
        $dateArray= split('[/.-]', $date);
        // $date is a string like 01-22-1975.
        if (count($dateArray) !== 3)
            return $this->FormatMessage($this->LanguageArray[27]);
        $daypos = array_search('%d', $formatArray);
        $monthpos = array_search('%m', $formatArray);
        $yearpos = array_search('%Y', $formatArray);
 
        // $dateArray is somethink like [0]=01, [1]=22, [2]=1975
        // make a unix timestamp out of the original date string.
        $timestamp = mktime(0, 0, 0, $dateArray[$monthpos], $dateArray[$daypos], $dateArray[$yearpos]);
        return $timestamp;
    }



После данных изменений добавляем параметр в вызове сниппета &dobFormat=`%d.%m.%Y` или в любом нужном для Вас формате.

Установка SSL сертификата на Apache CentOS

26 октября 2016, 11:30

Инструкция по установке SSL сертификата на Apache на сервере CentOS.

Создание запроса на сертификат (CSR) для Apache.


Подключение к хостингу по SSH
Перешли в папку с Apache

cd /etc/httpd/conf/



Создание закрытого (приватного) ключа

openssl genrsa -des3 -out private.key 2048

«Enter pass phrase for private.key» - вводим пароль для защиты
«Verifying — Enter pass phrase for private.key» - повторяем пароль

less private.key - посмотрим на готовый ключ.
Q - нажмем для выхода.



Создание запроса на сертификат (CSR)

openssl req -new -key private.key -out domain-name.csr

«Enter pass phrase for private.key» - вводим пароль



Заполняем следующие поля:


Country Name: двухсимвольный код страны согласно ISO-3166. «RU» для России.


State or Province Name: название области или региона без сокращений;


Locality Name: название города или населенного пункта;


Organization Name: название организации в латинском эквиваленте;


Organizational Unit Name: название подразделения, для которого заказывается сертификат (необязательное поле);


Common Name: полностью определенное (FQDN) доменное имя;


Email Address: контактный e-mail адрес (необязательное поле);


A challenge password: не заполняется;


An optional company name: альтернативное имя компании (не заполняется).


Посмотрим на созданный файл

openssl req -noout -text -in domain-name.csr

less domain-name.csr - откроем для копирования данных




Заказали SSL сертификат у RU-Center.


При заказе вставили созданный код с файла domain-name.csr

Подтвердили по email и по тел.


Проверка длилась 2 дня. В первый день подтвердили email, а на след. день по телефону.

Скачали сертификаты с личного кабинета RU-Center


Подключение к хостингу по SSH
Перешли в папку с Apache

cd /etc/httpd/conf/

Все промежуточные сертификаты поочередно вставили в файл intermediate.crt

Загрузили файл domain-name.crt

открыли на редактирование файл httpd.conf

Дописали пару строк к нужному домену:

SSLEngine on
SSLCertificateKeyFile /etc/httpd/conf/private.key
SSLCertificateFile /etc/httpd/conf/domain-name.crt 
SSLCACertificateFile /etc/httpd/conf/intermediate.crt 

Сохранили изменения и перезапустили Apache
/etc/init.d/httpd stop
/etc/init.d/httpd start

Нужно ввести пароль, что создавали при создании файла private.key



Готово. Сертификат установлен.


Инструкции в pdf:


создание CSR для Apache


Установка SSL сертификата для Apache

Apache   CentOS   CSR   SSL

Redirect http to https

26 октября 2016, 10:54

Создаем redirect с http на https.
При условии что сервер apache.
Добавляем правило в файл .htaccess:

RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]



или вот такое правило:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]



Готово. При попытке зайти на ваш сайт по http будет автоматически открываться сайт с https.

БЭМ (BEM) от Яндекс

26 сентября 2016, 16:21

БЭМ (Блок, Элемент, Модификатор) — компонентный подход к веб-разработке. В его основе лежит принцип разделения интерфейса на независимые блоки. Он позволяет легко и быстро разрабатывать интерфейсы любой сложности и повторно использовать существующий код, избегая «Copy-Paste».


Установка

  • Минимальные требования
    • Node.js 0.10+;
    • Git Bash — для пользователей операционной системы Windows.

  • Сделайте локальную копию project-stub

  • git clone https://github.com/bem/project-stub.git --depth 1 start-project
    cd start-project
    npm install



    Важно: Не используйте права суперпользователя (root) при установке npm- и bower-зависимостей.
    bower-зависимости ставятся при выполнении npm postinstall в папку libs.

  • Запустите
  • npm start


  • Проверить работу по адресу: http://localhost:8080/desktop.bundles/index/index.html
  • Должна открыться страница с примерами блоков библиотеки.


    Пошаговая инструкция: https://ru.bem.info/platform/tutorials/quick-start-static/


    Презентация



    bem-xjst — шаблонизатор для тех, кто ведёт веб-разработку в рамках БЭМ-методологии.


    Шаблонизатор содержит два движка:
    BEMHTML — для преобразования BEMJSON в HTML.
    BEMTREE — для преобразования BEMJSON с данными в BEMJSON с БЭМ-деревом для последующего преобразования с помощью BEMHTML.


    Как писать шаблоны на оф. сайте: https://ru.bem.info/platform/bem-xjst/

    cron

    22 сентября 2016, 11:03

    cron — демон (планировщик задач в UNIX-подобных операционных системах).


    Используется для выполнения заданий в определенное время, или через определенные промежутки времени.

    Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.

    Для редактирования заданий используется утилита crontab.


    Место хранения файлов:

    /var/spool/cron/<user or crontab>



    Добавление файла расписания:

    crontab имя_файла_расписания



    Вывести содержимое текущего файла расписания:

    crontab -l



    Удаление текущего файла расписания:

    crontab -r



    Для редактирования файла crontab вашего пользователя используется команда[2]:

    crontab -e



    Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:

    crontab -u username



    Внимание: -u можно воспользоваться только запуская crontab от лица суперпользователя.


    Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы '*' или '/'.

    * * * * * выполняемая команда
    - - - - -
    | | | | |
    | | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
    | | | ------- Месяц (1 - 12)
    | | --------- День (1 - 31)
    | ----------- Час (0 - 23)
    ------------- Минута (0 - 59)



    Пример файла:

    # как обычно, с символа '#' начинаются комментарии
     # в качестве командного интерпретатора использовать /bin/sh
     SHELL=/bin/sh
     # результаты работы отправлять по этому адресу
     MAILTO=paul@example.org
     # добавить в PATH домашний каталог пользователя
     PATH=/bin:/usr/bin:/home/paul/bin
     
     #### Здесь начинаются задания
     # выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
     5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
     # выполнять 1 числа каждого месяца в 14 часов 15 минут
     15 14 1 * * $HOME/bin/monthly
     # каждый рабочий день в 22:00
     0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
     
     23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
     5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
     0 0 1 1 * echo "С новым годом!"
     15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
     0-59 * * * * echo "Выполняется ежеминутно"
     0-59/2 * * * * echo "Выполняется по четным минутам"
     1-59/2 * * * * echo "Выполняется по нечетным минутам"
     # каждые 5 минут
     */5 * * * * echo "Прошло пять минут"
     # каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
     0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"
    
     #Запуск по ссылке каждый день
     @daily wget -q --spider http://artana.ru >/dev/null 2>&1
    
     #Запуск по ссылке каждые 2 минуты
     */02 * * * * wget -q --spider http://artana.ru >/dev/null 2>&1
     
     #Запуск по ссылке в 7 утра и 10 минут
     10 7 * * * curl -s http://artana.ru >/dev/null 2>&1


    Ctrl + ↓ Ранее