Utils::get_any($attributes, 'bgGradient', 'background'),
];
return Utils::generate_css_string($styles);
}
/**
* Renders the custom cell block on the server.
*
* @param array $attributes The block attributes.
* @param string $content The block content.
* @param \WP_Block $block The block object.
* @return string Returns the HTML content for the custom cell block.
*/
public function render_tableberg_cell_block($attributes, $content, $block)
{
if (isset($attributes['isTmp']) && $attributes['isTmp']) {
return '';
}
$pre = '';
$post = '';
if (is_null(Table::$lastRow)) {
Table::$lastRow = $attributes['row'];
$pre = '
';
} else if (Table::$lastRow != $attributes['row']) {
$pre = '
';
Table::$lastRow = $attributes['row'];
}
$colspan = isset($attributes['colspan']) ? $attributes['colspan'] : 1;
$rowspan = isset($attributes['rowspan']) ? $attributes['rowspan'] : 1;
$attrs_str = 'data-tableberg-row="'.esc_attr($attributes['row']).'" data-tableberg-col="'.esc_attr($attributes['col']).'"';
$classes = 'tableberg-v-align-'.esc_attr($attributes['vAlign']);
// Add colspan attribute if it's greater than 1
if ($colspan > 1) {
$attrs_str .= ' colspan="' . esc_attr($colspan) . '"';
}
// Add rowspan attribute if it's greater than 1
if ($rowspan > 1) {
$attrs_str .= ' rowspan="' . esc_attr($rowspan) . '"';
}
$tagName = isset($attributes['tagName']) ? esc_attr($attributes['tagName']) : 'td';
$content = HtmlUtils::append_attr_value($content, $tagName, self::getStyles($attributes), 'style');
$content = HtmlUtils::append_attr_value($content, $tagName, ' '.$classes, 'class');
$content = HtmlUtils::add_attrs_to_tag($content, $tagName, $attrs_str);
return $pre . $content . $post;
}
/**
* Register the block.
*/
public function block_registration()
{
$defaults = new \Tableberg\Defaults();
register_block_type(
TABLEBERG_DIR_PATH . 'build/cell/block.json',
array(
'attributes' => $defaults->get_default_attributes('tableberg/cell'),
'render_callback' => array($this, 'render_tableberg_cell_block'),
)
);
}
}