Как добавить калькулятор

Файл shortcodes.php

Проверяем, есть ли функция с таким названием. Если нет, то создаем:

if (!function_exists('converter_temperature')) { 
    function converter_temperature($atts)
    {
    }
}

Создаем экземпляр класса Calculator для нашей функции:

$calc = new Calculator('converter_temperature', $atts);

Добавляем первый параметр типа “text”, со слугом number, с заголовком “Число *”, с пояснениями “” (то есть без них). Обозначаем, что этот параметр должен быть обязательным – ‘required’ => [‘1’], и должен быть числом – ‘valid’ => [‘isNumber’].

$calc->add_item(["text"], "number", "Число *", "", ['required' => ['1'], 'valid' => ['isNumber']]);

Добавляем $options1 и $options2 для первого и второго списка select:

$options1 = '<option value="tselsiy" selected>Цельсий</option>
<option value="farengeyt">Фаренгейт</option>
<option value="kelvin">Кельвин</option>
<option value="rankin">Ранкин</option>
<option value="reaumur">Реомюр</option>';

$options2 = '<option value="tselsiy">Цельсий</option>
<option value="farengeyt" selected>Фаренгейт</option>
<option value="kelvin">Кельвин</option>
<option value="rankin">Ранкин</option>
<option value="reaumur">Реомюр</option>';

Добавляем второй параметр типа “select”, вставляем туда наши опции $options1.

Слуг – number, с заголовком “Число *”, с пояснениями “” (то есть без них). Обозначаем, что этот параметр должен быть обязательным – ‘required’ => [‘1’].

$calc->add_item(["select", '', $options1], "from", "Из чего *", "", ['required' => ['1']]);

Третий параметр делаем по аналогии:

$calc->add_item(["select", '', $options2], "to", "Во что *", "", ['required' => ['1']]);

Четвертым параметром делаем чекбокс, в нем обязательно указываем name и value . radio-кнопки делаются по аналогии.

$checkbox_formuls = '<label><input type="checkbox" name="formuls" value="1"> С формулами расчётов</label>';
$calc->add_item(['checkbox', '', $checkbox_formuls], "formuls", '');
Получаем калькулятор и возвращаем его
return $calc->get();

Файл shortcodes_functions.php

Создаем функцию, с названием f_название_калькулятора и с аргументами, с названиями соответствующими слугам параметров калькулятора в shortcodes.php.

Обязательно задаем типы параметров float, string и тд, если это возможно.

function f_converter_temperature(float $number = null, string $from = null, string $to = null)

Пишем условия, при которых функция ничего не возвращает:

if ($number === null || $from === null || $to === null) {
        return null;
    }

Функцию конвертирования величин я решил вынести в файл shortcodes_helpers.php, так как она может понадобится еще не раз.

Получаю данные:

$data = converter_temp($number, $from, $to);

И возвращаю их:

return <<<EOL
<p style="font-size: 16px;"><b>$number</b> градусов {$data['from']} = \\({$data['formula']}\\) = \\({$data['formula_in']}\\) = <b>{$data['result']}</b> градусов {$data['to']}</p>
EOL;

Для написания формул использую MathJax . Он уже подключен к сайту.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x