PluginProbe
TablePress – Tables in WordPress made easy / 3.0
TablePress – Tables in WordPress made easy v3.0
3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.12 1.14 1.9.2 2.0.4 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 2.4.3 2.4.4 All 44 releases
← All changes | libraries/html-parser.class.php +10 -8 2.4.23.0 View file →
@@ -56,9 +56,9 @@
56 56 if ( 0 === count( $dom_tables ) ) {
57 57 return new WP_Error( 'table_import_html_dom_get_tables' );
58 58 }
59 59 libxml_clear_errors(); // Clear errors so that we only catch those inside the table in the next line.
60 - $table = simplexml_import_dom( $dom_tables->item( 0 ) ); // @phpstan-ignore-line
60 + $table = simplexml_import_dom( $dom_tables->item( 0 ) ); // @phpstan-ignore argument.type
61 61 if ( is_null( $table ) ) {
62 62 return new WP_Error( 'table_import_html_simplexml_import_dom_failed' );
63 63 }
64 64
@@ -86,20 +86,22 @@
86 86 'data' => array(),
87 87 'options' => array(),
88 88 );
89 89 if ( isset( $table->thead ) ) {
90 - $html_table['data'] = array_merge( $html_table['data'], self::_import_html_rows( $table->thead[0]->tr ) ); // @phpstan-ignore-line
91 - $html_table['options']['table_head'] = true;
90 + $head_rows = self::_import_html_rows( $table->thead[0]->tr ); // @phpstan-ignore property.nonObject
91 + $html_table['data'] = array_merge( $html_table['data'], $head_rows );
92 + $html_table['options']['table_head'] = count( $head_rows );
92 93 }
93 94 if ( isset( $table->tbody ) ) {
94 - $html_table['data'] = array_merge( $html_table['data'], self::_import_html_rows( $table->tbody[0]->tr ) ); // @phpstan-ignore-line
95 + $html_table['data'] = array_merge( $html_table['data'], self::_import_html_rows( $table->tbody[0]->tr ) ); // @phpstan-ignore property.nonObject
95 96 }
96 97 if ( isset( $table->tr ) ) {
97 98 $html_table['data'] = array_merge( $html_table['data'], self::_import_html_rows( $table->tr ) );
98 99 }
99 100 if ( isset( $table->tfoot ) ) {
100 - $html_table['data'] = array_merge( $html_table['data'], self::_import_html_rows( $table->tfoot[0]->tr ) ); // @phpstan-ignore-line
101 - $html_table['options']['table_foot'] = true;
101 + $foot_rows = self::_import_html_rows( $table->tfoot[0]->tr ); // @phpstan-ignore property.nonObject
102 + $html_table['data'] = array_merge( $html_table['data'], $foot_rows );
103 + $html_table['options']['table_foot'] = count( $foot_rows );
102 104 }
103 105
104 106 return $html_table;
105 107 }
@@ -132,15 +134,15 @@
132 134 $new_row[] = $rowspans[ $row_idx ][ $column_idx ];
133 135 ++$column_idx;
134 136 }
135 137
136 - $cell_xml = $cell->asXml();
138 + $cell_xml = $cell->asXML();
137 139
138 140 // Get content between <td>...</td>, or <th>...</th>, possibly with HTML.
139 141 if ( false !== $cell_xml && 1 === preg_match( '#<t[d|h].*?>(.*)</t[d|h]>#is', $cell_xml, $matches ) ) {
140 142 /*
141 143 * Decode HTML entities again, as there might be some left especially in attributes of HTML tags in the cells,
142 - * see https://secure.php.net/manual/en/simplexmlelement.asxml.php#107137.
144 + * see https://www.php.net/manual/en/simplexmlelement.asxml.php#107137.
143 145 */
144 146 $new_row[] = html_entity_decode( $matches[1], ENT_NOQUOTES, 'UTF-8' );
145 147
146 148 // Search for colspan and rowspan attributes in the cell's HTML tag.