protected function createFromParams()
{
$keyboard_type = $this->getKeyboardType();
$args = func_get_args();
// Force button parameters into individual rows.
foreach ($args as &$arg) {
!is_array($arg) && ($arg = [$arg]);
}
unset($arg);
$data = reset($args);
if ($from_data = array_key_exists($keyboard_type, (array) $data)) {
$args = $data[$keyboard_type];
// Make sure we're working with a proper row.
if (!is_array($args)) {
$args = [];
}
}
$new_keyboard = [];
foreach ($args as $row) {
$new_keyboard[] = $this->parseRow($row);
}
if (!empty($new_keyboard)) {
if (!$from_data) {
$data = [];
}
$data[$keyboard_type] = $new_keyboard;
}
return $data;
}