Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Остання ревізія По сторонах наступні версії | ||
taskbarwidgets [2018/12/11 18:36] |
taskbarwidgets [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== Виджеты панели задач ====== | ||
+ | Поддержка виджетов для панели задач, была добавлена еще в релизе Ubilling 0.8.0, но как могло показаться, | ||
+ | |||
+ | ====== Зачем? ====== | ||
+ | А чего вообще может делать виджет? | ||
+ | |||
+ | ====== Из чего состоит? | ||
+ | Неожиданно, | ||
+ | <file ini sample.ini> | ||
+ | ID=" | ||
+ | CODEFILE=" | ||
+ | NEED_RIGHT="" | ||
+ | NEED_OPTION=" | ||
+ | UNIMPORTANT=1 | ||
+ | TYPE=" | ||
+ | </ | ||
+ | |||
+ | Смотря на это все, не сложно заметить, | ||
+ | А как же спросите вы, система узнает, | ||
+ | |||
+ | <file php widget_sample.php> | ||
+ | <?php | ||
+ | |||
+ | class widget_sample extends TaskbarWidget { | ||
+ | |||
+ | public function render() { | ||
+ | $result = __(' | ||
+ | return ($result); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Из чего заключаем, | ||
+ | <file php widget_sample.php> | ||
+ | <?php | ||
+ | |||
+ | class widget_sample extends TaskbarWidget { | ||
+ | |||
+ | public function render() { | ||
+ | $result = $this-> | ||
+ | return ($result); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | И это все? Да - это все. Больше там никакой другой, | ||
+ | |||
+ | ====== А подробнее? | ||
+ | Окей, если непонятно, | ||
+ | |||
+ | Итак, как уже было упомянуто выше - виджет начинается с описания элемента таскбара в **config/ | ||
+ | |||
+ | <file ini fastsms.ini> | ||
+ | ID=" | ||
+ | CODEFILE=" | ||
+ | NEED_RIGHT=" | ||
+ | NEED_OPTION=" | ||
+ | UNIMPORTANT=1 | ||
+ | TYPE=" | ||
+ | </ | ||
+ | |||
+ | Давайте проверим, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Окей, давайте создадим следующий **config/ | ||
+ | |||
+ | <file php widget_fastsms.php> | ||
+ | <?php | ||
+ | |||
+ | class widget_fastsms extends TaskbarWidget { | ||
+ | |||
+ | /** | ||
+ | * Contains system alter config as key=> | ||
+ | * | ||
+ | * @var array | ||
+ | */ | ||
+ | protected $altCfg = array(); | ||
+ | |||
+ | /** | ||
+ | * UbillingSMS object placeholder | ||
+ | * | ||
+ | * @var object | ||
+ | */ | ||
+ | protected $sms = ''; | ||
+ | |||
+ | const TASKBAR_URL = '? | ||
+ | |||
+ | /** | ||
+ | * Creates new widget_fastsms instance | ||
+ | | ||
+ | * @return void | ||
+ | */ | ||
+ | public function __construct() { | ||
+ | $this-> | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Loads system alter config into protected prop for further usage | ||
+ | | ||
+ | * @global object $ubillingConfig | ||
+ | | ||
+ | * @return void | ||
+ | */ | ||
+ | protected function loadAlter() { | ||
+ | global $ubillingConfig; | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Initalizes system SMS sending abstraction layer | ||
+ | | ||
+ | * @return void | ||
+ | */ | ||
+ | protected function initSMS() { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns SMS sending form | ||
+ | | ||
+ | * @return string | ||
+ | */ | ||
+ | protected function smsSendForm() { | ||
+ | $result = ''; | ||
+ | $inputs = wf_TextInput(' | ||
+ | $inputs.= wf_TextArea(' | ||
+ | $inputs.= wf_CheckInput(' | ||
+ | $inputs.= wf_Submit(__(' | ||
+ | $form = wf_Form('', | ||
+ | |||
+ | // | ||
+ | if ($this-> | ||
+ | $result = wf_modalAuto(wf_img(' | ||
+ | } | ||
+ | |||
+ | if ($this-> | ||
+ | $result = $form; | ||
+ | } | ||
+ | |||
+ | return ($result); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Catches form sending request and performs SMS queue storing | ||
+ | | ||
+ | * @return void | ||
+ | */ | ||
+ | protected function catchSMSSending() { | ||
+ | if (wf_CheckPost(array(' | ||
+ | $translitFlag = (wf_CheckPost(array(' | ||
+ | $this-> | ||
+ | // | ||
+ | rcms_redirect(self:: | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Runs and renders widget code | ||
+ | | ||
+ | * @return string | ||
+ | */ | ||
+ | public function render() { | ||
+ | $result = ''; | ||
+ | if ($this-> | ||
+ | //performs sms sending if required | ||
+ | $this-> | ||
+ | //rendering sending form | ||
+ | $result.=$this-> | ||
+ | } else { | ||
+ | $messages = new UbillingMessageHelper(); | ||
+ | $result = $messages-> | ||
+ | } | ||
+ | return ($result); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Как несложно заметить, | ||
+ | |||
+ | {{: | ||
+ | ====== Стоковые виджеты ====== | ||
+ | Вы можете повключать/ | ||
+ | |||
+ | <file ini alter.ini> | ||
+ | ; Показывает текущий аптайм системы | ||
+ | WIDGET_UPTIME=1 | ||
+ | ; Виджет быстрой посылки SMS, мы его там чуть выше на ходу писали. Что уже забыли? | ||
+ | WIDGET_FASTSMS=1 | ||
+ | ; | ||
+ | WIDGET_FINANCE=1 | ||
+ | ; Радует ваш персонал, | ||
+ | WIDGET_PSYCHO=1 | ||
+ | ; Собствено описанный выше семпловый виджет, | ||
+ | WIDGET_SAMPLE=1 | ||
+ | ; Делает иконкам панели задач, эффект " | ||
+ | WIDGET_TBBLUR=1 | ||
+ | ; Стильно черно-белит иконки панели задач. | ||
+ | WIDGET_TBBW=1 | ||
+ | ; Иконки панели задач можно утащить куда-то и обосновать этим почему " | ||
+ | WIDGET_TBDRAG=1 | ||
+ | ; Крестики-нолики, | ||
+ | WIDGET_TICTACTOE=1 | ||
+ | ; Может кому-то очень хочется постоянно мониторить суммарный трафик, | ||
+ | WIDGET_TRAFFIC=1 | ||
+ | ; Конвертер валют. | ||
+ | WIDGET_CURRENCY=1 | ||
+ | ; С шансом 10% орет про meabeab-а в поисках BONK-a! | ||
+ | ; https:// | ||
+ | WIDGET_MEABEAB=1 | ||
+ | </ |