tagging monobook 1.0
@@ -0,0 +1,339 @@ | ||
1 | + GNU GENERAL PUBLIC LICENSE | |
2 | + Version 2, June 1991 | |
3 | + | |
4 | + Copyright (C) 1989, 1991 Free Software Foundation, Inc., | |
5 | + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
6 | + Everyone is permitted to copy and distribute verbatim copies | |
7 | + of this license document, but changing it is not allowed. | |
8 | + | |
9 | + Preamble | |
10 | + | |
11 | + The licenses for most software are designed to take away your | |
12 | +freedom to share and change it. By contrast, the GNU General Public | |
13 | +License is intended to guarantee your freedom to share and change free | |
14 | +software--to make sure the software is free for all its users. This | |
15 | +General Public License applies to most of the Free Software | |
16 | +Foundation's software and to any other program whose authors commit to | |
17 | +using it. (Some other Free Software Foundation software is covered by | |
18 | +the GNU Lesser General Public License instead.) You can apply it to | |
19 | +your programs, too. | |
20 | + | |
21 | + When we speak of free software, we are referring to freedom, not | |
22 | +price. Our General Public Licenses are designed to make sure that you | |
23 | +have the freedom to distribute copies of free software (and charge for | |
24 | +this service if you wish), that you receive source code or can get it | |
25 | +if you want it, that you can change the software or use pieces of it | |
26 | +in new free programs; and that you know you can do these things. | |
27 | + | |
28 | + To protect your rights, we need to make restrictions that forbid | |
29 | +anyone to deny you these rights or to ask you to surrender the rights. | |
30 | +These restrictions translate to certain responsibilities for you if you | |
31 | +distribute copies of the software, or if you modify it. | |
32 | + | |
33 | + For example, if you distribute copies of such a program, whether | |
34 | +gratis or for a fee, you must give the recipients all the rights that | |
35 | +you have. You must make sure that they, too, receive or can get the | |
36 | +source code. And you must show them these terms so they know their | |
37 | +rights. | |
38 | + | |
39 | + We protect your rights with two steps: (1) copyright the software, and | |
40 | +(2) offer you this license which gives you legal permission to copy, | |
41 | +distribute and/or modify the software. | |
42 | + | |
43 | + Also, for each author's protection and ours, we want to make certain | |
44 | +that everyone understands that there is no warranty for this free | |
45 | +software. If the software is modified by someone else and passed on, we | |
46 | +want its recipients to know that what they have is not the original, so | |
47 | +that any problems introduced by others will not reflect on the original | |
48 | +authors' reputations. | |
49 | + | |
50 | + Finally, any free program is threatened constantly by software | |
51 | +patents. We wish to avoid the danger that redistributors of a free | |
52 | +program will individually obtain patent licenses, in effect making the | |
53 | +program proprietary. To prevent this, we have made it clear that any | |
54 | +patent must be licensed for everyone's free use or not licensed at all. | |
55 | + | |
56 | + The precise terms and conditions for copying, distribution and | |
57 | +modification follow. | |
58 | + | |
59 | + GNU GENERAL PUBLIC LICENSE | |
60 | + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |
61 | + | |
62 | + 0. This License applies to any program or other work which contains | |
63 | +a notice placed by the copyright holder saying it may be distributed | |
64 | +under the terms of this General Public License. The "Program", below, | |
65 | +refers to any such program or work, and a "work based on the Program" | |
66 | +means either the Program or any derivative work under copyright law: | |
67 | +that is to say, a work containing the Program or a portion of it, | |
68 | +either verbatim or with modifications and/or translated into another | |
69 | +language. (Hereinafter, translation is included without limitation in | |
70 | +the term "modification".) Each licensee is addressed as "you". | |
71 | + | |
72 | +Activities other than copying, distribution and modification are not | |
73 | +covered by this License; they are outside its scope. The act of | |
74 | +running the Program is not restricted, and the output from the Program | |
75 | +is covered only if its contents constitute a work based on the | |
76 | +Program (independent of having been made by running the Program). | |
77 | +Whether that is true depends on what the Program does. | |
78 | + | |
79 | + 1. You may copy and distribute verbatim copies of the Program's | |
80 | +source code as you receive it, in any medium, provided that you | |
81 | +conspicuously and appropriately publish on each copy an appropriate | |
82 | +copyright notice and disclaimer of warranty; keep intact all the | |
83 | +notices that refer to this License and to the absence of any warranty; | |
84 | +and give any other recipients of the Program a copy of this License | |
85 | +along with the Program. | |
86 | + | |
87 | +You may charge a fee for the physical act of transferring a copy, and | |
88 | +you may at your option offer warranty protection in exchange for a fee. | |
89 | + | |
90 | + 2. You may modify your copy or copies of the Program or any portion | |
91 | +of it, thus forming a work based on the Program, and copy and | |
92 | +distribute such modifications or work under the terms of Section 1 | |
93 | +above, provided that you also meet all of these conditions: | |
94 | + | |
95 | + a) You must cause the modified files to carry prominent notices | |
96 | + stating that you changed the files and the date of any change. | |
97 | + | |
98 | + b) You must cause any work that you distribute or publish, that in | |
99 | + whole or in part contains or is derived from the Program or any | |
100 | + part thereof, to be licensed as a whole at no charge to all third | |
101 | + parties under the terms of this License. | |
102 | + | |
103 | + c) If the modified program normally reads commands interactively | |
104 | + when run, you must cause it, when started running for such | |
105 | + interactive use in the most ordinary way, to print or display an | |
106 | + announcement including an appropriate copyright notice and a | |
107 | + notice that there is no warranty (or else, saying that you provide | |
108 | + a warranty) and that users may redistribute the program under | |
109 | + these conditions, and telling the user how to view a copy of this | |
110 | + License. (Exception: if the Program itself is interactive but | |
111 | + does not normally print such an announcement, your work based on | |
112 | + the Program is not required to print an announcement.) | |
113 | + | |
114 | +These requirements apply to the modified work as a whole. If | |
115 | +identifiable sections of that work are not derived from the Program, | |
116 | +and can be reasonably considered independent and separate works in | |
117 | +themselves, then this License, and its terms, do not apply to those | |
118 | +sections when you distribute them as separate works. But when you | |
119 | +distribute the same sections as part of a whole which is a work based | |
120 | +on the Program, the distribution of the whole must be on the terms of | |
121 | +this License, whose permissions for other licensees extend to the | |
122 | +entire whole, and thus to each and every part regardless of who wrote it. | |
123 | + | |
124 | +Thus, it is not the intent of this section to claim rights or contest | |
125 | +your rights to work written entirely by you; rather, the intent is to | |
126 | +exercise the right to control the distribution of derivative or | |
127 | +collective works based on the Program. | |
128 | + | |
129 | +In addition, mere aggregation of another work not based on the Program | |
130 | +with the Program (or with a work based on the Program) on a volume of | |
131 | +a storage or distribution medium does not bring the other work under | |
132 | +the scope of this License. | |
133 | + | |
134 | + 3. You may copy and distribute the Program (or a work based on it, | |
135 | +under Section 2) in object code or executable form under the terms of | |
136 | +Sections 1 and 2 above provided that you also do one of the following: | |
137 | + | |
138 | + a) Accompany it with the complete corresponding machine-readable | |
139 | + source code, which must be distributed under the terms of Sections | |
140 | + 1 and 2 above on a medium customarily used for software interchange; or, | |
141 | + | |
142 | + b) Accompany it with a written offer, valid for at least three | |
143 | + years, to give any third party, for a charge no more than your | |
144 | + cost of physically performing source distribution, a complete | |
145 | + machine-readable copy of the corresponding source code, to be | |
146 | + distributed under the terms of Sections 1 and 2 above on a medium | |
147 | + customarily used for software interchange; or, | |
148 | + | |
149 | + c) Accompany it with the information you received as to the offer | |
150 | + to distribute corresponding source code. (This alternative is | |
151 | + allowed only for noncommercial distribution and only if you | |
152 | + received the program in object code or executable form with such | |
153 | + an offer, in accord with Subsection b above.) | |
154 | + | |
155 | +The source code for a work means the preferred form of the work for | |
156 | +making modifications to it. For an executable work, complete source | |
157 | +code means all the source code for all modules it contains, plus any | |
158 | +associated interface definition files, plus the scripts used to | |
159 | +control compilation and installation of the executable. However, as a | |
160 | +special exception, the source code distributed need not include | |
161 | +anything that is normally distributed (in either source or binary | |
162 | +form) with the major components (compiler, kernel, and so on) of the | |
163 | +operating system on which the executable runs, unless that component | |
164 | +itself accompanies the executable. | |
165 | + | |
166 | +If distribution of executable or object code is made by offering | |
167 | +access to copy from a designated place, then offering equivalent | |
168 | +access to copy the source code from the same place counts as | |
169 | +distribution of the source code, even though third parties are not | |
170 | +compelled to copy the source along with the object code. | |
171 | + | |
172 | + 4. You may not copy, modify, sublicense, or distribute the Program | |
173 | +except as expressly provided under this License. Any attempt | |
174 | +otherwise to copy, modify, sublicense or distribute the Program is | |
175 | +void, and will automatically terminate your rights under this License. | |
176 | +However, parties who have received copies, or rights, from you under | |
177 | +this License will not have their licenses terminated so long as such | |
178 | +parties remain in full compliance. | |
179 | + | |
180 | + 5. You are not required to accept this License, since you have not | |
181 | +signed it. However, nothing else grants you permission to modify or | |
182 | +distribute the Program or its derivative works. These actions are | |
183 | +prohibited by law if you do not accept this License. Therefore, by | |
184 | +modifying or distributing the Program (or any work based on the | |
185 | +Program), you indicate your acceptance of this License to do so, and | |
186 | +all its terms and conditions for copying, distributing or modifying | |
187 | +the Program or works based on it. | |
188 | + | |
189 | + 6. Each time you redistribute the Program (or any work based on the | |
190 | +Program), the recipient automatically receives a license from the | |
191 | +original licensor to copy, distribute or modify the Program subject to | |
192 | +these terms and conditions. You may not impose any further | |
193 | +restrictions on the recipients' exercise of the rights granted herein. | |
194 | +You are not responsible for enforcing compliance by third parties to | |
195 | +this License. | |
196 | + | |
197 | + 7. If, as a consequence of a court judgment or allegation of patent | |
198 | +infringement or for any other reason (not limited to patent issues), | |
199 | +conditions are imposed on you (whether by court order, agreement or | |
200 | +otherwise) that contradict the conditions of this License, they do not | |
201 | +excuse you from the conditions of this License. If you cannot | |
202 | +distribute so as to satisfy simultaneously your obligations under this | |
203 | +License and any other pertinent obligations, then as a consequence you | |
204 | +may not distribute the Program at all. For example, if a patent | |
205 | +license would not permit royalty-free redistribution of the Program by | |
206 | +all those who receive copies directly or indirectly through you, then | |
207 | +the only way you could satisfy both it and this License would be to | |
208 | +refrain entirely from distribution of the Program. | |
209 | + | |
210 | +If any portion of this section is held invalid or unenforceable under | |
211 | +any particular circumstance, the balance of the section is intended to | |
212 | +apply and the section as a whole is intended to apply in other | |
213 | +circumstances. | |
214 | + | |
215 | +It is not the purpose of this section to induce you to infringe any | |
216 | +patents or other property right claims or to contest validity of any | |
217 | +such claims; this section has the sole purpose of protecting the | |
218 | +integrity of the free software distribution system, which is | |
219 | +implemented by public license practices. Many people have made | |
220 | +generous contributions to the wide range of software distributed | |
221 | +through that system in reliance on consistent application of that | |
222 | +system; it is up to the author/donor to decide if he or she is willing | |
223 | +to distribute software through any other system and a licensee cannot | |
224 | +impose that choice. | |
225 | + | |
226 | +This section is intended to make thoroughly clear what is believed to | |
227 | +be a consequence of the rest of this License. | |
228 | + | |
229 | + 8. If the distribution and/or use of the Program is restricted in | |
230 | +certain countries either by patents or by copyrighted interfaces, the | |
231 | +original copyright holder who places the Program under this License | |
232 | +may add an explicit geographical distribution limitation excluding | |
233 | +those countries, so that distribution is permitted only in or among | |
234 | +countries not thus excluded. In such case, this License incorporates | |
235 | +the limitation as if written in the body of this License. | |
236 | + | |
237 | + 9. The Free Software Foundation may publish revised and/or new versions | |
238 | +of the General Public License from time to time. Such new versions will | |
239 | +be similar in spirit to the present version, but may differ in detail to | |
240 | +address new problems or concerns. | |
241 | + | |
242 | +Each version is given a distinguishing version number. If the Program | |
243 | +specifies a version number of this License which applies to it and "any | |
244 | +later version", you have the option of following the terms and conditions | |
245 | +either of that version or of any later version published by the Free | |
246 | +Software Foundation. If the Program does not specify a version number of | |
247 | +this License, you may choose any version ever published by the Free Software | |
248 | +Foundation. | |
249 | + | |
250 | + 10. If you wish to incorporate parts of the Program into other free | |
251 | +programs whose distribution conditions are different, write to the author | |
252 | +to ask for permission. For software which is copyrighted by the Free | |
253 | +Software Foundation, write to the Free Software Foundation; we sometimes | |
254 | +make exceptions for this. Our decision will be guided by the two goals | |
255 | +of preserving the free status of all derivatives of our free software and | |
256 | +of promoting the sharing and reuse of software generally. | |
257 | + | |
258 | + NO WARRANTY | |
259 | + | |
260 | + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |
261 | +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | |
262 | +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |
263 | +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |
264 | +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
265 | +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | |
266 | +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | |
267 | +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |
268 | +REPAIR OR CORRECTION. | |
269 | + | |
270 | + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
271 | +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |
272 | +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |
273 | +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |
274 | +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |
275 | +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |
276 | +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |
277 | +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |
278 | +POSSIBILITY OF SUCH DAMAGES. | |
279 | + | |
280 | + END OF TERMS AND CONDITIONS | |
281 | + | |
282 | + How to Apply These Terms to Your New Programs | |
283 | + | |
284 | + If you develop a new program, and you want it to be of the greatest | |
285 | +possible use to the public, the best way to achieve this is to make it | |
286 | +free software which everyone can redistribute and change under these terms. | |
287 | + | |
288 | + To do so, attach the following notices to the program. It is safest | |
289 | +to attach them to the start of each source file to most effectively | |
290 | +convey the exclusion of warranty; and each file should have at least | |
291 | +the "copyright" line and a pointer to where the full notice is found. | |
292 | + | |
293 | + <one line to give the program's name and a brief idea of what it does.> | |
294 | + Copyright (C) <year> <name of author> | |
295 | + | |
296 | + This program is free software; you can redistribute it and/or modify | |
297 | + it under the terms of the GNU General Public License as published by | |
298 | + the Free Software Foundation; either version 2 of the License, or | |
299 | + (at your option) any later version. | |
300 | + | |
301 | + This program is distributed in the hope that it will be useful, | |
302 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
303 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
304 | + GNU General Public License for more details. | |
305 | + | |
306 | + You should have received a copy of the GNU General Public License along | |
307 | + with this program; if not, write to the Free Software Foundation, Inc., | |
308 | + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
309 | + | |
310 | +Also add information on how to contact you by electronic and paper mail. | |
311 | + | |
312 | +If the program is interactive, make it output a short notice like this | |
313 | +when it starts in an interactive mode: | |
314 | + | |
315 | + Gnomovision version 69, Copyright (C) year name of author | |
316 | + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |
317 | + This is free software, and you are welcome to redistribute it | |
318 | + under certain conditions; type `show c' for details. | |
319 | + | |
320 | +The hypothetical commands `show w' and `show c' should show the appropriate | |
321 | +parts of the General Public License. Of course, the commands you use may | |
322 | +be called something other than `show w' and `show c'; they could even be | |
323 | +mouse-clicks or menu items--whatever suits your program. | |
324 | + | |
325 | +You should also get your employer (if you work as a programmer) or your | |
326 | +school, if any, to sign a "copyright disclaimer" for the program, if | |
327 | +necessary. Here is a sample; alter the names: | |
328 | + | |
329 | + Yoyodyne, Inc., hereby disclaims all copyright interest in the program | |
330 | + `Gnomovision' (which makes passes at compilers) written by James Hacker. | |
331 | + | |
332 | + <signature of Ty Coon>, 1 April 1989 | |
333 | + Ty Coon, President of Vice | |
334 | + | |
335 | +This General Public License does not permit incorporating your program into | |
336 | +proprietary programs. If your program is a subroutine library, you may | |
337 | +consider it more useful to permit linking proprietary applications with the | |
338 | +library. If this is what you want to do, use the GNU Lesser General | |
339 | +Public License instead of this License. |
@@ -0,0 +1,516 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +/** | |
9 | + * Define heading style | |
10 | + * | |
11 | + * $1 = heading open tag <hx id="content_1_x"> | |
12 | + * $2 = heading string including anchor | |
13 | + * $3 = link to secedit plugin | |
14 | + * $4 = heading close tag </hx> | |
15 | + */ | |
16 | + | |
17 | +// paraedit patch style | |
18 | +// define('PLUGIN_SECEDIT_LINK_STYLE', '$1$2<a class="anchor_super" href="$3" title="Edit">' . | |
19 | +// ' <img src="image/paraedit.png" width="9" height="9" alt="Edit" title="Edit" /></a>$4'); | |
20 | + | |
21 | +// Monobook style | |
22 | +define('PLUGIN_SECEDIT_LINK_STYLE', '$1<span class="editsection">[<a href="$3">編集</a>]</span><span>$2</span>$4'); | |
23 | + | |
24 | +define('PLUGIN_SECEDIT_LEVEL', false); | |
25 | + | |
26 | +define('PLUGIN_SECEDIT_ENABLE_ON_KEITAI_PROFILE', false); | |
27 | + | |
28 | +// Remove #freeze written by hand | |
29 | +define('PLUGIN_SECEDIT_FREEZE_REGEX', '/^(?:#freeze(?!\w)\s*)+/im'); | |
30 | +define('PLUGIN_SECEDIT_PAGE', $vars['page']); | |
31 | + | |
32 | +function plugin_secedit_action() | |
33 | +{ | |
34 | + global $post; | |
35 | + | |
36 | + switch (true) { | |
37 | + case isset($post['cancel']): | |
38 | + $action = 'Cancel'; break; | |
39 | + case isset($post['preview']): | |
40 | + $action = 'Preview'; break; | |
41 | + case isset($post['write']): | |
42 | + $action = 'Write'; break; | |
43 | + default: | |
44 | + $action = 'Edit'; | |
45 | + } | |
46 | + | |
47 | + $action = 'Plugin_Secedit_' . $action; | |
48 | + $obj = &new $action(); | |
49 | + | |
50 | + return $obj->process(); | |
51 | +} | |
52 | + | |
53 | +class Plugin_Secedit | |
54 | +{ | |
55 | + var $page; | |
56 | + var $id; | |
57 | + var $anchor; | |
58 | + var $level; | |
59 | + var $postdata; | |
60 | + var $original; | |
61 | + var $digest; | |
62 | + var $notimestamp; | |
63 | + var $pass; | |
64 | + var $help; | |
65 | + | |
66 | + var $s_page; | |
67 | + var $s_postdata; | |
68 | + var $s_original; | |
69 | + var $s_digest; | |
70 | + | |
71 | + var $sections; | |
72 | + | |
73 | + function init() | |
74 | + { | |
75 | + global $vars, $post; | |
76 | + | |
77 | + $this->page = isset($vars['page']) ? $vars['page'] : ''; | |
78 | + $this->s_page = htmlspecialchars($this->page); | |
79 | + $this->id = isset($vars['id']) ? $vars['id'] : 0; | |
80 | + $this->anchor = isset($vars['anchor']) ? $vars['anchor'] : ''; | |
81 | + $this->level = isset($vars['level']) ? true : false; | |
82 | + $this->postdata = isset($post['msg']) ? | |
83 | + preg_replace(PLUGIN_SECEDIT_FREEZE_REGEX, '', $post['msg']) : ''; | |
84 | + $this->original = isset($post['original']) ? | |
85 | + str_replace("\r", '', $post['original']) : ''; | |
86 | + $this->digest = isset($post['digest']) ? $post['digest'] : ''; | |
87 | + $this->notimestamp = isset($post['notimestamp']) ? true : false; | |
88 | + $this->pass = isset($post['pass']) ? $post['pass'] : ''; | |
89 | + $this->help = isset($vars['help']) ? true : false; | |
90 | + } | |
91 | + | |
92 | + function check() | |
93 | + { | |
94 | + if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing'); | |
95 | + | |
96 | + check_editable($this->page, true, true); | |
97 | + | |
98 | + if (! is_page($this->page)) die_message('No such page'); | |
99 | + if (! $this->sections->is_valid_id($this->id)) die_message('Invalid id'); | |
100 | + } | |
101 | + | |
102 | + function process() | |
103 | + { | |
104 | + } | |
105 | + | |
106 | + function redirect($page) | |
107 | + { | |
108 | + pkwk_headers_sent(); | |
109 | + header('Location: ' . get_script_uri() . '?' . rawurlencode($page)); | |
110 | + exit; | |
111 | + } | |
112 | + | |
113 | + function form() | |
114 | + { | |
115 | + global $rows, $cols, $notimeupdate, $hr, $_msg_help; | |
116 | + global $_btn_preview, $_btn_repreview, $_btn_update, $_btn_cancel, $_btn_notchangetimestamp; | |
117 | + | |
118 | + $script = get_script_uri(); | |
119 | + $r_page = rawurlencode($this->page); | |
120 | + $btn_preview = strpos(get_class($this), 'Preview') ? $_btn_repreview : $_btn_preview; | |
121 | + | |
122 | + $level = $this->level ? '<input type="hidden" name="level" value="true" />' : ''; | |
123 | + | |
124 | + $add_notimestamp = ''; | |
125 | + if ($notimeupdate) { | |
126 | + $checked = $this->notimestamp ? ' checked="checked"' : ''; | |
127 | + $pass_form = ($notimeupdate == 2) ? ' <input type="password" name="pass" size="12" />' : ''; | |
128 | + $add_notimestamp = <<<EOD | |
129 | + <input type="checkbox" name="notimestamp" id="_edit_form_notimestamp" value="true"$checked /> | |
130 | + <label for="_edit_form_notimestamp"><span class="small">$_btn_notchangetimestamp</span></label> | |
131 | +$pass_form | |
132 | +EOD; | |
133 | + } | |
134 | + | |
135 | + $help = $script . '?cmd=secedit&help=true&page=' . $r_page . '&id=' . $this->id; | |
136 | + $help .= $this->level ? '&level=true' : ''; | |
137 | + $help = $this->help ? $hr . catrule() : | |
138 | + '<ul><li><a href="' . $help . '">' . $_msg_help . '</a></li></ul>'; | |
139 | + | |
140 | + return <<<EOD | |
141 | +<div class="edit_form"> | |
142 | + <form action="$script" method="post" style="margin-bottom:0px;"> | |
143 | + <div> | |
144 | + <input type="hidden" name="cmd" value="secedit" /> | |
145 | + <input type="hidden" name="page" value="$this->s_page" /> | |
146 | + <input type="hidden" name="id" value="$this->id" /> | |
147 | + $level | |
148 | + <input type="hidden" name="digest" value="$this->s_digest" /> | |
149 | + <textarea name="msg" rows="$rows" cols="$cols">$this->s_postdata</textarea> | |
150 | + <br /> | |
151 | + <input type="submit" name="preview" value="$btn_preview" accesskey="p" /> | |
152 | + <input type="submit" name="write" value="$_btn_update" accesskey="s" /> | |
153 | +$add_notimestamp | |
154 | + <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" /> | |
155 | + <textarea name="original" rows="1" cols="1" style="display:none">$this->s_original</textarea> | |
156 | + </div> | |
157 | + </form> | |
158 | +</div> | |
159 | +$help | |
160 | +EOD; | |
161 | + } | |
162 | +} | |
163 | + | |
164 | +class Plugin_Secedit_Edit extends Plugin_Secedit | |
165 | +{ | |
166 | + function init() | |
167 | + { | |
168 | + parent::init(); | |
169 | + | |
170 | + $source = get_source($this->page, true, true); | |
171 | + | |
172 | + $this->sections = &new Plugin_Secedit_Sections($source); | |
173 | + | |
174 | + if ($this->anchor) { | |
175 | + $id = $this->sections->anchor2id($this->anchor); | |
176 | + $this->id = $id ? $id : $this->id; | |
177 | + } | |
178 | + | |
179 | + $this->s_postdata = htmlspecialchars($this->sections->get_section($this->id, $this->level)); | |
180 | + $this->s_original = htmlspecialchars($source); | |
181 | + $this->s_digest = htmlspecialchars(md5($source)); | |
182 | + } | |
183 | + | |
184 | + function check() | |
185 | + { | |
186 | + parent::check(); | |
187 | + | |
188 | + if ($this->anchor && $this->id && ! $this->sections->is_unique_anchor($this->anchor)) { | |
189 | + die_message('The anchor ' . htmlspecialchars($this->anchor) . ' is nonunique.'); | |
190 | + } | |
191 | + } | |
192 | + | |
193 | + function process() | |
194 | + { | |
195 | + global $_title_edit; | |
196 | + | |
197 | + $this->init(); | |
198 | + $this->check(); | |
199 | + | |
200 | + return array('msg' => $_title_edit, 'body' => $this->form()); | |
201 | + } | |
202 | +} | |
203 | + | |
204 | +class Plugin_Secedit_Preview extends Plugin_Secedit | |
205 | +{ | |
206 | + function init() | |
207 | + { | |
208 | + parent::init(); | |
209 | + | |
210 | + $this->sections = &new Plugin_Secedit_Sections($this->original); | |
211 | + $this->s_postdata = htmlspecialchars($this->postdata); | |
212 | + $this->s_original = htmlspecialchars($this->original); | |
213 | + $this->s_digest = htmlspecialchars($this->digest); | |
214 | + } | |
215 | + | |
216 | + function check() | |
217 | + { | |
218 | + parent::check(); | |
219 | + | |
220 | + if ($this->original === '') die_message('No original'); | |
221 | + if ($this->digest === '') die_message('No digest'); | |
222 | + } | |
223 | + | |
224 | + function process() | |
225 | + { | |
226 | + global $_title_preview, $_msg_preview, $_msg_preview_delete; | |
227 | + | |
228 | + $this->init(); | |
229 | + $this->check(); | |
230 | + | |
231 | + $this->sections->set_section($this->id, $this->postdata, $this->level); | |
232 | + | |
233 | + $msg = $_msg_preview . "<br />\n"; | |
234 | + $msg .= ($this->sections->get_source() === '') ? "<strong>$_msg_preview_delete</strong>" : ''; | |
235 | + $msg .= "<br />\n"; | |
236 | + | |
237 | + $preview = ''; | |
238 | + if ($this->postdata !== '') { | |
239 | + $src = preg_replace(PLUGIN_SECEDIT_FREEZE_REGEX, '', $this->postdata); | |
240 | + $src = make_str_rules($src); | |
241 | + $preview = '<div id="preview">' . drop_submit(convert_html($src)) . "</div>\n"; | |
242 | + } | |
243 | + | |
244 | + return array('msg' => $_title_preview, 'body' => $msg . $preview . $this->form()); | |
245 | + } | |
246 | +} | |
247 | + | |
248 | +class Plugin_Secedit_Write extends Plugin_Secedit_Preview | |
249 | +{ | |
250 | + function process() | |
251 | + { | |
252 | + global $_title_collided, $_msg_collided, $_msg_collided_auto, $do_update_diff_table; | |
253 | + global $_title_edit, $_title_deleted, $notimeupdate, $_msg_invalidpass; | |
254 | + | |
255 | + $this->init(); | |
256 | + $this->check(); | |
257 | + | |
258 | + $this->sections->set_section($this->id, $this->postdata, $this->level); | |
259 | + $postdata = $this->sections->get_source(); | |
260 | + | |
261 | + $current_src = get_source($this->page, true, true); | |
262 | + $current_md5 = md5($current_src); | |
263 | + | |
264 | + if ($this->digest !== $current_md5) { | |
265 | + list($postdata, $auto) = do_update_diff($current_src, $postdata, $this->original); | |
266 | + $this->s_postdata = htmlspecialchars($postdata); | |
267 | + $this->s_digest = htmlspecialchars($current_md5); | |
268 | + $body = ($auto ? $_msg_collided_auto : $_msg_collided) . "\n"; | |
269 | + $body .= $do_update_diff_table . edit_form($this->page, $postdata, $current_md5, false); | |
270 | + return array( | |
271 | + 'msg' => $_title_collided, | |
272 | + 'body' => $body, | |
273 | + ); | |
274 | + } | |
275 | + | |
276 | + if ($postdata === '') { | |
277 | + page_write($this->page, $postdata); | |
278 | + return array( | |
279 | + 'msg' => $_title_deleted, | |
280 | + 'body' => str_replace('$1', $this->s_page, $_title_deleted), | |
281 | + ); | |
282 | + } | |
283 | + | |
284 | + if ($notimeupdate > 1 && $this->notimestamp && ! pkwk_login($this->pass)) { | |
285 | + return array( | |
286 | + 'msg' => $_title_edit, | |
287 | + 'body' => "<p><strong>$_msg_invalidpass</strong></p>\n" . $this->form() | |
288 | + ); | |
289 | + } | |
290 | + | |
291 | + if (md5($postdata) === $current_md5) { | |
292 | + $this->redirect($this->page); | |
293 | + } | |
294 | + | |
295 | + page_write($this->page, $postdata, $notimeupdate != 0 && $this->notimestamp); | |
296 | + $this->redirect($this->page); | |
297 | + } | |
298 | +} | |
299 | + | |
300 | +class Plugin_Secedit_Cancel extends Plugin_Secedit | |
301 | +{ | |
302 | + function process() | |
303 | + { | |
304 | + $this->init(); | |
305 | + | |
306 | + if (is_page($this->page)) { | |
307 | + $this->redirect($this->page); | |
308 | + } | |
309 | + | |
310 | + return; | |
311 | + } | |
312 | +} | |
313 | + | |
314 | +class Plugin_Secedit_Sections | |
315 | +{ | |
316 | + var $sections; | |
317 | + | |
318 | + function Plugin_Secedit_Sections($text) | |
319 | + { | |
320 | + $this->sections = $this->_parse($text); | |
321 | + } | |
322 | + | |
323 | + function get_source() | |
324 | + { | |
325 | + return implode('', $this->sections); | |
326 | + } | |
327 | + | |
328 | + function &get_section($id, $with_subsection = false) | |
329 | + { | |
330 | + if (! $this->is_valid_id($id)) { | |
331 | + return false; | |
332 | + } | |
333 | + | |
334 | + if ($with_subsection) { | |
335 | + return $this->get_section_with_subsection($id); | |
336 | + } else { | |
337 | + return $this->sections[$id]; | |
338 | + } | |
339 | + } | |
340 | + | |
341 | + function &get_section_with_subsection($id) | |
342 | + { | |
343 | + $source = ''; | |
344 | + $count = $id + $this->_count_subsection($id) + 1; | |
345 | + | |
346 | + for ($i = $id; $i < $count; $i++) { | |
347 | + $source .= $this->sections[$i]; | |
348 | + } | |
349 | + return $source; | |
350 | + } | |
351 | + | |
352 | + function set_section($id, $text, $with_subsection = false) | |
353 | + { | |
354 | + if (! $this->is_valid_id($id)) { | |
355 | + return false; | |
356 | + } | |
357 | + | |
358 | + if (substr($text, -1) !== "\n") { | |
359 | + $text .= "\n"; | |
360 | + } | |
361 | + | |
362 | + if ($with_subsection) { | |
363 | + $this->set_section_with_subsection($id, $text); | |
364 | + } else { | |
365 | + $this->sections[$id] = $text; | |
366 | + } | |
367 | + } | |
368 | + | |
369 | + function set_section_with_subsection($id, $text) | |
370 | + { | |
371 | + array_splice($this->sections, $id, $this->_count_subsection($id) + 1, array($text)); | |
372 | + $this->sections = $this->_parse($this->get_source()); | |
373 | + } | |
374 | + | |
375 | + function is_valid_id($id) | |
376 | + { | |
377 | + if (is_string($id) && ($id === '' || ! ctype_digit($id))) { | |
378 | + return false; | |
379 | + } | |
380 | + return isset($this->sections[$id]) && $id > 0; | |
381 | + } | |
382 | + | |
383 | + function anchor2id($anchor) | |
384 | + { | |
385 | + foreach ($this->sections as $id => $section) { | |
386 | + if (preg_match('/^\*{1,3}.*?(?:\[#([A-Za-z][\w-]*)\]\s*)\n/', $section, $matches) && | |
387 | + $anchor === $matches[1]) | |
388 | + { | |
389 | + return $id; | |
390 | + } | |
391 | + } | |
392 | + return false; | |
393 | + } | |
394 | + | |
395 | + function is_unique_anchor($anchor) | |
396 | + { | |
397 | + foreach ($this->sections as $section) { | |
398 | + if (preg_match('/^\*{1,3}.*?(?:\[#([A-Za-z][\w-]*)\]\s*)\n/', $section, $matches)) { | |
399 | + $anchors[$matches[1]]++; | |
400 | + } | |
401 | + if (isset($anchors[$anchor]) && $anchors[$anchor] > 1) { | |
402 | + return false; | |
403 | + } | |
404 | + } | |
405 | + return true; | |
406 | + } | |
407 | + | |
408 | + function _parse($text) | |
409 | + { | |
410 | + $id = 0; | |
411 | + $sections[0] = ''; | |
412 | + $in_multiline = false; | |
413 | + | |
414 | + foreach (explode("\n", $text) as $line) { | |
415 | + if (! PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK && ! $in_multiline && | |
416 | + preg_match('/^#[^{]+(\{{2,})\s*$/', $line, $matches)) | |
417 | + { | |
418 | + $in_multiline = true; | |
419 | + $close_multiline = str_repeat('}', strlen($matches[1])); | |
420 | + } elseif ($in_multiline && $line === $close_multiline) { | |
421 | + $in_multiline = false; | |
422 | + } | |
423 | + if (! $in_multiline && strpos($line, '*') === 0) { | |
424 | + $sections[++$id] = ''; | |
425 | + } | |
426 | + $sections[$id] .= $line . "\n"; | |
427 | + } | |
428 | + $sections[count($sections)-1] = substr($sections[count($sections)-1], 0, -1); | |
429 | + | |
430 | + return $sections; | |
431 | + } | |
432 | + | |
433 | + function _count_subsection($id) | |
434 | + { | |
435 | + $count = 0; | |
436 | + $level = $this->_level($id); | |
437 | + | |
438 | + for ($i = $id + 1; $i < count($this->sections); $i++) { | |
439 | + if ($this->_level($i) <= $level) { | |
440 | + break; | |
441 | + } | |
442 | + $count++; | |
443 | + } | |
444 | + return $count; | |
445 | + } | |
446 | + | |
447 | + function _level($id) | |
448 | + { | |
449 | + return min(3, strspn($this->sections[$id], '*')); | |
450 | + } | |
451 | +} | |
452 | + | |
453 | +function plugin_secedit_wrap(&$string, &$tag, &$param, &$id) | |
454 | +{ | |
455 | + global $vars; | |
456 | + | |
457 | + $page = isset($vars['page']) ? $vars['page'] : ''; | |
458 | + list($dummy, $callcount, $secid) = explode('_', $id); | |
459 | + | |
460 | + if (! plugin_secedit_should_display_editlink($page, (int)$callcount)) { | |
461 | + return false; | |
462 | + } | |
463 | + | |
464 | + $secid = '&id=' . strval($secid + 1); | |
465 | + if ($callcount > 1 && preg_match('/<a[^>]+id="([A-Za-z][\w-]*)"/', $string, $matches)) { | |
466 | + $secid = '&anchor=' . $matches[1]; | |
467 | + } elseif ($callcount > 1) { | |
468 | + return false; | |
469 | + } | |
470 | + | |
471 | + $open = '<' . $tag . $param . '>'; | |
472 | + $close = '</' . $tag . '>'; | |
473 | + $link = get_script_uri() . '?cmd=secedit&page=' . rawurlencode($page) . $secid; | |
474 | + $link .= PLUGIN_SECEDIT_LEVEL ? '&level=true' : ''; | |
475 | + | |
476 | + return str_replace( | |
477 | + array('$1', '$2', '$3', '$4'), | |
478 | + array($open, $string, $link, $close), | |
479 | + PLUGIN_SECEDIT_LINK_STYLE); | |
480 | +} | |
481 | + | |
482 | +function plugin_secedit_should_display_editlink($page, $callcount) | |
483 | +{ | |
484 | + global $vars, $retvars; | |
485 | + static $is_editable; | |
486 | + | |
487 | + if (PKWK_READONLY) { | |
488 | + return false; | |
489 | + } | |
490 | + | |
491 | + if (! PLUGIN_SECEDIT_ENABLE_ON_KEITAI_PROFILE && UA_PROFILE === 'keitai') { | |
492 | + return false; | |
493 | + } | |
494 | + | |
495 | + if (! (isset($vars['cmd']) && $vars['cmd'] === 'read' && ! $retvars['body'])) { | |
496 | + return false; | |
497 | + } | |
498 | + | |
499 | + if ($callcount > 1 && function_exists('plugin_menu_convert')) { | |
500 | + return false; | |
501 | + } | |
502 | + | |
503 | + if (! isset($is_editable[$page])) { | |
504 | + $is_editable[$page] = check_editable($page, false, false); | |
505 | + } | |
506 | + if (! $is_editable[$page]) { | |
507 | + return false; | |
508 | + } | |
509 | + | |
510 | + if ($callcount === 1 || PLUGIN_SECEDIT_PAGE !== $page) { | |
511 | + return true; | |
512 | + } | |
513 | + | |
514 | + return false; | |
515 | +} | |
516 | +?> |
@@ -0,0 +1,96 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_navigation_init() | |
9 | +{ | |
10 | + $messages['_monobook_navigation_messages'] = array( | |
11 | + 'add' => '追加', | |
12 | + 'article' => '本文', | |
13 | + 'attachinfo' => 'ファイル', | |
14 | + 'attachlist' => '添付ファイル一覧', | |
15 | + 'attachlistall' => '全添付ファイル一覧', | |
16 | + 'backup' => 'バックアップ', | |
17 | + 'copy' => 'コピー', | |
18 | + 'diff' => '差分', | |
19 | + 'discuss' => 'ノート', | |
20 | + 'edit' => '編集', | |
21 | + 'filelist' => 'ファイル名一覧', | |
22 | + 'freeze' => '凍結', | |
23 | + 'help' => 'ヘルプ', | |
24 | + 'list' => '一覧', | |
25 | + 'new' => '新規', | |
26 | + 'rdf' => 'RDF', | |
27 | + 'recent' => '最終更新', | |
28 | + 'refer' => 'リファラ', | |
29 | + 'related' => 'リンク元', | |
30 | + 'reload' => 'リロード', | |
31 | + 'rename' => '名前変更', | |
32 | + 'revert' => 'この版へ差し戻し', | |
33 | + 'rss' => 'RSS', | |
34 | + 'rss10' => 'RSS', | |
35 | + 'rss20' => 'RSS', | |
36 | + 'search' => '検索', | |
37 | + 'source' => 'ソース', | |
38 | + 'top' => 'トップ', | |
39 | + 'trackback' => 'トラックバック', | |
40 | + 'unfreeze' => '凍結解除', | |
41 | + 'upload' => '添付', | |
42 | + 'yetlist' => '未作成', | |
43 | + 'undefined' => '特別ページ', | |
44 | + ); | |
45 | + set_plugin_messages($messages); | |
46 | +} | |
47 | + | |
48 | +function plugin_monobook_navigation($wikinote, $tabs, $background) | |
49 | +{ | |
50 | + global $vars, $plugin, $_monobook_navigation_messages; | |
51 | + | |
52 | + if (! exist_plugin('monobook_getlink')) die('monobook_getlink plugin not found'); | |
53 | + do_plugin_init('monobook_navigation'); | |
54 | + | |
55 | + $main_tabs = ''; | |
56 | + if ($wikinote->is_effect()) { | |
57 | + $main_tabs = str_replace(array('<ul class="wikinote">', '</ul>', "\n"), '', | |
58 | + $wikinote->show_tabs(array( | |
59 | + array('cmd' => 'main', 'label' => $_monobook_navigation_messages['article']), | |
60 | + array('cmd' => 'note', 'label' => $_monobook_navigation_messages['discuss']), | |
61 | + ))); | |
62 | + } | |
63 | + | |
64 | + $sub_tabs = ''; | |
65 | + $selected_flag = FALSE; | |
66 | + foreach ($tabs as $tab) { | |
67 | + if ($tab === 'edit' && is_freeze($vars['page']) && ! in_array('source', $tabs)) $tab = 'source'; | |
68 | + if ($tab === 'edit' && $plugin === 'secedit') $tab = 'secedit'; | |
69 | + if ($tab === 'edit' && exist_plugin('revert') && plugin_revert_getlink()) $tab = 'revert'; | |
70 | + list($link, $selected) = plugin_monobook_getlink($tab, $_monobook_navigation_messages, TRUE); | |
71 | + if (! $link) continue; | |
72 | + if ($selected) { | |
73 | + $sub_tabs .= '<li class="selected">' . $link . '</li>'; | |
74 | + $selected_flag = TRUE; | |
75 | + } else { | |
76 | + $sub_tabs .= '<li>' . $link . '</li>'; | |
77 | + } | |
78 | + } | |
79 | + | |
80 | + if (! $selected_flag) { | |
81 | + $link = plugin_monobook_getlink('nowplugin', $_monobook_navigation_messages); | |
82 | + if (! $main_tabs) { | |
83 | + if ($link) { | |
84 | + $sub_tabs = '<li class="selected" id="separate">' . $link .'</li>' . $sub_tabs; | |
85 | + } else { | |
86 | + $sub_tabs = '<li class="selected"><a href="' . get_script_uri() . strrchr($_SERVER['REQUEST_URI'], '?') . | |
87 | + '">' . $_monobook_navigation_messages['undefined'] . '</a></li>'; | |
88 | + } | |
89 | + } elseif ($main_tabs && ! arg_check('read') && $link) { | |
90 | + $sub_tabs = '<li class="selected">' . $link . '</li>' . $sub_tabs; | |
91 | + } | |
92 | + } | |
93 | + | |
94 | + return '<div id="navigator"><ul' . $background . '>' . $main_tabs . $sub_tabs . '</ul></div>' . "\n"; | |
95 | +} | |
96 | +?> |
@@ -0,0 +1,15 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPL 2 | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_recent_convert() | |
9 | +{ | |
10 | + if (! exist_plugin_convert('recent')) return; | |
11 | + $args = func_get_args(); | |
12 | + return str_replace('<div>', '<div class="monobook_recent">', | |
13 | + call_user_func_array('plugin_recent_convert', $args)); | |
14 | +} | |
15 | +?> |
@@ -0,0 +1,85 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +define('PLUGIN_RELINK_ADD_EXTERNAL_CLASS_TO_IMAGE_LINK', 0); | |
9 | + | |
10 | +// Rewrite rules | |
11 | +// 0. Default Type : http://example.com/index.php?Menu%2FSubMenu | |
12 | +// 1. MediaWiki Type : http://example.com/Menu%2FSubMenu | |
13 | +// 2. Directory Type : http://example.com/Menu/SubMenu/ | |
14 | +// 3. HTML Type : http://example.com/Menu%2FSubMenu.html | |
15 | +// 4. Directory and HTML Type: http://example.com/Menu/SubMenu.html | |
16 | +//define('PLUGIN_RELINK_REWRITE_URL_TYPE', 0); | |
17 | + | |
18 | +function plugin_relink($html) | |
19 | +{ | |
20 | + return preg_replace_callback('/(\<a[^\>]+\>)(\<img)?/', 'plugin_relink_callback', $html); | |
21 | +} | |
22 | + | |
23 | +function plugin_relink_callback($matches) | |
24 | +{ | |
25 | + $atag = $matches[1]; | |
26 | + $img = empty($matches[2]) ? '' : $matches[2]; // image tag | |
27 | + | |
28 | + preg_match_all('/([^\s^\"]+)=\"([^\"]+)\"/', $atag, $amatches); | |
29 | + for ($i = 0, $count = count($amatches[0]); $i < $count; $i++) { | |
30 | + $attr[$amatches[1][$i]] = $amatches[2][$i]; | |
31 | + } | |
32 | + if (! isset($attr['href'])) return $atag . $img; | |
33 | + | |
34 | + $parse_url = parse_url($attr['href']); | |
35 | + $scheme = isset($parse_url['scheme']) ? $parse_url['scheme'] : ''; | |
36 | + $path = isset($parse_url['path']) ? $parse_url['path'] : ''; | |
37 | + $query = isset($parse_url['query']) ? $parse_url['query'] : ''; | |
38 | + $fragment = isset($parse_url['fragment']) ? '#' . $parse_url['fragment'] : ''; | |
39 | + $script = get_script_uri(); | |
40 | + $is_ext = $scheme && strncmp($attr['href'], $script, strlen($script)) !== 0; | |
41 | + | |
42 | + if ($is_ext && (! $img || $img && PLUGIN_RELINK_ADD_EXTERNAL_CLASS_TO_IMAGE_LINK)) { | |
43 | + switch ($scheme) { | |
44 | + case 'mailto': | |
45 | + $attr['class'] = 'mail'; | |
46 | + break; | |
47 | + case 'file': | |
48 | + $attr['class'] = 'file'; | |
49 | + break; | |
50 | + default: | |
51 | + $attr['class'] = 'external'; | |
52 | + } | |
53 | + } | |
54 | + | |
55 | + if (! $is_ext) { | |
56 | + $attr['href'] = $path . ($query ? '?' . $query : '') . $fragment; | |
57 | + if (isset($attr['rel'])) { unset($attr['rel']); } | |
58 | + /*if (PLUGIN_RELINK_REWRITE_URL_TYPE && $query && strpos($query, '=') === FALSE) { | |
59 | + $s_path = substr($path, 0, strrpos($path, '/') + 1); // cut index.php | |
60 | + switch (PLUGIN_RELINK_REWRITE_URL_TYPE) { | |
61 | + case 1: | |
62 | + $attr['href'] = $s_path . $query . $fragment; | |
63 | + break; | |
64 | + case 2: | |
65 | + $attr['href'] = $s_path . str_replace('%2F', '/', $query) . '/' . $fragment; | |
66 | + break; | |
67 | + case 3: | |
68 | + $attr['href'] = $s_path . $query . '.html' . $fragment; | |
69 | + break; | |
70 | + case 4: | |
71 | + $attr['href'] = $s_path . str_replace('%2F', '/', $query) . '.html' . $fragment; | |
72 | + break; | |
73 | + } | |
74 | + }*/ | |
75 | + } | |
76 | + | |
77 | + $ret = '<a'; | |
78 | + foreach ($attr as $key => $val) { | |
79 | + $ret .= ' ' . $key . '="' . $val . '"'; | |
80 | + } | |
81 | + $ret .= '>' . $img; | |
82 | + | |
83 | + return $ret; | |
84 | +} | |
85 | +?> |
@@ -0,0 +1,62 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * a copy of menu.inc.php v1.8 | |
4 | + * | |
5 | + * @copyright PukiWiki Developers Team | |
6 | + * @license GPL v2 or (at your option) any later version | |
7 | + * @version $Id$ | |
8 | + */ | |
9 | + | |
10 | +// サブメニューを使用する | |
11 | +define('SIDE_ENABLE_SUBMENU', FALSE); | |
12 | + | |
13 | +// サブメニューの名称 | |
14 | +define('SIDE_SUBMENUBAR', 'SideBar'); | |
15 | + | |
16 | +function plugin_side_convert() | |
17 | +{ | |
18 | + global $vars; | |
19 | + static $side = NULL; | |
20 | + | |
21 | + $num = func_num_args(); | |
22 | + if ($num > 0) { | |
23 | + // Try to change default 'SideBar' page name (only) | |
24 | + if ($num > 1) return '#side(): Zero or One argument needed'; | |
25 | + if ($side !== NULL) return '#side(): Already set: ' . htmlspecialchars($side); | |
26 | + $args = func_get_args(); | |
27 | + if (! is_page($args[0])) { | |
28 | + return '#side(): No such page: ' . htmlspecialchars($args[0]); | |
29 | + } else { | |
30 | + $side = $args[0]; // Set | |
31 | + return ''; | |
32 | + } | |
33 | + | |
34 | + } else { | |
35 | + // Output sidebar page data | |
36 | + $page = ($side === NULL) ? 'SideBar' : $side; | |
37 | + | |
38 | + if (SIDE_ENABLE_SUBMENU) { | |
39 | + $path = explode('/', strip_bracket($vars['page'])); | |
40 | + while(! empty($path)) { | |
41 | + $_page = join('/', $path) . '/' . SIDE_SUBMENUBAR; | |
42 | + if (is_page($_page)) { | |
43 | + $page = $_page; | |
44 | + break; | |
45 | + } | |
46 | + array_pop($path); | |
47 | + } | |
48 | + } | |
49 | + | |
50 | + if (! is_page($page)) { | |
51 | + return ''; | |
52 | + } else if ($vars['page'] == $page) { | |
53 | + return '<!-- #side(): You already view ' . htmlspecialchars($page) . ' -->'; | |
54 | + } else { | |
55 | + // Cut fixed anchors | |
56 | + $sidetext = preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/m', '$1$2', get_source($page)); | |
57 | + | |
58 | + return preg_replace('/<ul[^>]*>/', '<ul>', convert_html($sidetext)); | |
59 | + } | |
60 | + } | |
61 | +} | |
62 | +?> |
@@ -0,0 +1,15 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPL 2 | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_popular_convert() | |
9 | +{ | |
10 | + if (! exist_plugin_convert('popular')) return; | |
11 | + $args = func_get_args(); | |
12 | + return str_replace('<div>', '<div class="menubox">', | |
13 | + call_user_func_array('plugin_popular_convert', $args)); | |
14 | +} | |
15 | +?> |
@@ -0,0 +1,102 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +define('PLUGIN_REVERT_USE_ADMIN_ONLY', FALSE); | |
9 | + | |
10 | +function plugin_revert_init() | |
11 | +{ | |
12 | + $messages['_revert_messages'] = array( | |
13 | + 'adminpass' => '<p>管理者パスワードを入力してください。</p>', | |
14 | + 'invalidpass' => '<p>管理者パスワードが一致しません。</p>', | |
15 | + 'caution' => '<p><strong>警告: あなたはこのページの古い版を編集しています。' . | |
16 | + 'もしこの文章を保存すると、この版以降に追加された全ての変更が無効になってしまいます。</strong></p>', | |
17 | + 'button' => '送信', | |
18 | + ); | |
19 | + set_plugin_messages($messages); | |
20 | +} | |
21 | + | |
22 | +function plugin_revert_action() | |
23 | +{ | |
24 | + global $vars, $post, $_revert_messages, $_msg_preview; | |
25 | + | |
26 | + $pass = isset($post['pass']) ? $post['pass'] : FALSE; | |
27 | + $page = isset($vars['page']) ? $vars['page'] : ''; | |
28 | + $age = isset($vars['age']) ? $vars['age'] : ''; | |
29 | + | |
30 | + if ($page === '') return; | |
31 | + if (PLUGIN_REVERT_USE_ADMIN_ONLY && $pass === FALSE) | |
32 | + return array('msg' => 'revert plugin', 'body' => plugin_revert_auth($page, $age)); | |
33 | + if (PLUGIN_REVERT_USE_ADMIN_ONLY && ! pkwk_login($pass)) | |
34 | + return array('msg' => 'revert plugin', 'body' => $_revert_messages['invalidpass']); | |
35 | + | |
36 | + if ($age) { | |
37 | + // get_backup($page, $age)の形式だと最後の世代だけ取得できず全世代取得になる | |
38 | + $backups = get_backup($page); | |
39 | + if (empty($backups[$age]['data'])) | |
40 | + return array('msg' => 'revert plugin', 'body' => 'Backup file not found.'); | |
41 | + $revertdata = $backups[$age]['data']; | |
42 | + unset($backups); | |
43 | + } else { | |
44 | + $filename = DIFF_DIR . encode($page) . '.txt'; | |
45 | + if (! is_file($filename)) | |
46 | + return array('msg' => 'revert plugin', 'body' => 'Diff file not found.'); | |
47 | + $revertdata = array(); | |
48 | + foreach (file($filename) as $line) | |
49 | + if (strpos($line, '+') !== 0) $revertdata[] = substr($line, 1); | |
50 | + } | |
51 | + | |
52 | + $vars['preview'] = $post['preview'] = 1; | |
53 | + $vars['msg'] = $post['msg'] = join('', $revertdata); | |
54 | + $vars['digest'] = $post['digest'] = is_page($page) ? md5(join('', get_source($page))) : FALSE; | |
55 | + $_msg_preview = $_revert_messages['caution'] . "<br />\n" . $_msg_preview; | |
56 | + | |
57 | + return do_plugin_action('edit'); | |
58 | +} | |
59 | + | |
60 | +function plugin_revert_auth($page, $age) | |
61 | +{ | |
62 | + global $_revert_messages; | |
63 | + | |
64 | + $script = get_script_uri(); | |
65 | + $s_page = htmlspecialchars($page); | |
66 | + $s_age = htmlspecialchars($age); | |
67 | + | |
68 | + return <<<EOD | |
69 | +{$_revert_messages['adminpass']} | |
70 | +<form action="$script" method="post"> | |
71 | + <div> | |
72 | + <input type="hidden" name="cmd" value="revert" /> | |
73 | + <input type="hidden" name="page" value="$s_page" /> | |
74 | + <input type="hidden" name="age" value="$s_age" /> | |
75 | + <input type="password" name="pass" size="12" /> | |
76 | + <input type="submit" value="{$_revert_messages['button']}" /> | |
77 | + </div> | |
78 | +</form> | |
79 | +EOD; | |
80 | +} | |
81 | + | |
82 | +function plugin_revert_getlink() | |
83 | +{ | |
84 | + global $vars, $plugin, $cantedit; | |
85 | + static $link; | |
86 | + | |
87 | + if (isset($link)) return $link; | |
88 | + | |
89 | + $page = isset($vars['page']) ? $vars['page'] : ''; | |
90 | + $age = isset($vars['age']) ? (int)$vars['age'] : 0; | |
91 | + $link = ''; | |
92 | + | |
93 | + if ($page && ! in_array($page, $cantedit) && | |
94 | + (($plugin === 'backup' && $age > 0) || ($plugin === 'diff') || ($plugin === 'revert'))) | |
95 | + { | |
96 | + $link = get_script_uri() . '?cmd=revert&page=' . rawurlencode($page) . | |
97 | + ($age ? '&age=' . $age : ''); | |
98 | + } | |
99 | + | |
100 | + return $link; | |
101 | +} | |
102 | +?> |
@@ -0,0 +1,19 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_search_convert() | |
9 | +{ | |
10 | + if (! exist_plugin_convert('search')) return; | |
11 | + $str = explode("\n", plugin_search_convert()); | |
12 | + $str = preg_grep('/value="OR"|\<label for\="|encode_hint/', $str, PREG_GREP_INVERT); | |
13 | + $str = str_replace( | |
14 | + array('type="radio"', 'type="text"', 'type="submit"', ' id="_p_search_AND"'), | |
15 | + array('type="hidden"', 'class="searchInput" type="text"', | |
16 | + 'class="searchButton" type="submit"', ''), $str); | |
17 | + return "<div class=\"monobook_search\">\n" . implode("\n", $str) . "\n</div>"; | |
18 | +} | |
19 | +?> |
@@ -0,0 +1,67 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_toolbox_init() | |
9 | +{ | |
10 | + $messages['_monobook_toolbox_messages'] = array( | |
11 | + 'add' => 'ページに追加', | |
12 | + 'attachlist' => '添付ファイルの一覧', | |
13 | + 'attachlistall' => '全添付ファイルの一覧', | |
14 | + 'backup' => 'バックアップの表示', | |
15 | + 'copy' => 'コピー', | |
16 | + 'diff' => '変更個所の表示', | |
17 | + 'edit' => 'ページの編集', | |
18 | + 'filelist' => 'ファイル名の一覧', | |
19 | + 'freeze' => '凍結', | |
20 | + 'help' => 'ヘルプ', | |
21 | + 'list' => '全ページ', | |
22 | + 'new' => '新しいページの作成', | |
23 | + 'rdf' => 'RDF', | |
24 | + 'recent' => '最近更新したページ', | |
25 | + 'refer' => '外部のリンク元', | |
26 | + 'related' => 'リンク元', | |
27 | + 'reload' => 'リロード', | |
28 | + 'rename' => 'ページ名の変更', | |
29 | + 'rss' => 'RSS', | |
30 | + 'rss10' => 'RSS 1.0', | |
31 | + 'rss20' => 'RSS 2.0', | |
32 | + 'search' => '検索', | |
33 | + 'source' => 'ソースの表示', | |
34 | + 'top' => 'トップページ', | |
35 | + 'trackback' => 'トラックバック', | |
36 | + 'unfreeze' => '凍結解除', | |
37 | + 'upload' => 'アップロード', | |
38 | + 'yetlist' => '投稿が望まれているページ', | |
39 | + ); | |
40 | + set_plugin_messages($messages); | |
41 | +} | |
42 | + | |
43 | +function plugin_monobook_toolbox_convert() | |
44 | +{ | |
45 | + global $vars, $_monobook_toolbox_messages; | |
46 | + | |
47 | + $items = func_get_args(); | |
48 | + if (empty($items)) $items = array('add', 'backup', 'copy', 'diff', 'edit', 'filelist', 'freeze', 'help', | |
49 | + 'list', 'new', 'rdf', 'recent', 'refer', 'related', 'reload', 'rename', 'rss', 'rss10', 'rss20', | |
50 | + 'search', 'source', 'top', 'trackback', 'upload', 'attachlist', 'attachlistall', 'yetlist'); | |
51 | + | |
52 | + if (! exist_plugin('monobook_getlink')) return; | |
53 | + $body = '<div class="toolbox"><ul>'; | |
54 | + foreach ($items as $item) { | |
55 | + if (! $item && $body !== '<div class="toolbox"><ul>') { | |
56 | + $body .= '</ul><hr /><ul>'; | |
57 | + continue; | |
58 | + } | |
59 | + $link = plugin_monobook_getlink($item, $_monobook_toolbox_messages); | |
60 | + if ($link) $body .= '<li>' . $link . '</li>'; | |
61 | + } | |
62 | + if (substr($body, -15) === '</ul><hr /><ul>') $body = substr($body, 0, -15); | |
63 | + $body .= '</ul></div>'; | |
64 | + | |
65 | + return $body; | |
66 | +} | |
67 | +?> |
@@ -0,0 +1,69 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_login_init() | |
9 | +{ | |
10 | + $messages['_monobook_login_messages'] = array( | |
11 | + 'login' => 'ログインまたはアカウント作成', | |
12 | + 'auth_failed' => '認証に失敗しました', | |
13 | + ); | |
14 | + set_plugin_messages($messages); | |
15 | +} | |
16 | + | |
17 | +function plugin_monobook_login_action() | |
18 | +{ | |
19 | + global $vars, $auth_users, $_msg_auth, $_monobook_login_messages; | |
20 | + | |
21 | + if (! isset($_SERVER['PHP_AUTH_USER']) && ! isset($_SERVER['PHP_AUTH_PW']) && | |
22 | + isset($_SERVER['HTTP_AUTHORIZATION'])) | |
23 | + { | |
24 | + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = | |
25 | + explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); | |
26 | + } | |
27 | + | |
28 | + if (PKWK_READONLY || ! isset($_SERVER['PHP_AUTH_USER']) || | |
29 | + ! isset($auth_users[$_SERVER['PHP_AUTH_USER']]) || ! isset($_SERVER['PHP_AUTH_PW']) || | |
30 | + pkwk_hash_compute($_SERVER['PHP_AUTH_PW'], $auth_users[$_SERVER['PHP_AUTH_USER']]) !== | |
31 | + $auth_users[$_SERVER['PHP_AUTH_USER']]) | |
32 | + { | |
33 | + pkwk_common_headers(); | |
34 | + header('WWW-Authenticate: Basic realm="' . $_msg_auth . '"'); | |
35 | + header('HTTP/1.0 401 Unauthorized'); | |
36 | + $msg = $_monobook_login_messages['auth_failed']; | |
37 | + return array('msg' => $msg, 'body' => '<p>' . $msg . '</p>'); | |
38 | + } elseif (isset($vars['refer']) && is_page($vars['refer'])) { | |
39 | + header('Location: ' . get_script_uri() . '?' . rawurlencode($vars['refer'])); | |
40 | + } | |
41 | + | |
42 | + return; | |
43 | +} | |
44 | + | |
45 | +function plugin_monobook_login_inline() | |
46 | +{ | |
47 | + global $vars, $_monobook_login_messages; | |
48 | + | |
49 | + if (! isset($_SERVER['PHP_AUTH_USER']) && ! isset($_SERVER['PHP_AUTH_PW']) && | |
50 | + isset($_SERVER['HTTP_AUTHORIZATION'])) | |
51 | + { | |
52 | + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = | |
53 | + explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); | |
54 | + } | |
55 | + | |
56 | + $auth_usr = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : ''; | |
57 | + $r_page = empty($vars['page']) ? '' : '&page=' . rawurlencode($vars['page']); | |
58 | + | |
59 | + $list_id = $auth_usr ? ' id="userpage"' : ' id="login"'; | |
60 | + $list_class = ($auth_usr && $auth_usr === $vars['page']) ? ' class="active"' : ''; | |
61 | + $a_class = ($auth_usr && ! is_page($auth_usr)) ? ' class="new"' : ''; | |
62 | + $title = $auth_usr ? htmlspecialchars($auth_usr) : $_monobook_login_messages['login']; | |
63 | + $uri = get_script_uri() . '?' . | |
64 | + ($auth_usr ? rawurlencode($auth_usr) : 'cmd=monobook_login' . $r_page); | |
65 | + | |
66 | + return '<li' . $list_id . $list_class . '><a' . $a_class . ' href="' . $uri . '">' . | |
67 | + $title . '</a></li>'; | |
68 | +} | |
69 | +?> |
@@ -0,0 +1,217 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * @author lunt | |
4 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
5 | + * @version $Id$ | |
6 | + */ | |
7 | + | |
8 | +function plugin_monobook_getlink($tab, $message, $check_selected = FALSE) | |
9 | +{ | |
10 | + global $vars, $plugin, $_LINK; | |
11 | + global $do_backup, $function_freeze, $referer, $trackback; | |
12 | + global $defaultpage, $whatsnew, $help_page, $cantedit; | |
13 | + static $page, $is_page, $is_pagename, $is_editable, $is_freeze, $has_refer, $request_uri; | |
14 | + | |
15 | + if (is_null($page)) { | |
16 | + $page = isset($vars['page']) ? $vars['page'] : ''; | |
17 | + $is_page = is_page($page); | |
18 | + $is_pagename = is_pagename($page); | |
19 | + $is_editable = is_editable($page); | |
20 | + $is_freeze = is_freeze($page); | |
21 | + $has_refer = isset($vars['refer']) && is_pagename($vars['refer']); | |
22 | + $request_uri = get_script_uri() . str_replace('&', '&', strrchr($_SERVER['REQUEST_URI'], '?')); | |
23 | + } | |
24 | + | |
25 | + if ($tab === 'nowplugin') { | |
26 | + $tab = $plugin; | |
27 | + if ($plugin === 'attach') { | |
28 | + if (isset($vars['pcmd']) && $vars['pcmd'] === 'info') { | |
29 | + $tab = 'attachinfo'; | |
30 | + } elseif (isset($vars['pcmd']) && $vars['pcmd'] === 'list') { | |
31 | + $tab = $has_refer ? 'attachlist' : 'attachlistall'; | |
32 | + } else { | |
33 | + $tab = 'upload'; | |
34 | + } | |
35 | + } | |
36 | + } | |
37 | + | |
38 | + $link = $title = ''; | |
39 | + $selected = 0; | |
40 | + | |
41 | + switch ($tab) { | |
42 | + case 'add': | |
43 | + case 'edit': | |
44 | + if (PKWK_READONLY || ! $is_editable) break; | |
45 | + $link = $_LINK[$tab]; | |
46 | + $title = $message[$tab]; | |
47 | + break; | |
48 | + | |
49 | + case 'attach': | |
50 | + case 'upload': | |
51 | + if (PKWK_READONLY || ! ini_get('file_uploads') || ! $is_page || ! $is_editable) break; | |
52 | + $link = $_LINK['upload']; | |
53 | + $title = $message['upload']; | |
54 | + if ($plugin === 'attach' && isset($vars['pcmd']) && $vars['pcmd'] === 'upload') | |
55 | + $selected = 1; | |
56 | + break; | |
57 | + | |
58 | + case 'attachinfo': | |
59 | + $link = $request_uri; | |
60 | + $title = $message['attachinfo']; | |
61 | + $selected = 1; | |
62 | + break; | |
63 | + | |
64 | + case 'attachlist': | |
65 | + if ($is_pagename) $link = get_script_uri() . '?plugin=attach&pcmd=list&refer=' . | |
66 | + rawurlencode($page); | |
67 | + elseif ($plugin === 'attach' && isset($vars['pcmd']) && | |
68 | + $vars['pcmd'] === 'list' && $has_refer) | |
69 | + { | |
70 | + $link = $request_uri; | |
71 | + $selected = 1; | |
72 | + } | |
73 | + $title = $message['attachlist']; | |
74 | + break; | |
75 | + | |
76 | + case 'attachlistall': | |
77 | + $link = get_script_uri() . '?plugin=attach&pcmd=list'; | |
78 | + $title = $message['attachlistall']; | |
79 | + if ($plugin === 'attach' && isset($vars['pcmd']) && | |
80 | + $vars['pcmd'] === 'list' && ! $has_refer) | |
81 | + { | |
82 | + $selected = 1; | |
83 | + } | |
84 | + break; | |
85 | + | |
86 | + case 'backlink': | |
87 | + case 'related': | |
88 | + if (! $is_pagename) break; | |
89 | + $link = get_script_uri() . '?plugin=related&page=' . rawurlencode($page); | |
90 | + $title = $message['related']; | |
91 | + $tab = 'related'; | |
92 | + break; | |
93 | + | |
94 | + case 'backup': | |
95 | + if (! $do_backup || ! $is_pagename) break; | |
96 | + $link = $_LINK['backup']; | |
97 | + $title = $message['backup']; | |
98 | + break; | |
99 | + | |
100 | + case 'copy': | |
101 | + case 'template': | |
102 | + if (PKWK_READONLY) break; | |
103 | + if ($is_page) $link = $_LINK['copy']; | |
104 | + elseif ($plugin === 'template') | |
105 | + $link = $request_uri; | |
106 | + $title = $message['copy']; | |
107 | + $tab = 'template'; | |
108 | + break; | |
109 | + | |
110 | + case 'diff': | |
111 | + if (! $is_pagename) break; | |
112 | + $link = $_LINK['diff']; | |
113 | + $title = $message['diff']; | |
114 | + break; | |
115 | + | |
116 | + case 'filelist': | |
117 | + case 'help': | |
118 | + case 'list': | |
119 | + case 'rdf': | |
120 | + case 'recent': | |
121 | + case 'rss': | |
122 | + case 'rss10': | |
123 | + case 'rss20': | |
124 | + case 'search': | |
125 | + case 'top': | |
126 | + $link = $_LINK[$tab]; | |
127 | + $title = $message[$tab]; | |
128 | + break; | |
129 | + | |
130 | + case 'freeze': | |
131 | + case 'unfreeze': | |
132 | + if (PKWK_READONLY || ! $function_freeze || ! $is_page || in_array($page, $cantedit)) break; | |
133 | + $tab = $is_freeze ? 'unfreeze' : 'freeze'; | |
134 | + $link = $_LINK[$tab]; | |
135 | + $title = $message[$tab]; | |
136 | + break; | |
137 | + | |
138 | + case 'new': | |
139 | + case 'newpage': | |
140 | + if (PKWK_READONLY) break; | |
141 | + $link = $_LINK['new']; | |
142 | + $title = $message['new']; | |
143 | + $tab = 'newpage'; | |
144 | + break; | |
145 | + | |
146 | + case 'read': | |
147 | + $link = $_LINK['reload']; | |
148 | + $title = $message['article']; | |
149 | + break; | |
150 | + | |
151 | + case 'refer': | |
152 | + case 'referer': | |
153 | + if (! $referer || ! $is_pagename) break; | |
154 | + $link = $_LINK['refer']; | |
155 | + $title = $message['refer']; | |
156 | + $tab = 'referer'; | |
157 | + break; | |
158 | + | |
159 | + case 'reload': | |
160 | + if (! $is_page) break; | |
161 | + $link = $_LINK['reload']; | |
162 | + $title = $message['reload']; | |
163 | + break; | |
164 | + | |
165 | + case 'rename': | |
166 | + if (PKWK_READONLY) break; | |
167 | + if ($is_page && $is_editable) $link = $_LINK['rename']; | |
168 | + elseif ($plugin === 'rename') | |
169 | + $link = $request_uri; | |
170 | + $title = $message['rename']; | |
171 | + break; | |
172 | + | |
173 | + case 'revert': | |
174 | + $link = plugin_revert_getlink(); | |
175 | + $link = $link ? $link : $request_uri; | |
176 | + $title = $message['revert']; | |
177 | + break; | |
178 | + | |
179 | + case 'secedit': | |
180 | + $link = $request_uri; | |
181 | + $title = $message['edit']; | |
182 | + break; | |
183 | + | |
184 | + case 'source': | |
185 | + if (! $is_page || PKWK_SAFE_MODE) break; | |
186 | + $link = get_script_uri() . '?cmd=source&page=' . rawurlencode($page); | |
187 | + $title = $message['source']; | |
188 | + break; | |
189 | + | |
190 | + case 'trackback': | |
191 | + if (! $trackback || ! $is_pagename) break; | |
192 | + $link = $_LINK['trackback']; | |
193 | + $title = $message['trackback'] . ' (' . tb_count($page) . ')'; | |
194 | + break; | |
195 | + | |
196 | + case 'yetlist': | |
197 | + if (PKWK_READONLY) break; | |
198 | + $link = get_script_uri() . '?plugin=yetlist'; | |
199 | + $title = $message['yetlist']; | |
200 | + break; | |
201 | + } | |
202 | + | |
203 | + if ($link) $link = '<a href="' . $link . '">' . $title . '</a>'; | |
204 | + | |
205 | + if (! $check_selected) return $link; | |
206 | + | |
207 | + if (($plugin !== 'attach' && $plugin === $tab) || | |
208 | + ($page === $defaultpage && $tab === 'top') || | |
209 | + ($page === $whatsnew && $tab === 'recent') || | |
210 | + ($page === $help_page && $tab === 'help')) | |
211 | + { | |
212 | + $selected = 1; | |
213 | + } | |
214 | + | |
215 | + return array($link, $selected); | |
216 | +} | |
217 | +?> |
@@ -0,0 +1,1003 @@ | ||
1 | +/* -------------------- Initialization -------------------- */ | |
2 | +* { | |
3 | + margin: 0; | |
4 | + padding: 0; | |
5 | +} | |
6 | + | |
7 | +body { | |
8 | + font: x-small sans-serif; | |
9 | + background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; | |
10 | + color: black; | |
11 | +} | |
12 | + | |
13 | +/* IE6 + EUC */ | |
14 | +* html body { | |
15 | + font: xx-small Arial, sans-serif; | |
16 | +} | |
17 | + | |
18 | +/* IE7 + EUC */ | |
19 | +*+html body { | |
20 | + font: x-small Arial, sans-serif; | |
21 | +} | |
22 | + | |
23 | +/* Opera8 */ | |
24 | +*+html > /**/body { | |
25 | + font: x-small sans-serif; | |
26 | +} | |
27 | + | |
28 | +/* -------------------- Layout -------------------- */ | |
29 | +#globalWrapper { | |
30 | + font-size: 127%; | |
31 | + width: 100%; | |
32 | +} | |
33 | + | |
34 | +#menubar { | |
35 | + width: 11.6em; | |
36 | + float: left; | |
37 | + margin: 90px -11.6em 0 0; | |
38 | +} | |
39 | + | |
40 | +#mainColumnWrapper { | |
41 | + width: 100%; | |
42 | + float: left; | |
43 | +} | |
44 | + | |
45 | +#main-column { | |
46 | + margin-left: 12.2em; | |
47 | +} | |
48 | + | |
49 | +#footer { | |
50 | + width: 100%; | |
51 | +} | |
52 | + | |
53 | +/* -------------------- Text Module -------------------- */ | |
54 | + | |
55 | +/*blockquote { | |
56 | + font-family: Times, "Times New Roman", serif; | |
57 | + font-style: italic; | |
58 | +}*/ | |
59 | + | |
60 | +blockquote { | |
61 | + margin-left:32px; | |
62 | +} | |
63 | + | |
64 | +code { | |
65 | + background-color: #f9f9f9; | |
66 | +} | |
67 | + | |
68 | +em { | |
69 | + font-style: italic; | |
70 | +} | |
71 | + | |
72 | +h1, h2, h3, h4, h5, h6 { | |
73 | + color: #000; | |
74 | + background: none; | |
75 | + font-weight: normal; | |
76 | + margin: 0; | |
77 | + padding-top: .5em; | |
78 | + padding-bottom: .17em; | |
79 | + border-bottom: 1px solid #aaa; | |
80 | +} | |
81 | +h1 { font-size: 188%; } | |
82 | +h2 { font-size: 150%; } | |
83 | +h3, h4, h5, h6 { | |
84 | + border-bottom: none; | |
85 | + font-weight: bold; | |
86 | +} | |
87 | +h3 { font-size: 132%; } | |
88 | +h4 { font-size: 116%; } | |
89 | +h5 { font-size: 100%; } | |
90 | +h6 { font-size: 80%; } | |
91 | + | |
92 | +p { | |
93 | + margin: .4em 0 .5em; | |
94 | + line-height: 1.5em; | |
95 | +} | |
96 | + | |
97 | +pre { | |
98 | + margin: 1em 0; | |
99 | + padding: 1em; | |
100 | + border: 1px dashed #2f6fab; | |
101 | + color: black; | |
102 | + background-color: #f9f9f9; | |
103 | + line-height: 1.1em; | |
104 | + overflow: auto; | |
105 | +} | |
106 | + | |
107 | +/* IE6 */ | |
108 | +* html pre { | |
109 | + width: 100%; | |
110 | +} | |
111 | + | |
112 | +/* -------------------- Hypertext Module -------------------- */ | |
113 | + | |
114 | +a { | |
115 | + text-decoration: none; | |
116 | + color: #002bb8; | |
117 | + background: none no-repeat; | |
118 | +} | |
119 | + | |
120 | +a:visited { | |
121 | + color: #5a3696; | |
122 | +} | |
123 | + | |
124 | +a:active { | |
125 | + color: #faa700; | |
126 | +} | |
127 | + | |
128 | +a:hover { | |
129 | + text-decoration: underline; | |
130 | +} | |
131 | + | |
132 | +a.external { | |
133 | + background: url(external.png) center right no-repeat; | |
134 | + padding-right: 13px; | |
135 | +} | |
136 | + | |
137 | +a.note_super { | |
138 | + font-size: 80%; | |
139 | + line-height: 1em; | |
140 | + vertical-align: super; | |
141 | +} | |
142 | + | |
143 | +/* -------------------- List Module -------------------- */ | |
144 | + | |
145 | +dl { | |
146 | + margin-top: .2em; | |
147 | + margin-bottom: .5em; | |
148 | +} | |
149 | + | |
150 | +dt { | |
151 | + font-weight: bold; | |
152 | + margin-bottom: .1em; | |
153 | +} | |
154 | + | |
155 | +dd { | |
156 | + line-height: 1.5em; | |
157 | + margin-left: 2em; | |
158 | + margin-bottom: .1em; | |
159 | +} | |
160 | + | |
161 | +ol { | |
162 | + line-height: 1.5em; | |
163 | + margin: .3em 0 0 3.2em; | |
164 | + padding: 0; | |
165 | + list-style-image: none; | |
166 | +} | |
167 | + | |
168 | +ul { | |
169 | + line-height: 1.5em; | |
170 | + list-style-type: square; | |
171 | + margin: .3em 0 0 1.5em; | |
172 | + padding: 0; | |
173 | + list-style-image: url(bullet.gif); | |
174 | +} | |
175 | + | |
176 | +li { | |
177 | + margin-bottom: .1em; | |
178 | +} | |
179 | + | |
180 | +ol.list1 { list-style-type: decimal; } | |
181 | +ol.list2 { list-style-type: lower-roman; } | |
182 | +ol.list3 { list-style-type: lower-alpha; } | |
183 | + | |
184 | +/* -------------------- Text Extension Module -------------------- */ | |
185 | + | |
186 | +hr { | |
187 | + height: 1px; | |
188 | + color: #aaa; | |
189 | + background-color: #aaa; | |
190 | + border: 0; | |
191 | + margin: .2em 0; | |
192 | +} | |
193 | + | |
194 | +hr.note_hr { | |
195 | + margin: 1em 0 .5em; | |
196 | +} | |
197 | + | |
198 | +/* -------------------- Forms Module -------------------- */ | |
199 | + | |
200 | +form { | |
201 | + border: none; | |
202 | + margin: 0; | |
203 | +} | |
204 | + | |
205 | +select { | |
206 | + vertical-align: top; | |
207 | +} | |
208 | + | |
209 | +textarea { | |
210 | + padding: .1em; | |
211 | +} | |
212 | + | |
213 | +.edit_form { clear: both; } | |
214 | + | |
215 | +.edit_form textarea { | |
216 | + width: 100%; | |
217 | +} | |
218 | + | |
219 | +/* -------------------- Table Module -------------------- */ | |
220 | + | |
221 | +thead td.style_td, | |
222 | +tfoot td.style_td { | |
223 | + color: inherit; | |
224 | + background-color: #f2f2f2; | |
225 | +} | |
226 | +thead th.style_th, | |
227 | +tfoot th.style_th { | |
228 | + color: inherit; | |
229 | + background-color: #d8dde8; | |
230 | +} | |
231 | +.style_table { | |
232 | + padding: 0px; | |
233 | + border: 0px; | |
234 | + margin: auto; | |
235 | + text-align: left; | |
236 | + font-size: 100%; | |
237 | + color: inherit; | |
238 | + background-color: #aaa; | |
239 | +} | |
240 | +.style_th { | |
241 | + padding: 5px; | |
242 | + margin: 1px; | |
243 | + text-align: center; | |
244 | + color: inherit; | |
245 | + background-color: #eee; | |
246 | +} | |
247 | +.style_td { | |
248 | + padding: 5px; | |
249 | + margin: 1px; | |
250 | + color: inherit; | |
251 | + background-color: #f9f9f9; | |
252 | +} | |
253 | + | |
254 | +div.ie5 { text-align: center; } | |
255 | + | |
256 | +/* -------------------- Image Module -------------------- */ | |
257 | + | |
258 | +img { | |
259 | + border: none; | |
260 | + vertical-align: middle; | |
261 | +} | |
262 | + | |
263 | +p img { | |
264 | + margin: 0; | |
265 | +} | |
266 | + | |
267 | +/* -------------------- Main Content Area -------------------- */ | |
268 | +#main-column { | |
269 | + line-height: 1.5em; | |
270 | +} | |
271 | + | |
272 | +#content { | |
273 | + background: #fff; | |
274 | + font-size: 118%; | |
275 | + border: 1px solid #aaa; | |
276 | + border-right: none; | |
277 | + padding: 0 .85em .75em; | |
278 | + position: relative; | |
279 | + z-index: 1; | |
280 | +} | |
281 | + | |
282 | +/* IE6 */ | |
283 | +* html body #content { | |
284 | + height: 1%; | |
285 | +} | |
286 | + | |
287 | +/* IE7 */ | |
288 | +*+html body #content { | |
289 | + height: 1%; | |
290 | +} | |
291 | + | |
292 | +/* Opera8 */ | |
293 | +*+html > /**/body #content { | |
294 | + height: auto; | |
295 | +} | |
296 | + | |
297 | +.jumpmenu { | |
298 | + display: none; | |
299 | +} | |
300 | + | |
301 | +#content h1, #content h2 { | |
302 | + margin-bottom: .6em; | |
303 | +} | |
304 | + | |
305 | +#content h3, #content h4, #content h5 { | |
306 | + margin-bottom: .3em; | |
307 | +} | |
308 | + | |
309 | +#content h1.firstHeading { | |
310 | + margin-bottom: .1em; | |
311 | + line-height: 1.2em; | |
312 | + font-size: 159.5%; /* */ | |
313 | + padding-top: .52em; /* */ | |
314 | + margin-bottom: .1em; | |
315 | +} | |
316 | + | |
317 | +#contentSub { | |
318 | + font-size: 84%; | |
319 | + line-height: 1.2em; | |
320 | + margin: 0 0 1.4em 1em; | |
321 | + color: #7d7d7d; | |
322 | + width: auto; | |
323 | +} | |
324 | + | |
325 | +span.noexists { | |
326 | + color: #c20; | |
327 | +} | |
328 | + | |
329 | +.small { | |
330 | + font-size: 80%; | |
331 | +} | |
332 | + | |
333 | +span.size1 { | |
334 | + font-size: xx-small; | |
335 | + line-height: 130%; | |
336 | + text-indent: 0px; | |
337 | + display: inline; | |
338 | +} | |
339 | +span.size2 { | |
340 | + font-size: x-small; | |
341 | + line-height: 130%; | |
342 | + text-indent: 0px; | |
343 | + display: inline; | |
344 | +} | |
345 | +span.size3 { | |
346 | + font-size: small; | |
347 | + line-height: 130%; | |
348 | + text-indent: 0px; | |
349 | + display: inline; | |
350 | +} | |
351 | +span.size4 { | |
352 | + font-size: medium; | |
353 | + line-height: 130%; | |
354 | + text-indent: 0px; | |
355 | + display: inline; | |
356 | +} | |
357 | +span.size5 { | |
358 | + font-size: large; | |
359 | + line-height: 130%; | |
360 | + text-indent: 0px; | |
361 | + display: inline; | |
362 | +} | |
363 | +span.size6 { | |
364 | + font-size: x-large; | |
365 | + line-height: 130%; | |
366 | + text-indent: 0px; | |
367 | + display: inline; | |
368 | +} | |
369 | +span.size7 { | |
370 | + font-size: xx-large; | |
371 | + line-height: 130%; | |
372 | + text-indent: 0px; | |
373 | + display: inline; | |
374 | +} | |
375 | + | |
376 | +strong.word0 { | |
377 | + background-color: #FFFF66; | |
378 | + color: black; | |
379 | +} | |
380 | +strong.word1 { | |
381 | + background-color: #A0FFFF; | |
382 | + color: black; | |
383 | +} | |
384 | +strong.word2 { | |
385 | + background-color: #99FF99; | |
386 | + color: black; | |
387 | +} | |
388 | +strong.word3 { | |
389 | + background-color: #FF9999; | |
390 | + color: black; | |
391 | +} | |
392 | +strong.word4 { | |
393 | + background-color: #FF66FF; | |
394 | + color: black; | |
395 | +} | |
396 | +strong.word5 { | |
397 | + background-color: #880000; | |
398 | + color: white; | |
399 | +} | |
400 | +strong.word6 { | |
401 | + background-color: #00AA00; | |
402 | + color:white; | |
403 | +} | |
404 | +strong.word7 { | |
405 | + background-color: #886800; | |
406 | + color: white; | |
407 | +} | |
408 | +strong.word8 { | |
409 | + background-color: #004699; | |
410 | + color: white; | |
411 | +} | |
412 | +strong.word9 { | |
413 | + background-color: #990099; | |
414 | + color: white; | |
415 | +} | |
416 | + | |
417 | +#note {} | |
418 | + | |
419 | +#preview {} | |
420 | + | |
421 | +/* -------------------- Logo -------------------- */ | |
422 | + | |
423 | +#logo a { | |
424 | + position: absolute; | |
425 | + top: 0; | |
426 | + left: 0; | |
427 | + z-index: 3; | |
428 | + display: block; | |
429 | + height: 90px; | |
430 | + width: 12.2em; | |
431 | + background-position: 45% 50%; | |
432 | + background-repeat: no-repeat; | |
433 | + text-decoration: none; | |
434 | + overflow: visible; | |
435 | +} | |
436 | + | |
437 | +/* -------------------- Navigation Tab -------------------- */ | |
438 | + | |
439 | +#navigator { | |
440 | + font-size: 95%; | |
441 | + margin-top: 1.8em; | |
442 | +} | |
443 | + | |
444 | +#navigator ul { | |
445 | + margin-left: 1.1em; | |
446 | + font-size: 95%; | |
447 | + list-style: none; | |
448 | + line-height: 1.2em; | |
449 | + white-space: nowrap; | |
450 | +} | |
451 | + | |
452 | +/* IE6 */ | |
453 | +* html #navigator ul { | |
454 | + margin-bottom: .2em; | |
455 | +} | |
456 | + | |
457 | +/* IE7 + Opera8 */ | |
458 | +*+html #navigator ul { | |
459 | + margin-bottom: .2em; | |
460 | +} | |
461 | + | |
462 | +#navigator ul li { | |
463 | + display: inline; | |
464 | + margin: 0 .6em 0 0; | |
465 | + border: 1px solid #aaa; | |
466 | + border-bottom: none; | |
467 | + background-color: #fff; | |
468 | + padding: .2em 0 .3em; | |
469 | +} | |
470 | + | |
471 | +#navigator ul li a { | |
472 | + color: #002bb8; | |
473 | + background-color: #fff; | |
474 | + padding: .1em .8em .4em; | |
475 | + text-decoration: none; | |
476 | + text-transform: lowercase; | |
477 | + position: relative; | |
478 | + z-index: 0; | |
479 | +} | |
480 | + | |
481 | +#navigator ul li.noexists a { | |
482 | + color: #c20; | |
483 | +} | |
484 | + | |
485 | +/* IE6 */ | |
486 | +* html #navigator ul li a { | |
487 | + padding-top: 0; | |
488 | +} | |
489 | + | |
490 | +#navigator ul li.selected { | |
491 | + border-color: #fabd23; | |
492 | + font-weight: bold; | |
493 | +} | |
494 | + | |
495 | +#navigator ul li.selected a { | |
496 | + padding: .1em 1em .4em; | |
497 | + z-index: 2; | |
498 | +} | |
499 | + | |
500 | +/* IE6 */ | |
501 | +* html #navigator ul li.selected a { | |
502 | + padding-top: 0; | |
503 | +} | |
504 | + | |
505 | +#navigator ul li a:hover { | |
506 | + border-bottom: 0 solid; | |
507 | + z-index: 2; | |
508 | +} | |
509 | + | |
510 | +#navigator ul li#wn_note, | |
511 | +#navigator ul li#separate { | |
512 | + margin-right: 1.9em; | |
513 | +} | |
514 | + | |
515 | +#navigator ul.specialbg li, | |
516 | +#navigator ul.specialbg li a, | |
517 | +#main-column div.specialbg { | |
518 | + background-color: #fbfcff; | |
519 | +} | |
520 | + | |
521 | +/* -------------------- MenuBar -------------------- */ | |
522 | + | |
523 | +#menubar { | |
524 | + /*word-break: break-all;*/ | |
525 | + overflow: hidden; | |
526 | + position: relative; | |
527 | +} | |
528 | + | |
529 | +#menubar div.menubox, | |
530 | +#menubar div.monobook_recent, | |
531 | +#menubar div.toolbox { | |
532 | + font-size: 95%; | |
533 | + background-color: #fff; | |
534 | + border: 1px solid #aaa; | |
535 | + padding: 0 .8em .3em .5em; | |
536 | + margin-bottom: .5em; | |
537 | +} | |
538 | + | |
539 | +#menubar ul { | |
540 | + font-size: 95%; | |
541 | + line-height: 1.5em; | |
542 | +} | |
543 | + | |
544 | +#menubar li { | |
545 | + margin: 0; | |
546 | +} | |
547 | + | |
548 | +/*#menubar div.menubox a { | |
549 | + display: block; | |
550 | +}*/ | |
551 | + | |
552 | +#menubar h2, | |
553 | +#menubar h3, | |
554 | +#menubar h4, | |
555 | +#menubar h5 { | |
556 | + display: inline; | |
557 | + font-size: 91%; | |
558 | + font-weight: normal; | |
559 | + height: 1em; | |
560 | + padding: 0 1em 0 .5em; | |
561 | + border: none; | |
562 | + text-transform: lowercase; | |
563 | + white-space: nowrap; | |
564 | +} | |
565 | + | |
566 | +/* -------------------- Footer -------------------- */ | |
567 | + | |
568 | +#footer { | |
569 | + margin-bottom: 1em; | |
570 | + background-color: #fff; | |
571 | + padding: .3em 0 1.5em; | |
572 | + border-top: 1px solid #fabd23; | |
573 | + border-bottom: 1px solid #fabd23; | |
574 | + text-align: center; | |
575 | + font-size: 90%; | |
576 | +} | |
577 | + | |
578 | +#footer #f-officialico { | |
579 | + float: left; | |
580 | + width: 104px; | |
581 | +} | |
582 | + | |
583 | +#footer #f-officialdevico { | |
584 | + float: right; | |
585 | + width: 104px; | |
586 | +} | |
587 | + | |
588 | +#footer img { | |
589 | + border: none; | |
590 | +} | |
591 | + | |
592 | +#footer li { | |
593 | + display: inline; | |
594 | + margin: 0 1.3em; | |
595 | + white-space: nowrap; | |
596 | +} | |
597 | + | |
598 | +/* IE6 */ | |
599 | +* html body #footer li { | |
600 | + white-space: normal; | |
601 | +} | |
602 | + | |
603 | +/* IE7 */ | |
604 | +*+html body #footer li { | |
605 | + white-space: normal; | |
606 | +} | |
607 | + | |
608 | +/* Opera8 */ | |
609 | +*+html > /**/body #footer li { | |
610 | + white-space: nowrap; | |
611 | +} | |
612 | + | |
613 | +/* -------------------- personal -------------------- */ | |
614 | + | |
615 | +#personal { | |
616 | + font-size: 95%; | |
617 | + width: 100%; | |
618 | + white-space: nowrap; | |
619 | + overflow: visible; | |
620 | + line-height: 1.2em; | |
621 | + position: absolute; | |
622 | + top: 0; | |
623 | + right: 0; | |
624 | +} | |
625 | + | |
626 | +#personal ul { | |
627 | + font-size: 95%; | |
628 | + line-height: 1em; | |
629 | + color: #2f6fab; | |
630 | + margin: 0; | |
631 | + padding: 0 2em 0 3em; | |
632 | + list-style-type: none; | |
633 | + list-style-image: none; | |
634 | + text-align: right; | |
635 | +} | |
636 | + | |
637 | +#personal li { | |
638 | + display: inline; | |
639 | + margin-left: 1em; | |
640 | + line-height: 1.2em; | |
641 | +} | |
642 | + | |
643 | +#personal li#login, | |
644 | +#personal li#userpage { | |
645 | + padding-left: 20px; | |
646 | + background: transparent url(user.gif) left top no-repeat; | |
647 | +} | |
648 | + | |
649 | +#personal li.active { | |
650 | + font-weight: bold; | |
651 | +} | |
652 | + | |
653 | +#personal a { | |
654 | + color: #005896; | |
655 | + text-decoration: none; | |
656 | + padding-bottom: .2em; | |
657 | +} | |
658 | + | |
659 | +#personal a:hover { | |
660 | + background-color: #fff; | |
661 | +} | |
662 | + | |
663 | +#personal a.new { | |
664 | + color: #A55858; | |
665 | +} | |
666 | + | |
667 | +#personal li.active a:hover { | |
668 | + background-color: transparent; | |
669 | +} | |
670 | + | |
671 | +/* -------------------- Plugin -------------------- */ | |
672 | + | |
673 | +/* aname.inc.php */ | |
674 | +.anchor_super { | |
675 | + font-size: 0; | |
676 | +} | |
677 | + | |
678 | +/* Opera8 for jump to anchor */ | |
679 | +*+html > /**/body .anchor_super { | |
680 | + vertical-align: super; | |
681 | +} | |
682 | + | |
683 | +/* calendar*.inc.php */ | |
684 | +.style_calendar { | |
685 | + padding: 0; | |
686 | + margin: 0; | |
687 | + background-color: #fff; | |
688 | + text-align: center; | |
689 | + border-collapse: collapse; | |
690 | +} | |
691 | + | |
692 | +.style_calendar td { | |
693 | + border: 2px solid #aaa; | |
694 | + font-size: .85em; | |
695 | + padding: .35em; | |
696 | +} | |
697 | + | |
698 | +.style_td_week { | |
699 | + background-color: #eee; | |
700 | +} | |
701 | + | |
702 | +.style_td_today { | |
703 | + background-color: #cfc; | |
704 | +} | |
705 | + | |
706 | +.style_calendar a.small { | |
707 | + font-size: 1em; | |
708 | +} | |
709 | + | |
710 | +/* calendar_viewer.inc.php */ | |
711 | +div.calendar_viewer { | |
712 | + color: inherit; | |
713 | + background-color: inherit; | |
714 | + margin-top: 20px; | |
715 | + margin-bottom: 10px; | |
716 | + padding-bottom: 10px; | |
717 | +} | |
718 | +span.calendar_viewer_left { | |
719 | + color: inherit; | |
720 | + background-color: inherit; | |
721 | + float: left; | |
722 | +} | |
723 | +span.calendar_viewer_right { | |
724 | + color: inherit; | |
725 | + background-color: inherit; | |
726 | + float: right; | |
727 | +} | |
728 | + | |
729 | +/* clear.inc.php */ | |
730 | +.clear { | |
731 | + margin: 0px; | |
732 | + clear: both; | |
733 | +} | |
734 | + | |
735 | +/* counter.inc.php */ | |
736 | +div.counter { font-size: 95%; } | |
737 | + | |
738 | +/* contentsx.inc.php */ | |
739 | +table.toc { | |
740 | + border: 1px solid #aaa; | |
741 | + background-color: #f9f9f9; | |
742 | + font-size: 95%; | |
743 | + padding: 5px 5px 5px 0; | |
744 | + margin-bottom: .6em; /* */ | |
745 | +} | |
746 | + | |
747 | +table.toc td.toctitle { | |
748 | + text-align: center; | |
749 | + font-weight: bold; | |
750 | + padding: .1em 0; | |
751 | +} | |
752 | + | |
753 | +table.toc ul.contentsx { | |
754 | + margin: 0 0 0 1.2em; | |
755 | +} | |
756 | + | |
757 | +table.toc ul { | |
758 | + margin: 0 0 0 2em; | |
759 | +} | |
760 | + | |
761 | +/* diff.inc.php */ | |
762 | +span.diff_added { | |
763 | + color: blue; | |
764 | + background-color: inherit; | |
765 | +} | |
766 | +span.diff_removed { | |
767 | + color: red; | |
768 | + background-color: inherit; | |
769 | +} | |
770 | + | |
771 | +/* include.inc.php */ | |
772 | +h5.side_label {} | |
773 | + | |
774 | +/* monobook_recent.inc.php */ | |
775 | +#menubar div.monobook_recent { | |
776 | + padding-top: .3em; | |
777 | +} | |
778 | + | |
779 | +#menubar div.monobook_recent strong { | |
780 | + font-size: 95%; | |
781 | +} | |
782 | + | |
783 | +#menubar div.monobook_recent ul { | |
784 | + margin-top: 0; | |
785 | +} | |
786 | + | |
787 | +/* monobook_search.inc.php */ | |
788 | +#menubar div.monobook_search { | |
789 | + background-color: #fff; | |
790 | + border: 1px solid #aaa; | |
791 | + padding: .5em .4em .4em; | |
792 | + text-align: center; | |
793 | + font-size: 95%; | |
794 | + margin-bottom: .5em; | |
795 | +} | |
796 | + | |
797 | +.monobook_search input.searchInput { | |
798 | + font-size: 95%; | |
799 | + width: 10.9em; | |
800 | + padding: 1px 0; | |
801 | +} | |
802 | + | |
803 | +.monobook_search input.searchButton { | |
804 | + font-size: 95%; | |
805 | + /*font-weight: bold;*/ | |
806 | + margin-top: 1px; | |
807 | + padding: 0 .5em; | |
808 | +} | |
809 | + | |
810 | +/* monobook_toolbox.inc.php */ | |
811 | +#menubar div.toolbox a { | |
812 | + display: block; | |
813 | +} | |
814 | + | |
815 | +/* navi.inc.php */ | |
816 | +ul.navi { | |
817 | + margin: 0; | |
818 | + padding: 0; | |
819 | + text-align: center; | |
820 | +} | |
821 | + | |
822 | +ul.navi li { | |
823 | + display: inline; | |
824 | +} | |
825 | + | |
826 | +li.navi_none { | |
827 | + float: none; | |
828 | + text-align: center; | |
829 | +} | |
830 | + | |
831 | +li.navi_left { | |
832 | + float: left; | |
833 | + text-align: left; | |
834 | +} | |
835 | + | |
836 | +li.navi_right { | |
837 | + float: right; | |
838 | + text-align: right; | |
839 | +} | |
840 | + | |
841 | +/* new.inc.php */ | |
842 | +/*span.comment_date { font-size: x-small; }*/ | |
843 | +span.new1 { | |
844 | + color: red; | |
845 | + background-color: transparent; | |
846 | + font-size: x-small; | |
847 | +} | |
848 | +span.new5 { | |
849 | + color: green; | |
850 | + background-color: transparent; | |
851 | + font-size: xx-small; | |
852 | +} | |
853 | + | |
854 | +/* secedit.inc.php */ | |
855 | +.editsection { | |
856 | + float: right; | |
857 | + margin-left: 5px; | |
858 | +} | |
859 | + | |
860 | +h1 .editsection { font-size: 53%; } | |
861 | +h2 .editsection { font-size: 67%; } | |
862 | +h3 .editsection { font-size: 76%; font-weight: normal; } | |
863 | +h4 .editsection { font-size: 86%; font-weight: normal; } | |
864 | +h5 .editsection { font-weight: normal; } | |
865 | +h6 .editsection { font-size: 125%; font-weight: normal; } | |
866 | + | |
867 | +/* popular.inc.php */ | |
868 | +span.counter {} | |
869 | + | |
870 | +/* ref.inc.php */ | |
871 | +div.img_margin { | |
872 | + margin-left: 1.4em; | |
873 | + margin-right: 1.4em; | |
874 | +} | |
875 | + | |
876 | +/* tag.inc.php */ | |
877 | +span.tag { | |
878 | + display: block; | |
879 | + margin-top: 1em; | |
880 | + border: 1px solid #aaa; | |
881 | + background-color: #f9f9f9; | |
882 | + padding: .8em 5px; | |
883 | + width: auto; | |
884 | +} | |
885 | + | |
886 | +/* IE6 */ | |
887 | +* html body span.tag { | |
888 | + width: 100%; | |
889 | +} | |
890 | + | |
891 | +span.tag a { | |
892 | + padding-right: .4em; | |
893 | + border-right: 1px solid #000; | |
894 | +} | |
895 | + | |
896 | +.htmltagcloud { | |
897 | + font-size: 12px; | |
898 | + line-height: 340%; | |
899 | +} | |
900 | + | |
901 | +.tagcloud0 { font-size: 100%;} | |
902 | +.tagcloud1 { font-size: 110%;} | |
903 | +.tagcloud2 { font-size: 120%;} | |
904 | +.tagcloud3 { font-size: 130%;} | |
905 | +.tagcloud4 { font-size: 140%;} | |
906 | +.tagcloud5 { font-size: 150%;} | |
907 | +.tagcloud6 { font-size: 160%;} | |
908 | +.tagcloud7 { font-size: 170%;} | |
909 | +.tagcloud8 { font-size: 180%;} | |
910 | +.tagcloud9 { font-size: 190%;} | |
911 | +.tagcloud10 { font-size: 200%;} | |
912 | +.tagcloud11 { font-size: 210%;} | |
913 | +.tagcloud12 { font-size: 220%;} | |
914 | +.tagcloud13 { font-size: 230%;} | |
915 | +.tagcloud14 { font-size: 240%;} | |
916 | +.tagcloud15 { font-size: 250%;} | |
917 | +.tagcloud16 { font-size: 260%;} | |
918 | +.tagcloud17 { font-size: 270%;} | |
919 | +.tagcloud18 { font-size: 280%;} | |
920 | +.tagcloud19 { font-size: 290%;} | |
921 | +.tagcloud20 { font-size: 300%;} | |
922 | +.tagcloud21 { font-size: 310%;} | |
923 | +.tagcloud22 { font-size: 320%;} | |
924 | +.tagcloud23 { font-size: 330%;} | |
925 | +.tagcloud24 { font-size: 340%;} | |
926 | + | |
927 | +#menubar .htmltagcloud { | |
928 | + font-size: 10px; | |
929 | + line-height: 2em; | |
930 | + background-color: #fff; | |
931 | + border: 1px solid #aaa; | |
932 | +} | |
933 | + | |
934 | +#menubar .htmltagcloud span a { | |
935 | + margin: 0 2px; | |
936 | + padding-bottom: 1em; | |
937 | +} | |
938 | + | |
939 | +#menubar .tagcloud0 { font-size: 100%;} | |
940 | +#menubar .tagcloud1 { font-size: 105%;} | |
941 | +#menubar .tagcloud2 { font-size: 110%;} | |
942 | +#menubar .tagcloud3 { font-size: 115%;} | |
943 | +#menubar .tagcloud4 { font-size: 120%;} | |
944 | +#menubar .tagcloud5 { font-size: 125%;} | |
945 | +#menubar .tagcloud6 { font-size: 130%;} | |
946 | +#menubar .tagcloud7 { font-size: 135%;} | |
947 | +#menubar .tagcloud8 { font-size: 140%;} | |
948 | +#menubar .tagcloud9 { font-size: 145%;} | |
949 | +#menubar .tagcloud10 { font-size: 150%;} | |
950 | +#menubar .tagcloud11 { font-size: 155%;} | |
951 | +#menubar .tagcloud12 { font-size: 160%;} | |
952 | +#menubar .tagcloud13 { font-size: 165%;} | |
953 | +#menubar .tagcloud14 { font-size: 170%;} | |
954 | +#menubar .tagcloud15 { font-size: 175%;} | |
955 | +#menubar .tagcloud16 { font-size: 180%;} | |
956 | +#menubar .tagcloud17 { font-size: 185%;} | |
957 | +#menubar .tagcloud18 { font-size: 190%;} | |
958 | +#menubar .tagcloud19 { font-size: 195%;} | |
959 | +#menubar .tagcloud20 { font-size: 200%;} | |
960 | +#menubar .tagcloud21 { font-size: 205%;} | |
961 | +#menubar .tagcloud22 { font-size: 210%;} | |
962 | +#menubar .tagcloud23 { font-size: 215%;} | |
963 | +#menubar .tagcloud24 { font-size: 220%;} | |
964 | + | |
965 | +.tagcloud0, | |
966 | +.tagcloud1, | |
967 | +.tagcloud2, | |
968 | +.tagcloud3, | |
969 | +.tagcloud4, | |
970 | +.tagcloud5, | |
971 | +.tagcloud6, | |
972 | +.tagcloud7, | |
973 | +.tagcloud8, | |
974 | +.tagcloud9, | |
975 | +.tagcloud10, | |
976 | +.tagcloud11, | |
977 | +.tagcloud12, | |
978 | +.tagcloud13, | |
979 | +.tagcloud14, | |
980 | +.tagcloud15, | |
981 | +.tagcloud16, | |
982 | +.tagcloud17, | |
983 | +.tagcloud18, | |
984 | +.tagcloud19, | |
985 | +.tagcloud20, | |
986 | +.tagcloud21, | |
987 | +.tagcloud22, | |
988 | +.tagcloud23, | |
989 | +.tagcloud24 { line-height: 1.2em;} | |
990 | + | |
991 | +/* vote.inc.php */ | |
992 | +td.vote_label { | |
993 | + color:inherit; | |
994 | + background-color:#d8dde8; | |
995 | +} | |
996 | +td.vote_td1 { | |
997 | + color:inherit; | |
998 | + background-color:#f9f9f9; | |
999 | +} | |
1000 | +td.vote_td2 { | |
1001 | + color:inherit; | |
1002 | + background-color:#f2f2f2; | |
1003 | +} |
@@ -0,0 +1,149 @@ | ||
1 | +#logo, | |
2 | +#navigator, | |
3 | +#menubar, | |
4 | +#sidebar, | |
5 | +#personal { display: none; } | |
6 | + | |
7 | +#content { | |
8 | + background-color: #fff; | |
9 | + color: #000; | |
10 | + font-size: 11pt; | |
11 | +} | |
12 | + | |
13 | +ul { | |
14 | + list-style-type: square; | |
15 | +} | |
16 | + | |
17 | +h1, h2, h3, h4, h5, h6 { | |
18 | + font-weight: bold; | |
19 | +} | |
20 | + | |
21 | +p { | |
22 | + margin: 1em 0; | |
23 | + line-height: 1.2em; | |
24 | +} | |
25 | + | |
26 | +pre { | |
27 | + border: 1pt dashed black; | |
28 | + white-space: pre; | |
29 | + font-size: 9pt; | |
30 | + overflow: auto; | |
31 | + padding: 1em; | |
32 | +} | |
33 | + | |
34 | +a { | |
35 | + color: #000; | |
36 | + background: none; | |
37 | + padding: 0; | |
38 | + text-decoration: underline; | |
39 | +} | |
40 | + | |
41 | +a.note_super { | |
42 | + vertical-align: super; | |
43 | +} | |
44 | + | |
45 | +a.external:after { | |
46 | + content: " (" attr(href) ") "; | |
47 | +} | |
48 | + | |
49 | +.noexists a { | |
50 | + display: none; | |
51 | +} | |
52 | + | |
53 | +img { border: none; } | |
54 | + | |
55 | +div.ie5 { text-align: center; } | |
56 | + | |
57 | +.style_table, | |
58 | +.style_th, | |
59 | +.style_td { | |
60 | + border: 1px solid #000; | |
61 | + border-collapse: collapse; | |
62 | +} | |
63 | + | |
64 | +.style_table { margin: auto; } | |
65 | + | |
66 | +td.style_td { | |
67 | + text-align: left; | |
68 | +} | |
69 | + | |
70 | +.small { | |
71 | + font-size: 80%; | |
72 | +} | |
73 | + | |
74 | +span.size1 { | |
75 | + font-size: xx-small; | |
76 | + line-height: 130%; | |
77 | + text-indent: 0px; | |
78 | + display: inline; | |
79 | +} | |
80 | +span.size2 { | |
81 | + font-size: x-small; | |
82 | + line-height: 130%; | |
83 | + text-indent: 0px; | |
84 | + display: inline; | |
85 | +} | |
86 | +span.size3 { | |
87 | + font-size: small; | |
88 | + line-height: 130%; | |
89 | + text-indent: 0px; | |
90 | + display: inline; | |
91 | +} | |
92 | +span.size4 { | |
93 | + font-size: medium; | |
94 | + line-height: 130%; | |
95 | + text-indent: 0px; | |
96 | + display: inline; | |
97 | +} | |
98 | +span.size5 { | |
99 | + font-size: large; | |
100 | + line-height: 130%; | |
101 | + text-indent: 0px; | |
102 | + display: inline; | |
103 | +} | |
104 | +span.size6 { | |
105 | + font-size: x-large; | |
106 | + line-height: 130%; | |
107 | + text-indent: 0px; | |
108 | + display: inline; | |
109 | +} | |
110 | +span.size7 { | |
111 | + font-size: xx-large; | |
112 | + line-height: 130%; | |
113 | + text-indent: 0px; | |
114 | + display: inline; | |
115 | +} | |
116 | + | |
117 | +.clear { | |
118 | + margin: 0px; | |
119 | + clear: both; | |
120 | +} | |
121 | + | |
122 | +.editsection { display: none; } | |
123 | + | |
124 | +.img_margin { margin: 0.5em 1.4em 0.8em; } | |
125 | + | |
126 | +.navi, .navi_none, .navi_left, li.navi_right { | |
127 | + display: none; | |
128 | +} | |
129 | + | |
130 | +.toc { | |
131 | + border :1px solid #aaaaaa; | |
132 | + background-color: #f9f9f9; | |
133 | + padding: 5px; | |
134 | +} | |
135 | + | |
136 | +#footer { | |
137 | + border-top: 1px solid #000; | |
138 | +} | |
139 | + | |
140 | +#footer img, | |
141 | +#footer li { | |
142 | + display: none; | |
143 | +} | |
144 | + | |
145 | +#footer li#lastmod { | |
146 | + display: list-item; | |
147 | + font-size: 11pt; | |
148 | + text-align: left; | |
149 | +} |
@@ -0,0 +1,151 @@ | ||
1 | +<?php | |
2 | +/** | |
3 | + * Monobook for PukiWiki | |
4 | + * by lunt | |
5 | + * | |
6 | + * Based on original Monobook's MediaWiki skin. | |
7 | + * | |
8 | + * @author lunt | |
9 | + * @license http://www.gnu.org/licenses/gpl.html GPL 2 or later | |
10 | + * @version $Id$ | |
11 | + */ | |
12 | + | |
13 | +// ------------------------------------------------------------ | |
14 | +// Setting | |
15 | + | |
16 | +// Set image | |
17 | +$logo = 'pukiwiki.png'; | |
18 | +$favicon = ''; | |
19 | + | |
20 | +// Select navigation tabs as follows: | |
21 | +/* add, attachlist, attachlistall, backup, copy, diff, edit, filelist, freeze, help, list, new, rdf, | |
22 | + recent, refer, related, reload, rename, rss, rss10, rss20, search, source, top, trackback, upload, yetlist */ | |
23 | +$tabs = array('edit', 'diff'); | |
24 | + | |
25 | +// Add an external class to external links | |
26 | +$enable_relink = FALSE; | |
27 | + | |
28 | +// Enable access counter in footer | |
29 | +$enable_footer_counter = FALSE; | |
30 | + | |
31 | +// ------------------------------------------------------------ | |
32 | +// Code | |
33 | + | |
34 | +if (! defined('UI_LANG')) die('UI_LANG is not set'); | |
35 | +if (! isset($_LANG)) die('$_LANG is not set'); | |
36 | +if (! defined('PKWK_READONLY')) die('PKWK_READONLY is not set'); | |
37 | +if (! exist_plugin('monobook_navigation')) die('monobook_navigation plugin not found'); | |
38 | +if (! exist_plugin('wikinote')) die('wikinote plugin not found'); | |
39 | + | |
40 | +// MenuBar & SideBar | |
41 | +$menu = exist_plugin_convert('menu') ? do_plugin_convert('menu') : ''; | |
42 | +$side = exist_plugin_convert('side') ? do_plugin_convert('side') : ''; | |
43 | + | |
44 | +// wikinote plugin | |
45 | +$wikinote = new PluginWikinote; | |
46 | + | |
47 | +// Background color | |
48 | +global $rule_page, $whatsdeleted, $interwiki; | |
49 | +$specialpages = array( | |
50 | + $help_page, | |
51 | + $rule_page, | |
52 | + $whatsnew, | |
53 | + $whatsdeleted, | |
54 | + $interwiki | |
55 | +); | |
56 | +$background = (empty($vars['page']) || $wikinote->is_notepage() || in_array($vars['page'], $specialpages)) ? | |
57 | + ' class="specialbg"' : ''; | |
58 | + | |
59 | +// Login | |
60 | +$login = ''; | |
61 | +if (exist_plugin('monobook_login')) { | |
62 | + do_plugin_init('monobook_login'); | |
63 | + $login = plugin_monobook_login_inline(); | |
64 | +} | |
65 | + | |
66 | +// Navigation tab | |
67 | +$navigation_tab = plugin_monobook_navigation($wikinote, $tabs, $background); | |
68 | + | |
69 | +// Title | |
70 | +global $plugin; | |
71 | +$display_title = $plugin === 'read' ? $wikinote->get_title($vars['page']) : $title; | |
72 | + | |
73 | +// relink.inc.php | |
74 | +if ($enable_relink === TRUE && exist_plugin('relink')) { | |
75 | + $body = plugin_relink($body); | |
76 | + $menu = plugin_relink($menu); | |
77 | + $side = plugin_relink($side); | |
78 | + $navigation_tab = plugin_relink($navigation_tab); | |
79 | +} | |
80 | + | |
81 | +// Footer | |
82 | +$lastmodified = empty($lastmodified) ? '' : '<li id="lastmod">Last-modified: ' . $lastmodified . '</li>'; | |
83 | +$siteadmin = ! empty($modifierlink) && ! empty($modifier) ? | |
84 | + '<li>Site admin: <a href="' . $modifierlink . '">' . $modifier . '</a></li>' : ''; | |
85 | +$footer_counter = $enable_footer_counter && exist_plugin('counter') && plugin_counter_inline() ? | |
86 | + '<li>This page has been accessed ' . number_format(plugin_counter_inline()) . ' times.</li>' : ''; | |
87 | + | |
88 | +// ------------------------------------------------------------ | |
89 | +// Output | |
90 | + | |
91 | +// HTTP headers | |
92 | +pkwk_common_headers(); | |
93 | +header('Cache-control: no-cache'); | |
94 | +header('Pragma: no-cache'); | |
95 | +header('Content-Type: text/html; charset=' . CONTENT_CHARSET); | |
96 | + | |
97 | +// HTML DTD | |
98 | +if (isset($pkwk_dtd)) { | |
99 | + $meta_content_type = pkwk_output_dtd($pkwk_dtd); | |
100 | +} else { | |
101 | + $meta_content_type = pkwk_output_dtd(); | |
102 | +} | |
103 | +?> | |
104 | + | |
105 | +<head> | |
106 | + <?php echo $meta_content_type ?> | |
107 | +<?php if ($nofollow || ! $is_read) { ?> <meta name="robots" content="NOINDEX,NOFOLLOW" /><?php } ?> | |
108 | +<?php if (PKWK_ALLOW_JAVASCRIPT && isset($javascript)) { ?> <meta http-equiv="Content-Script-Type" content="text/javascript" /><?php } ?> | |
109 | + <title><?php echo $display_title ?> - <?php echo $page_title ?></title> | |
110 | +<?php if ($favicon) echo ' <link rel="shortcut icon" href="' . IMAGE_DIR . $favicon . '" type="image/x-icon" />' ?> | |
111 | + <link rel="stylesheet" type="text/css" media="screen" href="<?php echo SKIN_DIR ?>monobook/monobook.css" /> | |
112 | +<?php if ($side) echo ' <link rel="stylesheet" type="text/css" media="screen" href="' . SKIN_DIR . 'monobook/monobook.threecolumn.css" />' . "\n" ?> | |
113 | + <link rel="stylesheet" type="text/css" media="print" href="<?php echo SKIN_DIR ?>monobook/monobook.print.css" /> | |
114 | + <link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $_LINK['rss'] ?>" /> | |
115 | +<?php echo $head_tag ?> | |
116 | +</head> | |
117 | +<body> | |
118 | +<div id="globalWrapper"> | |
119 | + <div id="menubar"><?php echo $menu ?></div> | |
120 | + <div id="mainColumnWrapper"> | |
121 | + <div id="main-column"> | |
122 | + <?php echo $navigation_tab ?> | |
123 | + <div id="content"<?php echo $background ?>> | |
124 | + <h1 class="firstHeading"><?php echo $display_title ?></h1><div id="contentSub"></div> | |
125 | + <?php echo $body ?><?php echo $notes ?> | |
126 | + </div> | |
127 | + </div> | |
128 | + </div> | |
129 | + <?php if($side) echo '<div id="sidebar">' . $side . '</div>' ?> | |
130 | + <div style="clear:both;height:1em;"></div> | |
131 | + <div id="logo"><a href="<?php echo get_script_uri() ?>" style="background-image: url(<?php echo IMAGE_DIR . $logo ?>);"></a></div> | |
132 | + <div id="personal"><ul><?php echo $login ?></ul></div> | |
133 | + <div id="footer"> | |
134 | + <div id="f-officialico"> | |
135 | + <a href="http://pukiwiki.sourceforge.jp/"><img src="<?php echo IMAGE_DIR ?>b_pukiwiki.official.png" alt="PukiWiki-official" /></a> | |
136 | + </div> | |
137 | + <div id="f-officialdevico"> | |
138 | + <a href="http://pukiwiki.sourceforge.jp/dev/"><img src="<?php echo IMAGE_DIR ?>b_pukiwiki.dev.png" alt="PukiWiki-dev" /></a> | |
139 | + </div> | |
140 | + <div id="f-list"> | |
141 | + <ul><?php echo $lastmodified . $siteadmin . $footer_counter ?> | |
142 | + <li>convert time: <?php echo function_exists('elapsedtime') ? elapsedtime() : $taketime ?> sec</li> | |
143 | + <li>Powered by PukiWiki</li> | |
144 | + <li><a href="http://www.luntf.com/">Monobook for PukiWiki</a></li> | |
145 | + </ul> | |
146 | + </div> | |
147 | + <div style="clear:both;"></div> | |
148 | + </div> | |
149 | +</div> | |
150 | +</body> | |
151 | +</html> |
@@ -0,0 +1,151 @@ | ||
1 | +/* -------------------- Layout -------------------- */ | |
2 | +#main-column { | |
3 | + margin-right: 12.2em; | |
4 | +} | |
5 | + | |
6 | +#content { | |
7 | + border-right: 1px solid #aaa; | |
8 | + overflow: hidden; | |
9 | +} | |
10 | + | |
11 | +/* IE6 */ | |
12 | +* html #content { | |
13 | + width: 100%; | |
14 | +} | |
15 | + | |
16 | +#sidebar { | |
17 | + width: 11.6em; | |
18 | + float: right; | |
19 | + margin-top: 2.8em; | |
20 | + margin-left: -11.6em; | |
21 | + overflow: hidden; | |
22 | + position: relative; | |
23 | +} | |
24 | + | |
25 | +/* IE6 + IE7 */ | |
26 | +* html #sidebar { | |
27 | + margin-top: 3.0em; | |
28 | +} | |
29 | + | |
30 | +/* Opera8 */ | |
31 | +*+html > /**/body #sidebar { | |
32 | + margin-top: 2.8em; | |
33 | +} | |
34 | + | |
35 | +/* -------------------- SideBar -------------------- */ | |
36 | + | |
37 | +#sidebar { | |
38 | + /*word-break: break-all;*/ | |
39 | + overflow: hidden; | |
40 | + position: relative; | |
41 | +} | |
42 | + | |
43 | +#sidebar div.menubox, | |
44 | +#sidebar div.monobook_recent, | |
45 | +#sidebar div.toolbox { | |
46 | + font-size: 95%; | |
47 | + background-color: #fff; | |
48 | + border: 1px solid #aaa; | |
49 | + padding: 0 0 .3em .5em; | |
50 | + margin-bottom: .5em; | |
51 | +} | |
52 | + | |
53 | +#sidebar ul { | |
54 | + font-size: 95%; | |
55 | + line-height: 1.5em; | |
56 | +} | |
57 | + | |
58 | +#sidebar li { | |
59 | + margin: 0; | |
60 | +} | |
61 | + | |
62 | +/*#sidebar div.menubox a { | |
63 | + display: block; | |
64 | +}*/ | |
65 | + | |
66 | +#sidebar h2, | |
67 | +#sidebar h3, | |
68 | +#sidebar h4, | |
69 | +#sidebar h5 { | |
70 | + display: inline; | |
71 | + font-size: 91%; | |
72 | + font-weight: normal; | |
73 | + height: 1em; | |
74 | + padding: 0 1em 0 .5em; | |
75 | + border: none; | |
76 | + text-transform: lowercase; | |
77 | + white-space: nowrap; | |
78 | +} | |
79 | + | |
80 | +/* -------------------- Plugin -------------------- */ | |
81 | + | |
82 | +/* monobook_recent.inc.php */ | |
83 | +#sidebar div.monobook_recent { | |
84 | + padding-top: .3em; | |
85 | +} | |
86 | + | |
87 | +#sidebar div.monobook_recent strong { | |
88 | + font-size: 95%; | |
89 | +} | |
90 | + | |
91 | +#sidebar div.monobook_recent ul { | |
92 | + margin-top: 0; | |
93 | +} | |
94 | + | |
95 | +/* monobook_search.inc.php */ | |
96 | +#sidebar div.monobook_search { | |
97 | + background-color: #fff; | |
98 | + border: 1px solid #aaa; | |
99 | + padding: .5em .4em .4em; | |
100 | + text-align: center; | |
101 | + font-size: 95%; | |
102 | + margin-bottom: .5em; | |
103 | +} | |
104 | + | |
105 | +/* monobook_toolbox.inc.php */ | |
106 | +#sidebar div.toolbox a { | |
107 | + display: block; | |
108 | +} | |
109 | + | |
110 | +#sidebar div.toolbox hr { | |
111 | + margin-right: .5em; | |
112 | +} | |
113 | + | |
114 | +/* tag.inc.php */ | |
115 | +#sidebar .htmltagcloud { | |
116 | + font-size: 10px; | |
117 | + line-height: 2em; | |
118 | + background-color: #fff; | |
119 | + border: 1px solid #aaa; | |
120 | +} | |
121 | + | |
122 | +#sidebar .htmltagcloud span a { | |
123 | + margin: 0 2px; | |
124 | + padding-bottom: 1em; | |
125 | +} | |
126 | + | |
127 | +#sidebar .tagcloud0 { font-size: 100%;} | |
128 | +#sidebar .tagcloud1 { font-size: 105%;} | |
129 | +#sidebar .tagcloud2 { font-size: 110%;} | |
130 | +#sidebar .tagcloud3 { font-size: 115%;} | |
131 | +#sidebar .tagcloud4 { font-size: 120%;} | |
132 | +#sidebar .tagcloud5 { font-size: 125%;} | |
133 | +#sidebar .tagcloud6 { font-size: 130%;} | |
134 | +#sidebar .tagcloud7 { font-size: 135%;} | |
135 | +#sidebar .tagcloud8 { font-size: 140%;} | |
136 | +#sidebar .tagcloud9 { font-size: 145%;} | |
137 | +#sidebar .tagcloud10 { font-size: 150%;} | |
138 | +#sidebar .tagcloud11 { font-size: 155%;} | |
139 | +#sidebar .tagcloud12 { font-size: 160%;} | |
140 | +#sidebar .tagcloud13 { font-size: 165%;} | |
141 | +#sidebar .tagcloud14 { font-size: 170%;} | |
142 | +#sidebar .tagcloud15 { font-size: 175%;} | |
143 | +#sidebar .tagcloud16 { font-size: 180%;} | |
144 | +#sidebar .tagcloud17 { font-size: 185%;} | |
145 | +#sidebar .tagcloud18 { font-size: 190%;} | |
146 | +#sidebar .tagcloud19 { font-size: 195%;} | |
147 | +#sidebar .tagcloud20 { font-size: 200%;} | |
148 | +#sidebar .tagcloud21 { font-size: 205%;} | |
149 | +#sidebar .tagcloud22 { font-size: 210%;} | |
150 | +#sidebar .tagcloud23 { font-size: 215%;} | |
151 | +#sidebar .tagcloud24 { font-size: 220%;} |