/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
-// $Id: make_link.php,v 1.63 2003/11/07 03:14:32 arino Exp $
+// $Id: make_link.php,v 1.64 2003/11/22 04:50:26 arino Exp $
//
// ¥ê¥ó¥¯¤òÉղ乤ë
'bracketname', // BracketName
'wikiname', // WikiName
'autolink_a', // AutoLink(¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È)
-// 'rules', // ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë
);
}
if ($excludes !== NULL)
if ($obj->set($match,$page) !== FALSE)
{
$arr[] = $obj; // copy
+ if ($obj->body != '')
+ {
+ $arr = array_merge($arr,$this->get_objects($obj->body,$page));
+ }
}
}
return $arr;
var $type;
var $page;
var $name;
+ var $body;
var $alias;
// constructor
return $arr;
}
// ´ðËܥѥé¥á¡¼¥¿¤òÀßÄꤹ¤ë
- function setParam($page,$name,$type='',$alias='')
+ function setParam($page,$name,$body,$type='',$alias='')
{
static $converter = NULL;
$this->page = $page;
$this->name = $name;
+ $this->body = $body;
$this->type = $type;
if ($type != 'InterWikiName' and preg_match('/\.(gif|png|jpe?g)$/i',$alias))
{
class Link_plugin extends Link
{
var $pattern;
- var $plain,$param,$body;
+ var $plain,$param;
function Link_plugin($start)
{
}
function set($arr,$page)
{
- list($all,$this->plain,$name,$this->param,$this->body) = $this->splice($arr);
+ list($all,$this->plain,$name,$this->param,$body) = $this->splice($arr);
// ËÜÍè¤Î¥×¥é¥°¥¤¥ó̾¤ª¤è¤Ó¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤·¤Ê¤ª¤¹ PHP4.1.2 (?R)Âкö
if (preg_match("/^{$this->pattern}/x",$all,$matches)
{
list(,$this->plain,$name,$this->param) = $matches;
}
- return parent::setParam($page,$name,'plugin');
+ return parent::setParam($page,$name,$body,'plugin');
}
function toString()
{
}
// ¥×¥é¥°¥¤¥ó¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ÊÑ´¹¤Ë¼ºÇÔ
- return make_line_rules(htmlspecialchars('&'.$this->plain).($body == '' ? ';' : "\{$body};"));
+ $body = ($body == '') ? ';' : "\{$body};";
+ return make_line_rules(htmlspecialchars('&'.$this->plain).$body);
}
}
// Ãí¼á
EOD;
$name = "<a id=\"notetext_$id\" href=\"#notefoot_$id\" class=\"note_super\">*$id</a>";
- return parent::setParam($page,$name);
+ return parent::setParam($page,$name,$body);
}
function toString()
{
function set($arr,$page)
{
list(,,$alias,$name) = $this->splice($arr);
- return parent::setParam($page,htmlspecialchars($name),'url',$alias == '' ? $name : $alias);
+ return parent::setParam($page,htmlspecialchars($name),'','url',$alias == '' ? $name : $alias);
}
function toString()
{
function set($arr,$page)
{
list(,$name,$alias) = $this->splice($arr);
- return parent::setParam($page,htmlspecialchars($name),'url',$alias);
+ return parent::setParam($page,htmlspecialchars($name),'','url',$alias);
}
function toString()
{
function set($arr,$page)
{
list(,$alias,$name) = $this->splice($arr);
- return parent::setParam($page,$name,'mailto',$alias == '' ? $name : $alias);
+ return parent::setParam($page,$name,'','mailto',$alias == '' ? $name : $alias);
}
function toString()
{
return parent::setParam(
$page,
htmlspecialchars($name.':'.$this->param),
+ '',
'InterWikiName',
$alias == '' ? $name.':'.$this->param : $alias
);
}
if ($name != '' and preg_match("/^$WikiName$/",$name))
{
- return parent::setParam($page,$name,'pagename',$alias);
+ return parent::setParam($page,$name,'','pagename',$alias);
}
if ($alias == '')
{
return FALSE;
}
}
- return parent::setParam($page,$name,'pagename',$alias);
+ return parent::setParam($page,$name,'','pagename',$alias);
}
function toString()
{
function set($arr,$page)
{
list($name) = $this->splice($arr);
- return parent::setParam($page,$name,'pagename',$name);
+ return parent::setParam($page,$name,'','pagename',$name);
}
function toString()
{
{
return FALSE;
}
- return parent::setParam($page,$name,'pagename',$name);
+ return parent::setParam($page,$name,'','pagename',$name);
}
function toString()
{
return isset($this->auto_a) ? "({$this->auto_a})" : FALSE;
}
}
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë
-/*
-class Link_rules extends Link
-{
- var $replaces;
- var $count;
-
- function Link_rules($start)
- {
- parent::Link($start);
- }
- function get_pattern()
- {
- global $line_rules;
-
- $rules = array();
- $this->replaces = array();
- $this->count = 0;
-
- foreach ($line_rules as $pattern=>$replace)
- {
- $rules[] = "($pattern)";
- $this->replaces[++$this->count] = $replace;
- if (preg_match_all('/\$\d/',$replace,$matches,PREG_SET_ORDER))
- {
- $this->count += count($matches);
- }
- }
- $this->replaces[++$this->count] = ''; // sentinel
- return join("|",$rules);
- }
- function get_count()
- {
- return $this->count;
- }
- function set($arr,$page)
- {
- list($name) = $this->splice($arr);
-
- reset($this->replaces);
- while (list($start,$replace) = each($this->replaces))
- {
- if ($replace == '')
- {
- $name = htmlspecialchars($name);
- break;
- }
- if (!array_key_exists($start,$arr) or $arr[$start] == '')
- {
- continue;
- }
- list($end,$dummy) = each($this->replaces);
- $count = $end - $start;
- $_arr = array_splice($arr,$start,$count);
- $name = $replace;
- for ($n = 1; $n < $count; $n++)
- {
- $name = str_replace('$'.$n,make_link($_arr[$n]),$name);
- }
- break;
- }
- return parent::setParam($page,$name,'rule','');
- }
- function toString()
- {
- return $this->name;
- }
-}
-*/
+
// ¥Ú¡¼¥¸Ì¾¤Î¥ê¥ó¥¯¤òºîÀ®
function make_pagelink($page,$alias='',$anchor='',$refer='')
{