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'), ) ); } }