Logrus

<<< Back

Пользовательские функции

Функции и их применение

В системе имеется папка lib в которой хранятся системные функции, так же можно создать и свои "пользовательские".

В данной папке создаем файл с таким названием my_funcs.php
И содержанием:

<?php

 /**
    * Get wind direction name by direction in degree 
    * @param mixed $degree Wind degree
    * @return string
    */
    function myWindDirection($degree)
   {
      $windDirection = ['С', 'ССВ', 'СВ', 'ВСВ', 'В', 'ВЮВ', 'ЮВ', 'ЮЮВ', 'Ю', 'ЮЮЗ', 'ЮЗ', 'ЗЮЗ', 'З', 'ЗСЗ', 'СЗ', 'ССЗ', 'С'];
      $direction = $windDirection[round($degree / 22.5)];

      return $direction;
   }

  /**
    * Get wind direction name by direction in degree 
    * @param mixed $degree Wind degree
    * @return string
    */
    function myWindDirFull($degree)
   {
      $windDirection = ['Северный', 'Северо-северо-восточный', 'Северо-восточный', 'Восточно-северо-восточный', 'Восточный', 'Восточно-юго-восточный', 'Юго-восточный', 'Юго-юго-восточный', 'Южный', 'Юго-юго-западный', 'Юго-западный', 'Западно-юго-западный', 'Западный', 'Западно-северо-западный', 'Северо-западный', 'Северо-северо-западный', 'Северный'];
      $direction = $windDirection[round($degree / 22.5)];

      return $direction;
}

// Склонение числительных
// string - само число
// ch1 - час, день, год, месяц
// ch2 - часа, дня, года, месяца
// ch3 - часов, дней, лет, месяцев
    function myMorph($string, $ch1, $ch2, $ch3)
   {
      $ff=Array('0','1','2','3','4','5','6','7','8','9');
      if(substr($string,-2, 1)==1 AND strlen($string)>1) $ry=array("0 $ch3","1 $ch3","2 $ch3","3 $ch3" ,"4 $ch3","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
      else $ry=array("0 $ch3","1 $ch1","2 $ch2","3 $ch2","4 $ch2","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
      $string1=substr($string,0,-1).str_replace($ff, $ry, substr($string,-1,1));

      return $string1;
}

последняя строчка пустая, после последней закрывающей скобки она 44 будет (парсер съел здесь)

В котором у нас будут находиться две функции (можно аналогично добавить и еще) myWindDirection и myWindDirFull а так же myMorph
Рассмотрим применение последней более подробно:
в классе Users методе setUpdatedText

$this->setProperty('updatedText',myMorph($passed,'секунда','секунды','секунд').' назад');
$this->setProperty('updatedText',myMorph($passed_m,'минута','минуты','минут').' назад');

есть такие строки, на примере первой в зависимости от значения переменной $passed в свойство updatedText будет записываться:
1 - 1 секунда назад
2 - 2 секунды назад
3 - 3 секунды назад
4 - 4 секунды назад
5 - 5 секунд назад
6 - 6 секунд назад
7 - 7 секунд назад
8 - 8 секунд назад
9 - 9 секунд назад
10 - 10 секунд назад

аналогично в методе online

say('У Вас '.myMorph($GMailUnread,' непрочитанное письмо!',' непрочитанных письма!',' непрочитанных писем!'));

в скриптах на погоду

$status.='температура '.myMorph($w,'градус','градуса','градусов').' цельсия, ';
$status2.='Относительная влажность '.myMorph($h,'процент','процента','процентов').'. ';
$status2.=myMorph(round($pressure),'миллиметр','миллиметра','миллиметров').' ртутного столба.';

$status3.=' '.myMorph(round($WindSpeed),'метр','метра','метров').' в секунду, ';
$WindDir=myWindDirFull(gg('ow_fact.wind_direction'));

и т.д.

Подобное:

В Базе знаний через поиск.

Получение списка всех системных функций:
получаем перечень всех функций (правда не в "верблюжьем стиле", а прописными), на примере 92 --> keeplatestlimitedbysize

Идем на гит к ув. автору и вбиваем в поиск
т.е. если вставить в скрипт или метод, такую конструкцию

keepLatestLimitedBySize('./cms/cached/voice', 50*1024*1024); //50Mb

то при запуске оного у вас очистится папка cached/voice до 50 мб

не совсем возможности - библиотека (функция)

Discuss (7) (5)

See also:
2018-08-05 Управление подсветкой на шлюзе Сяоми
2018-06-21 Каталог ссылок
2018-06-10 Меню
2018-07-08 mail()
2018-05-04 Режим "EnergyTariffMode"
2018-05-02 Класс SOpenClose метод logicAction (по-русски "Входная дверь")
2018-04-22 Программы
2018-04-11 Шаблон отображения в классе "ExchangeRates"
2018-04-05 Шаблон отображения в классе "Users"
2018-04-05 Режим "Никого нет дома"
2018-02-25 Бэкап и обслуживание системы

Нижний Тагил, Россия

На форуме: Logrus