Несколько полезностей, если хостинг не торт.

И снова, здравствуйте.

Иногда бывает так, что клиентский хостиг – грабли на костылях. Что же делать, когда нету ни SSH, ни нормальной контрольной панели? А есть только FTP.
Здесь нам на помощь приходит чистый PHP.

Итак:

  • UNZIP. Залили по фтп архив с MODx и извлекли.
    <?php
    require_once('pclzip.lib.php');
    $archive = new PclZip('modx-1.0.6.zip');
    if ($archive->extract() == 0) {
        die("Error : ".$archive->errorInfo(true));
    }else{
        echo 'ok';
    }
    ?>

    Внимание: Для работы нужна библиотека pclzip.lib.php

  • DELETE. Удаляем папку modx-1.0.6 рекурсивно от имени www-data.
    <?php function deltree($folder) {
        if (is_dir($folder)) {
            $handle = opendir($folder);
            while ($subfile = readdir($handle)) {
                if ($subfile == '.' or $subfile == '..') continue;
                if (is_file($subfile)) @unlink("{$folder}/{$subfile}");
                else deltree("{$folder}/{$subfile}");
            }
            @closedir($handle);
            if (@rmdir($folder)) return true;
            else return false;
        } else {
            if (@unlink($folder)) return true;
            else return false;
        }
        return false;
    }
    deltree(modx-1.0.6);
    ?>

  • CHMOD. Обычно в этом нуждается директория assets:. Рекурсивно меняем права.
    <?php
    function chmod_r($path, $filemode, $dirmode) {
        if (is_dir($path) ) {
            if (!chmod($path, $dirmode)) {
                $dirmode_str=decoct($dirmode);
                print "Failed applying filemode '$dirmode_str' on directory '$path'\n";
                print "  `-> the directory '$path' will be skipped from recursive chmod\n";
                return;
            }
            $dh = opendir($path);
            while (($file = readdir($dh)) !== false) {
                if($file != '.' && $file != '..') {
                    $fullpath = $path.'/'.$file;
                    chmod_R($fullpath, $filemode,$dirmode);
                }
            }
            closedir($dh);
        } else {
            if (is_link($path)) {
                print "link '$path' is skipped\n";
                return;
            }
            if (!chmod($path, $filemode)) {
                $filemode_str=decoct($filemode);
                print "Failed applying filemode '$filemode_str' on file '$path'\n";
                return;
            }
        }
    }
    
    chmod_r("assets", 0777, 0777);
    ?>

тема QM

Вечер добрый!
Оживим некротопик пятилетней давности :D

Быстро причесал тему QM под дизайн админки, пока не вышла новая версия EVO.
github.com/a-sharapov/QuickManager

Из недостатков:
1. Проверял только для стандартного вывода (т.е. вверху)
2. Внес исправление в js: jquery.colorbox-min.js под свой фреймворк, поэтому лучше брать оригинал из репозитория github.com/Nicola1971/QuickManager

И снова про модификаторы

Output Modifiers
Как то писал пост, о том, как вредно использовать модификаторы. Вижу, что любителей не убавилось, но выход должен быть.
Все мы знаем, а кто не знает, повторюсь, что к примеру если мы хотим вывести через модификатор чанк в шаблоне только на главной странице, к примеру чанк homeScripts
Читать дальше →

MODX + tinyMCE проблема с якорями

Если пытались поставить якоря в tinyMCE то всегда выкидывало на главную

вот решение этой проблемы:

Создаем плагин AnchorsAway и вешаем на OnWebPagePrerender

$e= & $modx->Event;
switch ($e->name) {
    case "OnWebPagePrerender" :
        if($modx->documentIdentifier != $modx->config['site_start'] && !empty($modx->documentIdentifier)) {
            $modx->documentOutput= str_replace('href="#', 'href="' . $modx->makeUrl($modx->documentIdentifier) . '#', $modx->documentOutput);
        }
        break;
}


нашел вот тут:
forums.modx.com/thread/?thread=35800&page=1

Unisender интеграция с MODx

Сервис E-mail рассылок создал модуль для интеграции с MODx как EVO так и REVO
www.unisender.com.ua/ru/integration/cms/modxevo.html

Удобная штука так как вся нагрузка по рассылке ложится не на свой хостинг :)
Сервис платный но есть Бесплатные пакеты :)

[ПЕРЕНОС] Небольшой тест РЕВО и EVO

Решил сначала собирать 1 сайтик на REVO но понял что не успеваю доделать вовремя так как столкнулся с множеством мелочей.

В итоге в момент когда создал на EVO все тоже что уже было готово на РЕВО:
Провели с Valikras небольшой тест скорости.

Читать дальше →

Первое знакомство с REVO

C EVO знаком ещё с версии 0.9.6 :) очень он мне нравится.
но ничего не вечно :) и нужно пробовать что то новое:)

Не скажу, что я не доволен EVO, но хочу:
— или убедиться что все же EVO рулит
— или понять что есть что то Лучше и использовать REVO

Статью буду дописывать по мере того как буду сталкиваться с чем то интересным или отличающимся :)
так же прошу заметить что эта статья под грифом ИМХО. тоесть высказываю свое мнение и не более в чем то могу ошибаться но просьба холиваров не разводить:)

Читать дальше →