0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
phpwiki
/
1.3.14-6
/
standard
/
htdocs
/
lib
/
plugin
/
[
Home
]
File: InterWikiSearch.php
<?php // -*-php-*- rcs_id('$Id: InterWikiSearch.php,v 1.9 2007/02/17 14:15:06 rurban Exp $'); /** Copyright 1999, 2000, 2001, 2002 $ThePhpWikiProgrammingTeam This file is part of PhpWiki. PhpWiki is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. PhpWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PhpWiki; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @description */ require_once('lib/PageType.php'); class WikiPlugin_InterWikiSearch extends WikiPlugin { function getName() { return _("InterWikiSearch"); } function getDescription() { return _("Perform searches on InterWiki sites listed in InterWikiMap."); } function getVersion() { return preg_replace("/[Revision: $]/", '', "\$Revision: 1.9 $"); } function getDefaultArguments() { return array('s' => '', 'formsize' => 30, ); } function run($dbi, $argstr, &$request, $basepage) { $args = $this->getArgs($argstr, $request); extract($args); if (defined('DEBUG') && !DEBUG) return $this->disabled("Sorry, this plugin is currently out of order."); $page = $dbi->getPage($request->getArg('pagename')); return new TransformedText($page,_('InterWikiMap'),array('markup' => 2), 'searchableInterWikiMap'); /* return new PageType($pagerevisionhandle, $pagename = _('InterWikiMap'), $markup = 2, $overridePageType = 'PageType_searchableInterWikiMap'); */ } }; /** * @desc */ if (defined('DEBUG') && DEBUG) { class PageFormatter_searchableInterWikiMap extends PageFormatter_interwikimap {} class PageType_searchableInterWikiMap extends PageType_interwikimap { function format($text) { return HTML::div(array('class' => 'wikitext'), $this->_transform($this->_getHeader($text)), $this->_formatMap(), $this->_transform($this->_getFooter($text))); } function _formatMap() { return $this->_arrayToTable ($this->_getMap(), $GLOBALS['request']); } function _arrayToTable ($array, &$request) { $thead = HTML::thead(); $label[0] = _("Wiki Name"); $label[1] = _("Search"); $thead->pushContent(HTML::tr(HTML::th($label[0]), HTML::th($label[1]))); $tbody = HTML::tbody(); $dbi = $request->getDbh(); if ($array) { foreach ($array as $moniker => $interurl) { $monikertd = HTML::td(array('class' => 'interwiki-moniker'), $dbi->isWikiPage($moniker) ? WikiLink($moniker) : $moniker); $w = new WikiPluginLoader; $p = $w->getPlugin('ExternalSearch'); $argstr = sprintf('url="%s"', addslashes($interurl)); $searchtd = HTML::td($p->run($dbi, $argstr, $request, $basepage)); $tbody->pushContent(HTML::tr($monikertd, $searchtd)); } } $table = HTML::table(); $table->setAttr('class', 'interwiki-map'); $table->pushContent($thead); $table->pushContent($tbody); return $table; } }; } // $Log: InterWikiSearch.php,v $ // Revision 1.9 2007/02/17 14:15:06 rurban // default formsize=30 // // Revision 1.8 2004/06/28 12:51:41 rurban // improved dumphtml and virgin setup // // Revision 1.7 2004/06/15 14:56:37 rurban // more allow_call_time_pass_reference false fixes // // Revision 1.6 2004/04/19 23:13:03 zorloc // Connect the rest of PhpWiki to the IniConfig system. Also the keyword regular expression is not a config setting // // Revision 1.5 2004/02/19 22:06:53 rurban // use new class, to be able to get rid of lib/interwiki.php // // Revision 1.4 2004/02/17 12:11:36 rurban // added missing 4th basepage arg at plugin->run() to almost all plugins. This caused no harm so far, because it was silently dropped on normal usage. However on plugin internal ->run invocations it failed. (InterWikiSearch, IncludeSiteMap, ...) // // Revision 1.3 2003/02/23 20:10:48 dairiki // Disable currently broken plugin to prevent fatal PHP errors. // (Sorry.) // // Revision 1.2 2003/02/22 20:49:56 dairiki // Fixes for "Call-time pass by reference has been deprecated" errors. // // Revision 1.1 2003/01/31 22:56:21 carstenklapp // New plugin which provides entry forms to search any site listed in the InterWikiMap. // // (c-file-style: "gnu") // Local Variables: // mode: php // tab-width: 8 // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil // End: ?>