function PukiWikiYTable(&$root, $text) { parent::PukiWikiElement(); $_value = PukiWikiFunc::csv_explode(',', substr($text, 1)); if (count($_value) == 0) { $this = new PukiWikiInline($text); $this->last =& $this; return; } $align = $value = $matches = array(); foreach ($_value as $val) { if (preg_match('/^(\\s+)?(.+?)(\\s+)?$/', $val, $matches)) { $align[] = $matches[1] != '' ? (array_key_exists(3, $matches) and $matches[3] != '') ? ' style="text-align:center"' : ' style="text-align:right"' : ''; $value[] = $matches[2]; } else { $align[] = ''; $value[] = $val; } } $this->col = count($value); $colspan = array(); foreach ($value as $val) { $colspan[] = $val == '==' ? 0 : 1; } $str = ''; for ($i = 0; $i < count($value); $i++) { if ($colspan[$i]) { while ($i + $colspan[$i] < count($value) and $value[$i + $colspan[$i]] == '==') { $colspan[$i]++; } $colspan[$i] = $colspan[$i] > 1 ? " colspan=\"{$colspan[$i]}\"" : ''; $str .= "<td class=\"" . PukiWikiConfig::getParam('style_prefix') . "style_td\"{$align[$i]}{$colspan[$i]}>" . PukiWikiFunc::make_link($value[$i]) . '</td>'; } } $this->elements[] = $str; }
function do_plugin_inline($name, $args, $body) { global $digest; // digestを退避 $_digest = $digest; $aryargs = $args !== '' ? PukiWikiFunc::csv_explode(',', $args) : array(); $aryargs[] =& $body; PukiWikiPlugin::do_plugin_init($name); $retvar = call_user_func_array('plugin_' . $name . '_inline', $aryargs); // digestを復元 $digest = $_digest; if ($retvar === FALSE) { return htmlspecialchars("&{$name}" . ($args ? "({$args})" : '') . ';'); } return $retvar; }
function &Factory_PukiWikiYTable(&$root, $text) { $_value = PukiWikiFunc::csv_explode(',', substr($text, 1)); if (count($_value) == 0) { return Factory_PukiWikiInline($text); } else { return new PukiWikiYTable($_value); } }