From: Geoffrey T. D. <da...@us...> - 2001-09-18 19:16:28
|
Update of /cvsroot/phpwiki/phpwiki In directory usw-pr-cvs1:/tmp/cvs-serv2684 Modified Files: DBLIB.txt INSTALL INSTALL.flatfile INSTALL.mSQL INSTALL.mysql INSTALL.pgsql README UPGRADING index.php phpwiki.css Added Files: phpwiki-heavy.css Log Message: Jeff's hacks II. This is a major change, to say the least. Some highlights: o Completely new database API. WARNING: all database schemas (currently MySQL, Postgres and DBA support is working) use completely revised schema, so you must start this new code with a new blank database... o WikiPlugins o New template engine. In addition, some more incremental changes: o Cascading Style Sheets reworked. o Expanded syntax for text search: e.g. "wiki OR wacky AND NOT page". o PhpWiki should now work with register_globals off. (Security issue.) o Edit preview button. (and probably more, which I'm forgetting about now.) Much of this code is still in a state of flux (particularly the new template engine code, and to a lesser extent the API for the plugins.) Feel free to play and hack on this, just be warned that some of it may still change quite a bit... See pgsrc/ReleaseNotes for a few more notes. And feel free to post questions or comments either publicly on <php...@li...>, or privately, to <da...@da...>. --- NEW FILE --- /* * phpwiki-heavy.css * * This is stuff which should be in phpwiki.css, but which breaks NS4. */ /* Hide the elements we put in just to get around NS4 bugs. */ .ns4bug, DIV.br { display: none; } /* This makes spacings in NS4 too big. */ .toolbar, DIV.toolbar { margin: 0.5ex 0ex; } /* This break NS4, but is necessary for IE4. */ DIV.wikitext { width: auto; } /* Make Wikilinks inside <B> tags larger. */ B .wiki, STRONG .wiki, B .wikipage, STRONG .wikipage { font-size: larger; } /* Make wikiaction links look like buttons */ A.wikiaction, A.wikiadmin, INPUT.button { border-style: outset; border-width: thin; color: #006; padding-top: 0ex; padding-bottom: 0ex; padding-left: 0.2em; padding-right: 0.2em; } Index: DBLIB.txt =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/DBLIB.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** DBLIB.txt 2001/02/17 05:35:56 1.9 --- DBLIB.txt 2001/09/18 19:16:23 1.10 *************** *** 1,158 **** ! This is a description of the database interface for PhpWiki. Regardless ! of what kind of data store is used (RDBMS, DBM files, flat text files) ! you should be able to write a library that supports that data store. ! A few notes: ! * While most functions specify a "db reference" as the first value ! passed in, this can be any kind of data type that your functions ! know about. For example, in the DBM implementation this is a hash of ! integers that refer to open database files, but in the MySQL ! version it's an associative array that contains the DB information. ! ! * Functions that return the page data must return a hash (associative ! array) of all the data, where 'content' == the text of the page in Wiki ! markup, 'version' is an integer representing the version, 'author' ! the IP address or host name of the previous author and so on. See ! the next paragraph for a precise description. ! ! * The data structure. This is commonly named $pagehash in the source ! code; it's an associative array with values that are integers, ! strings and arrays (i.e. a heterogenous data structure). Here's a ! current description: ! ! $pagehash = { ! author => string, ! content => array (where each element is a line of the page), ! created => integer (a number in Unix time since the Epoch), ! flags => integer, ! lastmodified => integer (also Unix time), ! pagename => string, ! version => integer ! }; ! ! The functions are: ! ! OpenDataBase($dbname) ! takes: a string, the name of the database ! returns: a reference to the database (a handle) ! ! ! CloseDataBase($dbi) ! takes: a reference to the database (handle) ! returns: the value of the close. For databases with persistent ! connections, this doesn't return anything. ! ! ! MakeDBHash($pagename, $pagehash) ! takes: page name, page array ! returns: an encoded version of the $pagehash suitable for ! insertion into the data store. This is an internal helper ! function used mainly for the RDBMSs. ! ! MakePageHash($dbhash) ! takes: an array that came from the database ! returns: the $pagehash data structure used by the ! application. This function undoes what MakeDBHash does. ! ! RetrievePage($dbi, $pagename, $pagestore) ! takes: db reference, string which is the name of a page, and a ! string indicating which store to fetch the page from (live or archive). ! returns: a PHP associative array containing the page data ! (text, version, author, etc) ! ! ! InsertPage($dbi, $pagename, $pagehash) ! takes: db reference, page name (string), associative array ! of all page data ! returns: nothing (hmm. It should probably return true/false) ! ! SaveCopyToArchive($dbi, $pagename, $pagehash) ! Similar to InsertPage but for handling the archive store. The ! goal here was to separate the two (live db and archive db) in ! case there were different storage formats (for example, the ! archive might only store diffs of the pages). However this is ! not the case in the implementations. ! ! IsWikiPage($dbi, $pagename) ! takes: db reference, string containing page name ! returns: true or false, if the page already exists in the live db. ! ! IsInArchive($dbi, $pagename) ! takes: db reference, string containing page name ! returns: true or false, if the page already exists in the archive. ! ! InitTitleSearch($dbi, $search) ! takes: db reference, search string ! returns: a handle to identify the query and the current position ! within the result set. ! ! RemovePage($dbi, $pagename) ! takes: db reference, name of the page ! returns: nothing ! This deletes a page from both the live and archive page stores. ! ! TitleSearchNextMatch($dbi, &$pos) ! takes: db reference, reference to a hash created by ! InitTitleSearch ! returns: the next page name that contains a match to the search term ! (advances $pos to next result field as well) ! ! MakeSQLSearchClause($search, $column) ! takes: a search string, column name ! returns: a SQL query string suitable for a database query ! ! InitFullSearch($dbi, $search) ! takes: db reference, string containing search term ! returns: similar to InitTitleSearch: a handle to identify the ! query and the current position within the result set. ! ! ! FullSearchNextMatch($dbi, &$pos) ! takes: db reference, reference to a hash created by ! InitFullSearch ! returns: an associative array, where: ! 'name' -- contains the page name ! 'hash' -- contains the hash of the page data ! (advances $pos to next result field as well) ! ! ! IncreaseHitCount($dbi, $pagename) ! takes: db reference, string (name of a page) ! returns: nothing (MySQL implementation returns the last result ! set but it is not used by the caller) ! ! ! GetHitCount($dbi, $pagename) ! takes: db reference, string (page name) ! returns: an integer, the number of hits the page has received ! ! ! InitMostPopular($dbi, $limit) ! takes: a db reference and an integer, which is the limit of the ! number of pages you want returned. ! returns: the result set from the query ! ! ! MostPopularNextMatch($dbi, $res) ! takes: db reference, the result set returned by InitMostPopular ! returns: the next row from the result set, as a PHP array type ! ! GetAllWikiPageNames($dbi) ! takes: db reference ! returns: an array containing all page names ! ! GetWikiPageLinks($dbi, $pagename) ! takes: db reference, page name ! returns: a two-dimensional array containing outbound links ! ordered by score desc ('out'); inbound links ordered by score ! desc ('in'); inbound or outbound links ordered by most number of ! page views ('popular'). ! ! SetWikiPageLinks($dbi, $pagename, $linklist) ! takes: db reference, page name, list of pages linking to this ! one ! This deletes the existing list of linking pages and inserts all ! the page names in $linklist. $Id$ --- 1,7 ---- ! This release uses a complete new database API. ! For now, see lib/WikiDB.php for a description of the external API to the database. ! See lib/WikiDB/backend.php for more detail on how to write a new backend. $Id$ Index: INSTALL =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/INSTALL,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** INSTALL 2001/02/01 02:50:51 1.8 --- INSTALL 2001/09/18 19:16:23 1.9 *************** *** 1,6 **** 0. INSTALLATION ! PhpWiki requires PHP version 3.0.9 or greater, since it uses the ! preg_*() family of functions. Untar/gzip this file into the directory where you want it to live. --- 1,5 ---- 0. INSTALLATION ! PhpWiki requires PHP version 4.0.? or greater. Untar/gzip this file into the directory where you want it to live. *************** *** 10,29 **** bash$ tar -xvf phpwiki-X.XX.tar ! To improve efficiency, edit lib/config.php and set the $ServerAddress ! by hand; this will save a regexp call on every invocation. - Example: - Let's say you own the web server http://www.foo.com/. You untar in the - server's root directory; then you should be able to just go to your new - Wiki: - http://www.foo.com/phpwiki/index.php - - If you configure your server to recognize index.php as the index of a - directory, you can just do: - - http://www.foo.com/phpwiki/ - - 1. CONFIGURATION --- 9,15 ---- bash$ tar -xvf phpwiki-X.XX.tar ! Look at index.php and edit the settings there to your liking. 1. CONFIGURATION *************** *** 36,44 **** If you don't want the DBM files to live in /tmp you must make sure the web server can read/write to your chosen location. It's probably a bad idea ! to leave it in /tmp. (Again, edit lib/config.php). For example, you create a subdirectory called "pages" in the wiki directory made when you untarred PhpWiki. Move the DBM files there. ! The files are called: wikipagesdb, wikiarchivedb, wikilinksdb, wikihottopicsdb, and wikihitcountdb. The files should already have proper rights and owners, as they were created by the web server. Otherwise --- 22,30 ---- If you don't want the DBM files to live in /tmp you must make sure the web server can read/write to your chosen location. It's probably a bad idea ! to leave it in /tmp. (Again, edit index.php). For example, you create a subdirectory called "pages" in the wiki directory made when you untarred PhpWiki. Move the DBM files there. ! (FIXME: this is incorrect:)The files are called: wikipagesdb, wikiarchivedb, wikilinksdb, wikihottopicsdb, and wikihitcountdb. The files should already have proper rights and owners, as they were created by the web server. Otherwise *************** *** 80,89 **** as the root document of a directory. This web application was written under PHP version 3.0.12 and the latest build of PHP4. It's tested under the following systems: MySQL + Debian ! mSQL + Red Hat 4.1 ! DBM or Postgresql on Red Hat 6.2 It reportedly works on Windows with Apache+PHP, which amazes me. --- 66,76 ---- as the root document of a directory. + FIXME: obsolete. (PHP 3 won't work) This web application was written under PHP version 3.0.12 and the latest build of PHP4. It's tested under the following systems: MySQL + Debian ! mSQL + Red Hat 4.1 (FIXME: msql currently won't work) ! DBA or Postgresql on Red Hat 6.2 It reportedly works on Windows with Apache+PHP, which amazes me. Index: INSTALL.flatfile =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/INSTALL.flatfile,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** INSTALL.flatfile 2001/04/06 18:21:36 1.4 --- INSTALL.flatfile 2001/09/18 19:16:23 1.5 *************** *** 1,2 **** --- 1,5 ---- + FIXME: The flatfile backend has not yet been ported to the new database + scheme. For now, it is broken. + If you cannot run PhpWiki on top of a relational database like MySQL or Postgresql, and your system does not support DBM files *************** *** 130,132 **** sw...@pa... ! $Id$ \ No newline at end of file --- 133,135 ---- sw...@pa... ! $Id$ Index: INSTALL.mSQL =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/INSTALL.mSQL,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** INSTALL.mSQL 2001/03/02 00:38:50 1.4 --- INSTALL.mSQL 2001/09/18 19:16:23 1.5 *************** *** 1,2 **** --- 1,5 ---- + FIXME: The flatfile backend has not yet been ported to the new database + scheme. For now, it is broken. + Note: mSQL will not be supported in the 1.3 development branch, unless someone wants to assume responsibility for it. When the new version of *************** *** 57,59 **** sw...@pa... ! $Id$ \ No newline at end of file --- 60,62 ---- sw...@pa... ! $Id$ Index: INSTALL.mysql =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/INSTALL.mysql,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** INSTALL.mysql 2001/07/15 15:49:44 1.7 --- INSTALL.mysql 2001/09/18 19:16:23 1.8 *************** *** 1,2 **** --- 1,3 ---- + FIXME: these instructions are slightly broken. Installing phpwiki with mySQL Index: INSTALL.pgsql =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/INSTALL.pgsql,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** INSTALL.pgsql 2001/03/03 19:43:14 1.8 --- INSTALL.pgsql 2001/09/18 19:16:23 1.9 *************** *** 1,2 **** --- 1,6 ---- + FIXME: The pgsql backend has not yet been ported to the new database + scheme. (Though it should not be very hard, and is certainly in + the works.) + ---------- NOTE for the 1.2 release: You may see a few warnings when you first *************** *** 69,71 **** Report bugs to php...@li... ! $Id$ \ No newline at end of file --- 73,75 ---- Report bugs to php...@li... ! $Id$ Index: README =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/README,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** README 2001/03/03 19:43:14 1.11 --- README 2001/09/18 19:16:23 1.12 *************** *** 1,2 **** --- 1,4 ---- + FIXME: This is outdated. + This web application is licensed under the Gnu Public License, which should be included in the same directory as this README. A copy Index: UPGRADING =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/UPGRADING,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** UPGRADING 2001/04/06 18:21:36 1.2 --- UPGRADING 2001/09/18 19:16:23 1.3 *************** *** 1,2 **** --- 1,11 ---- + FIXME: WARNING WARNING: the schemas used by the new databases + are completely incompatible with schemas in any previous version + of PhpWiki. If you install this new PhpWiki, you must start with a + new empty database (currently either mysql or dba). (It will be + filled with the usual default pages.) + + FIXME: add more. + + More comprehensive updgrading information is forthcoming... however in the meantime, this message is in the Open Discussion board on *************** *** 46,48 **** ! $Id$ \ No newline at end of file --- 55,57 ---- ! $Id$ Index: index.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/index.php,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** index.php 2001/07/20 17:40:12 1.20 --- index.php 2001/09/18 19:16:23 1.21 *************** *** 22,26 **** // Part Null: Don't touch this! ! define ('PHPWIKI_VERSION', '1.3.0pre'); require "lib/prepend.php"; rcs_id('$Id$'); --- 22,26 ---- // Part Null: Don't touch this! ! define ('PHPWIKI_VERSION', '1.3.0-jeffs-hacks'); require "lib/prepend.php"; rcs_id('$Id$'); *************** *** 81,95 **** $DBParams = array( // Select the database type: ! // Uncomment one of these, or leave all commented for the default ! // data base type ('dba' if supported, else 'dbm'.) ! //'dbtype' => 'dba', ! //'dbtype' => 'dbm', ! //'dbtype' => 'mysql', ! //'dbtype' => 'pgsql', ! //'dbtype' => 'msql', ! //'dbtype' => 'file', // Used by all DB types: ! 'database' => 'wiki', // prefix for filenames or table names /* --- 81,104 ---- $DBParams = array( // Select the database type: ! //'dbtype' => 'SQL', ! 'dbtype' => 'dba', + // For SQL based backends, specify the database as a DSN + // The most general form of a DSN looks like: + // + // phptype(dbsyntax)://username:password@protocol+hostspec/database + // + // For a MySQL database, the following should work: + // + // mysql://user:password@host/databasename + // + // FIXME: My version Pear::DB seems to be broken enough that there is + // no way to connect to a mysql server over a socket right now. + //'dsn' => 'mysql://guest@:/var/lib/mysql/mysql.sock/test', + //'dsn' => 'mysql://guest@localhost/test', + 'dsn' => 'pgsql://localhost/test', + // Used by all DB types: ! // prefix for filenames or table names /* *************** *** 98,121 **** * installation. */ ! 'prefix' => 'phpwiki_', ! // Used by 'dbm', 'dba', 'file' 'directory' => "/tmp", ! ! // 'dbm' and 'dba create files named "$directory/${database}{$prefix}*". ! // 'file' creates files named "$directory/${database}/{$prefix}*/*". ! // The sql types use tables named "{$prefix}*" ! ! // Used by 'dbm', 'dba' 'timeout' => 20, ! ! // Used by *sql as neccesary to log in to server: ! 'server' => 'localhost', ! 'port' => '', ! 'socket' => '', ! 'user' => 'guest', ! 'password' => '' ); ///////////////////////////////////////////////////////////////////// --- 107,185 ---- * installation. */ ! //'prefix' => 'phpwiki_', ! // Used by 'dba' 'directory' => "/tmp", ! 'dba_handler' => 'gdbm', // Either of 'gdbm' or 'db2' work great for me. ! //'dba_handler' => 'db2', ! //'dba_handler' => 'db3', // doesn't work at all for me.... 'timeout' => 20, ! //'timeout' => 5 ); + ///////////////////////////////////////////////////////////////////// + // + // The next section controls how many old revisions of each page + // are kept in the database. + // + // There are two basic classes of revisions: major and minor. + // Which class a revision belongs in is determined by whether the + // author checked the "this is a minor revision" checkbox when they + // saved the page. + // + // There is, additionally, a third class of revisions: author revisions. + // The most recent non-mergable revision from each distinct author is + // and author revision. + // + // The expiry parameters for each of those three classes of revisions + // can be adjusted seperately. For each class there are five + // parameters (usually, only two or three of the five are actually set) + // which control how long those revisions are kept in the database. + // + // max_keep: If set, this specifies an absolute maximum for the number + // of archived revisions of that class. This is meant to be + // used as a safety cap when a non-zero min_age is specified. + // It should be set relatively high, and it's purpose is to + // prevent malicious or accidental database overflow due + // to someone causing an unreasonable number of edits in a short + // period of time. + // + // min_age: Revisions younger than this (based upon the supplanted date) + // will be kept unless max_keep is exceeded. The age should + // be specified in days. It should be a non-negative, + // real number, + // + // min_keep: At least this many revisions will be kept. + // + // keep: No more than this many revisions will be kept. + // + // max_age: No revision older than this age will be kept. + // + // Supplanted date: Revisions are timestamped at the instant that they cease + // being the current revision. Revision age is computed using this timestamp, + // not the edit time of the page. + // + // Merging: When a minor revision is deleted, if the preceding revision is by + // the same author, the minor revision is merged with the preceding revision + // before it is deleted. Essentially: this replaces the content (and supplanted + // timestamp) of the previous revision with the content after the merged minor + // edit, the rest of the page metadata for the preceding version (summary, mtime, ...) + // is not changed. + // + // Keep up to 8 major edits, but keep them no longer than a month. + $ExpireParams['major'] = array('max_age' => 32, + 'keep' => 8); + // Keep up to 4 minor edits, but keep them no longer than a week. + $ExpireParams['minor'] = array('max_age' => 7, + 'keep' => 4); + // Keep the latest contributions of the last 8 authors up to a year. + // Additionally, (in the case of a particularly active page) try to keep the + // latest contributions of all authors in the last week (even if there are + // more than eight of them,) but in no case keep more than twenty unique + // author revisions. + $ExpireParams['author'] = array('max_age' => 365, + 'keep' => 8, + 'min_age' => 7, + 'max_keep' => 20); ///////////////////////////////////////////////////////////////////// *************** *** 161,164 **** --- 225,232 ---- // CSS location + // + // Note that if you use the stock phpwiki style sheet, 'phpwiki.css', + // you should make sure that it's companion 'phpwiki-heavy.css' + // is installed in the same directory that the base style file is. define("CSS_URL", "phpwiki.css"); *************** *** 176,179 **** --- 244,248 ---- $dateformat = "%B %e, %Y"; // must not contain time + // FIXME: delete // this defines how many page names to list when displaying // the MostPopular pages; the default is to show the 20 most popular pages *************** *** 198,201 **** --- 267,271 ---- define('WIKI_PGSRC', "pgsrc"); // Default (old) behavior. //define('WIKI_PGSRC', 'wiki.zip'); // New style. + //define('WIKI_PGSRC', '../../../Logs/Hamwiki/hamwiki-20010830.zip'); // New style. // DEFAULT_WIKI_PGSRC is only used when the language is *not* *************** *** 314,321 **** include "lib/main.php"; ! // For emacs users // Local Variables: // mode: php ! // c-file-style: "ellemtel" // End: ?> --- 384,394 ---- include "lib/main.php"; ! // (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: ?> Index: phpwiki.css =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/phpwiki.css,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** phpwiki.css 2001/02/15 21:33:06 1.2 --- phpwiki.css 2001/09/18 19:16:23 1.3 *************** *** 2,135 **** Classes: ! wikitext ! wikiword - A wiki page name ! rawurl - A raw url (like http://some.where.com/howdy.jpg) ! interwiki - An interwiki name ! linkurl - A link to an external URL ! interwikilink - A link to an external wiki ! wikilink = A link to an existing page ! wikiunknown = A link to a non-existing page ! wikiaction - A link which to an action (edit, diff, info...) ! wikiadmin - A link to an admin action (lock, remove ...) ! wikiunsafe - A link to an admin action which is located on an unlocked page. */ ! TABLE.outer { background-color: black; } ! TABLE.inner { background-color: white; } /* ! * WikiWords in sans-serif */ ! .wikiword ! { ! font-family: avantgarde, helvetica, sans-serif; ! } ! PRE .wikiword, ! TT .wikiword ! { ! font-family: monospace; ! } ! H1 .wikiword ! { ! font-size: large; ! } ! SMALL .wikiword ! { ! font-size: small; } ! .interwiki ! { ! font-family: zapf chancery, cursive; ! } ! /* ! * Raw URLS in smaller font */ ! .rawurl ! { ! font-family: serif; ! font-size: smaller; } ! /* ! * No underline for wikilinks. ! */ ! .wikilink, ! .wikiunknown, ! .wikiunknown U, ! .wikiaction, ! .wikiadmin, ! .interwikilink, ! .footnote A, ! .footnote-rev ! { ! text-decoration: none; ! /* color: #600; */ } ! .wikiunknown, ! .wikiunknown U { ! color: #600; } - /* ! * Different backgrounds depening on link type. */ ! /* ! .wikilink ! { ! background-color: #ddc; } */ - .wikiaction, - .wikiaction INPUT, - .wikiaction TABLE - { - background-color: #ddf; - } - .wikiadmin, - .wikiadmin INPUT, - .wikiadmin TABLE - { - background-color: #fdd; - } - .wikiunsafe - { - background-color: #eee; - } ! .wikilink:link ! { ! /* color: #c00; */ ! } ! .wikilink:visited, ! { ! /* color: #600; */ ! } /* ! * Special colors for the '?' after unknown wikiwords. */ ! A.wikiunknown ! { ! color: #fffff0; ! background-color: #663333; ! font-family: avantgarde, helvetica, sans-serif; ! text-decoration: none; ! } ! PRE A.wikiunknown, ! TT A.wikiunknown { ! font-family: monospace; } /* For emacs users --- 2,188 ---- Classes: ! DIV.wikitext - the transformed wiki page text. ! ! A.wiki - link to page in wiki. ! A.named-wiki - a named link to page in wiki (from e.g. [name|WikiPage]). ! A.interwiki - link to page in another wiki ! SPAN.wikipage - page name within interwiki link. ! A.named-interwiki - link to page in another wiki ! A.url - link to external URL from wiki page. ! A.named-url - link to external URL from wiki page. ! ! .wikiunknown A, .wikiunknown U ! .named-wikiunknown A, .named-wikiunknown U ! A.wikiaction ! A.wikiadmin ! .wikiunsafe ! ! A.backlinks ! TODO: Get rid of tables in wikiaction forms. */ + + /* NS4 doesn't grok @import. This allows us to put things which break NS4 + * in another file. + */ + @import url(phpwiki-heavy.css); + + BODY { background: ivory; } ! BODY { font-family: arial, helvetica, sans-serif; } /* ! * NS4, defaults from BODY don't always propagate correctly. ! * So we need this: ! */ ! .wikitext, .toolbar, P, TD { font-family: arial, helvetica, sans-serif; } ! ! INPUT.button { font-family: arial, helvetica, sans-serif; } ! ! .wikitext PRE { font-family: monospace; } ! ! DIV.wikitext { ! background: white; ! border: thin; ! border-color: black; ! border-style: solid; ! padding-left: 0.8em; ! padding-right: 0.8em; ! padding-top: 0px; ! padding-bottom: 0px; ! margin: 0.5ex 0px; ! /* This breaks Netscape 4: (display does not go full width). ! width: auto; */ ! clear: both; } ! INPUT.wikitext { margin:0px; } + DIV.toolbar { margin: 1ex 0ex; } /* ! * This is a kluge for NS4 which doesn't honor the clear: settings on ! * .tool-left and .tool-right. ! * ! * Putting in explicit <br clear="all"> messes up the formatting in ! * other browsers. Instead we'll put in a: ! * ! * <div class="br"><br class="ignore" clear="all"></div> ! * ! * The clear:both on DIV.br seems to work. And we'll disable the <br> altogether (in ! * CSS aware browsers) by setting display:none. ! * ! * Actually, I haven't yet found a browser which doesn't put a line break ! * between successive <div>'s. This makes the <br class="ignore"> completely ! * unnecessary. */ ! DIV.br { clear:both; line-height: 0px; } ! .ignore { display: none; } ! ! DIV.errors { ! background: #eee; ! border: medium; ! border-color: red; ! border-style: solid; ! padding-left: 0.8em; ! padding-right: 0.8em; ! padding-top: 0px; ! padding-bottom: 0px; ! margin: 1em; ! /* This breaks Netscape 4: (display does not go full width). ! width: auto; ! */ ! clear: both; } + .errors H4 { + color:red; + text-decoration: underline; + margin:0px; + } ! P.error { ! font-size: smaller; ! font-family: monospace; ! margin:0px; } ! .error UL { ! font-size: smaller; ! font-family: monospace; } /* ! * Style for <hr>s in wiki markup. */ ! .wikitext HR { ! background: #666; ! height: 1px; ! width: 90%; ! margin-left:auto; ! margin-right:auto; ! align:center; /* for NS4 */ } + + + /* + * Link styles + */ + /* Wiki Links */ + A.wiki { text-decoration: none; } + .wiki { font-weight: bold; } + /* This is obscene in NS4 + B .wiki, STRONG .wiki { font-size: larger; } */ ! /* Unknown links */ ! .wikiunknown A, .named-wikiunknown A, .wikiunknown U ! { text-decoration: none; } ! ! .wikiunknown, .named-wikiunknown ! {color: #600; } ! .wikiunknown A, .named-wikiunknown ! { color: white; background-color: #600; } ! ! ! /* Interwiki links */ ! A.interwiki { text-decoration: none; } ! .wikipage { font-weight: bold; } ! ! .interwiki, ! I .interwiki .wikipage, EM .interwiki .wikipage ! { font-style: oblique; } + .interwiki .wikipage, + I .interwiki, EM .interwiki + { font-style: normal; } /* ! * wikiaction, wikiadmin, wikiunsafe: */ ! A.wikiaction, A.wikiadmin { text-decoration: none; } ! A.wikiaction, .wikiaction TABLE, SPAN.wikiaction { background-color: #ddd; } ! A.wikiadmin, .wikiadmin TABLE { background-color: #fdd; } ! .wikiunsafe { background-color: #ccc; } ! ! /* ! * Put a border around wikiaction forms: ! * This doesn't work for NS4. ! */ ! .wikiaction TABLE, .wikiadmin TABLE { ! border-style: ridge; ! border-width: medium; } + .wikiaction TABLE { border-color: #9cf; } + .wikiadmin TABLE { border-color: #f99; } + + /* Backlinks */ + A.backlinks { color: #006; } + /* Make the textarea on the edit page full width */ + TEXTAREA.wikiedit { width: 100%; margin-top: 1ex; } /* For emacs users |