Консольное обновление OSMap (CLI)

От 18.05.2017 11:23. Опубликовано в Joomla

OSMap - компонент для создания карты сайта.

Всё хорошо, когда у вас небольшой сайт. Но что делать если на сайте сотни, тысячи страниц, и обновление карты сайта при обращении к ней не вариант?

OSMap предлагает один способ, это обращение к определенному URLу для обновления карты, причем обращение задействует веб-сервер, а это и нагрузка на него, и лимит во времени исполнения, и возможность оказать влияние на других пользователей. Например есть проект, где более 5000 страниц, при попытке такого обновления, даже если убрать ограничение на время исполнения в 30 секунд, то nginx'у становится очень не хорошо и сайт несколько минут выдает всем 5хх ошибку.

Самый удобный способ, это не трогать Apache/nginx и обратиться к скрипту напрямую, через PHP, использовать Command Line Interface (CLI) и ниже я предложу вариант такого скрипта.

Шпаргалка по Exim4. Основные команды.

От 26.12.2016 00:10. Опубликовано в Exim

Очередь

Вывод почтовой очереди, но без сортировки. Полезно, когда в очереди много сообщений, а сортировка не нужна.
exim -bpr

Отображение всех сообщений в очереди (количество, объем, старых, новых, области, и итоги)
exim -bp|exiqsumm

Вывод количества сообщений в очереди.
exim -bpc

Очистить очередь. Тоесть, по сути удаляем все сообщения из очереди.
exipick -i | xargs exim -Mrm

Удалить из очереди все "замороженные" сообщения (помеченные как "frozen").
exipick -zi | xargs exim -Mrm

Удалить все сообщения, которые старше, чем Х секунд из очереди (например, 5 дней будет 432 000 секунд)
exiqgrep -o 432000 -i | xargs exim -Mrm

Заморозить все сообщения в очереди от отправителя
exiqgrep -i -f <email> | xargs exim -Mf

Поиск в очереди

Поиск в очереди сообщения от определенного отправителя
exiqgrep -f <email>

Поиск в очереди сообщений для конкретного получателя/домена
exiqgrep -r <email>

Вывод только Message-ID, как результат одного из двух поисковых запросов выше
exiqgrep -i [ -r | -f ] ...

Вывод количества сообщений, как результат одного из поисковых запросов выше
exiqgrep -c [ -r | -f ] ...

Вывод только Message-ID очереди
exiqgrep -i

Работа с сообщениями

Посмотр лог сообщения.
exim -Mvl <message id>

Вывод тела сообщения.
exim -Mvb <message id>

Вывод заголовков сообщения
exim -Mvh <message id>

Удалить сообщение из очереди и не посылать никаких ошибок (в логах запись о удалении будет).
exim -Mrm <message id> <message id> ...

Удалить сообщение из очереди и отослать "отлуп" (cancelled by administrator).
exim -Mg <message id> <message id> ...

Ускорить доставку сообщения (немедленно выполняет доставку сообщения).
exim -M <message id> <message id> ...

Добавить адрес в список получателей сообщения.
exim -Mar <message id> <email> <email> ...

Заменить адрес отправителя в сообщении на указанный.
exim -Mes <message id> <email>

Отметить перечисленные сообщения как "frozen". Попытки доставки сообщения прекращаются, пока сообщение не будет разморожено вручную, или пока не пройдет время указанное в "auto_thaw".
exim -Mf <message id> <message id> ...

"Разморозить" сообщения.
exim -Mt <message id> <message id> ...

Вывести карту сайта (древо категорий)

От 13.01.2015 17:14. Опубликовано в PHP

Допустим необходимо создать карту сайта или просто вывести полностью древо (дерево) категорий с неограниченным числом элементов и уровнем вложенности, имея на входе массив.

$cats = [
  "Consumer Electronics" => [
    "HD Media Players" => [
      "Android HD Players",
      "HD Media Players",
    ],
    "A/V Adapters &amp; Convertors",
    "Headphones",
    "Bluetooth Devices" => [
      "Bluetooth Speakers",
      "Other Bluetooth Devices",
      "Bluetooth Headphones",
    ],
  ],
  "Computer &amp; Networking" => [
     "Card Readers",
  ],
];

Меняем значения двух переменных, без использования третьей

От 11.01.2015 13:04. Опубликовано в PHP

Универсальный способ, для любых типов переменных, самый простой:

$a = 10; $b = array(1,2,3);
 
list($b, $a) = array($a, $b);
 
var_dump($a,$b);

По сути аналогичные операции, но в другой записи:

$a = 10; $b = array(1,2,3);
 
$a = array('a' => $a, 'b' => $b);
$b = $a['a'];
$a = $a['b'];
 
var_dump($a,$b);

Далее представлены еще несколько способов для разных типов, в плане ознакомления.

Модуль fRecruitment (Joomla 1.5)

От 20.01.2013 06:15. Опубликовано в Joomla

Модуль fRecruitment (Joomla 1.5)

Модуль для набора игроков в гильдию игры World of Warcraft.

Поддержка Mists of Pandaria:

  • все 4 специализации у друида
  • рыцарь смерти и монахи
  • возможность указать, какие конкретно нужны специализации
  • русский и английский языки

Модуль fRecruitment (Joomla 1.5)  Модуль fRecruitment (Joomla 1.5)  Модуль fRecruitment (Joomla 1.5)