- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
+ GNU GENERAL PUBLIC LICENSE\r
+ Version 2, June 1991\r
+\r
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
+ 675 Mass Ave, Cambridge, MA 02139, USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+ Preamble\r
+\r
+ The licenses for most software are designed to take away your\r
+freedom to share and change it. By contrast, the GNU General Public\r
+License is intended to guarantee your freedom to share and change free\r
+software--to make sure the software is free for all its users. This\r
+General Public License applies to most of the Free Software\r
+Foundation's software and to any other program whose authors commit to\r
+using it. (Some other Free Software Foundation software is covered by\r
+the GNU Library General Public License instead.) You can apply it to\r
+your programs, too.\r
+\r
+ When we speak of free software, we are referring to freedom, not\r
+price. Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+this service if you wish), that you receive source code or can get it\r
+if you want it, that you can change the software or use pieces of it\r
+in new free programs; and that you know you can do these things.\r
+\r
+ To protect your rights, we need to make restrictions that forbid\r
+anyone to deny you these rights or to ask you to surrender the rights.\r
+These restrictions translate to certain responsibilities for you if you\r
+distribute copies of the software, or if you modify it.\r
+\r
+ For example, if you distribute copies of such a program, whether\r
+gratis or for a fee, you must give the recipients all the rights that\r
+you have. You must make sure that they, too, receive or can get the\r
+source code. And you must show them these terms so they know their\r
+rights.\r
+\r
+ We protect your rights with two steps: (1) copyright the software, and\r
+(2) offer you this license which gives you legal permission to copy,\r
+distribute and/or modify the software.\r
+\r
+ Also, for each author's protection and ours, we want to make certain\r
+that everyone understands that there is no warranty for this free\r
+software. If the software is modified by someone else and passed on, we\r
+want its recipients to know that what they have is not the original, so\r
+that any problems introduced by others will not reflect on the original\r
+authors' reputations.\r
+\r
+ Finally, any free program is threatened constantly by software\r
+patents. We wish to avoid the danger that redistributors of a free\r
+program will individually obtain patent licenses, in effect making the\r
+program proprietary. To prevent this, we have made it clear that any\r
+patent must be licensed for everyone's free use or not licensed at all.\r
+\r
+ The precise terms and conditions for copying, distribution and\r
+modification follow.\r
+\r
+ GNU GENERAL PUBLIC LICENSE\r
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+ 0. This License applies to any program or other work which contains\r
+a notice placed by the copyright holder saying it may be distributed\r
+under the terms of this General Public License. The "Program", below,\r
+refers to any such program or work, and a "work based on the Program"\r
+means either the Program or any derivative work under copyright law:\r
+that is to say, a work containing the Program or a portion of it,\r
+either verbatim or with modifications and/or translated into another\r
+language. (Hereinafter, translation is included without limitation in\r
+the term "modification".) Each licensee is addressed as "you".\r
+\r
+Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope. The act of\r
+running the Program is not restricted, and the output from the Program\r
+is covered only if its contents constitute a work based on the\r
+Program (independent of having been made by running the Program).\r
+Whether that is true depends on what the Program does.\r
+\r
+ 1. You may copy and distribute verbatim copies of the Program's\r
+source code as you receive it, in any medium, provided that you\r
+conspicuously and appropriately publish on each copy an appropriate\r
+copyright notice and disclaimer of warranty; keep intact all the\r
+notices that refer to this License and to the absence of any warranty;\r
+and give any other recipients of the Program a copy of this License\r
+along with the Program.\r
+\r
+You may charge a fee for the physical act of transferring a copy, and\r
+you may at your option offer warranty protection in exchange for a fee.\r
+\r
+ 2. You may modify your copy or copies of the Program or any portion\r
+of it, thus forming a work based on the Program, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+ a) You must cause the modified files to carry prominent notices\r
+ stating that you changed the files and the date of any change.\r
+\r
+ b) You must cause any work that you distribute or publish, that in\r
+ whole or in part contains or is derived from the Program or any\r
+ part thereof, to be licensed as a whole at no charge to all third\r
+ parties under the terms of this License.\r
+\r
+ c) If the modified program normally reads commands interactively\r
+ when run, you must cause it, when started running for such\r
+ interactive use in the most ordinary way, to print or display an\r
+ announcement including an appropriate copyright notice and a\r
+ notice that there is no warranty (or else, saying that you provide\r
+ a warranty) and that users may redistribute the program under\r
+ these conditions, and telling the user how to view a copy of this\r
+ License. (Exception: if the Program itself is interactive but\r
+ does not normally print such an announcement, your work based on\r
+ the Program is not required to print an announcement.)\r
+\r
+These requirements apply to the modified work as a whole. If\r
+identifiable sections of that work are not derived from the Program,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works. But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Program, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote it.\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Program.\r
+\r
+In addition, mere aggregation of another work not based on the Program\r
+with the Program (or with a work based on the Program) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+ 3. You may copy and distribute the Program (or a work based on it,\r
+under Section 2) in object code or executable form under the terms of\r
+Sections 1 and 2 above provided that you also do one of the following:\r
+\r
+ a) Accompany it with the complete corresponding machine-readable\r
+ source code, which must be distributed under the terms of Sections\r
+ 1 and 2 above on a medium customarily used for software interchange; or,\r
+\r
+ b) Accompany it with a written offer, valid for at least three\r
+ years, to give any third party, for a charge no more than your\r
+ cost of physically performing source distribution, a complete\r
+ machine-readable copy of the corresponding source code, to be\r
+ distributed under the terms of Sections 1 and 2 above on a medium\r
+ customarily used for software interchange; or,\r
+\r
+ c) Accompany it with the information you received as to the offer\r
+ to distribute corresponding source code. (This alternative is\r
+ allowed only for noncommercial distribution and only if you\r
+ received the program in object code or executable form with such\r
+ an offer, in accord with Subsection b above.)\r
+\r
+The source code for a work means the preferred form of the work for\r
+making modifications to it. For an executable work, complete source\r
+code means all the source code for all modules it contains, plus any\r
+associated interface definition files, plus the scripts used to\r
+control compilation and installation of the executable. However, as a\r
+special exception, the source code distributed need not include\r
+anything that is normally distributed (in either source or binary\r
+form) with the major components (compiler, kernel, and so on) of the\r
+operating system on which the executable runs, unless that component\r
+itself accompanies the executable.\r
+\r
+If distribution of executable or object code is made by offering\r
+access to copy from a designated place, then offering equivalent\r
+access to copy the source code from the same place counts as\r
+distribution of the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\r
+ 4. You may not copy, modify, sublicense, or distribute the Program\r
+except as expressly provided under this License. Any attempt\r
+otherwise to copy, modify, sublicense or distribute the Program is\r
+void, and will automatically terminate your rights under this License.\r
+However, parties who have received copies, or rights, from you under\r
+this License will not have their licenses terminated so long as such\r
+parties remain in full compliance.\r
+\r
+ 5. You are not required to accept this License, since you have not\r
+signed it. However, nothing else grants you permission to modify or\r
+distribute the Program or its derivative works. These actions are\r
+prohibited by law if you do not accept this License. Therefore, by\r
+modifying or distributing the Program (or any work based on the\r
+Program), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Program or works based on it.\r
+\r
+ 6. Each time you redistribute the Program (or any work based on the\r
+Program), the recipient automatically receives a license from the\r
+original licensor to copy, distribute or modify the Program subject to\r
+these terms and conditions. You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties to\r
+this License.\r
+\r
+ 7. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License. If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Program at all. For example, if a patent\r
+license would not permit royalty-free redistribution of the Program by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Program.\r
+\r
+If any portion of this section is held invalid or unenforceable under\r
+any particular circumstance, the balance of the section is intended to\r
+apply and the section as a whole is intended to apply in other\r
+circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system, which is\r
+implemented by public license practices. Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\r
+ 8. If the distribution and/or use of the Program is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Program under this License\r
+may add an explicit geographical distribution limitation excluding\r
+those countries, so that distribution is permitted only in or among\r
+countries not thus excluded. In such case, this License incorporates\r
+the limitation as if written in the body of this License.\r
+\r
+ 9. The Free Software Foundation may publish revised and/or new versions\r
+of the General Public License from time to time. Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number. If the Program\r
+specifies a version number of this License which applies to it and "any\r
+later version", you have the option of following the terms and conditions\r
+either of that version or of any later version published by the Free\r
+Software Foundation. If the Program does not specify a version number of\r
+this License, you may choose any version ever published by the Free Software\r
+Foundation.\r
+\r
+ 10. If you wish to incorporate parts of the Program into other free\r
+programs whose distribution conditions are different, write to the author\r
+to ask for permission. For software which is copyrighted by the Free\r
+Software Foundation, write to the Free Software Foundation; we sometimes\r
+make exceptions for this. Our decision will be guided by the two goals\r
+of preserving the free status of all derivatives of our free software and\r
+of promoting the sharing and reuse of software generally.\r
+\r
+ NO WARRANTY\r
+\r
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\r
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\r
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\r
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+REPAIR OR CORRECTION.\r
+\r
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+POSSIBILITY OF SUCH DAMAGES.\r
+\r
+ END OF TERMS AND CONDITIONS\r
+\r
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>WordPress › ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>WordPress › ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
- <br /> Version 2.3
+ <br /> Version 2.5
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
-<h2>Upgrading from any previous WordPress to 2.3:</h2>
+<h2>Upgrading from any previous WordPress to 2.5:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<h1>System Recommendations</h1>
<ul>
- <li>PHP version <strong>4.2</strong> or higher.</li>
+ <li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> URL.</p>
-<p>Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address dicrete. The script will <i>delete</i> emails that are successfully posted.</p>
+<p>Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<?php
+define('DOING_AJAX', true);
+
require_once('../wp-config.php');
require_once('includes/admin.php');
-define('DOING_AJAX', true);
-
-check_ajax_referer();
if ( !is_user_logged_in() )
die('-1');
-function get_out_now() { exit; }
-add_action( 'shutdown', 'get_out_now', -1 );
-
-function wp_ajax_meta_row( $pid, $mid, $key, $value ) {
- $value = attribute_escape($value);
- $key_js = addslashes(wp_specialchars($key, 'double'));
- $key = attribute_escape($key);
- $r .= "<tr id='meta-$mid'><td valign='top'>";
- $r .= "<input name='meta[$mid][key]' tabindex='6' onkeypress='return killSubmit(\"theList.ajaxUpdater('meta','meta-$mid');\",event);' type='text' size='20' value='$key' />";
- $r .= "</td><td><textarea name='meta[$mid][value]' tabindex='6' rows='2' cols='30'>$value</textarea></td><td align='center'>";
- $r .= "<input name='updatemeta' type='button' class='updatemeta' tabindex='6' value='".attribute_escape(__('Update'))."' onclick='return theList.ajaxUpdater('meta','meta-$mid');' /><br />";
- $r .= "<input name='deletemeta[$mid]' type='submit' onclick=\"return deleteSomething( 'meta', $mid, '";
- $r .= js_escape(sprintf(__("You are about to delete the '%s' custom field on this post.\n'OK' to delete, 'Cancel' to stop."), $key_js));
- $r .= "' );\" class='deletemeta' tabindex='6' value='".attribute_escape(__('Delete'))."' /></td></tr>";
- return $r;
+if ( isset($_GET['action']) && 'ajax-tag-search' == $_GET['action'] ) {
+ if ( !current_user_can( 'manage_categories' ) )
+ die('-1');
+
+ $s = $_GET['q']; // is this slashed already?
+
+ if ( strstr( $s, ',' ) )
+ die; // it's a multiple tag insert, we won't find anything
+ $results = $wpdb->get_col( "SELECT name FROM $wpdb->terms WHERE name LIKE ('%$s%')" );
+ echo join( $results, "\n" );
+ die;
}
-$id = (int) $_POST['id'];
-switch ( $_POST['action'] ) :
+$id = isset($_POST['id'])? (int) $_POST['id'] : 0;
+switch ( $action = $_POST['action'] ) :
case 'delete-comment' :
+ check_ajax_referer( "delete-comment_$id" );
if ( !$comment = get_comment( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
die('-1');
- if ( wp_delete_comment( $comment->comment_ID ) )
- die('1');
- else die('0');
+ if ( isset($_POST['spam']) && 1 == $_POST['spam'] )
+ $r = wp_set_comment_status( $comment->comment_ID, 'spam' );
+ else
+ $r = wp_delete_comment( $comment->comment_ID );
+
+ die( $r ? '1' : '0' );
break;
-case 'delete-comment-as-spam' :
- if ( !$comment = get_comment( $id ) )
- die('0');
- if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
+case 'delete-cat' :
+ check_ajax_referer( "delete-category_$id" );
+ if ( !current_user_can( 'manage_categories' ) )
die('-1');
- if ( wp_set_comment_status( $comment->comment_ID, 'spam' ) )
+ if ( wp_delete_category( $id ) )
die('1');
else die('0');
break;
-case 'delete-cat' :
+case 'delete-tag' :
+ check_ajax_referer( "delete-tag_$id" );
if ( !current_user_can( 'manage_categories' ) )
die('-1');
- if ( wp_delete_category( $id ) )
+ if ( wp_delete_term($id, 'post_tag'))
die('1');
else die('0');
break;
+case 'delete-link-cat' :
+ check_ajax_referer( "delete-link-category_$id" );
+ if ( !current_user_can( 'manage_categories' ) )
+ die('-1');
+
+ $cat_name = get_term_field('name', $id, 'link_category');
+
+ // Don't delete the default cats.
+ if ( $id == get_option('default_link_category') ) {
+ $x = new WP_AJAX_Response( array(
+ 'what' => 'link-cat',
+ 'id' => $id,
+ 'data' => new WP_Error( 'default-link-cat', sprintf(__("Can’t delete the <strong>%s</strong> category: this is the default one"), $cat_name) )
+ ) );
+ $x->send();
+ }
+
+ $r = wp_delete_term($id, 'link_category');
+ if ( !$r )
+ die('0');
+ if ( is_wp_error($r) ) {
+ $x = new WP_AJAX_Response( array(
+ 'what' => 'link-cat',
+ 'id' => $id,
+ 'data' => $r
+ ) );
+ $x->send();
+ }
+ die('1');
+ break;
case 'delete-link' :
+ check_ajax_referer( "delete-bookmark_$id" );
if ( !current_user_can( 'manage_links' ) )
die('-1');
else die('0');
break;
case 'delete-meta' :
+ check_ajax_referer( "delete-meta_$id" );
if ( !$meta = get_post_meta_by_id( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $meta->post_id ) )
die('0');
break;
case 'delete-post' :
+ check_ajax_referer( "{$action}_$id" );
if ( !current_user_can( 'delete_post', $id ) )
die('-1');
if ( wp_delete_post( $id ) )
die('1');
- else die('0');
+ else
+ die('0');
break;
case 'delete-page' :
+ check_ajax_referer( "{$action}_$id" );
if ( !current_user_can( 'delete_page', $id ) )
die('-1');
die('-1');
if ( 'unapproved' == wp_get_comment_status($comment->comment_ID) ) {
+ check_ajax_referer( "approve-comment_$id" );
if ( wp_set_comment_status( $comment->comment_ID, 'approve' ) )
die('1');
} else {
+ check_ajax_referer( "unapprove-comment_$id" );
if ( wp_set_comment_status( $comment->comment_ID, 'hold' ) )
die('1');
}
die('0');
break;
case 'add-category' : // On the Fly
+ check_ajax_referer( $action );
if ( !current_user_can( 'manage_categories' ) )
die('-1');
$names = explode(',', $_POST['newcat']);
+ if ( 0 > $parent = (int) $_POST['newcat_parent'] )
+ $parent = 0;
+ $post_category = isset($_POST['post_category'])? (array) $_POST['post_category'] : array();
+ $checked_categories = array_map( 'absint', (array) $post_category );
+
$x = new WP_Ajax_Response();
foreach ( $names as $cat_name ) {
$cat_name = trim($cat_name);
- if ( !$category_nicename = sanitize_title($cat_name) )
- die('0');
- if ( !$cat_id = category_exists( $cat_name ) )
- $cat_id = wp_create_category( $cat_name );
- $cat_name = wp_specialchars(stripslashes($cat_name));
+ $category_nicename = sanitize_title($cat_name);
+ if ( '' === $category_nicename )
+ continue;
+ $cat_id = wp_create_category( $cat_name, $parent );
+ $checked_categories[] = $cat_id;
+ if ( $parent ) // Do these all at once in a second
+ continue;
+ $category = get_category( $cat_id );
+ ob_start();
+ wp_category_checklist( 0, $cat_id, $checked_categories );
+ $data = ob_get_contents();
+ ob_end_clean();
$x->add( array(
'what' => 'category',
'id' => $cat_id,
- 'data' => "<li id='category-$cat_id'><label for='in-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='post_category[]' id='in-category-$cat_id'/> $cat_name</label></li>"
+ 'data' => $data,
+ 'position' => -1
) );
}
+ if ( $parent ) { // Foncy - replace the parent and all its children
+ $parent = get_category( $parent );
+ ob_start();
+ dropdown_categories( 0, $parent );
+ $data = ob_get_contents();
+ ob_end_clean();
+ $x->add( array(
+ 'what' => 'category',
+ 'id' => $parent->term_id,
+ 'old_id' => $parent->term_id,
+ 'data' => $data,
+ 'position' => -1
+ ) );
+
+ }
$x->send();
break;
case 'add-link-category' : // On the Fly
+ check_ajax_referer( $action );
if ( !current_user_can( 'manage_categories' ) )
die('-1');
$names = explode(',', $_POST['newcat']);
$x = new WP_Ajax_Response();
foreach ( $names as $cat_name ) {
$cat_name = trim($cat_name);
- if ( !$slug = sanitize_title($cat_name) )
- die('0');
+ $slug = sanitize_title($cat_name);
+ if ( '' === $slug )
+ continue;
if ( !$cat_id = is_term( $cat_name, 'link_category' ) ) {
$cat_id = wp_insert_term( $cat_name, 'link_category' );
- $cat_id = $cat_id['term_id'];
}
+ $cat_id = $cat_id['term_id'];
$cat_name = wp_specialchars(stripslashes($cat_name));
$x->add( array(
'what' => 'link-category',
'id' => $cat_id,
- 'data' => "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='link_category[]' id='in-link-category-$cat_id'/> $cat_name</label></li>"
+ 'data' => "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='link_category[]' id='in-link-category-$cat_id'/> $cat_name</label></li>",
+ 'position' => -1
) );
}
$x->send();
break;
case 'add-cat' : // From Manage->Categories
+ check_ajax_referer( 'add-category' );
if ( !current_user_can( 'manage_categories' ) )
die('-1');
- if ( !$cat = wp_insert_category( $_POST ) )
- die('0');
- if ( !$cat = get_category( $cat ) )
+
+ if ( '' === trim($_POST['cat_name']) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'cat',
+ 'id' => new WP_Error( 'cat_name', __('You did not enter a category name.') )
+ ) );
+ $x->send();
+ }
+
+ if ( category_exists( trim( $_POST['cat_name'] ) ) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'cat',
+ 'id' => new WP_Error( 'cat_exists', __('The category you are trying to create already exists.'), array( 'form-field' => 'cat_name' ) ),
+ ) );
+ $x->send();
+ }
+
+ $cat = wp_insert_category( $_POST, true );
+
+ if ( is_wp_error($cat) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'cat',
+ 'id' => $cat
+ ) );
+ $x->send();
+ }
+
+ if ( !$cat || (!$cat = get_category( $cat )) )
die('0');
+
$level = 0;
- $cat_full_name = $cat->cat_name;
+ $cat_full_name = $cat->name;
$_cat = $cat;
- while ( $_cat->category_parent ) {
- $_cat = get_category( $_cat->category_parent );
- $cat_full_name = $_cat->cat_name . ' — ' . $cat_full_name;
+ while ( $_cat->parent ) {
+ $_cat = get_category( $_cat->parent );
+ $cat_full_name = $_cat->name . ' — ' . $cat_full_name;
$level++;
}
$cat_full_name = attribute_escape($cat_full_name);
$x = new WP_Ajax_Response( array(
'what' => 'cat',
- 'id' => $cat->cat_ID,
+ 'id' => $cat->term_id,
'data' => _cat_row( $cat, $level, $cat_full_name ),
- 'supplemental' => array('name' => $cat_full_name, 'show-link' => sprintf(__( 'Category <a href="#%s">%s</a> added' ), "cat-$cat->cat_ID", $cat_full_name))
+ 'supplemental' => array('name' => $cat_full_name, 'show-link' => sprintf(__( 'Category <a href="#%s">%s</a> added' ), "cat-$cat->term_id", $cat_full_name))
+ ) );
+ $x->send();
+ break;
+case 'add-link-cat' : // From Blogroll -> Categories
+ check_ajax_referer( 'add-link-category' );
+ if ( !current_user_can( 'manage_categories' ) )
+ die('-1');
+
+ if ( '' === trim($_POST['name']) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'link-cat',
+ 'id' => new WP_Error( 'name', __('You did not enter a category name.') )
+ ) );
+ $x->send();
+ }
+
+ $r = wp_insert_term($_POST['name'], 'link_category', $_POST );
+ if ( is_wp_error( $r ) ) {
+ $x = new WP_AJAX_Response( array(
+ 'what' => 'link-cat',
+ 'id' => $r
+ ) );
+ $x->send();
+ }
+
+ extract($r, EXTR_SKIP);
+
+ if ( !$link_cat = link_cat_row( $term_id ) )
+ die('0');
+
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'link-cat',
+ 'id' => $term_id,
+ 'data' => $link_cat
+ ) );
+ $x->send();
+ break;
+case 'add-tag' : // From Manage->Tags
+ check_ajax_referer( 'add-tag' );
+ if ( !current_user_can( 'manage_categories' ) )
+ die('-1');
+
+ if ( '' === trim($_POST['name']) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'tag',
+ 'id' => new WP_Error( 'name', __('You did not enter a tag name.') )
+ ) );
+ $x->send();
+ }
+
+ $tag = wp_insert_term($_POST['name'], 'post_tag', $_POST );
+
+ if ( is_wp_error($tag) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'tag',
+ 'id' => $tag
+ ) );
+ $x->send();
+ }
+
+ if ( !$tag || (!$tag = get_term( $tag['term_id'], 'post_tag' )) )
+ die('0');
+
+ $tag_full_name = $tag->name;
+ $tag_full_name = attribute_escape($tag_full_name);
+
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'tag',
+ 'id' => $tag->term_id,
+ 'data' => _tag_row( $tag ),
+ 'supplemental' => array('name' => $tag_full_name, 'show-link' => sprintf(__( 'Tag <a href="#%s">%s</a> added' ), "tag-$tag->term_id", $tag_full_name))
) );
$x->send();
break;
case 'add-comment' :
+ check_ajax_referer( $action );
if ( !current_user_can( 'edit_post', $id ) )
die('-1');
$search = isset($_POST['s']) ? $_POST['s'] : false;
- $start = isset($_POST['page']) ? intval($_POST['page']) * 25 : 25;
+ $start = isset($_POST['page']) ? intval($_POST['page']) * 25 - 1: 24;
+ $status = isset($_POST['comment_status']) ? $_POST['comment_status'] : false;
+ $mode = isset($_POST['mode']) ? $_POST['mode'] : 'detail';
- list($comments, $total) = _wp_get_comment_list( $search, $start, 1 );
+ list($comments, $total) = _wp_get_comment_list( $status, $search, $start, 1 );
if ( !$comments )
die('1');
foreach ( (array) $comments as $comment ) {
get_comment( $comment );
ob_start();
- _wp_comment_list_item( $comment->comment_ID );
+ _wp_comment_row( $comment->comment_ID, $mode, false );
$comment_list_item = ob_get_contents();
ob_end_clean();
$x->add( array(
$x->send();
break;
case 'add-meta' :
- if ( !current_user_can( 'edit_post', $id ) )
- die('-1');
- if ( $id < 0 ) {
- $now = current_time('timestamp', 1);
- if ( $pid = wp_insert_post( array(
- 'post_title' => sprintf('Draft created on %s at %s', date(get_option('date_format'), $now), date(get_option('time_format'), $now))
- ) ) ) {
- if ( is_wp_error( $pid ) )
- return $pid;
- $mid = add_meta( $pid );
- }
- else
+ check_ajax_referer( 'add-meta' );
+ $c = 0;
+ $pid = (int) $_POST['post_id'];
+ if ( isset($_POST['metakeyselect']) || isset($_POST['metakeyinput']) ) {
+ if ( !current_user_can( 'edit_post', $pid ) )
+ die('-1');
+ if ( '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) )
+ die('1');
+ if ( $pid < 0 ) {
+ $now = current_time('timestamp', 1);
+ if ( $pid = wp_insert_post( array(
+ 'post_title' => sprintf('Draft created on %s at %s', date(get_option('date_format'), $now), date(get_option('time_format'), $now))
+ ) ) ) {
+ if ( is_wp_error( $pid ) ) {
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'meta',
+ 'data' => $pid
+ ) );
+ $x->send();
+ }
+ $mid = add_meta( $pid );
+ } else {
+ die('0');
+ }
+ } else if ( !$mid = add_meta( $pid ) ) {
die('0');
- } else if ( !$mid = add_meta( $id ) ) {
- die('0');
- }
-
- $meta = get_post_meta_by_id( $mid );
- $key = $meta->meta_key;
- $value = $meta->meta_value;
- $pid = (int) $meta->post_id;
+ }
- $x = new WP_Ajax_Response( array(
- 'what' => 'meta',
- 'id' => $mid,
- 'data' => wp_ajax_meta_row( $pid, $mid, $key, $value ),
- 'supplemental' => array('postid' => $pid)
- ) );
- $x->send();
- break;
-case 'update-meta' :
- $mid = (int) array_pop(array_keys($_POST['meta']));
- $key = $_POST['meta'][$mid]['key'];
- $value = $_POST['meta'][$mid]['value'];
- if ( !$meta = get_post_meta_by_id( $mid ) )
- die('0'); // if meta doesn't exist
- if ( !current_user_can( 'edit_post', $meta->post_id ) )
- die('-1');
- if ( $u = update_meta( $mid, $key, $value ) ) {
+ $meta = get_post_meta_by_id( $mid );
+ $pid = (int) $meta->post_id;
+ $meta = get_object_vars( $meta );
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'meta',
+ 'id' => $mid,
+ 'data' => _list_meta_row( $meta, $c ),
+ 'position' => 1,
+ 'supplemental' => array('postid' => $pid)
+ ) );
+ } else {
+ $mid = (int) array_pop(array_keys($_POST['meta']));
+ $key = $_POST['meta'][$mid]['key'];
+ $value = $_POST['meta'][$mid]['value'];
+ if ( !$meta = get_post_meta_by_id( $mid ) )
+ die('0'); // if meta doesn't exist
+ if ( !current_user_can( 'edit_post', $meta->post_id ) )
+ die('-1');
+ if ( !$u = update_meta( $mid, $key, $value ) )
+ die('1'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
$key = stripslashes($key);
$value = stripslashes($value);
$x = new WP_Ajax_Response( array(
'what' => 'meta',
- 'id' => $mid,
- 'data' => wp_ajax_meta_row( $meta->post_id, $mid, $key, $value ),
+ 'id' => $mid, 'old_id' => $mid,
+ 'data' => _list_meta_row( array(
+ 'meta_key' => $key,
+ 'meta_value' => $value,
+ 'meta_id' => $mid
+ ), $c ),
+ 'position' => 0,
'supplemental' => array('postid' => $meta->post_id)
) );
- $x->send();
}
- die('1'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
+ $x->send();
break;
case 'add-user' :
- if ( !current_user_can('edit_users') )
+ check_ajax_referer( $action );
+ if ( !current_user_can('create_users') )
die('-1');
require_once(ABSPATH . WPINC . '/registration.php');
if ( !$user_id = add_user() )
die('0');
elseif ( is_wp_error( $user_id ) ) {
- foreach( $user_id->get_error_messages() as $message )
- echo "<p>$message<p>";
- exit;
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'user',
+ 'id' => $user_id
+ ) );
+ $x->send();
}
$user_object = new WP_User( $user_id );
+
$x = new WP_Ajax_Response( array(
'what' => 'user',
'id' => $user_id,
- 'data' => user_row( $user_object ),
- 'supplemental' => array('show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login))
+ 'data' => user_row( $user_object, '', $user_object->roles[0] ),
+ 'supplemental' => array(
+ 'show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login),
+ 'role' => $user_object->roles[0]
+ )
) );
$x->send();
break;
case 'autosave' : // The name of this action is hardcoded in edit_post()
- $_POST['post_content'] = $_POST['content'];
- $_POST['post_excerpt'] = $_POST['excerpt'];
+ $nonce_age = check_ajax_referer( 'autosave', 'autosavenonce');
+ global $current_user;
+
$_POST['post_status'] = 'draft';
$_POST['post_category'] = explode(",", $_POST['catslist']);
+ $_POST['tags_input'] = explode(",", $_POST['tags_input']);
if($_POST['post_type'] == 'page' || empty($_POST['post_category']))
unset($_POST['post_category']);
+ $do_autosave = (bool) $_POST['autosave'];
+ $do_lock = true;
+
+ $data = '';
+ $message = sprintf( __('Draft Saved at %s.'), date( __('g:i:s a'), current_time( 'timestamp', true ) ) );
+
+ $supplemental = array();
+
+ $id = 0;
if($_POST['post_ID'] < 0) {
$_POST['temp_ID'] = $_POST['post_ID'];
- $id = wp_write_post();
- if( is_wp_error($id) )
- die($id->get_error_message());
- else
- die("$id");
+ if ( $do_autosave ) {
+ $id = wp_write_post();
+ $data = $message;
+ }
} else {
$post_ID = (int) $_POST['post_ID'];
$_POST['ID'] = $post_ID;
$post = get_post($post_ID);
+
+ if ( $last = wp_check_post_lock( $post->ID ) ) {
+ $do_autosave = $do_lock = false;
+
+ $last_user = get_userdata( $last );
+ $last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
+ $data = new WP_Error( 'locked', sprintf(
+ $_POST['post_type'] == 'page' ? __( 'Autosave disabled: %s is currently editing this page.' ) : __( 'Autosave disabled: %s is currently editing this post.' ),
+ wp_specialchars( $last_user_name )
+ ) );
+
+ $supplemental['disable_autosave'] = 'disable';
+ }
+
if ( 'page' == $post->post_type ) {
if ( !current_user_can('edit_page', $post_ID) )
die(__('You are not allowed to edit this page.'));
if ( !current_user_can('edit_post', $post_ID) )
die(__('You are not allowed to edit this post.'));
}
- wp_update_post($_POST);
+ if ( $do_autosave ) {
+ $id = edit_post();
+ $data = $message;
+ } else {
+ $id = $post->ID;
+ }
}
- die('0');
-break;
+
+ if ( $do_lock && $id && is_numeric($id) )
+ wp_set_post_lock( $id );
+
+ if ( $nonce_age == 2 ) {
+ $supplemental['replace-autosavenonce'] = wp_create_nonce('autosave');
+ $supplemental['replace-getpermalinknonce'] = wp_create_nonce('getpermalink');
+ $supplemental['replace-samplepermalinknonce'] = wp_create_nonce('samplepermalink');
+ $supplemental['replace-closedpostboxesnonce'] = wp_create_nonce('closedpostboxes');
+ if ( $id ) {
+ if ( $_POST['post_type'] == 'post' )
+ $supplemental['replace-_wpnonce'] = wp_create_nonce('update-post_' . $id);
+ elseif ( $_POST['post_type'] == 'page' )
+ $supplemental['replace-_wpnonce'] = wp_create_nonce('update-page_' . $id);
+ }
+ }
+
+ $x = new WP_Ajax_Response( array(
+ 'what' => 'autosave',
+ 'id' => $id,
+ 'data' => $id ? $data : '',
+ 'supplemental' => $supplemental
+ ) );
+ $x->send();
+ break;
case 'autosave-generate-nonces' :
+ check_ajax_referer( 'autosave', 'autosavenonce' );
$ID = (int) $_POST['post_ID'];
if($_POST['post_type'] == 'post') {
if(current_user_can('edit_post', $ID))
}
die('0');
break;
+case 'closed-postboxes' :
+ check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
+ $closed = isset( $_POST['closed'] )? $_POST['closed'] : '';
+ $closed = explode( ',', $_POST['closed'] );
+ $page = isset( $_POST['page'] )? $_POST['page'] : '';
+ if ( !preg_match( '/^[a-z-]+$/', $page ) ) {
+ die(-1);
+ }
+ if (!is_array($closed)) break;
+ $current_user = wp_get_current_user();
+ update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed);
+break;
+case 'get-permalink':
+ check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
+ $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
+ die(add_query_arg(array('preview' => 'true'), get_permalink($post_id)));
+break;
+case 'sample-permalink':
+ check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
+ $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
+ $title = isset($_POST['new_title'])? $_POST['new_title'] : '';
+ $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : '';
+ die(get_sample_permalink_html($post_id, $title, $slug));
+break;
default :
do_action( 'wp_ajax_' . $_POST['action'] );
die('0');
-
+</div><!-- wpbody -->
+</div><!-- wpcontent -->
+</div><!-- wpwrap -->
<div id="footer">
<p><?php
-
+do_action('in_admin_footer', '');
$upgrade = apply_filters( 'update_footer', '' );
echo __('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>').' | '.__('<a href="http://codex.wordpress.org/">Documentation</a>').' | '.__('<a href="http://wordpress.org/support/forum/4">Feedback</a>').' '.$upgrade;
-
?></p>
</div>
<?php do_action('admin_footer', ''); ?>
<?php
// Deprecated. Use includes/admin.php.
+_deprecated_file( basename(__FILE__), '2.5', 'wp-admin/includes/admin.php' );
require_once(ABSPATH . 'wp-admin/includes/admin.php');
-?>
\ No newline at end of file
+?>
@header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
if (!isset($_GET["page"])) require_once('admin.php');
if ( $editing ) {
- wp_enqueue_script( array('dbx-admin-key?pagenow=' . attribute_escape($pagenow),'admin-custom-fields') );
- if ( current_user_can('manage_categories') )
- wp_enqueue_script( 'ajaxcat' );
if ( user_can_richedit() )
wp_enqueue_script( 'wp_tiny_mce' );
}
+$min_width_pages = array( 'post.php', 'post-new.php', 'page.php', 'page-new.php', 'widgets.php', 'comment.php', 'link.php' );
+$the_current_page = preg_replace('|^.*/wp-admin/|i', '', $_SERVER['PHP_SELF']);
+$ie6_no_scrollbar = true;
+
+function add_minwidth($c) {
+ return $c . 'minwidth ';
+}
+
+if ( in_array( $the_current_page, $min_width_pages ) ) {
+ $ie6_no_scrollbar = false;
+ add_filter( 'admin_body_class', 'add_minwidth' );
+}
+
get_admin_page_title();
?>
<head>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
<title><?php bloginfo('name') ?> › <?php echo wp_specialchars( strip_tags( $title ) ); ?> — WordPress</title>
-<?php wp_admin_css(); ?>
+<?php
+wp_admin_css( 'css/global' );
+wp_admin_css();
+wp_admin_css( 'css/colors' );
+?>
+<!--[if gte IE 6]>
+<?php wp_admin_css( 'css/ie' );
+?>
+<![endif]-->
<script type="text/javascript">
//<![CDATA[
-function addLoadEvent(func) {if ( typeof wpOnload!='function'){wpOnload=func;}else{ var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}}
+addLoadEvent = function(func) {if (typeof jQuery != "undefined") jQuery(document).ready(func); else if (typeof wpOnload!='function'){wpOnload=func;} else {var oldonload=wpOnload; wpOnload=function(){oldonload();func();}}};
//]]>
</script>
-<?php if ( ($parent_file != 'link-manager.php') && ($parent_file != 'options-general.php') ) : ?>
+<?php if ( ($parent_file != 'link-manager.php') && ($parent_file != 'options-general.php') && $ie6_no_scrollbar ) : ?>
<style type="text/css">* html { overflow-x: hidden; }</style>
<?php endif;
if ( isset($page_hook) )
?>
</head>
<body class="wp-admin <?php echo apply_filters( 'admin_body_class', '' ); ?>">
+<div id="wpwrap">
+<div id="wpcontent">
<div id="wphead">
-<h1><?php bloginfo('name'); ?> <span id="viewsite">(<a href="<?php echo get_option('home') . '/'; ?>"><?php _e('View site »') ?></a>)</span></h1>
+<h1><?php bloginfo('name'); ?><span id="viewsite"><a href="<?php echo trailingslashit( get_option('home') ); ?>"><?php _e('Visit Site') ?></a></span></h1>
</div>
-<div id="user_info"><p><?php printf(__('Howdy, <strong>%s</strong>.'), $user_identity) ?> [<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>"><?php _e('Sign Out'); ?></a>, <a href="profile.php"><?php _e('My Profile'); ?></a>] </p></div>
+<div id="user_info"><p><?php printf(__('Howdy, <a href="%1$s">%2$s</a>!'), 'profile.php', $user_identity) ?> | <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a> | <?php _e('<a href="http://codex.wordpress.org/">Help</a>') ?> | <?php _e('<a href="http://wordpress.org/support/">Forums</a>') ?></p></div>
<?php
require(ABSPATH . 'wp-admin/menu-header.php');
require(ABSPATH . 'wp-admin/options-head.php');
}
?>
+<div id="wpbody">
update_category_cache();
-wp_get_current_user();
-
$posts_per_page = get_option('posts_per_page');
$what_to_show = get_option('what_to_show');
$date_format = get_option('date_format');
wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'popuptitle', 'popupurl', 'text', 'trackback', 'pingback'));
-wp_enqueue_script( 'fat' );
+wp_admin_css_color('classic', __('Classic'), get_option( 'siteurl' ) . "/wp-admin/css/colors-classic.css", array('#07273E', '#14568A', '#D54E21', '#2683AE'));
+wp_admin_css_color('fresh', __('Fresh'), get_option( 'siteurl' ) . "/wp-admin/css/colors-fresh.css", array('#464646', '#CEE1EF', '#D54E21', '#2683AE'));
+
+wp_enqueue_script( 'common' );
+wp_enqueue_script( 'jquery-color' );
$editing = false;
require(ABSPATH . 'wp-admin/menu.php');
+do_action('admin_init');
+
// Handle plugin admin pages.
if (isset($plugin_page)) {
$page_hook = get_plugin_page_hook($plugin_page, $pagenow);
wp_die(__('Invalid plugin page'));
}
- if (! file_exists(ABSPATH . PLUGINDIR . "/$plugin_page"))
+ if (! ( file_exists(ABSPATH . PLUGINDIR . "/$plugin_page") && is_file( ABSPATH . PLUGINDIR . "/$plugin_page") ) )
wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page)));
do_action('load-' . $plugin_page);
--- /dev/null
+<?php
+
+/* This accepts file uploads from swfupload or other asynchronous upload methods.
+
+*/
+
+if ( defined('ABSPATH') )
+ require_once( ABSPATH . 'wp-config.php');
+else
+ require_once('../wp-config.php');
+
+// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
+if ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
+ $_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+unset($current_user);
+require_once('admin.php');
+
+header('Content-Type: text/plain');
+
+if ( !current_user_can('upload_files') )
+ wp_die(__('You do not have permission to upload files.'));
+
+// just fetch the detail form for that attachment
+if ( ($id = intval($_REQUEST['attachment_id'])) && $_REQUEST['fetch'] ) {
+ echo get_media_item($id);
+ exit;
+}
+
+$id = media_handle_upload('async-upload', $_REQUEST['post_id']);
+if (is_wp_error($id)) {
+ echo '<div id="media-upload-error">'.wp_specialchars($id->get_error_message()).'</div>';
+ exit;
+}
+
+if ( $_REQUEST['short'] ) {
+ // short form response - attachment ID only
+ echo $id;
+}
+else {
+ // long form response - big chunk o html
+ $type = $_REQUEST['type'];
+ echo apply_filters("async_upload_{$type}", $id);
+}
+
+?>
<head>
<title><?php bloginfo('name') ?> › Bookmarklet — WordPress</title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
-<?php wp_admin_css(); ?>
+<?php
+wp_admin_css( 'css/global' );
+wp_admin_css();
+?>
<style type="text/css">
<!--
wp_reset_vars(array('action', 'cat'));
+if ( isset($_GET['deleteit']) && isset($_GET['delete']) )
+ $action = 'bulk-delete';
+
switch($action) {
case 'addcat':
break;
+case 'bulk-delete':
+ check_admin_referer('bulk-categories');
+
+ if ( !current_user_can('manage_categories') )
+ wp_die( __('You are not allowed to delete categories.') );
+
+ foreach ( (array) $_GET['delete'] as $cat_ID ) {
+ $cat_name = get_catname($cat_ID);
+
+ // Don't delete the default cats.
+ if ( $cat_ID == get_option('default_category') )
+ wp_die(sprintf(__("Can’t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
+
+ wp_delete_category($cat_ID);
+ }
+
+ $sendback = wp_get_referer();
+ $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
+
+ wp_redirect($sendback);
+ exit();
+
+break;
case 'edit':
require_once ('admin-header.php');
default:
+if ( !empty($_GET['_wp_http_referer']) ) {
+ wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
+ exit;
+}
+
wp_enqueue_script( 'admin-categories' );
+wp_enqueue_script('admin-forms');
+
require_once ('admin-header.php');
$messages[1] = __('Category added.');
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
-<?php endif; ?>
+<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
+endif; ?>
<div class="wrap">
+<form id="posts-filter" action="" method="get">
<?php if ( current_user_can('manage_categories') ) : ?>
- <h2><?php printf(__('Categories (<a href="%s">add new</a>)'), '#addcat') ?> </h2>
+ <h2><?php printf(__('Manage Categories (<a href="%s">add new</a>)'), '#addcat') ?> </h2>
<?php else : ?>
- <h2><?php _e('Categories') ?> </h2>
+ <h2><?php _e('Manage Categories') ?> </h2>
<?php endif; ?>
+
+<p id="post-search">
+ <input type="text" id="post-search-input" name="s" value="<?php echo attribute_escape(stripslashes($_GET['s'])); ?>" />
+ <input type="submit" value="<?php _e( 'Search Categories' ); ?>" class="button" />
+</p>
+
+<br class="clear" />
+
+<div class="tablenav">
+
+<div class="alignleft">
+<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
+<?php wp_nonce_field('bulk-categories'); ?>
+</div>
+
+<br class="clear" />
+</div>
+
+<br class="clear" />
+
<table class="widefat">
<thead>
<tr>
- <th scope="col" style="text-align: center"><?php _e('ID') ?></th>
+ <th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('posts-filter'));" /></th>
<th scope="col"><?php _e('Name') ?></th>
<th scope="col"><?php _e('Description') ?></th>
- <th scope="col" width="90" style="text-align: center"><?php _e('Posts') ?></th>
- <th colspan="2" style="text-align: center"><?php _e('Action') ?></th>
+ <th scope="col" class="num"><?php _e('Posts') ?></th>
</tr>
</thead>
- <tbody id="the-list">
+ <tbody id="the-list" class="list:cat">
<?php
cat_rows();
?>
</tbody>
</table>
+</form>
+
+<div class="tablenav">
+<br class="clear" />
+</div>
+<br class="clear" />
</div>
$parent_file = 'edit-comments.php';
$submenu_file = 'edit-comments.php';
-wp_reset_vars(array('action'));
+wp_reset_vars( array('action') );
if ( isset( $_POST['deletecomment'] ) )
$action = 'deletecomment';
-switch($action) {
-case 'editcomment':
+function comment_footer_die( $msg ) { // $msg is assumed to contain HTML and be sanitized
+ echo "<div class='wrap'><p>$msg</p></div>";
+ include('admin-footer.php');
+ die;
+}
+
+switch( $action ) {
+
+case 'editcomment' :
$title = __('Edit Comment');
- require_once ('admin-header.php');
+ wp_enqueue_script('comment');
+ //wp_enqueue_script('thickbox');
+ require_once('admin-header.php');
- $comment = (int) $_GET['c'];
+ $comment_id = absint( $_GET['c'] );
- if ( ! $comment = get_comment($comment) )
- wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'javascript:history.go(-1)'));
+ if ( !$comment = get_comment( $comment_id ) )
+ comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'javascript:history.go(-1)') );
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
- wp_die( __('You are not allowed to edit comments on this post.') );
+ comment_footer_die( __('You are not allowed to edit comments on this post.') );
- $comment = get_comment_to_edit($comment);
+ $comment = get_comment_to_edit( $comment_id );
include('edit-form-comment.php');
break;
-case 'cdc':
-case 'mac':
+case 'cdc' :
+case 'mac' :
- require_once('./admin-header.php');
+ require_once('admin-header.php');
- $comment = (int) $_GET['c'];
+ $comment_id = absint( $_GET['c'] );
$formaction = 'cdc' == $action ? 'deletecomment' : 'approvecomment';
$nonce_action = 'cdc' == $action ? 'delete-comment_' : 'approve-comment_';
- $nonce_action .= $comment;
+ $nonce_action .= $comment_id;
- if ( ! $comment = get_comment_to_edit($comment) )
- wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php'));
+ if ( !$comment = get_comment_to_edit( $comment_id ) )
+ comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
- if ( !current_user_can('edit_post', $comment->comment_post_ID) )
- wp_die( 'cdc' == $action ? __('You are not allowed to delete comments on this post.') : __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
+ if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
+ comment_footer_die( 'cdc' == $action ? __('You are not allowed to delete comments on this post.') : __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
?>
<div class='wrap'>
<div class="narrow">
-<?php if ( 'spam' == $_GET['dt'] ) { ?>
-<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to mark the following comment as spam:'); ?></p>
-<?php } elseif ( 'cdc' == $action ) { ?>
-<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to delete the following comment:'); ?></p>
-<?php } else { ?>
-<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to approve the following comment:'); ?></p>
-<?php } ?>
+<?php
+if ( 'spam' == $_GET['dt'] ) {
+ $caution_msg = __('You are about to mark the following comment as spam:');
+ $button = __('Spam Comment');
+} elseif ( 'cdc' == $action ) {
+ $caution_msg = __('You are about to delete the following comment:');
+ $button = __('Delete Comment');
+} else {
+ $caution_msg = __('You are about to approve the following comment:');
+ $button = __('Approve Comment');
+}
+?>
+
+<p><strong><?php _e('Caution:'); ?></strong> <?php echo $caution_msg; ?></p>
<p><?php _e('Are you sure you want to do that?'); ?></p>
-<form action='<?php echo get_option('siteurl'); ?>/wp-admin/comment.php' method='get'>
+<form action='comment.php' method='get'>
<table width="100%">
<tr>
-<td><input type='button' value='<?php _e('No'); ?>' onclick="self.location='<?php echo get_option('siteurl'); ?>/wp-admin/edit-comments.php';" /></td>
-<td align="right"><input type='submit' value='<?php _e('Yes'); ?>' /></td>
+<td><input type='button' class="button" value='<?php _e('No'); ?>' onclick="self.location='<?php echo get_option('siteurl'); ?>/wp-admin/edit-comments.php';" /></td>
+<td class="textright"><input type='submit' class="button" value='<?php echo $button; ?>' /></td>
</tr>
</table>
-<?php wp_nonce_field($nonce_action); ?>
+<?php wp_nonce_field( $nonce_action ); ?>
<input type='hidden' name='action' value='<?php echo $formaction; ?>' />
<?php if ( 'spam' == $_GET['dt'] ) { ?>
<input type='hidden' name='dt' value='spam' />
<input type='hidden' name='noredir' value='1' />
</form>
-<table class="editform" cellpadding="5">
+<table class="form-table" cellpadding="5">
<tr class="alt">
-<th scope="row"><?php _e('Author:'); ?></th>
+<th scope="row"><?php _e('Author'); ?></th>
<td><?php echo $comment->comment_author; ?></td>
</tr>
<?php if ( $comment->comment_author_email ) { ?>
<tr>
-<th scope="row"><?php _e('E-mail:'); ?></th>
+<th scope="row"><?php _e('E-mail'); ?></th>
<td><?php echo $comment->comment_author_email; ?></td>
</tr>
<?php } ?>
<?php if ( $comment->comment_author_url ) { ?>
<tr>
-<th scope="row"><?php _e('URL:'); ?></th>
+<th scope="row"><?php _e('URL'); ?></th>
<td><a href='<?php echo $comment->comment_author_url; ?>'><?php echo $comment->comment_author_url; ?></a></td>
</tr>
<?php } ?>
<tr>
-<th scope="row" valign="top"><p><?php _e('Comment:'); ?></p></th>
+<th scope="row" valign="top"><?php _e('Comment'); ?></th>
<td><?php echo $comment->comment_content; ?></td>
</tr>
</table>
<?php
break;
-case 'deletecomment':
- $comment = (int) $_REQUEST['c'];
- check_admin_referer('delete-comment_' . $comment);
+case 'deletecomment' :
+ $comment_id = absint( $_REQUEST['c'] );
+ check_admin_referer( 'delete-comment_' . $comment_id );
- if ( isset($_REQUEST['noredir']) ) {
+ if ( isset( $_REQUEST['noredir'] ) )
$noredir = true;
- } else {
+ else
$noredir = false;
- }
- if ( ! $comment = get_comment($comment) )
- wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php'));
+ if ( !$comment = get_comment( $comment_id ) )
+ comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php') );
- if ( !current_user_can('edit_post', $comment->comment_post_ID) )
- wp_die( __('You are not allowed to edit comments on this post.') );
+ if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
+ comment_footer_die( __('You are not allowed to edit comments on this post.') );
if ( 'spam' == $_REQUEST['dt'] )
- wp_set_comment_status($comment->comment_ID, 'spam');
+ wp_set_comment_status( $comment->comment_ID, 'spam' );
else
- wp_delete_comment($comment->comment_ID);
+ wp_delete_comment( $comment->comment_ID );
- if ((wp_get_referer() != '') && (false == $noredir)) {
- wp_redirect(wp_get_referer());
- } else {
- wp_redirect(get_option('siteurl') .'/wp-admin/edit-comments.php');
- }
- exit();
+ if ( '' != wp_get_referer() && false == $noredir && false === strpos(wp_get_referer(), 'comment.php' ) )
+ wp_redirect( wp_get_referer() );
+ else if ( '' != wp_get_original_referer() && false == $noredir )
+ wp_redirect( wp_get_original_referer() );
+ else
+ wp_redirect( get_option('siteurl') . '/wp-admin/edit-comments.php' );
+
+ die;
break;
-case 'unapprovecomment':
- $comment = (int) $_GET['c'];
- check_admin_referer('unapprove-comment_' . $comment);
+case 'unapprovecomment' :
+ $comment_id = absint( $_GET['c'] );
+ check_admin_referer( 'unapprove-comment_' . $comment_id );
- if (isset($_GET['noredir'])) {
+ if ( isset( $_GET['noredir'] ) )
$noredir = true;
- } else {
+ else
$noredir = false;
- }
- if ( ! $comment = get_comment($comment) )
- wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php'));
+ if ( !$comment = get_comment( $comment_id ) )
+ comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
- if ( !current_user_can('edit_post', $comment->comment_post_ID) )
- wp_die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
+ if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
+ comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
+
+ wp_set_comment_status( $comment->comment_ID, 'hold' );
- wp_set_comment_status($comment->comment_ID, "hold");
+ if ( '' != wp_get_referer() && false == $noredir )
+ wp_redirect( wp_get_referer() );
+ else
+ wp_redirect( get_option('siteurl') . '/wp-admin/edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments' );
- if ((wp_get_referer() != "") && (false == $noredir)) {
- wp_redirect(wp_get_referer());
- } else {
- wp_redirect(get_option('siteurl') .'/wp-admin/edit.php?p=' . (int) $comment->comment_post_ID.'&c=1#comments');
- }
exit();
break;
-case 'approvecomment':
- $comment = (int) $_GET['c'];
- check_admin_referer('approve-comment_' . $comment);
+case 'approvecomment' :
+ $comment_id = absint( $_GET['c'] );
+ check_admin_referer( 'approve-comment_' . $comment_id );
- if (isset($_GET['noredir'])) {
+ if ( isset( $_GET['noredir'] ) )
$noredir = true;
- } else {
+ else
$noredir = false;
- }
- if ( ! $comment = get_comment($comment) )
- wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php'));
+ if ( !$comment = get_comment( $comment_id ) )
+ comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
- wp_die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
+ comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
+
+ wp_set_comment_status( $comment->comment_ID, 'approve' );
- wp_set_comment_status($comment->comment_ID, "approve");
- if (get_option("comments_notify") == true) {
- wp_notify_postauthor($comment->comment_ID);
- }
+ if ( true == get_option('comments_notify') )
+ wp_notify_postauthor( $comment->comment_ID );
- if ((wp_get_referer() != "") && (false == $noredir)) {
- wp_redirect(wp_get_referer());
- } else {
- wp_redirect(get_option('siteurl') .'/wp-admin/edit.php?p=' . (int) $comment->comment_post_ID.'&c=1#comments');
- }
+ if ( '' != wp_get_referer() && false == $noredir )
+ wp_redirect( wp_get_referer() );
+ else
+ wp_redirect( get_option('siteurl') . '/wp-admin/edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments' );
+
exit();
break;
-case 'editedcomment':
+case 'editedcomment' :
- $comment_ID = (int) $_POST['comment_ID'];
- $comment_post_ID = (int) $_POST['comment_post_id'];
+ $comment_id = absint( $_POST['comment_ID'] );
+ $comment_post_id = absint( $_POST['comment_post_id'] );
- check_admin_referer('update-comment_' . $comment_ID);
+ check_admin_referer( 'update-comment_' . $comment_id );
edit_comment();
- $location = ( empty($_POST['referredby']) ? "edit.php?p=$comment_post_ID&c=1" : $_POST['referredby'] ) . '#comment-' . $comment_ID;
- $location = apply_filters('comment_edit_redirect', $location, $comment_ID);
- wp_redirect($location);
+ $location = ( empty( $_POST['referredby'] ) ? "edit.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
+ $location = apply_filters( 'comment_edit_redirect', $location, $comment_id );
+ wp_redirect( $location );
+
exit();
break;
+
default:
+ wp_die( __('Unknown action.') );
break;
+
} // end switch
include('admin-footer.php');
-?>
+?>
\ No newline at end of file
--- /dev/null
+#poststuff .closed .togbox, #poststuff .togbox {
+background-image: url(../images/toggle-arrow-rtl.gif) !important;
+}
\ No newline at end of file
--- /dev/null
+a.page-numbers:hover {
+ border-color: #999;
+}
+
+body {
+ background-color: #fff;
+ color: #333;
+}
+
+body > #upload-menu {
+ border-bottom-color: #fff;
+}
+
+div#current-widgets, #postcustomstuff table, #your-profile fieldset, a.page-numbers, #rightnow, div.dashboard-widget, .widefat {
+ border-color: #ccc;
+}
+
+div.dashboard-widget-error {
+ background-color: #c43;
+}
+
+div.dashboard-widget-notice {
+ background-color: #F0F6FB;
+}
+
+div.dashboard-widget-submit, ul.widget-control-list div.widget-control-actions {
+ border-top-color: #ccc;
+}
+
+input.disabled, textarea.disabled {
+ background-color: #ccc;
+}
+
+#user_info a:hover, li.widget-list-control-item h4.widget-title a:hover, .submit a, #dashmenu a:hover, #footer a, #upload-menu li a.upload-tab-link, li.widget-list-control-item h4.widget-title a,
+#dragHelper li.widget-list-control-item h4.widget-title a,
+#draghelper li.widget-list-control-item h4.widget-title a:visited, .login #backtoblog a:hover {
+ color: #fff;
+}
+
+ul#category-tabs li.ui-tabs-selected, li.widget-list-control-item, div.nav, .tablenav, .submitbox, h3.dashboard-widget-title, h3.dashboard-widget-title span, h3.dashboard-widget-title small, ul.view-switch li.current, .form-table tr, #poststuff h3, .login form {
+ background-color: #cfebf7;
+}
+
+div.ui-tabs-panel {
+ border-color: #cfebf7;
+}
+
+select {
+ background-color: #fff;
+ border-color: #ddd;
+}
+
+strong .post-com-count span {
+ background-color: #2583ad;
+}
+
+.button-secondary, #login form .submit input {
+ background-color: #8ebddc !important;
+}
+
+ul#widget-list li.widget-list-item h4.widget-title {
+ background-color: #f0f0f0;
+ color: #000;
+}
+
+ul.widget-control-list .sorthelper {
+ background-color: #ccf3fa;
+}
+
+.ac_match, .subsubsub a.current, h2 {
+ color: #000;
+}
+
+.ac_over {
+ background-color: #f0f0b8;
+}
+
+.ac_results {
+ background-color: #fff;
+ border-color: #808080;
+}
+
+.ac_results li {
+ color: #101010;
+}
+
+.alternate {
+ background-color: #f9f9f9;
+}
+
+.available-theme a.screenshot {
+ background-color: #f1f1f1;
+ border-color: #ccc;
+}
+
+.bar {
+ background-color: #e8e8e8;
+ border-right-color: #99d;
+}
+
+.describe {
+ border-top-color: #d0d0d0;
+}
+
+.error, #login #login_error {
+ background-color: #ffebe8;
+ border-color: #c00;
+}
+
+.error a {
+ color: #c00;
+}
+
+.form-invalid {
+ background-color: #ffebe8 !important;
+}
+
+.form-invalid input {
+ border-color: #c00 !important;
+}
+
+.form-table input, .form-table textarea {
+ border-color: #c6d9e9;
+}
+
+.form-table td, .form-table th {
+ border-bottom-color: #fff;
+}
+
+.highlight {
+ background-color: #cfebf7;
+ color: #d54e21;
+}
+
+.howto, .nonessential, #sidemenu, #edit-slug-box, .form-input-tip, #dashboard_primary span.rss-date, .subsubsub, #dashboard_secondary div.dashboard-widget-content ul li a cite {
+ color: #999;
+}
+
+#dashmenu a, #user_info a {
+ color: #88b4d7;
+}
+
+.media-item {
+ border-bottom-color: #d0d0d0;
+}
+
+.media-upload-form label.form-help, td.help {
+ color: #9a9a9a;
+}
+
+.page-numbers {
+ background-color: #fff;
+ border-color: #fff;
+}
+
+.page-numbers.current {
+ background-color: #328ab2;
+ border-color: #328ab2;
+ color: #fff;
+}
+
+.post-com-count {
+ background-image: url(../images/bubble_bg.gif);
+ color: #fff;
+}
+
+.post-com-count span {
+ background-color: #bbb;
+ color: #fff;
+}
+
+.post-com-count:hover span {
+ background-color: #d54e21;
+}
+
+.quicktags, .search {
+ background-color: #ccc;
+ color: #000;
+}
+
+.side-info h5, .bordertitle {
+ border-bottom-color: #dadada;
+}
+
+.side-info ul, .widget-description {
+ color: #666;
+}
+
+.submit input, .button, .button-secondary, #login form .submit input, div.dashboard-widget-submit input, #edit-slug-buttons a.save {
+ background-color: #e5e5e5;
+ color: #07273e;
+ border-color: #a3a3a3;
+}
+
+.button[disabled], .button:disabled {
+ background-color: #999;
+}
+
+.tablenav .button-secondary {
+ border-color: #5396c5;
+}
+
+.submit input:hover, .button:hover, #edit-slug-buttons a.save:hover {
+ border-color: #535353;
+}
+
+.submit input:hover, .button:hover, .button-secondary:hover, #wphead #viewsite a:hover, #submenu a.current, #submenu a:hover, .submitbox #previewview a:hover, #the-comment-list .comment a:hover, #rightnow a:hover, a:hover, .subsubsub a:hover, .subsubsub a.current:hover, #login form .submit input:hover, div.dashboard-widget-submit input:hover, #edit-slug-buttons a.save:hover {
+ color: #d54e21;
+}
+
+#adminmenu a:hover, #sidemenu a:hover {
+ color: #97c4d8;
+}
+
+.button-secondary:hover, #login form .submit input:hover {
+ border-color: #328ab2;
+ background-color: #a6d2e5 !important;
+}
+
+.submitbox #autosave .error, ul.view-switch li.current a {
+ color: #333;
+}
+
+.submitbox #previewview {
+ background-color: #5488af;
+}
+
+.submitbox #previewview a, #rightnow .rbutton {
+ background-color: #ebebeb;
+ color: #264761;
+}
+
+.submitbox .submit {
+ background-color: #464646;
+ color: #ccc;
+}
+
+.submitbox .submitdelete {
+ border-bottom-color: #999;
+}
+
+.submitbox .submitdelete:hover {
+ color: #fff;
+ background-color: #f00;
+ border-bottom-color: #f00;
+}
+
+.tablenav .dots {
+ background-color: #cfebf7;
+ border-color: #cfebf7;
+}
+
+.tablenav .next, .tablenav .prev{
+ background-color: #cfebf7;
+ border-bottom-color: #cfebf7;
+ border-color: #cfebf7;
+ color: #2583ad;
+}
+
+.tablenav .next:hover, .tablenav .prev:hover {
+ border-bottom-color: #d54e21;
+ border-color: #cfebf7;
+ color: #d54e21;
+}
+
+.updated, .login #login_error, .login .message {
+ background-color: #ffffe0;
+ border-color: #e6db55;
+}
+
+.updated a {
+ border-bottom-color: #2583ad;
+}
+
+.widefat td, .widefat th, div#available-widgets-filter, ul#widget-list li.widget-list-item, .commentlist li {
+ border-bottom-color: #ccc;
+}
+
+.widefat thead, .thead {
+ background-color: #464646;
+ color: #d7d7d7;
+}
+
+.widget-control-save, .widget-control-remove {
+ background-color: #83b4d5;
+ color: #246;
+}
+
+.wrap h2 {
+ border-bottom-color: #dadada;
+ color: #5a5a5a;
+}
+
+#poststuff #edButtonPreview, #poststuff #edButtonHTML, #the-comment-list p.comment-author strong a, a {
+ color: #2e7ca0;
+}
+
+#adminmenu a {
+ color: #cfebf6;
+}
+
+#submenu a {
+ color: #2782af
+}
+/* Because we don't want visited on these links */
+#adminmenu a.current, #sidemenu a.current {
+ background-color: #fff;
+ border-color: #07273e;
+ border-bottom-color: #fff;
+ color: #d54e21;
+ font-weight: bold;
+}
+
+#adminmenu li a #awaiting-mod {
+ background-image: url(../images/comment-stalk-classic.gif);
+}
+
+#adminmenu li a #awaiting-mod span {
+ background-color: #d54e21;
+ color: #fff;
+}
+
+#rightnow .reallynow {
+ background-color: #114973;
+ color: #fff;
+}
+
+
+#adminmenu li a:hover #awaiting-mod span {
+ background-color: #07273E;
+}
+
+#adminmenu, div#media-upload-header {
+ background-color: #14568a;
+ border-bottom-color: #07273e;
+}
+
+#currenttheme img {
+ border-color: #666;
+}
+
+#current-widgets .drop-widget-here {
+ background-color: #ffc;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a {
+ background-color: #f9f9f9;
+}
+
+input.readonly {
+ background-color: #ddd;
+}
+
+#dashmenu a.current {
+ background-color: #14568a;
+ color: #cfebf6;
+}
+
+#dragHelper h4.widget-title, li.widget-list-control-item h4, #dragHelper li.widget-list-control-item h4 {
+ background-color: #2683ae;
+ color: #fff;
+}
+
+#ed_toolbar input {
+ background: url( ../images/fade-butt.png ) #fff repeat-x 0 -2px;
+}
+
+#editable-post-name {
+ background-color: #fffbcc;
+}
+
+#edit-slug-box strong, .login #nav a {
+ color: #777;
+}
+
+#edit-slug-buttons a.save {
+ background-color: #ebebeb;
+}
+
+#footer {
+ background: url(../images/logo-ghost.png) #464646 no-repeat 20px 10px;
+ color: #999;
+}
+
+#media-items {
+ border-color: #c0c0c0;
+}
+
+#pass-strength-result {
+ background-color: #e3e3e3;
+ border-color: #000;
+}
+
+#pass-strength-result.bad {
+ background-color: #ffeff7;
+ border-color: #c69;
+}
+
+#pass-strength-result.good {
+ background-color: #effff4;
+ border-color: #66cc87;
+}
+
+#pass-strength-result.short {
+ background-color: #e3e3e3;
+}
+
+#pass-strength-result.strong {
+ background-color: #59ef86;
+ border-color: #319f52;
+}
+
+.checkbox, .side-info, #your-profile #rich_editing {
+ background-color: #fff;
+}
+
+#plugins .active {
+ background-color: #BBEEBB;
+}
+
+#plugins .togl {
+ border-right-color: #ccc;
+}
+
+#the-comment-list .unapproved {
+ background-color: #ffffe0;
+}
+
+#plugins tr {
+ background-color: #fff;
+}
+
+#poststuff #editor-toolbar .active {
+ background-color: #83b4d5;
+ color: #333;
+}
+
+#poststuff .closed .togbox {
+ background-color: #2583ad;
+ background-image: url(../images/toggle-arrow.gif);
+}
+
+#poststuff .postbox, #titlediv, #poststuff .postarea, #poststuff .stuffbox {
+ border-color: #ebebeb;
+ border-right-color: #ccc;
+ border-bottom-color: #ccc;
+}
+
+#poststuff .togbox {
+ background-color: #b2b2b2;
+ background-image: url(../images/toggle-arrow.gif);
+}
+
+#quicktags #ed_link {
+ color: #00f;
+}
+
+#rightnow .youhave {
+ background-color: #f0f6fb;
+}
+
+#rightnow a {
+ color: #448abd;
+}
+
+#sidemenu a {
+ background-color: #14568a;
+ border-bottom-color: #07273e;
+ border-top-color: #14568a;
+ color: #cfebf6;
+}
+
+#tagchecklist span a {
+ background: url(../images/xit.gif) no-repeat;
+}
+
+#tagchecklist span a:hover {
+ background: url(../images/xit.gif) no-repeat -10px 0;
+}
+
+#the-comment-list .comment a {
+ border-bottom-color: #ababab;
+ color: #666;
+}
+
+#update-nag, .plugin-update {
+ background-color: #fffeeb;
+ border-bottom-color: #ccc;
+ border-top-color: #ccc;
+ color: #555;
+}
+
+#upload-files a.file-link {
+ background-color: #d1e2ef;
+}
+
+#upload-file-view a img {
+ border-bottom-color: #69c;
+}
+
+#upload-menu li #current-tab-nav, #upload-file {
+ background-color: #f9fcfe;
+}
+
+#upload-menu li span a.page-numbers {
+ color: #00019b;
+}
+
+#upload-menu li.current {
+ border-right-color: #448abd;
+ color: #000;
+}
+
+#upload-menu li.current a.upload-tab-link, #upload-menu li a:hover {
+ background-color: #f9fcfe;
+ color: #000;
+}
+
+#upload-menu, #upload-menu li {
+ border-top-color: #247fab;
+}
+
+#user_info, .login #backtoblog a {
+ color: #ccc;
+}
+
+#wphead {
+ background-color: #14568a;
+}
+
+#wphead, body.login {
+ border-top-color: #07273e;
+}
+
+#wphead #viewsite a {
+ background-color: #5488af;
+ color: #cfebf7;
+ border-color: #0b3d64;
+}
+
+#wphead #viewsite a:hover {
+ color: #07273e;
+}
+
+#wphead h1, #dashmenu a.current:hover {
+ color: #cfebf6;
+}
+
+div#media-upload-error, .file-error, abbr.required, .widget-control-remove:hover, .delete:hover {
+ color: #f00;
+}
+
+#media-upload a.delete {
+ color: #888;
+}
+
+
+/* TinyMCE */
+.wp_themeSkin *,
+.wp_themeSkin a:hover,
+.wp_themeSkin a:link,
+.wp_themeSkin a:visited,
+.wp_themeSkin a:active {
+ color: #000;
+}
+
+/* Containers */
+.wp_themeSkin table {
+ background: #83B4D5;
+}
+
+.wp_themeSkin iframe {
+ background: #fff;
+}
+
+/* Layout */
+.wp_themeSkin .mceStatusbar {
+ color:#000;
+ background-color: #eaf3fa;
+}
+
+/* Button */
+.wp_themeSkin .mceButton {
+ background-color: #e9e8e8;
+ border-color: #83B4D5;
+}
+
+.wp_themeSkin a.mceButtonEnabled:hover,
+.wp_themeSkin a.mceButtonActive,
+.wp_themeSkin a.mceButtonSelected {
+ background-color: #d6d8da;
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin .mceButtonDisabled {
+ border-color: #83B4D5 !important;
+}
+
+/* ListBox */
+.wp_themeSkin .mceListBox .mceText,
+.wp_themeSkin .mceListBox .mceOpen {
+ border-color: #83B4D5;
+ background-color: #e9e8e8;
+}
+
+.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
+.wp_themeSkin .mceListBoxHover .mceOpen,
+.wp_themeSkin .mceListBoxSelected .mceOpen,
+.wp_themeSkin .mceListBoxSelected .mceText {
+ border-color: #7789ba !important;
+ background-color: #d6d8da;
+}
+
+.wp_themeSkin table.mceListBoxEnabled:hover .mceText,
+.wp_themeSkin .mceListBoxHover .mceText {
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin select.mceListBox {
+ border-color: #b3c7e1;
+ background-color: #fff;
+}
+
+/* SplitButton */
+.wp_themeSkin .mceSplitButton a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceOpen {
+ background-color: #e9e8e8;
+ border-color: #83B4D5;
+}
+
+.wp_themeSkin .mceSplitButton a.mceOpen:hover,
+.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
+.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceAction:hover {
+ background-color: #d6d8da;
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin .mceSplitButtonActive {
+ background-color: #d6d8da;
+}
+
+/* ColorSplitButton */
+.wp_themeSkin div.mceColorSplitMenu table {
+ background-color: #ebeaeb;
+ border-color: #808080;
+}
+
+.wp_themeSkin .mceColorSplitMenu a {
+ border-color: #808080;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors {
+ border-color: #fff;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {
+ border-color: #0A246A;
+ background-color: #B6BDD2;
+}
+
+.wp_themeSkin a.mceMoreColors:hover {
+ border-color: #0A246A;
+}
+
+/* Menu */
+.wp_themeSkin .mceMenu {
+ border-color: #ddd;
+}
+
+.wp_themeSkin .mceMenu table {
+ background-color: #ebeaeb;
+}
+
+.wp_themeSkin .mceMenu .mceText {
+ color: #000;
+}
+
+.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,
+.wp_themeSkin .mceMenu .mceMenuItemActive, #quicktags {
+ background-color: #83B4D5;
+}
+.wp_themeSkin td.mceMenuItemSeparator {
+ background-color: #aaa;
+}
+.wp_themeSkin .mceMenuItemTitle a {
+ background-color: #ccc;
+ border-bottom-color: #aaa;
+}
+.wp_themeSkin .mceMenuItemTitle span.mceText {
+ color: #000;
+}
+.wp_themeSkin .mceMenuItemDisabled .mceText {
+ color: #888;
+}
+
+/* pop-up */
+.clearlooks2 .mceTop .mceLeft, .clearlooks2 .mceTop .mceRight {
+ background-color: #cee1ef;
+ border-color: #c6d9e9;
+}
+
+.clearlooks2 .mceFocus .mceTop .mceLeft, .clearlooks2 .mceFocus .mceTop .mceRight {
+ background-color: #5488AF;
+ border-color: #464646;
+}
+
+#editorcontainer {
+ border-color: #ccc;
+}
+
+#poststuff #titlewrap {
+ border-color: #ccc;
+}
+
+#tTips p#tTips_inside {
+ background-color: #ddd;
+ color: #333;
+}
--- /dev/null
+#poststuff .closed .togbox, #poststuff .togbox {
+background-image: url(../images/toggle-arrow-rtl.gif) !important;
+}
\ No newline at end of file
--- /dev/null
+a.page-numbers:hover {
+ border-color: #999;
+}
+
+body {
+ background-color: #fff;
+ color: #333;
+}
+
+body > #upload-menu {
+ border-bottom-color: #fff;
+}
+
+div#current-widgets, #postcustomstuff table, #your-profile fieldset, a.page-numbers, #rightnow, div.dashboard-widget, .widefat {
+ border-color: #ccc;
+}
+
+div.dashboard-widget-error {
+ background-color: #c43;
+}
+
+div.dashboard-widget-notice {
+ background-color: #cfe1ef;
+}
+
+div.dashboard-widget-submit, ul.widget-control-list div.widget-control-actions {
+ border-top-color: #ccc;
+}
+
+div.ui-tabs-panel {
+ border-color: #cee1ef;
+}
+
+input.disabled, textarea.disabled {
+ background-color: #ccc;
+}
+
+#user_info a:hover, li.widget-list-control-item h4.widget-title a:hover, .submit a, #dashmenu a:hover, #footer a, #upload-menu li a.upload-tab-link, li.widget-list-control-item h4.widget-title a,
+#dragHelper li.widget-list-control-item h4.widget-title a,
+#draghelper li.widget-list-control-item h4.widget-title a:visited, .login #backtoblog a:hover {
+ color: #fff;
+}
+
+li.widget-list-control-item, div.nav, .tablenav, .submitbox, h3.dashboard-widget-title, h3.dashboard-widget-title span, h3.dashboard-widget-title small, ul.view-switch li.current, .form-table tr, #poststuff h3, .login form {
+ background-color: #eaf3fa;
+}
+
+select {
+ background-color: #fff;
+ border-color: #ddd;
+}
+
+strong .post-com-count span {
+ background-color: #2583ad;
+}
+
+ul#category-tabs li.ui-tabs-selected, .button-secondary, #quicktags, #login form .submit input {
+ background-color: #cee1ef !important;
+}
+
+ul#widget-list li.widget-list-item h4.widget-title {
+ background-color: #f0f0f0;
+ color: #000;
+}
+
+ul.widget-control-list .sorthelper {
+ background-color: #ccf3fa;
+}
+
+.ac_match, .subsubsub a.current, h2 {
+ color: #000;
+}
+
+.ac_over {
+ background-color: #f0f0b8;
+}
+
+.ac_results {
+ background-color: #fff;
+ border-color: #808080;
+}
+
+.ac_results li {
+ color: #101010;
+}
+
+.alternate {
+ background-color: #f9f9f9;
+}
+
+.available-theme a.screenshot {
+ background-color: #f1f1f1;
+ border-color: #ccc;
+}
+
+.bar {
+ background-color: #e8e8e8;
+ border-right-color: #99d;
+}
+
+.describe {
+ border-top-color: #d0d0d0;
+}
+
+.error, #login #login_error {
+ background-color: #ffebe8;
+ border-color: #c00;
+}
+
+.error a {
+ color: #c00;
+}
+
+.form-invalid {
+ background-color: #ffebe8 !important;
+}
+
+.form-invalid input {
+ border-color: #c00 !important;
+}
+
+.form-table input, .form-table textarea {
+ border-color: #c6d9e9;
+}
+
+.form-table td, .form-table th {
+ border-bottom-color: #fff;
+}
+
+.highlight {
+ background-color: #e4f2fd;
+ color: #d54e21;
+}
+
+#user_info, .howto, .nonessential, #dashmenu a, #sidemenu, #edit-slug-box, .form-input-tip, #dashboard_primary span.rss-date, .subsubsub, #dashboard_secondary div.dashboard-widget-content ul li a cite {
+ color: #999;
+}
+
+.media-item {
+ border-bottom-color: #d0d0d0;
+}
+
+.media-upload-form label.form-help, td.help {
+ color: #9a9a9a;
+}
+
+.page-numbers {
+ background-color: #fff;
+ border-color: #fff;
+}
+
+.page-numbers.current {
+ background-color: #328ab2;
+ border-color: #328ab2;
+ color: #fff;
+}
+
+.post-com-count {
+ background-image: url(../images/bubble_bg.gif);
+ color: #fff;
+}
+
+.post-com-count span {
+ background-color: #bbb;
+ color: #fff;
+}
+
+.post-com-count:hover span {
+ background-color: #d54e21;
+}
+
+.quicktags, .search {
+ background-color: #ccc;
+ color: #000;
+}
+
+.side-info h5, .bordertitle {
+ border-bottom-color: #dadada;
+}
+
+.side-info ul, .widget-description {
+ color: #666;
+}
+
+.submit input, .button, .button-secondary, #login form .submit input, div.dashboard-widget-submit input, #edit-slug-buttons a.save {
+ background-color: #e5e5e5;
+ color: #246;
+ border-color: #80b5d0;
+}
+
+.button[disabled], .button:disabled {
+ background-color: #999;
+}
+
+.submit input:hover, .button:hover, #edit-slug-buttons a.save:hover {
+ border-color: #535353;
+}
+
+.submit input:hover, .button:hover, .button-secondary:hover, #wphead #viewsite a:hover, #adminmenu a:hover, #sidemenu a:hover, #submenu a.current, #submenu a:hover, .submitbox #previewview a:hover, #the-comment-list .comment a:hover, #rightnow a:hover, a:hover, .subsubsub a:hover, .subsubsub a.current:hover, #login form .submit input:hover, div.dashboard-widget-submit input:hover, #edit-slug-buttons a.save:hover, #media-upload a.delete:hover {
+ color: #d54e21;
+}
+
+.button-secondary:hover, #login form .submit input:hover {
+ border-color: #328ab2;
+}
+
+.submitbox #autosave .error, ul.view-switch li.current a {
+ color: #333;
+}
+
+.submitbox #previewview {
+ background-color: #2683ae;
+}
+
+.submitbox #previewview a, #rightnow .rbutton {
+ background-color: #ebebeb;
+ color: #264761;
+}
+
+.submitbox .submit {
+ background-color: #464646;
+ color: #ccc;
+}
+
+.submitbox .submitdelete {
+ border-bottom-color: #999;
+}
+
+.submitbox .submitdelete:hover {
+ color: #fff;
+ background-color: #f00;
+ border-bottom-color: #f00;
+}
+
+.tablenav .dots {
+ background-color: #e4f2fd;
+ border-color: #e4f2fd;
+}
+
+.tablenav .next, .tablenav .prev{
+ background-color: #e4f2fd;
+ border-bottom-color: #2583ad;
+ border-color: #e4f2fd;
+ color: #2583ad;
+}
+
+.tablenav .next:hover, .tablenav .prev:hover {
+ border-bottom-color: #d54e21;
+ border-color: #e4f2fd;
+ color: #d54e21;
+}
+
+.updated, .login #login_error, .login .message {
+ background-color: #ffffe0;
+ border-color: #e6db55;
+}
+
+.updated a {
+ border-bottom-color: #2583ad;
+}
+
+.widefat td, .widefat th, div#available-widgets-filter, ul#widget-list li.widget-list-item, .commentlist li {
+ border-bottom-color: #ccc;
+}
+
+.widefat thead, .thead {
+ background-color: #464646;
+ color: #d7d7d7;
+}
+
+.widget-control-save, .widget-control-remove {
+ background-color: #cee1ef;
+ color: #246;
+}
+
+.wrap h2 {
+ border-bottom-color: #dadada;
+ color: #666;
+}
+
+#adminmenu a, #submenu a, #poststuff #edButtonPreview, #poststuff #edButtonHTML, #the-comment-list p.comment-author strong a, a {
+ color: #2583ad;
+}
+
+/* Because we don't want visited on these links */
+#adminmenu a.current, #sidemenu a.current {
+ background-color: #fff;
+ border-color: #c6d9e9;
+ border-bottom-color: #fff;
+ color: #d54e21;
+}
+
+#adminmenu li a #awaiting-mod {
+ background-image: url(../images/comment-stalk-fresh.gif);
+}
+
+#adminmenu li a #awaiting-mod span, #rightnow .reallynow {
+ background-color: #d54e21;
+ color: #fff;
+}
+
+#adminmenu li a:hover #awaiting-mod span {
+ background-color: #264761;
+}
+
+#adminmenu, div#media-upload-header {
+ background-color: #e4f2fd;
+ border-bottom-color: #c6d9e9;
+}
+
+#currenttheme img {
+ border-color: #666;
+}
+
+#current-widgets .drop-widget-here {
+ background-color: #ffc;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a {
+ background-color: #f9f9f9;
+}
+
+input.readonly {
+ background-color: #ddd;
+}
+
+#dashmenu a.current {
+ background-color: #e4f2fd;
+ color: #555;
+}
+
+#dragHelper h4.widget-title, li.widget-list-control-item h4, #dragHelper li.widget-list-control-item h4 {
+ background-color: #2683ae;
+ color: #fff;
+}
+
+#ed_toolbar input {
+ background: url( ../images/fade-butt.png ) #fff repeat-x 0 -2px;
+}
+
+#editable-post-name {
+ background-color: #fffbcc;
+}
+
+#edit-slug-box strong, .login #nav a {
+ color: #777;
+}
+
+#footer {
+ background: url(../images/logo-ghost.png) #464646 no-repeat 20px 10px;
+ color: #999;
+}
+
+#media-items {
+ border-color: #c0c0c0;
+}
+
+#pass-strength-result {
+ background-color: #e3e3e3;
+ border-color: #000;
+}
+
+#pass-strength-result.bad {
+ background-color: #ffeff7;
+ border-color: #c69;
+}
+
+#pass-strength-result.good {
+ background-color: #effff4;
+ border-color: #66cc87;
+}
+
+#pass-strength-result.short {
+ background-color: #e3e3e3;
+}
+
+#pass-strength-result.strong {
+ background-color: #59ef86;
+ border-color: #319f52;
+}
+
+.checkbox, .side-info, #your-profile #rich_editing {
+ background-color: #fff;
+}
+
+#plugins .active {
+ background-color: #e7f7d3;
+}
+
+#plugins .togl {
+ border-right-color: #ccc;
+}
+
+#the-comment-list .unapproved {
+ background-color: #ffffe0;
+}
+
+#plugins tr {
+ background-color: #fff;
+}
+
+#poststuff #editor-toolbar .active {
+ background-color: #cee1ef;
+ color: #333;
+}
+
+#poststuff .closed .togbox {
+ background-color: #2583ad;
+ background-image: url(../images/toggle-arrow.gif);
+}
+
+#poststuff .postbox, #titlediv, #poststuff .postarea, #poststuff .stuffbox {
+ border-color: #ebebeb;
+ border-right-color: #ccc;
+ border-bottom-color: #ccc;
+}
+
+#poststuff .togbox {
+ background-color: #b2b2b2;
+ background-image: url(../images/toggle-arrow.gif);
+}
+
+#quicktags #ed_link {
+ color: #00f;
+}
+
+#rightnow .youhave {
+ background-color: #f0f6fb;
+}
+
+#rightnow a {
+ color: #448abd;
+}
+
+#sidemenu a {
+ background-color: #e4f2fd;
+ border-bottom-color: #c6d9e9;
+ border-top-color: #e4f2fd;
+}
+
+#tagchecklist span a {
+ background: url(../images/xit.gif) no-repeat;
+}
+
+#tagchecklist span a:hover {
+ background: url(../images/xit.gif) no-repeat -10px 0;
+}
+
+#the-comment-list .comment a {
+ border-bottom-color: #ababab;
+ color: #666;
+}
+
+#update-nag, .plugin-update {
+ background-color: #fffeeb;
+ border-bottom-color: #ccc;
+ border-top-color: #ccc;
+ color: #555;
+}
+
+#upload-files a.file-link {
+ background-color: #d1e2ef;
+}
+
+#upload-file-view a img {
+ border-bottom-color: #69c;
+}
+
+#upload-menu li #current-tab-nav, #upload-file {
+ background-color: #f9fcfe;
+}
+
+#upload-menu li span a.page-numbers {
+ color: #00019b;
+}
+
+#upload-menu li.current {
+ border-right-color: #448abd;
+ color: #000;
+}
+
+#upload-menu li.current a.upload-tab-link, #upload-menu li a:hover {
+ background-color: #f9fcfe;
+ color: #000;
+}
+
+#upload-menu, #upload-menu li {
+ border-top-color: #247fab;
+}
+
+.login #backtoblog a, .curtime, #user_info a {
+ color: #ccc;
+}
+
+#wphead {
+ background-color: #e4f2fd;
+}
+
+#wphead, body.login {
+ border-top-color: #464646;
+}
+
+#wphead #viewsite a {
+ background-color: #c6d9e9;
+ color: #246;
+ border-color: #80b5d0;
+}
+
+#wphead #viewsite a:hover {
+ border-color: #328ab2;
+}
+
+#wphead h1, #dashmenu a.current:hover, #login form input {
+ color: #555;
+}
+
+div#media-upload-error, .file-error, abbr.required, .widget-control-remove:hover, .delete:hover {
+ color: #f00;
+}
+
+#media-upload a.delete {
+ color: #888;
+}
+
+/* TinyMCE */
+.wp_themeSkin *,
+.wp_themeSkin a:hover,
+.wp_themeSkin a:link,
+.wp_themeSkin a:visited,
+.wp_themeSkin a:active {
+ color: #000;
+}
+
+/* Containers */
+.wp_themeSkin table {
+ background: #cee1ef;
+}
+
+.wp_themeSkin iframe {
+ background: #fff;
+}
+
+/* Layout */
+.wp_themeSkin .mceStatusbar {
+ color:#000;
+ background-color: #eaf3fa;
+}
+
+/* Button */
+.wp_themeSkin .mceButton {
+ background-color: #e9e8e8;
+ border-color: #abc0fb;
+}
+
+.wp_themeSkin a.mceButtonEnabled:hover,
+.wp_themeSkin a.mceButtonActive,
+.wp_themeSkin a.mceButtonSelected {
+ background-color: #d6d8da;
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin .mceButtonDisabled {
+ border-color: #bdd !important;
+}
+
+/* ListBox */
+.wp_themeSkin .mceListBox .mceText,
+.wp_themeSkin .mceListBox .mceOpen {
+ border-color: #abc0fb;
+ background-color: #e9e8e8;
+}
+
+.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
+.wp_themeSkin .mceListBoxHover .mceOpen,
+.wp_themeSkin .mceListBoxSelected .mceOpen,
+.wp_themeSkin .mceListBoxSelected .mceText {
+ border-color: #7789ba !important;
+ background-color: #d6d8da;
+}
+
+.wp_themeSkin table.mceListBoxEnabled:hover .mceText,
+.wp_themeSkin .mceListBoxHover .mceText {
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin select.mceListBox {
+ border-color: #b3c7e1;
+ background-color: #fff;
+}
+
+/* SplitButton */
+.wp_themeSkin .mceSplitButton a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceOpen {
+ background-color: #e9e8e8;
+ border-color: #abc0fb;
+}
+
+.wp_themeSkin .mceSplitButton a.mceOpen:hover,
+.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
+.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceAction:hover {
+ background-color: #d6d8da;
+ border-color: #7789ba !important;
+}
+
+.wp_themeSkin .mceSplitButtonActive {
+ background-color: #d6d8da;
+}
+
+/* ColorSplitButton */
+.wp_themeSkin div.mceColorSplitMenu table {
+ background-color: #ebeaeb;
+ border-color: #808080;
+}
+
+.wp_themeSkin .mceColorSplitMenu a {
+ border-color: #808080;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors {
+ border-color: #fff;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {
+ border-color: #0A246A;
+ background-color: #B6BDD2;
+}
+
+.wp_themeSkin a.mceMoreColors:hover {
+ border-color: #0A246A;
+}
+
+/* Menu */
+.wp_themeSkin .mceMenu {
+ border-color: #ddd;
+}
+
+.wp_themeSkin .mceMenu table {
+ background-color: #ebeaeb;
+}
+
+.wp_themeSkin .mceMenu .mceText {
+ color: #000;
+}
+
+.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,
+.wp_themeSkin .mceMenu .mceMenuItemActive {
+ background-color: #CEE1EF;
+}
+.wp_themeSkin td.mceMenuItemSeparator {
+ background-color: #aaa;
+}
+.wp_themeSkin .mceMenuItemTitle a {
+ background-color: #ccc;
+ border-bottom-color: #aaa;
+}
+.wp_themeSkin .mceMenuItemTitle span.mceText {
+ color: #000;
+}
+.wp_themeSkin .mceMenuItemDisabled .mceText {
+ color: #888;
+}
+
+/* pop-up */
+.clearlooks2 .mceTop .mceLeft, .clearlooks2 .mceTop .mceRight {
+ background-color: #cee1ef;
+ border-color: #c6d9e9;
+}
+
+.clearlooks2 .mceFocus .mceTop .mceLeft, .clearlooks2 .mceFocus .mceTop .mceRight {
+ background-color: #2683ae;
+ border-color: #464646;
+}
+
+#editorcontainer {
+ border-color: #ccc;
+}
+
+#poststuff #titlewrap {
+ border-color: #ccc;
+}
+
+.curtime {
+ color: #666;
+}
+
+#tTips p#tTips_inside {
+ background-color: #ddd;
+ color: #333;
+}
--- /dev/null
+#rightnow {
+ margin-left: 15px;
+}
+
+#rightnow .reallynow span {
+ text-align: right;
+ float: right;
+}
+
+#rightnow .reallynow a {
+ text-align: left;
+ float: left;
+ margin: 1px 0 0 6px;
+}
+
+h3.dashboard-widget-title span {
+ text-align: right;
+ float: right;
+}
+
+#dashboard-widgets .widget_rss ul li a {
+ float:right;
+ font-weight:bold;
+ margin:0pt 0pt 0.2em 0.5em;
+}
+
+#dashboard-widgets .widget_rss ul li span.rss-date {
+ float: right;
+}
+
+h3.dashboard-widget-title small {
+ text-align: left;
+ float: left;
+}
+div.dashboard-widget-content ul,
+div.dashboard-widget-content ol,
+div.dashboard-widget-content dl {
+ padding-left:0;
+ padding-right:15px;
+}
+div#dashboard-widgets-wrap
+{
+ margin-right:0;
+ margin-left:-10px;
+}
+
+div.dashboard-widget {
+ margin-right:0;
+ margin-left:20px;
+}
+
+#dashboard-widgets .widget_rss ul li span.rss-date {
+ float:right;
+}
+#dashboard-widgets .widget_rss ul li a {
+ float:right;
+ margin:0 0 0.2em 0.5em;
+}
+#dashboard_secondary div.dashboard-widget-content ul li a {
+ border-right:0 none;
+ border-left:1px solid #DADADA;
+}
\ No newline at end of file
--- /dev/null
+/* Right Now */
+
+#rightnow {
+ border-width: 1px;
+ border-style: solid;
+ padding: 2px;
+ margin-top: 10px;
+ margin-right: 7px;
+}
+
+#rightnow .reallynow {
+ padding: 6px;
+ font-size: 15px;
+ line-height: 2;
+ margin: 0;
+}
+
+#rightnow .rbutton {
+ font-weight: normal;
+ padding: 6px;
+ border-bottom: none;
+ -moz-border-radius: 2px;
+ -khtml-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ text-decoration: none;
+}
+
+#rightnow .reallynow span {
+ display: block;
+ text-align: left;
+ float: left;
+ padding: 0 6px;
+}
+
+#rightnow .reallynow a {
+ display: block;
+ text-align: right;
+ float: right;
+ padding: 0 6px;
+ font-size: 14px;
+ margin: 1px 6px 0 0;
+}
+
+#rightnow .youhave {
+ font-size: 14px;
+ padding: 10px;
+}
+
+#rightnow h3, #rightnow p {
+ padding: 0 10px;
+}
+
+#rightnow a {
+ font-weight: bold;
+}
+
+/* Widgets */
+
+div#dashboard-widgets-wrap {
+ margin-top: -20px;
+ margin-right: -13px; /* 20 (div.dashboard-widget margin-right) - 7 (#rightnow margin-right) */
+}
+
+div#dashboard-widgets {
+ width: 100%;
+}
+
+div.dashboard-widget-holder {
+ margin-top: 20px;
+ width: 50%;
+ float: left;
+}
+
+div.dashboard-widget-holder.third {
+ width: 33.3%;
+}
+
+div.dashboard-widget-holder.fourth {
+ width: 25%;
+}
+
+div.dashboard-widget-holder.full {
+ width: 100%;
+}
+
+div.dashboard-widget-holder.double div.dashboard-widget {
+ height: 54em;
+ padding-bottom: 28px /* lame */
+}
+
+div.dashboard-widget {
+ position: relative;
+ margin-right: 20px;
+ border-width: 1px;
+ border-style: solid;
+ padding: 2px;
+ height: 27em;
+ overflow: auto;
+ font-size: 11px;
+}
+
+h3.dashboard-widget-title {
+ margin: 0;
+ padding: 0 7px;
+ font-size: 14px;
+ line-height: 2;
+}
+
+h3.dashboard-widget-title span {
+ display: block;
+ text-align: left;
+ float: left;
+}
+
+h3.dashboard-widget-title small {
+ display: block;
+ text-align: right;
+ float: right;
+ font-size: 75%;
+ line-height: 2.67; /* math: it works, bitches */
+}
+
+h3.dashboard-widget-title img.rss-icon {
+ vertical-align: middle;
+ margin: .5em 0;
+}
+
+div.dashboard-widget-notice {
+ padding: 0 14px;
+ font-size: 1.2em;
+ line-height: 2;
+}
+
+div.dashboard-widget-error {
+ padding: 0 20px;
+ font-size: 1.2em;
+ line-height: 2;
+}
+
+div.dashboard-widget-content {
+ padding: 10px 15px;
+}
+
+div.dashboard-widget-submit {
+ border-top: 1px solid #ccc;
+ padding: 1em 0 0 0;
+ margin: 10px 0 0 0;
+}
+div.dashboard-widget-submit input {
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ padding: 4px 6px;
+ border: none;
+ font-size: 13px;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ cursor: pointer;
+ text-decoration: none;
+}
+
+div.dashboard-widget-content ul, div.dashboard-widget-content ol, div.dashboard-widget-content dl {
+ margin: 0;
+ text-indent: 0;
+ padding-left: 15px;
+}
+div.dashboard-widget-content li {
+ margin: .5em 0 1em;
+}
+
+div.dashboard-widget-content blockquote {
+ margin: -1em 0;
+}
+
+div#dashboard_recent_comments p {
+ font-size: 14px;
+}
+
+div.dashboard-widget-content p.comment-meta {
+ font-size: 11px !important;
+}
+
+#dashboard_secondary div.dashboard-widget {
+ height: auto;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul {
+ list-style: none;
+ padding: 0;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li {
+ display: block;
+ width: 19.95%;
+ padding-bottom: 10px;
+ margin: 0;
+ float: left;
+ font-size: 95%;
+}
+
+#dashboard_secondary div.dashboard-widget-content {
+ margin: 10px 5px;
+ padding: 0;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li .post {
+ display:block;
+ font-family:Georgia,"Times New Roman",Times,serif;
+ font-size:18px;
+ line-height: 1.2em;
+ height:90px;
+ overflow:hidden;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a {
+ display: block;
+ height:100%;
+ overflow:hidden;
+ margin: 5px 10px;
+ text-decoration: none;
+ padding: .5em;
+ border-right: 1px solid #dadada;
+ border-bottom: 1px solid #dadada;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a cite {
+ display: block;
+ font-family: "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+}
+
+#dashboard-widgets .widget_rss ul {
+ list-style: none;
+ padding: 0;
+}
+
+#dashboard-widgets .widget_rss ul li {
+ clear: both;
+}
+
+#dashboard-widgets .widget_rss ul li span.rss-date {
+ float: left;
+ margin: 0;
+}
+
+#dashboard-widgets .widget_rss ul li a {
+ float: left;
+ margin: 0 .5em .2em 0;
+ font-weight: bold;
+}
+
+#dashboard-widgets .widget_rss ul li div {
+ clear: both;
+ line-height: 1.5em;
+}
+
+#dashboard_primary a.rsswidget, #dashboard_plugins h5 {
+ font-size: 14px;
+}
+
+#dashboard_primary span.rss-date {
+ font-size: 14px;
+}
+
+#dashboard_plugins h4 {
+ font-size: 1em;
+ margin: 0 0 .1em;
+}
+
+#dashboard_plugins h5 {
+ margin: 0;
+ display: inline;
+ line-height: 1.4em;
+}
+
+#dashboard_plugins p {
+ margin: 0 0 1em;
+ line-height: 1.5em;
+}
+
+.widget-loading {
+}
--- /dev/null
+/* styles for use by people extending the WordPress interface */
+
+
+body {
+ margin: 0;
+ padding: 0;
+}
+
+body, td {
+ font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+}
+
+form, label input { margin: 0; padding: 0; }
+
+img { border: 0; }
+
+label { cursor: pointer; }
+
+li, dd { margin-bottom: 6px; }
+
+p, li, dl, dd, dt { line-height: 140%; }
+
+textarea, input, select {
+ font: 13px Verdana, Arial, Helvetica, sans-serif;
+ margin: 1px;
+ padding: 3px;
+}
+
+.alignleft { float: left; }
+.alignright { float: right; }
+
+.textleft { text-align: left; }
+.textright { text-align: right; }
+
+.clear { clear: both; height: 2px; }
+
+.hidden { display: none; }
+
+h1 {
+ display: block;
+ font-size: 2em;
+ font-weight: bold;
+ margin: .67em 0;
+}
+
+h2 {
+ display: block;
+ font-size: 1.5em;
+ font-weight: bold;
+ margin: .83em 0;
+}
+
+h3 {
+ display: block;
+ font-size: 1.17em;
+ font-weight: bold;
+ margin: 1em 0;
+}
+
+h4 {
+ display: block;
+ font-weight: bold;
+ margin: 1.33em 0;
+}
+
+h5 {
+ display: block;
+ font-size: 0.83em;
+ font-weight: bold;
+ margin: 1.67em 0;
+}
+
+h6 {
+ display: block;
+ font-size: 0.67em;
+ font-weight: bold;
+ margin: 2.33em 0;
+}
+
+.subsubsub {
+ list-style: none;
+ margin: 14px 0 8px 0;
+ padding: 0;
+ white-space: nowrap;
+ font-size: 12px;
+}
+
+.subsubsub a { line-height: 200%; padding: 3px; text-decoration: none; }
+
+.subsubsub a.current { font-weight: bold; background: none; border: none;}
+
+.subsubsub li { display: inline; margin: 0; padding: 0; }
+
+.widefat {
+ border-width: 1px;
+ border-style: solid;
+ border-collapse: collapse;
+ width: 100%;
+ clear: both;
+ margin: 0;
+}
+
+.widefat a {
+ text-decoration: none;
+}
+
+.widefat abbr {
+ white-space: nowrap;
+}
+
+.widefat td, .widefat th {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #ccc;
+ font-size: 11px;
+ vertical-align: text-top;
+}
+
+.widefat td {
+ padding: 7px 15px 9px 10px;
+ vertical-align: top;
+}
+
+.widefat th {
+ padding: 9px 15px 6px 10px;
+ text-align: left;
+ line-height: 1.3em;
+}
+
+.widefat th input {
+ margin: 0 0 0 8px;
+ padding: 0;
+}
+
+.widefat .check-column {
+ text-align: right;
+ width: 1.5em;
+ padding: 0;
+
+}
+
+.widefat tbody th.check-column {
+ padding: 8px 0 22px;
+}
+/*
+th.check-column + th, th.check-column + td {
+ padding-left: 5px;
+}
+*/
+.widefat .num {
+ text-align: center;
+}
+
+.wrap, .updated, .error {
+ margin: 0;
+ margin-left: 15px;
+ margin-right: 15px;
+ padding: 0;
+ max-width: 980px;
+}
+
+.updated, .error {
+ border-width: 1px;
+ border-style: solid;
+ padding: 0 0.6em;
+ max-width: 950px;
+ margin-bottom: 1em;
+}
+
+.updated p, .error p {
+ margin: 0.6em 0;
+}
+
+.wrap .updated, .wrap .error {
+ margin: auto 0 0;
+}
+
+.updated a, .error a {
+ text-decoration: underline;
+}
+
+.updated a {
+ text-decoration: none;
+ padding-bottom: 2px;
+}
+
+.wrap h2 {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ clear: both;
+ font: 24px Georgia, "Times New Roman", Times, serif;
+ margin: 5px 0 0 -4px;
+ padding: 0;
+ padding-bottom: 7px;
+ padding-right: 280px;
+}
--- /dev/null
+/* footer */
+body, td {
+ font-family: Tahoma,Verdana,sans-serif;
+}
+
+.wrap {
+ text-align: right;
+}
+
+.wrap h2 {
+ margin: 5px 0 0 4px;
+}
+
+#footer {
+ padding-left:50px;
+}
+#footer p {
+ background:none;
+ height:auto;
+ padding: 5px 5px 0;
+}
+
+#bh {
+ padding-left: 15px;
+ padding-right: 0px;
+}
+/* write post */
+#poststuff .togbox {
+ margin-right:-16px;
+}
+#poststuff h3 {
+ padding-right:20px;
+}
+
+p#widget-search, p#post-search {
+ padding-left: 15px;
+}
+
+.widefat th {
+ padding-bottom: 8px;
+}
+
+/* template editor */
+#template textarea {
+ float:left;
+}
+
+/* Editor */
+
+.mceToolbar {
+ direction: ltr;
+ text-align: left;
+}
\ No newline at end of file
--- /dev/null
+/* Fixes for IE bugs */
+
+#poststuff .postbox h3 {
+ padding-left: 23px;
+}
+
+#submenu li a.current {
+ background:none;
+ border:none;
+}
+
+* html body.minwidth {
+ _width: expression(document.documentElement.clientWidth < 810 ? "808px" : "99.9%");
+}
+
+* html #wpbody {
+ _width: expression(document.documentElement.clientWidth > 982 ? "980px" : "99.9%");
+}
+
+* html #poststuff .postarea, * html #poststuff #titlediv {
+ width: 95%;
+ margin-left: 3%;
+}
+
+.submitbox {
+ margin-top: 10px;
+}
+
+* html div.widget-liquid-left-holder, * html div.widget-liquid-right {
+ display: block;
+ position: relative;
+}
+
+#wpwrap, #wpcontent, #post, #wrap, #postdivrich, #postdiv, #poststuff, #titlediv, #post-body, #editorcontainer, .tablenav, .widget-control-list, li.widget-list-control-item, #dragHelper, li.widget-list-control-item h4, .widget-sortable, .widget-control-actions {
+ display: block;
+ zoom: 100%;
+}
+
+* html #editorcontainer {
+ padding: 0;
+}
+
+* html #editorcontainer #content {
+ position: relative;
+ overflow: auto;
+ padding: 6px;
+ margin: auto;
+ width: 98%;
+}
+
+form#template div {
+ width: 100%;
+}
+
+#ed_toolbar input {
+ overflow: visible;
+ padding: 0 4px;
+}
+
+#poststuff h2 {
+ font-size: 1.6em;
+}
+
+* html #poststuff h2 {
+ margin-left: 0;
+}
+
+#bh {
+ padding-right: 15px;
+}
+
+/* without this dashboard widgets appear in one column for some screen widths */
+div#dashboard-widgets {
+ padding-right: 1px;
+}
+
+#tagchecklist {
+ display: block;
+ zoom: 100%;
+}
+
+#tagchecklist span, #tagchecklist span a {
+ display: inline-block;
+ display: block;
+}
+
+#tagchecklist span a {
+ margin: 4px 0 0 -9px;
+}
+
+#poststuff .togbox {
+ margin-left: -19px;
+}
+
+.tablenav .button-secondary, .nav .button-secondary {
+ padding: 0 1px;
+ vertical-align: middle;
+}
+
+.tablenav select {
+ font-size: 13px;
+ display: inline-block;
+ vertical-align: top;
+ margin-top: 2px;
+}
+
+.tablenav-pages .page-numbers {
+ display: inline-block;
+}
+
+.tablenav-pages {
+ display: block;
+ margin-top: -3px;
+
+}
+
+#post-search .button, #widget-search .button {
+ padding: 1px;
+}
+
+.widefat tr, .widefat th {
+ margin-bottom: 0;
+ border-spacing: 0;
+}
+
+.widefat th input {
+ margin: 0 0 0 5px;
+}
+
+.widefat .check-column {
+ padding: 6px 0 2px;
+}
+
+.widefat tbody th.check-column {
+ padding: 4px 0 22px;
+}
+
+.tablenav a.button-secondary {
+ display: inline-block;
+ padding: 2px 5px;
+}
-body { font: 13px Tahoma, Georgia, "Times New Roman", Times, serif; }
-
-ul, ol { padding: 5px 20px 5px 5px; }
-
-h1, h2, h3 { font-family: "Times New Roman", Times, serif; font-weight: 700 }
-
-.step, th { text-align: left }
-
-input { font-family: "Times New Roman", Times, serif; padding: 1px }
-
-#logo { background: url(../wp-content/plugins/WP-Jalali/wp-fa-logo.png) center right no-repeat; text-align: left; }
-
-#admin_email {direction: ltr; text-align: left; }
-
-#footer { font-style: normal; }
\ No newline at end of file
+body {
+ font-size: 11px;;
+}
+ul, ol {
+ padding: 5px 22px 5px 5px;
+}
+.form-table th {
+ text-align: right;
+}
+input {
+ padding: 1px
+}
+#logo {
+ text-align: left;
+}
+#admin_email {
+ direction: ltr;
+ text-align: left;
+}
\ No newline at end of file
-html { background: #eee; }
+html { background: #f1f1f1; }
body {
background: #fff;
- color: #000;
- font-family: Georgia, "Times New Roman", Times, serif;
- margin-left: 20%;
- margin-right: 20%;
- padding: .2em 2em;
+ color: #333;
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ margin: 2em auto 0 auto;
+ width: 700px;
+ padding: 1em 2em;
+ -webkit-border-radius: 12px;
+ font-size: 62.5%;
}
+a { color: #2583ad; text-decoration: none; }
+
+a:hover { color: #d54e21; }
+
+
h1 {
- color: #006;
font-size: 18px;
- font-weight: lighter;
+ margin-bottom: 0;
}
h2 { font-size: 16px; }
-p, li, dt {
- line-height: 140%;
+p, li {
padding-bottom: 2px;
+ font-size: 1.3em;
+ line-height: 1.8em;
+}
+
+code {
+ font-size: 1.3em;
}
-ul, ol { padding: 5px 5px 5px 20px; }
+ul, ol { padding: 5px 5px 5px 22px; }
-#logo { margin-bottom: 2em; }
+#logo { margin: 6px 0 14px 0px; border-bottom: none;}
.step a, .step input { font-size: 2em; }
td input { font-size: 1.5em; }
-.step, th { text-align: right; }
+.step, th { text-align: left; padding: 0; }
+
+.submit input, .button, .button-secondary {
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ padding: 6px;
+ border: none;
+ margin-left: 0;
+ font-size: 13px !important;
+ -moz-border-radius: 2px;
+ -khtml-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ color: #246;
+ background: #e5e5e5;
+}
+
+.button-secondary {
+ background: #cee1ef;
+}
+
+.submit input:hover, .button:hover, .button-secondary:hover {
+ color: #d54e21;
+}
+
+.form-table {
+ border-collapse: collapse;
+ margin-top: 1em;
+ width: 100%;
+}
+
+.form-table td {
+ margin-bottom: 9px;
+ padding: 10px;
+ border-bottom: 8px solid #fff;
+}
+
+.form-table th {
+ font-size: 12px;
+ text-align: left;
+ padding: 12px 10px 10px 10px;
+ border-bottom: 8px solid #fff;
+ width: 110px;
+ vertical-align: top;
+}
+
+.form-table tr {
+ background: #eaf3fa;
+}
+
+.form-table code {
+ line-height: 18px;
+ font-size: 18px;
+}
+
+.form-table p {
+ margin: 4px 0 0 0;
+ font-size: 11px;
+}
+
+h1 {
+ border-bottom: 1px solid #dadada;
+ clear: both;
+ color: #666666;
+ font: 24px Georgia, "Times New Roman", Times, serif;
+ margin: 5px 0 0 -4px;
+ padding: 0;
+ padding-bottom: 7px;
+}
+
+#error-page {
+ margin-top: 50px;
+}
+
+#error-page p {
+ font-size: 14px;
+ line-height: 1.6em;
+}
-#footer {
- text-align: center;
- border-top: 1px solid #ccc;
- padding-top: 1em;
- font-style: italic;
+#error-page code {
+ font-size: 1em;
}
\ No newline at end of file
--- /dev/null
+body {
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ direction: rtl;
+}
+form {
+ margin-left:0;
+ margin-right:8px;
+}
+form .forgetmenot {
+ float:right;
+}
+form .submit {
+ float:left;
+}
+#login_error, .message {
+ margin:0 8px 16px 0;
+}
+#nav {
+ margin: 0 8px 0 0;
+}
+#user_pass, #user_login, #user_email {
+ margin-right:0;
+ margin-left: 6px;
+ direction:ltr;
+}
+h1 a {
+ text-decoration:none;
+}
+#backtoblog a {
+ left: auto;
+ right: 15px;
+}
\ No newline at end of file
--- /dev/null
+* { margin: 0; padding: 0; }
+
+body {
+ border-top-width: 30px;
+ border-top-style: solid;
+ font: 12px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+}
+
+form {
+ margin-left: 8px;
+ padding: 16px 16px 40px 16px;
+ font-weight: bold;
+ -moz-border-radius: 5px;
+ -khtml-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+
+form .forgetmenot { font-weight: normal; float: left; margin-bottom: 0;}
+
+#login form .submit input {
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ padding: 3px 5px;
+ border: none;
+ font-size: 13px;
+ border-width: 1px;
+ border-style: solid;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ cursor: default;
+ text-decoration: none;
+ margin-top: -6px;
+}
+
+form .submit { float: right; }
+
+form p { margin-bottom: 24px; }
+
+h1 a {
+ background: url(../images/logo-login.gif) no-repeat;
+ width: 292px;
+ height: 66px;
+ text-indent: -9999px;
+ overflow: hidden;
+ padding-bottom: 15px;
+ display: block;
+}
+
+#backtoblog a {
+ position: absolute;
+ top: 7px;
+ left: 15px;
+ text-decoration: none;
+}
+
+#login { width: 292px; margin: 7em auto; }
+
+#login_error, .message {
+ margin: 0 0 16px 8px;
+ border-width: 1px;
+ border-style: solid;
+ padding: 12px;
+}
+
+#nav { margin: 0 0 0 8px; padding: 16px; }
+
+#user_pass, #user_login, #user_email {
+ font-size: 20px;
+ width: 97%;
+ padding: 3px;
+ margin-right: 6px;
+}
\ No newline at end of file
--- /dev/null
+ul#sidemenu {
+ left: auto;
+ right: 0;
+}
+.align .field label {
+ display: block;
+ float: right;
+ padding: 0 25px 0 0;
+ margin: 5px 3px 5px 5px;
+}
+.align .field input {
+ display: block;
+ float: right;
+ margin: 5px 15px 5px 0;
+}
+.image-align-none-label,
+.image-align-left-label,
+.image-align-center-label,
+.image-align-right-label {
+ background-position: center right;
+}
\ No newline at end of file
--- /dev/null
+div#media-upload-header {
+ margin: 0;
+ padding: 0 5px;
+ font-weight: bold;
+ position: relative;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ height: 2.5em;
+}
+
+body#media-upload ul#sidemenu {
+ font-weight: normal;
+ margin: 0 5px;
+ position: absolute;
+ left: 0px;
+ bottom: -1px;
+}
+
+div#media-upload-error {
+ margin: 1em;
+ font-weight: bold;
+}
+
+form {
+ margin: 1em;
+}
+
+#search-filter {
+ text-align: right;
+}
+
+.media-upload-form label, .media-upload-form legend {
+ display:block;
+ font-weight: bold;
+ margin-bottom: 0.5em;
+ margin: 0 0 0.5em 0;
+}
+
+th { position: relative; }
+
+.media-upload-form label.form-help, td.help {
+ font-style: italic;
+ font-weight: normal;
+}
+
+.media-upload-form p.help {
+ margin: 0;
+ padding: 0;
+}
+
+.media-upload-form fieldset {
+ width: 100%;
+ border: none;
+ text-align: justify;
+ margin: 0 0 1em 0;
+ padding: 0;
+}
+
+/* specific to the image upload form */
+.align .field label {
+ display: inline;
+ padding: 0 0 0 28px;
+ margin: 0 1em 0 0;
+}
+.image-align-none-label {
+ background: url(../images/align-none.png) no-repeat center left;
+}
+
+.image-align-left-label {
+ background: url(../images/align-left.png) no-repeat center left;
+}
+
+.image-align-center-label {
+ background: url(../images/align-center.png) no-repeat center left;
+}
+
+.image-align-right-label {
+ background: url(../images/align-right.png) no-repeat center left;
+}
+
+#flash-upload-ui, .insert-gallery {
+ display: none;
+}
+
+tr.image-size label {
+ display: inline;
+ margin: 0 1em 0 0;
+}
+.pinkynail {
+ max-width: 40px;
+ max-height: 40px;
+}
+
+.filename.original {
+ float: left;
+}
+.crunching {
+ display: block;
+ line-height: 32px;
+ text-align: right;
+ margin-right: 5px;
+}
+button.dismiss {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ z-index: 4;
+}
+.file-error {
+ margin: 0 0 5px 50px;
+ font-weight: bold;
+}
+
+.progress {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 623px;
+ height: 36px;
+}
+.bar {
+ width: 0px;
+ height: 100%;
+ border-right-width: 3px;
+ border-right-style: solid;
+}
+
+#library-form .progress, #gallery-form .progress {
+ display: none;
+}
+
+.media-item .thumbnail {
+ max-width: 128px;
+ max-height: 128px;
+}
+.media-item .pinkynail {
+ float: left;
+ margin: 2px;
+ height: 32px;
+ max-width: 40px;
+}
+
+thead.media-item-info tr {
+ background-color: transparent;
+}
+thead.media-item-info th, thead.media-item-info td {
+ border: none;
+ margin: 0;
+}
+
+.form-table thead.media-item-info {
+ border: 8px solid #fff;
+}
+
+.describe.startopen, .describe.startclosed {
+ display: none;
+}
+abbr.required {
+ text-decoration: none;
+ border: none;
+}
+.describe label {
+ display: inline;
+}
+.describe td {
+ vertical-align: middle;
+}
+.describe td.A1 {
+ width: 132px;
+}
+.describe input[type="text"], .describe textarea {
+ width: 460px;
+}
+.describe-toggle-on, .describe-toggle-off {
+ display: block;
+ line-height: 36px;
+ float: right;
+ margin-right: 20px;
+}
+.describe-toggle-off {
+ display: none;
+}
+
+.clickmask {
+}
+
+.hidden {
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+ border: none;
+}
+
+/* Specific to Uploader */
+
+#media-upload .media-upload-form p {
+ margin: 0 1em 1em 0;
+}
+#media-upload p.help {
+ font-style: italic;
+ font-weight: normal;
+}
+#media-upload tr.image-size td.field {
+ text-align: center;
+}
+#media-upload #media-items {
+ border-width: 1px;
+ border-style: solid;
+ border-bottom: none;
+ width: 623px;
+}
+
+#media-upload .media-item {
+ position: relative;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ min-height: 36px;
+ width: 100%;
+}
+.filename {
+ line-height: 36px;
+ margin-left: 10px;
+ float: left;
+}
+#media-upload .describe {
+ border-top-width: 1px;
+ border-top-style: solid;
+ padding: 5px;
+ width: 100%;
+ clear: both;
+}
+#media-upload .describe th.label {
+ padding-top: .5em;
+ text-align: left;
+}
+#media-upload tr.align td.field {
+ text-align: center;
+}
+#media-upload tr.image-size {
+ margin-bottom: 1em;
+ height: 3em;
+}
--- /dev/null
+#templateside {
+ float:left;
+}
+#themeselector {
+ padding-right:0;
+ padding-left:5px;
+}
+div.tablenav {
+ margin-left:210px;
+ margin-right:0;
+}
\ No newline at end of file
--- /dev/null
+#template textarea {
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 12px;
+ width: 97%;
+}
+
+#template p {
+ width: 97%;
+}
+
+#templateside {
+ float: right;
+ width: 190px;
+ margin-top:-3.4em;
+}
+
+#templateside h3, #postcustomstuff p.submit {
+ margin: 0;
+}
+
+h3#bordertitle {
+ margin-bottom: 10px;
+}
+
+#templateside h4 {
+ margin-bottom: 0px;
+}
+
+#templateside ol, #templateside ul {
+ list-style: none;
+ margin: .5em;
+ padding: 0;
+}
+
+#templateside ol li, #templateside ul li {
+ margin: 1px 0px;
+}
+
+#themeselector {
+ padding-right: 5px;
+ float: right;
+ position: relative;
+ bottom: 25px;
+}
+
+#themeselector select {
+ margin: 0;
+ padding: 0;
+}
+
+.nonessential {
+ font-size: small;
+}
+
+.highlight {
+ padding: 1px;
+}
+
+div.bordertitle h2 {
+ border: none;
+ padding-bottom: 0px;
+}
+
+div.tablenav {
+ margin-right: 210px;
+}
+++ /dev/null
-body { background: #f9fcfe; }
-
-.upload-file-data { display: none; }
-
-#upload-menu {
- border-top: 2em solid #247fab;
- margin: 0;
- padding: 0;
- height: 0;
- list-style: none;
- width: 100%;
-}
-
-body > #upload-menu { border-bottom: 7px solid #fff; }
-
-#upload-menu li {
- margin: 0;
- position: relative;
- top: -2em;
- padding-bottom: 5px;
- border: none;
- border-top: 3px solid #247fab;
-}
-
-#upload-menu li a.upload-tab-link {
- margin-left: 0.75em;
- padding: 5px 5px 0;
- display: block;
- float: left;
- height: 100%;
- text-decoration: none;
- border-bottom: none;
- color: #fff;
-}
-
-#upload-menu li.current {
- border-right: 2px solid #448abd;
- color: #000;
-}
-
-#upload-menu li.current a.upload-tab-link, #upload-menu li a:hover {
- background: #f9fcfe;
- color: #000;
-}
-
-#upload-menu li #current-tab-nav {
- background: #f9fcfe;
- float: left;
- padding: 5px 5px 0 0;
- margin-left: -5px;
-}
-
-#upload-menu li span .page-numbers {
- padding: 0;
- border: none;
-}
-
-#upload-menu li span a.page-numbers { color: #00019b; }
-#upload-menu li span a.page-numbers:hover { text-decoration: underline; }
-
-#upload-content {
- position: relative;
- clear: both;
- margin: 0;
- padding: 0;
- border: none;
- width: 100%;
- height: 100%;
- background: none;
-}
-
-#upload-file {
- margin: 0 auto;
- top: 0;
- left: 0;
- width: 95%;
- height: 100%;
- background: #f9fcfe;
-}
-
-#upload-file th {
- width: 8em;
-}
-
-form#upload-file input, form#upload-file textarea, div#upload-content.upload table { width: 100%; }
-
-form#upload-file .submit input { width: auto; }
-
-#upload-file-view { padding: 0 0 0 75px; }
-
-#file-title {
- margin: 0 0 .2em 75px;
- padding: 0;
- display: block;
- font-family: Georgia, "Times New Roman", Times, serif;
- font-size: 16px;
-}
-
-h2 {
- margin: 0 .2em 0 0;
- padding: 0;
- display: inline;
- border: none;
- color: #000;
- font-size: 1.4em;
- line-height: 1.4em;
-}
-
-.wrap h2 {
- margin: .4em 0 .5em;
- display: block;
- border-bottom: .5em solid #e5f3ff;
- color: #333;
- font: normal 32px/5px serif;
- clear: both;
-}
-
-* html .wrap h2 {
- margin-top: 1em;
-}
-
-.back {
- display: block;
- position: absolute;
- left: 14px;
- top: 10px;
-}
-
-#upload-files {
- list-style-type: none;
- margin: 0;
- padding: 15px 0 0;
-}
-
-#upload-files li { margin: 0 0 15px 15px; }
-
-#upload-files a, #upload-file-view a, a.file-link {
- border: none;
- text-decoration: none;
-}
-
-#upload-file-view a img { padding-bottom: .2em; border-bottom: 1px solid #6699CC; }
-
-#upload-files a.file-link {
- display: block;
- width: 130px;
- height: 128px;
- background-color: rgb(209, 226, 239);
- text-align: center;
- overflow: hidden;
-}
-
-#upload-files a.text {
- padding-top: 40px;
- height: 88px;
- font-size: 16px;
-}
-
-#upload-files a.file-link.image {
- font-size: 2px;
- letter-spacing: 0;
-}
-
-#upload-files a.file-link img { vertical-align: middle; }
-
-#the-attachment-links textarea {
- font-size: 10px;
- overflow: hidden;
-}
-
-form table { float: none; padding: 0 15px; }
-
-table {
- float: left;
- margin: 0;
- padding: 0;
-}
-
-th { text-align: right; vertical-align: text-top; }
-
-tr, td, th {
- margin-top: 0;
- padding-top: 0;
-}
-
-#uploadoptions th {
- width: 80px;
-}
-
-#uploadoptions p {
- margin: 0;
- padding: 0;
-}
-
-#uploadoptions td {
- padding-left: 1em;
- line-height: 140%;
-}
-
-#uploadoptions table {
- width: 300px;
-}
-
-input.readonly { background-color: #ddd; }
-.dropzone,
-#palettediv,
-.handle,
-.controlform {
- direction: rtl;
- text-align: justify;
- }
-.dropzone {
- float: right;
- margin-left: 10px;
- margin-right: auto;
- width: 240px;
- }
-* html .dropzone ul {
- margin-right: 0;
- }
-* .handle, #lastmodule span {
- border-left: 1px solid #e8e8e8;
- border-right: 1px solid #f2f2f2;
- }
-* .popper {
- right: auto;
- left: 3px;
- }
-#palettediv .module, #lastmodule {
- margin-right: auto;
- margin-left: 10px;
- float: right;
- }
-#palettediv ul {
- padding: 0 10px 0 0;
- margin-right: 0;
- width: 100%;
- }
-.placemat {
- margin-right: 0;
- float: right;
- }
\ No newline at end of file
+div.widget-liquid-left-holder {
+ clear:right;
+ float:right;
+ margin-right:0;
+ margin-left:-310px;
+}
+div.widget-liquid-left {
+ margin-right:0;
+ margin-left:310px;
+}
+div.widget-liquid-right {
+ clear:left;
+ float:left;
+}
+p#widget-search {
+ left:0;
+ right:auto
+}
+ul#widget-list li.widget-list-item h4.widget-title {
+ float:right;
+ text-align:right;
+}
+ul#widget-list li.widget-list-item div.widget-description {
+ margin:0 200px 0 0;
+ padding:0 4em 0 0;
+}
+.widget-control-save, .widget-control-remove {
+ float:right;
+ margin-right:0;
+ margin-left:8px;
+}
+h4.widget-title a {
+ right:auto;
+ left:1em;
+}
+li.widget-list-control-item h4.widget-title a, #dragHelper li.widget-list-control-item h4.widget-title a, #draghelper li.widget-list-control-item h4.widget-title a:visited {
+ right:auto;
+ left:1em;
+}
+
+li.widget-list-control-item div.widget-control {
+ padding:0 0 0 10px;
+}
+ul.widget-control-list div.widget-control-actions {
+ margin-right:0;
+ margin-left:-10px;
+}
+ul.widget-control-list .widget-title {
+ text-align:right;
+}
\ No newline at end of file
-body {
- height: 100%;
-}
-
-#sbadmin #zones {
- -moz-user-select: none;
- -khtml-user-select: none;
- user-select: none;
-}
-
-#sbreset {
+/* 2 column liquid layout */
+div.widget-liquid-left-holder {
float: left;
- margin: 1px 0;
-}
-
-.dropzone {
- border: 1px solid #bbb;
- float: left;
- margin-right: 10px;
- padding: 5px;
- background-color: #f0f8ff;
-}
-
-.dropzone h3 {
- text-align: center;
- color: #333;
+ clear: left;
+ width: 100%;
+ margin-right: -310px;
}
-.dropzone input {
- display: none;
+div.widget-liquid-left {
+ margin-right: 320px;
}
-.dropzone ul {
- float: left;
- list-style-type: none;
- width: 240px;
- margin: 0;
- min-height: 200px;
- padding: 0;
- display: block;
+div.widget-liquid-right {
+ float: right;
+ clear: right;
+ width: 300px;
+ position: relative;
}
-* .module {
- width: 238px;
- padding: 0;
- margin: 5px 0;
- cursor: move;
- display: block;
- border: 1px solid #ccc;
- background-color: #fbfbfb;
+/* pasitioning etc. */
+form#widgets-filter {
position: relative;
- text-align: left;
- line-height: 25px;
}
-* .handle {
- display: block;
- width: 216px;
- padding: 0 10px;
- position: relative;
- border-top: 1px solid #f2f2f2;
- border-right: 1px solid #e8e8e8;
- border-bottom: 1px solid #e8e8e8;
- border-left: 1px solid #f2f2f2;
+div#available-widgets-filter {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
}
-* .popper {
- margin: 0;
- display: inline;
+p#widget-search {
position: absolute;
- top: 3px;
- right: 3px;
- overflow: hidden;
- text-align: center;
- height: 16px;
- font-size: 18px;
- line-height: 14px;
- cursor: pointer;
- padding: 0 3px 1px;
- border-top: 4px solid #6da6d1;
- background: url( ../images/fade-butt.png ) -5px 0px;
-}
-
-* html .popper {
- padding: 1px 6px 0;
- font-size: 16px;
-}
-
-#sbadmin p.submit {
- padding-right: 10px;
- clear: left;
+ right: 0;
+ top: 0;
+ margin: 0;
}
-.placemat {
- cursor: default;
+ul#widget-list {
+ list-style: none;
margin: 0;
padding: 0;
- position: relative;
}
-.placemat h4 {
- text-align: center;
+ul#widget-list li.widget-list-item {
+ padding: .7em 0.9em;
+ margin: 0;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ background-color: transparent;
+ line-height: 1;
}
-.placemat span {
- background-color: #ffe;
- border: 1px solid #ccc;
- padding: 0 10px 10px;
- position: absolute;
- text-align: justify;
+ul#widget-list li.widget-list-item h4.widget-title {
+ position: relative;
+ margin: 0;
+ padding: .5em 1em;
+ width: 200px;
+ float: left;
+ font-size: 13px;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;;
}
-#palettediv {
- border: 1px solid #bbb;
- background-color: #f0f8ff;
- height:auto;
- margin-top: 10px;
- padding-bottom: 10px;
+#dragHelper h4.widget-title {
+ padding: .5em 1em;
+ margin: 0;
}
-#palettediv:after, #zones:after, .dropzone:after {
- content: ".";
+ul#widget-list li.widget-list-item div.widget-description {
display: block;
- height: 0;
- clear: both;
- visibility: hidden;
+ margin: 0 0 0 200px;
+ padding: 0 0 0 4em;
+ font-size: 11px;
}
-#palettediv, #zones, .dropzone {
- display: block;
- min-height: 1px;
-}
-* html #palettediv, * html #zones, * html .dropzone {
- height: 1%;
+ul#widget-list li.widget-list-item ul.widget-control-info {
+ display: none;
}
-#palettediv h3 {
- text-align: center;
- color: #333;
- min-height: 1px;
+div#sidebar-info {
+ padding: 0 1em;
+ margin-bottom: 1em;
+ font-size: 11px;
}
-#palettediv ul {
- padding: 0 0 0 10px;
+ul.widget-control-list {
+ list-style: none;
+ margin: 0;
+ padding: 0 1em;
}
-#palettediv .module {
- margin-right: 10px;
- float: left;
- width: 120px;
+ul.widget-control-list li {
+ position: relative;
}
-#palettediv .handle {
- height: 40px;
- font-size: 90%;
- width: 110px;
- padding: 0 5px;
+div#current-widgets p.submit {
+ padding: 1em;
}
-#palettediv .popper {
- visibility: hidden;
+li.widget-list-control-item {
+ margin: 0 0 1em;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
}
-* html #palettediv ul {
+li.widget-list-control-item h4, #dragHelper li.widget-list-control-item h4, li.widget-sortable h4 {
margin: 0;
- padding: 0 0 0 10px;
+ padding: 0.4em 2.5em 0.4em 0.8em;
+ cursor: move;
+ font-size: 13px;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.widget-control-save, .widget-control-remove {
+ padding: 3px 5px;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ margin-right: 8px;
+ float: left;
+ text-decoration: none;
}
-#controls {
- height: 0px;
+h4.widget-title a {
+ position: absolute;
+ right: 1em;
+ text-decoration: underline;
+ border-bottom: none;
}
-.control {
- position: absolute;
- display: block;
- background: #f9fcfe;
- padding: 0;
+li.widget-list-control-item h4.widget-title a,
+#dragHelper li.widget-list-control-item h4.widget-title a,
+#draghelper li.widget-list-control-item h4.widget-title a:visited {
+ right: 1em;
}
-.controlhandle {
- cursor: move;
- background-color: #6da6d1;
- border-bottom: 2px solid #448abd;
- color: #333;
- display: block;
- margin: 0 0 5px;
- padding: 4px;
- font-size: 120%;
+li.widget-list-control-item h4.widget-title a:hover {
+
+ text-decoration: none;
+ border-bottom: none;
}
-.controlcloser {
- cursor: pointer;
- font-size: 120%;
- display: block;
- position: absolute;
- top: 2px;
- right: 8px;
- padding: 0 3px;
- font-weight: bold;
+li.widget-list-control-item div.widget-control {
+ display: none;
+ margin: 1em;
+ padding: 0 10px 0 7px; /* Correction for padding, margin, border of inputs */
+ font-size: 11px;
}
-.controlform {
- margin: 20px 30px;
+li.widget-list-control-item div.widget-control p {
+ margin: 0 0 1em;
+ padding: 0;
}
-.controlform p {
- text-align: center;
+ul.widget-control-list div.widget-control-actions {
+ margin-right: -10px; /* Correction for padding, margin, border of inputs */
+ margin-left: -6px;
+ border-top-width: 1px;
+ border-top-style: solid;
+ padding: 0.5em 0 0.8em;
}
-.control .checkbox {
- border: none;
- background: transparent;
+ul.widget-control-list .widget-title {
+
}
-.hidden {
- display: none;
+.widget-control-edit {
+ font-size: 10px;
+ font-weight: normal;
}
-#shadow {
- background: black;
- display: none;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 100%;
+div#current-widgets {
+ padding-top: 1em;
+ border-width: 1px;
+ border-style: solid none none;
}
-#dragHelper {
- position: absolute;
+#widget-controls .widefat {
+ width: 92%;
+ padding: 3px;
}
-#dragHelper li.module {
+#widget-controls select.widefat {
+ width: auto;
display: block;
- float: left;
}
$page = add_theme_page(__('Custom Image Header'), __('Custom Image Header'), 'edit_themes', 'custom-header', array(&$this, 'admin_page'));
add_action("admin_print_scripts-$page", array(&$this, 'js_includes'));
+ add_action("admin_head-$page", array(&$this, 'take_action'), 50);
add_action("admin_head-$page", array(&$this, 'js'), 50);
add_action("admin_head-$page", $this->admin_header_callback, 51);
}
- function js_includes() {
- wp_enqueue_script('cropper');
- wp_enqueue_script('colorpicker');
+ function step() {
+ $step = (int) @$_GET['step'];
+ if ( $step < 1 || 3 < $step )
+ $step = 1;
+ return $step;
}
- function js() {
+ function js_includes() {
+ $step = $this->step();
+ if ( 1 == $step )
+ wp_enqueue_script('colorpicker');
+ elseif ( 2 == $step )
+ wp_enqueue_script('cropper');
+ }
+ function take_action() {
if ( isset( $_POST['textcolor'] ) ) {
check_admin_referer('custom-header');
if ( 'blank' == $_POST['textcolor'] ) {
check_admin_referer('custom-header');
remove_theme_mods();
}
- ?>
-<script type="text/javascript">
-
- function onEndCrop( coords, dimensions ) {
- $( 'x1' ).value = coords.x1;
- $( 'y1' ).value = coords.y1;
- $( 'x2' ).value = coords.x2;
- $( 'y2' ).value = coords.y2;
- $( 'width' ).value = dimensions.width;
- $( 'height' ).value = dimensions.height;
}
- // with a supplied ratio
- Event.observe(
- window,
- 'load',
- function() {
- var xinit = <?php echo HEADER_IMAGE_WIDTH; ?>;
- var yinit = <?php echo HEADER_IMAGE_HEIGHT; ?>;
- var ratio = xinit / yinit;
- var ximg = $('upload').width;
- var yimg = $('upload').height;
- if ( yimg < yinit || ximg < xinit ) {
- if ( ximg / yimg > ratio ) {
- yinit = yimg;
- xinit = yinit * ratio;
- } else {
- xinit = ximg;
- yinit = xinit / ratio;
- }
- }
- new Cropper.Img(
- 'upload',
- {
- ratioDim: { x: xinit, y: yinit },
- displayOnInit: true,
- onEndCrop: onEndCrop
- }
- )
- }
- );
+ function js() {
+ $step = $this->step();
+ if ( 1 == $step )
+ $this->js_1();
+ elseif ( 2 == $step )
+ $this->js_2();
+ }
+ function js_1() { ?>
+<script type="text/javascript">
var cp = new ColorPicker();
function pickColor(color) {
}
}
function colorDefault() {
- pickColor('<?php echo HEADER_TEXTCOLOR; ?>');
+ pickColor('#<?php echo HEADER_TEXTCOLOR; ?>');
}
function hide_text() {
<?php
}
+ function js_2() { ?>
+<script type="text/javascript">
+ function onEndCrop( coords, dimensions ) {
+ $( 'x1' ).value = coords.x1;
+ $( 'y1' ).value = coords.y1;
+ $( 'x2' ).value = coords.x2;
+ $( 'y2' ).value = coords.y2;
+ $( 'width' ).value = dimensions.width;
+ $( 'height' ).value = dimensions.height;
+ }
+
+ // with a supplied ratio
+ Event.observe(
+ window,
+ 'load',
+ function() {
+ var xinit = <?php echo HEADER_IMAGE_WIDTH; ?>;
+ var yinit = <?php echo HEADER_IMAGE_HEIGHT; ?>;
+ var ratio = xinit / yinit;
+ var ximg = $('upload').width;
+ var yimg = $('upload').height;
+ if ( yimg < yinit || ximg < xinit ) {
+ if ( ximg / yimg > ratio ) {
+ yinit = yimg;
+ xinit = yinit * ratio;
+ } else {
+ xinit = ximg;
+ yinit = xinit / ratio;
+ }
+ }
+ new Cropper.Img(
+ 'upload',
+ {
+ ratioDim: { x: xinit, y: yinit },
+ displayOnInit: true,
+ onEndCrop: onEndCrop
+ }
+ )
+ }
+ );
+</script>
+<?php
+ }
+
function step_1() {
if ( $_GET['updated'] ) { ?>
<div id="message" class="updated fade">
<input type="button" value="<?php _e('Hide Text'); ?>" onclick="hide_text()" id="hidetext" />
<input type="button" value="<?php _e('Select a Text Color'); ?>" onclick="colorSelect($('textcolor'), 'pickcolor')" id="pickcolor" /><input type="button" value="<?php _e('Use Original Color'); ?>" onclick="colorDefault()" id="defaultcolor" />
<?php wp_nonce_field('custom-header') ?>
-<input type="hidden" name="textcolor" id="textcolor" value="#<?php attribute_escape(header_textcolor()) ?>" /><input name="submit" type="submit" value="<?php _e('Save Changes »'); ?>" /></form>
+<input type="hidden" name="textcolor" id="textcolor" value="#<?php attribute_escape(header_textcolor()) ?>" /><input name="submit" type="submit" value="<?php _e('Save Changes'); ?>" /></form>
<?php } ?>
<div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
<input type="hidden" name="action" value="save" />
<?php wp_nonce_field('custom-header') ?>
<p class="submit">
-<input type="submit" value="<?php _e('Upload »'); ?>" />
+<input type="submit" value="<?php _e('Upload'); ?>" />
</p>
</form>
die( $file['error'] );
$url = $file['url'];
+ $type = $file['type'];
$file = $file['file'];
$filename = basename($file);
$object = array(
'post_title' => $filename,
'post_content' => $url,
- 'post_mime_type' => 'import',
+ 'post_mime_type' => $type,
'guid' => $url);
// Save the data
$id = wp_insert_attachment($object, $file);
- $upload = array('file' => $file, 'id' => $id);
-
list($width, $height, $type, $attr) = getimagesize( $file );
if ( $width == HEADER_IMAGE_WIDTH && $height == HEADER_IMAGE_HEIGHT ) {
+ // Add the meta-data
+ wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
+
set_theme_mod('header_image', clean_url($url));
- $header = apply_filters('wp_create_file_in_uploads', $file, $id); // For replication
+ do_action('wp_create_file_in_uploads', $file, $id); // For replication
return $this->finished();
} elseif ( $width > HEADER_IMAGE_WIDTH ) {
$oitar = $width / HEADER_IMAGE_WIDTH;
<form method="POST" action="<?php echo attribute_escape(add_query_arg('step', 3)) ?>">
<p><?php _e('Choose the part of the image you want to use as your header.'); ?></p>
-<div id="testWrap">
+<div id="testWrap" style="position: relative">
<img src="<?php echo $url; ?>" id="upload" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
</div>
<input type="hidden" name="attachment_id" id="attachment_id" value="<?php echo $id; ?>" />
<input type="hidden" name="oitar" id="oitar" value="<?php echo $oitar; ?>" />
<?php wp_nonce_field('custom-header') ?>
-<input type="submit" value="<?php _e('Crop Header »'); ?>" />
+<input type="submit" value="<?php _e('Crop Header'); ?>" />
</p>
</form>
$_POST['height'] = $_POST['height'] * $_POST['oitar'];
}
- $header = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT);
- $header = apply_filters('wp_create_file_in_uploads', $header); // For replication
+ $original = get_attached_file( $_POST['attachment_id'] );
- $parent = get_post($_POST['attachment_id']);
+ $cropped = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT);
+ $cropped = apply_filters('wp_create_file_in_uploads', $cropped, $_POST['attachment_id']); // For replication
+ $parent = get_post($_POST['attachment_id']);
$parent_url = $parent->guid;
+ $url = str_replace(basename($parent_url), basename($cropped), $parent_url);
+
+ // Construct the object array
+ $object = array(
+ 'ID' => $_POST['attachment_id'],
+ 'post_title' => basename($cropped),
+ 'post_content' => $url,
+ 'post_mime_type' => 'image/jpeg',
+ 'guid' => $url
+ );
- $url = str_replace(basename($parent_url), basename($header), $parent_url);
+ // Update the attachment
+ wp_insert_attachment($object, $cropped);
+ wp_update_attachment_metadata( $_POST['attachment_id'], wp_generate_attachment_metadata( $_POST['attachment_id'], $cropped ) );
set_theme_mod('header_image', $url);
// cleanup
- $file = get_attached_file( $_POST['attachment_id'] );
- $medium = str_replace(basename($file), 'midsize-'.basename($file), $file);
+ $medium = str_replace(basename($original), 'midsize-'.basename($original), $original);
@unlink( apply_filters( 'wp_delete_file', $medium ) );
- wp_delete_attachment( $_POST['attachment_id'] );
+ @unlink( apply_filters( 'wp_delete_file', $original ) );
return $this->finished();
}
}
function admin_page() {
- if ( !isset( $_GET['step'] ) )
- $step = 1;
- else
- $step = (int) $_GET['step'];
-
- if ( 1 == $step ) {
+ $step = $this->step();
+ if ( 1 == $step )
$this->step_1();
- } elseif ( 2 == $step ) {
+ elseif ( 2 == $step )
$this->step_2();
- } elseif ( 3 == $step ) {
+ elseif ( 3 == $step )
$this->step_3();
- }
-
}
}
--- /dev/null
+<?php if ( ! defined('ABSPATH') ) die(); ?>
+<table class="widefat">
+ <thead>
+ <tr>
+
+<?php $posts_columns = wp_manage_media_columns(); ?>
+<?php foreach($posts_columns as $post_column_key => $column_display_name) {
+ if ( 'cb' === $post_column_key )
+ $class = ' class="check-column"';
+ elseif ( 'comments' === $post_column_key )
+ $class = ' class="num"';
+ else
+ $class = '';
+?>
+ <th scope="col"<?php echo $class; ?>><?php echo $column_display_name; ?></th>
+<?php } ?>
+
+ </tr>
+ </thead>
+ <tbody id="the-list" class="list:post">
+<?php
+if ( have_posts() ) {
+$bgcolor = '';
+add_filter('the_title','wp_specialchars');
+while (have_posts()) : the_post();
+$class = 'alternate' == $class ? '' : 'alternate';
+global $current_user;
+$post_owner = ( $current_user->ID == $post->post_author ? 'self' : 'other' );
+$att_title = get_the_title();
+if ( empty($att_title) )
+ $att_title = __('(no title)');
+
+?>
+ <tr id='post-<?php echo $id; ?>' class='<?php echo trim( $class . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>' valign="top">
+
+<?php
+
+foreach($posts_columns as $column_name=>$column_display_name) {
+
+ switch($column_name) {
+
+ case 'cb':
+ ?>
+ <th scope="row" class="check-column"><input type="checkbox" name="delete[]" value="<?php the_ID(); ?>" /></th>
+ <?php
+ break;
+
+ case 'icon':
+ ?>
+ <td class="media-icon"><?php echo wp_get_attachment_link($post->ID, array(80, 60), false, true); ?></td>
+ <?php
+ // TODO
+ break;
+
+ case 'media':
+ ?>
+ <td><strong><a href="media.php?action=edit&attachment_id=<?php the_ID(); ?>" title="<?php echo attribute_escape(sprintf(__('Edit "%s"'), $att_title)); ?>"><?php echo $att_title; ?></a></strong><br />
+ <?php echo strtoupper(preg_replace('/^.*?\.(\w+)$/', '$1', get_attached_file($post->ID))); ?>
+ <?php do_action('manage_media_media_column', $post->ID); ?>
+ </td>
+ <?php
+ break;
+
+ case 'desc':
+ ?>
+ <td><?php echo has_excerpt() ? $post->post_excerpt : ''; ?></td>
+ <?php
+ break;
+
+ case 'date':
+ if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
+ $t_time = $h_time = __('Unpublished');
+ } else {
+ $t_time = get_the_time(__('Y/m/d g:i:s A'));
+ $m_time = $post->post_date;
+ $time = get_post_time( 'G', true );
+ if ( ( abs($t_diff = time() - $time) ) < 86400 ) {
+ if ( $t_diff < 0 )
+ $h_time = sprintf( __('%s from now'), human_time_diff( $time ) );
+ else
+ $h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
+ } else {
+ $h_time = mysql2date(__('Y/m/d'), $m_time);
+ }
+ }
+ ?>
+ <td><?php echo $h_time ?></td>
+ <?php
+ break;
+
+ case 'parent':
+ $title = __('(no title)'); // override below
+ if ( $post->post_parent > 0 ) {
+ if ( get_post($post->post_parent) ) {
+ $parent_title = get_the_title($post->post_parent);
+ if ( !empty($parent_title) )
+ $title = $parent_title;
+ }
+ ?>
+ <td><strong><a href="post.php?action=edit&post=<?php echo $post->post_parent; ?>"><?php echo $title ?></a></strong></td>
+ <?php
+ } else {
+ ?>
+ <td> </td>
+ <?php
+ }
+
+ break;
+
+ case 'comments':
+ ?>
+ <td class="num"><div class="post-com-count-wrapper">
+ <?php
+ $left = get_pending_comments_num( $post->ID );
+ $pending_phrase = sprintf( __('%s pending'), number_format( $left ) );
+ if ( $left )
+ echo '<strong>';
+ comments_number("<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('0') . '</span></a>', "<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('1') . '</span></a>', "<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('%') . '</span></a>');
+ if ( $left )
+ echo '</strong>';
+ ?>
+ </div></td>
+ <?php
+ break;
+
+ case 'location':
+ ?>
+ <td><a href="<?php the_permalink(); ?>"><?php _e('Permalink'); ?></a></td>
+ <?php
+ break;
+
+ default:
+ ?>
+ <td><?php do_action('manage_media_custom_column', $column_name, $id); ?></td>
+ <?php
+ break;
+ }
+}
+?>
+ </tr>
+<?php
+endwhile;
+} else {
+?>
+ <tr style='background-color: <?php echo $bgcolor; ?>'>
+ <td colspan="8"><?php _e('No posts found.') ?></td>
+ </tr>
+<?php
+} // end if ( have_posts() )
+?>
+ </tbody>
+</table>
<?php
if ( ! empty($cat_ID) ) {
$heading = __('Edit Category');
- $submit_text = __('Edit Category »');
- $form = '<form name="editcat" id="editcat" method="post" action="categories.php">';
+ $submit_text = __('Edit Category');
+ $form = '<form name="editcat" id="editcat" method="post" action="categories.php" class="validate">';
$action = 'editedcat';
$nonce_action = 'update-category_' . $cat_ID;
do_action('edit_category_form_pre', $category);
} else {
$heading = __('Add Category');
- $submit_text = __('Add Category »');
- $form = '<form name="addcat" id="addcat" method="post" action="categories.php">';
+ $submit_text = __('Add Category');
+ $form = '<form name="addcat" id="addcat" method="post" action="categories.php" class="add:the-list: validate">';
$action = 'addcat';
$nonce_action = 'add-category';
do_action('add_category_form_pre', $category);
<input type="hidden" name="action" value="<?php echo $action ?>" />
<input type="hidden" name="cat_ID" value="<?php echo $category->term_id ?>" />
<?php wp_nonce_field($nonce_action); ?>
- <table class="editform" width="100%" cellspacing="2" cellpadding="5">
- <tr>
- <th width="33%" scope="row" valign="top"><label for="cat_name"><?php _e('Category name:') ?></label></th>
- <td width="67%"><input name="cat_name" id="cat_name" type="text" value="<?php echo attribute_escape($category->name); ?>" size="40" /></td>
+ <table class="form-table">
+ <tr class="form-field form-required">
+ <th scope="row" valign="top"><label for="cat_name"><?php _e('Category Name') ?></label></th>
+ <td><input name="cat_name" id="cat_name" type="text" value="<?php echo attribute_escape($category->name); ?>" size="40" /><br />
+ <?php _e('The name is used to identify the category almost everywhere, for example under the post or in the category widget.'); ?></td>
</tr>
- <tr>
- <th scope="row" valign="top"><label for="category_nicename"><?php _e('Category slug:') ?></label></th>
- <td><input name="category_nicename" id="category_nicename" type="text" value="<?php echo attribute_escape($category->slug); ?>" size="40" /></td>
+ <tr class="form-field">
+ <th scope="row" valign="top"><label for="category_nicename"><?php _e('Category Slug') ?></label></th>
+ <td><input name="category_nicename" id="category_nicename" type="text" value="<?php echo attribute_escape($category->slug); ?>" size="40" /><br />
+ <?php _e('The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'); ?></td>
</tr>
- <tr>
- <th scope="row" valign="top"><label for="category_parent"><?php _e('Category parent:') ?></label></th>
+ <tr class="form-field">
+ <th scope="row" valign="top"><label for="category_parent"><?php _e('Category Parent') ?></label></th>
<td>
- <?php wp_dropdown_categories('hide_empty=0&name=category_parent&orderby=name&selected=' . $category->parent . '&hierarchical=1&show_option_none=' . __('None')); ?>
+ <?php wp_dropdown_categories('hide_empty=0&name=category_parent&orderby=name&selected=' . $category->parent . '&hierarchical=1&show_option_none=' . __('None')); ?><br />
+ <?php _e('Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional.'); ?>
</td>
</tr>
- <tr>
- <th scope="row" valign="top"><label for="category_description"><?php _e('Description: (optional)') ?></label></th>
- <td><textarea name="category_description" id="category_description" rows="5" cols="50" style="width: 97%;"><?php echo wp_specialchars($category->description); ?></textarea></td>
+ <tr class="form-field">
+ <th scope="row" valign="top"><label for="category_description"><?php _e('Description') ?></label></th>
+ <td><textarea name="category_description" id="category_description" rows="5" cols="50" style="width: 97%;"><?php echo wp_specialchars($category->description); ?></textarea><br />
+ <?php _e('The description is not prominent by default, however some themes may show it.'); ?></td>
</tr>
</table>
-<p class="submit"><input type="submit" name="submit" value="<?php echo $submit_text ?>" /></p>
+<p class="submit"><input type="submit" class="button" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_category_form', $category); ?>
</form>
</div>
$title = __('Edit Comments');
$parent_file = 'edit-comments.php';
wp_enqueue_script( 'admin-comments' );
+wp_enqueue_script('admin-forms');
+
+if ( !empty( $_REQUEST['delete_comments'] ) ) {
+ check_admin_referer('bulk-comments');
+
+ $comments_deleted = $comments_approved = $comments_unapproved = $comments_spammed = 0;
+ foreach ($_REQUEST['delete_comments'] as $comment) : // Check the permissions on each
+ $comment = (int) $comment;
+ $post_id = (int) $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment");
+ // $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
+ if ( !current_user_can('edit_post', $post_id) )
+ continue;
+ if ( !empty( $_REQUEST['spamit'] ) ) {
+ wp_set_comment_status($comment, 'spam');
+ $comments_spammed++;
+ } elseif ( !empty( $_REQUEST['deleteit'] ) ) {
+ wp_set_comment_status($comment, 'delete');
+ $comments_deleted++;
+ } elseif ( !empty( $_REQUEST['approveit'] ) ) {
+ wp_set_comment_status($comment, 'approve');
+ $comments_approved++;
+ } elseif ( !empty( $_REQUEST['unapproveit'] ) ) {
+ wp_set_comment_status($comment, 'hold');
+ $comments_unapproved++;
+ }
+ endforeach;
+ $redirect_to = basename( __FILE__ ) . '?deleted=' . $comments_deleted . '&approved=' . $comments_approved . '&spam=' . $comments_spammed . '&unapproved=' . $comments_unapproved;
+ if ( !empty($_REQUEST['mode']) )
+ $redirect_to = add_query_arg('mode', $_REQUEST['mode'], $redirect_to);
+ if ( !empty($_REQUEST['comment_status']) )
+ $redirect_to = add_query_arg('comment_status', $_REQUEST['comment_status'], $redirect_to);
+ if ( !empty($_REQUEST['s']) )
+ $redirect_to = add_query_arg('s', $_REQUEST['s'], $redirect_to);
+ wp_redirect( $redirect_to );
+} elseif ( !empty($_GET['_wp_http_referer']) ) {
+ wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
+ exit;
+}
require_once('admin-header.php');
-if (empty($_GET['mode'])) $mode = 'view';
-else $mode = attribute_escape($_GET['mode']);
+
+if ( empty($_GET['mode']) )
+ $mode = 'detail';
+else
+ $mode = attribute_escape($_GET['mode']);
+
+if ( isset($_GET['comment_status']) )
+ $comment_status = attribute_escape($_GET['comment_status']);
+else
+ $comment_status = '';
+
+if ( isset($_GET['s']) )
+ $search_dirty = $_GET['s'];
+else
+ $search_dirty = '';
+$search = attribute_escape( $search_dirty );
?>
+<?php
+if ( isset( $_GET['approved'] ) || isset( $_GET['deleted'] ) || isset( $_GET['spam'] ) ) {
+ $approved = isset( $_GET['approved'] ) ? (int) $_GET['approved'] : 0;
+ $deleted = isset( $_GET['deleted'] ) ? (int) $_GET['deleted'] : 0;
+ $spam = isset( $_GET['spam'] ) ? (int) $_GET['spam'] : 0;
+
+ if ( $approved > 0 || $deleted > 0 || $spam > 0 ) {
+ echo '<div id="moderated" class="updated fade"><p>';
-<script type="text/javascript">
-<!--
-function checkAll(form)
-{
- for (i = 0, n = form.elements.length; i < n; i++) {
- if(form.elements[i].type == "checkbox") {
- if(form.elements[i].checked == true)
- form.elements[i].checked = false;
- else
- form.elements[i].checked = true;
+ if ( $approved > 0 ) {
+ printf( __ngettext( '%s comment approved', '%s comments approved', $approved ), $approved );
+ echo '<br />';
}
- }
-}
-function getNumChecked(form)
-{
- var num = 0;
- for (i = 0, n = form.elements.length; i < n; i++) {
- if(form.elements[i].type == "checkbox") {
- if(form.elements[i].checked == true)
- num++;
+ if ( $deleted > 0 ) {
+ printf( __ngettext( '%s comment deleted', '%s comments deleted', $deleted ), $deleted );
+ echo '<br />';
}
+
+ if ( $spam > 0 ) {
+ printf( __ngettext( '%s comment marked as spam', '%s comments marked as spam', $spam ), $spam );
+ echo '<br />';
+ }
+
+ echo '</p></div>';
}
- return num;
}
-//-->
-</script>
+?>
<div class="wrap">
-<h2><?php _e('Comments'); ?></h2>
-<form name="searchform" action="" method="get" id="editcomments">
- <fieldset>
- <legend><?php _e('Show Comments That Contain...') ?></legend>
- <input type="text" name="s" value="<?php if (isset($_GET['s'])) echo attribute_escape($_GET['s']); ?>" size="17" />
- <input type="submit" name="submit" value="<?php _e('Search') ?>" />
- <input type="hidden" name="mode" value="<?php echo $mode; ?>" />
- <?php _e('(Searches within comment text, e-mail, URL, and IP address.)') ?>
- </fieldset>
-</form>
-<p><a href="?mode=view"><?php _e('View Mode') ?></a> | <a href="?mode=edit"><?php _e('Mass Edit Mode') ?></a></p>
+<form id="posts-filter" action="" method="get">
+<h2><?php _e('Manage Comments'); ?></h2>
+
+<ul class="subsubsub">
<?php
-if ( !empty( $_POST['delete_comments'] ) ) :
- check_admin_referer('bulk-comments');
+$status_links = array();
+$num_comments = wp_count_comments();
+$stati = array('moderated' => sprintf(__ngettext('Awaiting Moderation (%s)', 'Awaiting Moderation (%s)', $num_comments->moderated), "<span class='comment-count'>$num_comments->moderated</span>"), 'approved' => _c('Approved|plural'));
+$class = ( '' === $comment_status ) ? ' class="current"' : '';
+$status_links[] = "<li><a href=\"edit-comments.php\"$class>".__('Show All Comments')."</a>";
+foreach ( $stati as $status => $label ) {
+ $class = '';
+
+ if ( $status == $comment_status )
+ $class = ' class="current"';
+
+ $status_links[] = "<li><a href=\"edit-comments.php?comment_status=$status\"$class>" . $label . '</a>';
+}
- $i = 0;
- foreach ($_POST['delete_comments'] as $comment) : // Check the permissions on each
- $comment = (int) $comment;
- $post_id = (int) $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment");
- // $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
- if ( current_user_can('edit_post', $post_id) ) {
- if ( !empty( $_POST['spam_button'] ) )
- wp_set_comment_status($comment, 'spam');
- else
- wp_set_comment_status($comment, 'delete');
- ++$i;
- }
- endforeach;
- echo '<div style="background-color: rgb(207, 235, 247);" id="message" class="updated fade"><p>';
- if ( !empty( $_POST['spam_button'] ) ) {
- printf(__ngettext('%s comment marked as spam', '%s comments marked as spam.', $i), $i);
- } else {
- printf(__ngettext('%s comment deleted.', '%s comments deleted.', $i), $i);
- }
- echo '</p></div>';
-endif;
+$status_links = apply_filters( 'comment_status_links', $status_links );
+
+echo implode(' | </li>', $status_links) . '</li>';
+unset($status_links);
+?>
+</ul>
+
+<p id="post-search">
+ <input type="text" id="post-search-input" name="s" value="<?php echo $search; ?>" />
+ <input type="submit" value="<?php _e( 'Search Comments' ); ?>" class="button" />
+</p>
+
+<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
+<input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
+</form>
+
+<ul class="view-switch">
+ <li <?php if ( 'detail' == $mode ) echo "class='current'" ?>><a href="<?php echo clean_url(add_query_arg('mode', 'detail', $_SERVER['REQUEST_URI'])) ?>"><?php _e('Detail View') ?></a></li>
+ <li <?php if ( 'list' == $mode ) echo "class='current'" ?>><a href="<?php echo clean_url(add_query_arg('mode', 'list', $_SERVER['REQUEST_URI'])) ?>"><?php _e('List View') ?></a></li>
+</ul>
+
+<?php
if ( isset( $_GET['apage'] ) )
$page = abs( (int) $_GET['apage'] );
$start = $offset = ( $page - 1 ) * 20;
-list($_comments, $total) = _wp_get_comment_list( isset($_GET['s']) ? $_GET['s'] : false, $start, 25 ); // Grab a few extra
+list($_comments, $total) = _wp_get_comment_list( $comment_status, $search_dirty, $start, 25 ); // Grab a few extra
$comments = array_slice($_comments, 0, 20);
$extra_comments = array_slice($_comments, 20);
'current' => $page
));
-if ( $page_links )
- echo "<p class='pagenav'>$page_links</p>";
-
-if ('view' == $mode) {
- if ($comments) {
- $offset = $offset + 1;
- $start = " start='$offset'";
-
- echo "<ol id='the-comment-list' class='commentlist' $start>\n";
- $i = 0;
- foreach ( $comments as $comment ) {
- get_comment( $comment ); // Cache it
- _wp_comment_list_item( $comment->comment_ID, ++$i );
- }
- echo "</ol>\n\n";
-
-if ( $extra_comments ) : ?>
-<div id="extra-comments" style="display:none">
-<ul id="the-extra-comment-list" class="commentlist">
-<?php
- foreach ( $extra_comments as $comment ) {
- get_comment( $comment ); // Cache it
- _wp_comment_list_item( $comment->comment_ID, ++$i );
- }
?>
-</ul>
-</div>
-<?php endif; // $extra_comments ?>
-<div id="ajax-response"></div>
+<form id="comments-form" action="" method="post">
+
+<div class="tablenav">
<?php
- } else { //no comments to show
+if ( $page_links )
+ echo "<div class='tablenav-pages'>$page_links</div>";
+?>
- ?>
- <p>
- <strong><?php _e('No comments found.') ?></strong></p>
+<div class="alignleft">
+<?php if ( 'approved' != $comment_status ): ?>
+<input type="submit" value="<?php _e('Approve'); ?>" name="approveit" class="button-secondary" />
+<?php endif; ?>
+<input type="submit" value="<?php _e('Mark as Spam'); ?>" name="spamit" class="button-secondary" />
+<?php if ( 'moderated' != $comment_status ): ?>
+<input type="submit" value="<?php _e('Unapprove'); ?>" name="unapproveit" class="button-secondary" />
+<?php endif; ?>
+<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
+<?php do_action('manage_comments_nav', $comment_status); ?>
+<?php wp_nonce_field('bulk-comments'); ?>
+</div>
- <?php
- } // end if ($comments)
-} elseif ('edit' == $mode) {
+<br class="clear" />
- if ($comments) {
- echo '<form name="deletecomments" id="deletecomments" action="" method="post"> ';
- wp_nonce_field('bulk-comments');
- echo '<table class="widefat">
+</div>
+
+<br class="clear" />
+<?php
+if ($comments) {
+?>
+<table class="widefat">
<thead>
<tr>
- <th scope="col" style="text-align: center"><input type="checkbox" onclick="checkAll(document.getElementById(\'deletecomments\'));" /></th>
- <th scope="col">' . __('Name') . '</th>
- <th scope="col">' . __('E-mail') . '</th>
- <th scope="col">' . __('IP') . '</th>
- <th scope="col">' . __('Comment Excerpt') . '</th>
- <th scope="col" colspan="3" style="text-align: center">' . __('Actions') . '</th>
+ <th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('comments-form'));" /></th>
+ <th scope="col"><?php _e('Comment') ?></th>
+ <th scope="col"><?php _e('Date') ?></th>
+ <th scope="col" class="action-links"><?php _e('Actions') ?></th>
</tr>
-</thead>';
- foreach ($comments as $comment) {
- $post = get_post($comment->comment_post_ID);
- $authordata = get_userdata($post->post_author);
- $comment_status = wp_get_comment_status($comment->comment_ID);
- $class = ('alternate' == $class) ? '' : 'alternate';
- $class .= ('unapproved' == $comment_status) ? ' unapproved' : '';
+</thead>
+<tbody id="the-comment-list" class="list:comment">
+<?php
+ foreach ($comments as $comment)
+ _wp_comment_row( $comment->comment_ID, $mode, $comment_status );
?>
- <tr id="comment-<?php echo $comment->comment_ID; ?>" class='<?php echo $class; ?>'>
- <td style="text-align: center"><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) { ?><input type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" /><?php } ?></td>
- <td><?php comment_author_link() ?></td>
- <td><?php comment_author_email_link() ?></td>
- <td><a href="edit-comments.php?s=<?php comment_author_IP() ?>&mode=edit"><?php comment_author_IP() ?></a></td>
- <td><?php comment_excerpt(); ?></td>
- <td>
- <?php if ('unapproved' == $comment_status) {
- _e('Unapproved');
- } else { ?>
- <a href="<?php echo get_permalink($comment->comment_post_ID); ?>#comment-<?php comment_ID() ?>" class="edit"><?php _e('View') ?></a>
- <?php } ?>
- </td>
- <td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
- echo "<a href='comment.php?action=editcomment&c=$comment->comment_ID' class='edit'>" . __('Edit') . "</a>"; } ?></td>
- <td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
- echo "<a href=\"comment.php?action=deletecomment&p=".$comment->comment_post_ID."&c=".$comment->comment_ID."\" onclick=\"return deleteSomething( 'comment', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to delete this comment by '%s'. \n 'Cancel' to stop, 'OK' to delete."), $comment->comment_author )) . "', theCommentList );\" class='delete'>" . __('Delete') . "</a> ";
- } ?></td>
- </tr>
- <?php
- } // end foreach
- ?></table>
-<p class="submit"><input type="submit" name="delete_button" class="delete" value="<?php _e('Delete Checked Comments »') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to delete")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to delete %s comments permanently \n 'Cancel' to stop, 'OK' to delete.")), "' + numchecked + '"); ?>')" />
- <input type="submit" name="spam_button" value="<?php _e('Mark Checked Comments as Spam »') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to mark as spam")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to mark %s comments as spam \n 'Cancel' to stop, 'OK' to mark as spam.")), "' + numchecked + '"); ?>')" /></p>
- </form>
+</tbody>
+<tbody id="the-extra-comment-list" class="list:comment" style="display: none;">
+<?php
+ foreach ($extra_comments as $comment)
+ _wp_comment_row( $comment->comment_ID, $mode, $comment_status );
+?>
+</tbody>
+</table>
+
+</form>
+
+<form id="get-extra-comments" method="post" action="" class="add:the-extra-comment-list:" style="display: none;">
+ <input type="hidden" name="s" value="<?php echo $search; ?>" />
+ <input type="hidden" name="mode" value="<?php echo $mode; ?>" />
+ <input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
+ <input type="hidden" name="page" value="<?php echo isset($_REQUEST['page']) ? absint( $_REQUEST['page'] ) : 1; ?>" />
+ <?php wp_nonce_field( 'add-comment', '_ajax_nonce', false ); ?>
+</form>
+
<div id="ajax-response"></div>
<?php
- } else {
+} elseif ( 'moderated' == $_GET['comment_status'] ) {
?>
<p>
-<strong><?php _e('No results found.') ?></strong>
+<?php _e('No comments awaiting moderation… yet.') ?>
+</p>
+<?php
+} else {
+?>
+<p>
+<?php _e('No results found.') ?>
</p>
<?php
- } // end if ($comments)
}
-
+?>
+<div class="tablenav">
+<?php
if ( $page_links )
- echo "<p class='pagenav'>$page_links</p>";
-
+ echo "<div class='tablenav-pages'>$page_links</div>";
?>
+<br class="clear" />
+</div>
</div>
-<?php
+ <?php
+$action = isset($action)? $action : '';
if ( isset($_GET['message']) )
- $_GET['message'] = (int) $_GET['message'];
-$messages[1] = __('Post updated');
-$messages[2] = __('Custom field updated');
+ $_GET['message'] = absint( $_GET['message'] );
+$messages[1] = sprintf( __( 'Post updated. Continue editing below or <a href="%s">go back</a>.' ), attribute_escape( stripslashes( $_GET['_wp_original_http_referer'] ) ) );
+$messages[2] = __('Custom field updated.');
$messages[3] = __('Custom field deleted.');
+$messages[4] = __('Post updated.');
?>
<?php if (isset($_GET['message'])) : ?>
-<div id="message" class="updated fade"><p><?php echo wp_specialchars($messages[$_GET['message']]); ?></p></div>
+<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php endif; ?>