From d363a984db177157eb5e0b5e376620f7b5f450f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 31 Aug 2023 12:40:13 +0800 Subject: [PATCH 01/53] end --- src/admin/js/global.js | 2 +- src/admin/templets/index.htm | 21 +- src/admin/templets/member_pm.htm | 9 +- src/admin/templets/member_pmall.htm | 15 +- src/admin/templets/member_pmone.htm | 20 +- src/static/ckeditor/LICENSE.md | 1421 ++++++++++++++++++++++++ src/static/ckeditor/config.js | 8 +- src/static/ckeditor/contents.css | 2 +- src/static/web/css/admin.css | 2 +- src/static/web/css/style.css | 2 +- src/static/web/js/style.js | 30 +- src/system/taglib/userinfo.lib.php | 16 +- src/theme/dedebiz/foot.htm | 31 +- src/theme/system/channel_downlinks.htm | 2 +- 14 files changed, 1492 insertions(+), 89 deletions(-) create mode 100644 src/static/ckeditor/LICENSE.md diff --git a/src/admin/js/global.js b/src/admin/js/global.js index 02e040c2..b8cc15f6 100644 --- a/src/admin/js/global.js +++ b/src/admin/js/global.js @@ -1,6 +1,6 @@ var BROWSER = {}; var USERAGENT = navigator.userAgent.toLowerCase(); -browserVersion({'ie':'msie','firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); +browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); if (BROWSER.safari) { BROWSER.firefox = true; } diff --git a/src/admin/templets/index.htm b/src/admin/templets/index.htm index bd8a1479..23302e08 100644 --- a/src/admin/templets/index.htm +++ b/src/admin/templets/index.htm @@ -63,20 +63,15 @@
\ No newline at end of file diff --git a/src/admin/templets/member_pm.htm b/src/admin/templets/member_pm.htm index 95375160..a592616f 100644 --- a/src/admin/templets/member_pm.htm +++ b/src/admin/templets/member_pm.htm @@ -21,17 +21,16 @@ + 短信列表 + 群发短信 + 单独短信 - + diff --git a/src/admin/templets/member_pmall.htm b/src/admin/templets/member_pmall.htm index 2a695aa3..a1111c9b 100644 --- a/src/admin/templets/member_pmall.htm +++ b/src/admin/templets/member_pmall.htm @@ -20,6 +20,9 @@ + 短信列表 + 群发短信 + 单独短信
- 短信列表 - 群发短信 - 单独短信 - 短信列表
发送时间
@@ -28,19 +31,15 @@ - + - + - - + + diff --git a/src/admin/templets/member_pmone.htm b/src/admin/templets/member_pmone.htm index 82b565bc..fe357a57 100644 --- a/src/admin/templets/member_pmone.htm +++ b/src/admin/templets/member_pmone.htm @@ -20,6 +20,9 @@ + 短信列表 + 群发短信 + 单独短信
- 短信列表 - 群发短信 - 单独短信 - 群发短信
标题:(标题少于70个字符内)
(1000个字符以内)
@@ -28,23 +31,22 @@ - + - + - + - - + + diff --git a/src/static/ckeditor/LICENSE.md b/src/static/ckeditor/LICENSE.md new file mode 100644 index 00000000..dd8c8020 --- /dev/null +++ b/src/static/ckeditor/LICENSE.md @@ -0,0 +1,1421 @@ +Software License Agreement +========================== + +CKEditor - The text editor for Internet - https://ckeditor.com/ +Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + (See Appendix A) + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + (See Appendix B) + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + (See Appendix C) + +You are not required to, but if you want to explicitly declare the +license you have chosen to be bound to when using, reproducing, +modifying and distributing this software, just include a text file +titled "legal.txt" in your version of this software, indicating your +license choice. In any case, your choice will not restrict any +recipient of your version of this software to use, reproduce, modify +and distribute this software under any of the above licenses. + +Sources of Intellectual Property Included in CKEditor +----------------------------------------------------- + +Where not otherwise indicated, all CKEditor content is authored by +CKSource engineers and consists of CKSource-owned intellectual +property. In some specific instances, CKEditor will incorporate work +done by developers outside of CKSource with their express permission. + +The following libraries are included in CKEditor under the MIT license (see Appendix D): + +* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2020, CKSource - Frederico Knabben. +* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca. +* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke and others. +* ES6Promise - Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors. + +Parts of code taken from the following libraries are included in CKEditor under the MIT license (see Appendix D): + +* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c) 2011 John Resig, http://jquery.com/ + +The following libraries are included in CKEditor under the SIL Open Font License, Version 1.1 (see Appendix E): + +* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by Dave Gandy. + +The following libraries are included in CKEditor under the BSD-3 License (see Appendix F): + +* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006, Ivan Sagalaev. +* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo! Inc. + + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand +and product names are trademarks, registered trademarks or service +marks of their respective holders. + +--- + +Appendix A: The GPL License +--------------------------- + +``` +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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 +``` + +Appendix B: The LGPL License +---------------------------- + +``` +GNU LESSER GENERAL PUBLIC LICENSE +Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + +Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software-to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages-typically libraries-of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + +GNU LESSER GENERAL PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, 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 library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete 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 distribute a copy of this License along with the +Library. + + 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 Library or any portion +of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +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 Library, 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 Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you 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. + + If distribution of 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 satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be 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. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library 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. + + 9. 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 Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +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 with +this License. + + 11. 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 Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library 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 Library. + +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. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library 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. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +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 Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +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 + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. 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 LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +END OF TERMS AND CONDITIONS +``` + +Appendix C: The MPL License +--------------------------- + +``` +MOZILLA PUBLIC LICENSE +Version 1.1 + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] +``` + +Appendix D: The MIT License +--------------------------- + +``` +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +``` + +Appendix E: The SIL Open Font License Version 1.1 +--------------------------------------------- + +``` +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. +``` + +Appendix F: The BSD-3 License +----------------------------- + +``` +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` + diff --git a/src/static/ckeditor/config.js b/src/static/ckeditor/config.js index 35add482..c9e3a4e6 100644 --- a/src/static/ckeditor/config.js +++ b/src/static/ckeditor/config.js @@ -1,8 +1,9 @@ /** - * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + * @license Copyright (c) 2003-2022, CKSource - Frederico Knabben. All rights reserved. * For licensing, see https://ckeditor.com/legal/ckeditor-oss-license */ -CKEDITOR.editorConfig = function (config) { +CKEDITOR.editorConfig = function(config) { + config.language = 'zh-cn'; config.toolbarGroups = [ { name: 'mode', groups: ['mode', 'document', 'doctools'] }, { name: 'cleanup', groups: ['undo', 'cleanup'] }, @@ -15,8 +16,7 @@ CKEDITOR.editorConfig = function (config) { { name: 'insert', groups: ['insert'] }, { name: 'tools', groups: ['tools'] } ]; - config.height = 360; + config.height = 350; config.removePlugins = 'exportpdf,div,scayt'; - config.extraPlugins = 'html5video,dedepagebreak,textindent'; config.removeButtons = 'Save,Styles,Font,NewPage,Print,Preview,Templates,Smiley,About,ShowBlocks,Iframe,Flash,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField'; }; \ No newline at end of file diff --git a/src/static/ckeditor/contents.css b/src/static/ckeditor/contents.css index 13de3fa2..4c45dee8 100644 --- a/src/static/ckeditor/contents.css +++ b/src/static/ckeditor/contents.css @@ -1,6 +1,6 @@ body { line-height:1.6; - letter-spacing:.6px; + letter-spacing:0.5px; font-size:14px; font-family:Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif; color:#545b62; diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 24aff949..e76c9f09 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -16,7 +16,7 @@ body { margin:0; line-height:1.6; - letter-spacing:.6px; + letter-spacing:0.5px; font-size:14px; font-family:Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif; color:#545b62; diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index 80f15e11..e4226cf7 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -15,7 +15,7 @@ body { margin:0; line-height:1.6; - letter-spacing:.6px; + letter-spacing:0.5px; font-size:14px; font-family:Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif; color:#545b62; diff --git a/src/static/web/js/style.js b/src/static/web/js/style.js index 71199461..a21d5c10 100644 --- a/src/static/web/js/style.js +++ b/src/static/web/js/style.js @@ -1,7 +1,16 @@ -//滚动到页面顶部 -function gotop() { - $('html, body').animate({ scrollTop: 0 }, 'slow'); -} +//返回顶部 +$(function() { + $(window).on('scroll', function() { + var scrolled = $(window).scrollTop(); + if (scrolled > 10) $('#returntop').show(); + if (scrolled < 10) $('#returntop').hide(); + }); + $('#returntop').on('click', function() { + $('html, body').animate({ + scrollTop: '0' + }, 500); + }); +}); //读写cookie函数 function GetCookie(c_name) { if (document.cookie.length > 0) { @@ -182,15 +191,4 @@ function ErrorAddSave(id, title) { ShowMsg(content, { 'footer': footer, }); -} -//页面加载触发 -$(document).ready(function () { - window.onscroll = function () { scrollFunction() }; - function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - $("#returntop").show(); - } else { - $("#returntop").hide(); - } - } -}); \ No newline at end of file +} \ No newline at end of file diff --git a/src/system/taglib/userinfo.lib.php b/src/system/taglib/userinfo.lib.php index 0096aaa1..a25c5495 100755 --- a/src/system/taglib/userinfo.lib.php +++ b/src/system/taglib/userinfo.lib.php @@ -20,26 +20,22 @@ function lib_userinfo(&$ctag, &$refObj) if ($mid == 0) return ""; $revalue = ''; $innerText = trim($ctag->GetInnerText()); - if(empty($innerText)) $innerText = GetSysTemplets('userinfo.htm'); - - $sql = "SELECT U.*,US.spacename,US.sign,AR.membername as rankname FROM `#@__member` U - LEFT JOIN `#@__member_space` US ON US.mid = U.mid - LEFT JOIN `#@__arcrank` AR ON AR.`rank` = U.`rank` - WHERE U.mid='{$mid}' LIMIT 0,1 "; - + if (empty($innerText)) $innerText = GetSysTemplets('userinfo.htm'); + $sql = "SELECT U.*,US.spacename,US.sign,AR.membername as rankname FROM `#@__member` U LEFT JOIN `#@__member_space` US ON US.mid = U.mid LEFT JOIN `#@__arcrank` AR ON AR.`rank` = U.`rank` WHERE U.mid='{$mid}' LIMIT 0,1 "; $ctp = new DedeTagParse(); $ctp->SetNameSpace('field','[',']'); $ctp->LoadSource($innerText); - $dsql->Execute('user',$sql); while($row = $dsql->GetArray('user')) { - if($row['matt']==10) return ''; //不显示管理员信息 + if ($row['matt']==10) return ''; //不显示管理员信息 $row['userurl'] = $GLOBALS['cfg_memberurl'].'/index.php?uid='.$row['userid']; $row['face'] = empty($row['face'])? $GLOBALS['cfg_mainsite'].'/static/web/img/admin.png' : $row['face']; foreach($ctp->CTags as $tagid=>$ctag) { - if(isset($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); } + if (isset($row[$ctag->GetName()])){ + $ctp->Assign($tagid,$row[$ctag->GetName()]); + } } $revalue .= $ctp->GetResult(); } diff --git a/src/theme/dedebiz/foot.htm b/src/theme/dedebiz/foot.htm index bbdd832a..9f363ef0 100644 --- a/src/theme/dedebiz/foot.htm +++ b/src/theme/dedebiz/foot.htm @@ -5,27 +5,20 @@
- +
- - + + {dede:statistics/} \ No newline at end of file diff --git a/src/theme/system/channel_downlinks.htm b/src/theme/system/channel_downlinks.htm index 7ef4e253..07871ca6 100644 --- a/src/theme/system/channel_downlinks.htm +++ b/src/theme/system/channel_downlinks.htm @@ -1 +1 @@ -
  • ~server~
  • \ No newline at end of file +~server~ \ No newline at end of file From 433a6b642e7409bfc57b7b8187c4d7943eec8cf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 4 Sep 2023 14:27:05 +0800 Subject: [PATCH 02/53] Update style.js --- src/static/web/js/style.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/static/web/js/style.js b/src/static/web/js/style.js index a21d5c10..4750fd9f 100644 --- a/src/static/web/js/style.js +++ b/src/static/web/js/style.js @@ -2,8 +2,8 @@ $(function() { $(window).on('scroll', function() { var scrolled = $(window).scrollTop(); - if (scrolled > 10) $('#returntop').show(); - if (scrolled < 10) $('#returntop').hide(); + if (scrolled > 100) $('#returntop').show(); + if (scrolled < 100) $('#returntop').hide(); }); $('#returntop').on('click', function() { $('html, body').animate({ From 9038680babec6a5f35912b1427ee5570ad98e8c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 7 Sep 2023 18:28:02 +0800 Subject: [PATCH 03/53] Update login.js --- src/static/web/js/login.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/static/web/js/login.js b/src/static/web/js/login.js index e7024835..34636ad5 100644 --- a/src/static/web/js/login.js +++ b/src/static/web/js/login.js @@ -1,8 +1,8 @@ -$(document).ready(function () { - $("#iptUserid").focusout(function () { +$(document).ready(function() { + $("#iptUserid").focusout(function() { let userid = $(this).val(); if (userid !== '') { - $.get("api.php?action=is_need_check_code&userid=" + userid, function (rs) { + $.get("api.php?action=is_need_check_code&userid=" + userid, function(rs) { if (rs.code === 0) { if (rs.data.isNeed) { $("#vdimgck").show(); @@ -12,5 +12,5 @@ $(document).ready(function () { } }); } - }) -}) \ No newline at end of file + }); +}); \ No newline at end of file From 480e019d74b78eb2d3e2155d117be33a80f38c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 7 Sep 2023 18:32:13 +0800 Subject: [PATCH 04/53] Update index.htm --- src/admin/templets/index.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/admin/templets/index.htm b/src/admin/templets/index.htm index 23302e08..62117947 100644 --- a/src/admin/templets/index.htm +++ b/src/admin/templets/index.htm @@ -51,7 +51,7 @@
    @@ -64,7 +64,7 @@ +
    -
    - -
    - 短信列表 - 群发短信 - 单独短信 - 单独短信
    发送到: 填写会员登录的id(网址uid=后面跟着的id) + + (填写会员登录网址的uid=后面跟着的id) +
    标题:(标题少于70个字符内)
    (1000个字符以内)
    @@ -154,7 +151,7 @@ if (!empty($iseditor)) { else $lstyle = ""; $line = " @@ -171,10 +168,6 @@ if (!empty($iseditor)) { function nullLink() { return; } - function ChangeImage(surl) { - document.getElementById('floater').style.display = 'block'; - document.getElementById('picview').src = surl; - } function TNav() { if (window.navigator.userAgent.indexOf("MSIE") >= 1) return 'IE'; else if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF'; @@ -222,6 +215,25 @@ if (!empty($iseditor)) { } window.close(); } + $(function() { + var x = 10; + var y = 20; + $("a.toolimg").mouseover(function(e) { + var toolimg = "
    <\/div>"; + $("body").append(toolimg); + $("#toolimg").css({ + "top": (e.pageY + y) + "px", + "left": (e.pageX + x) + "px" + }).show("fast"); + }).mouseout(function() { + $("#toolimg").remove(); + }).mousemove(function(e) { + $("#toolimg").css({ + "top": (e.pageY + y) + "px", + "left": (e.pageX + x) + "px" + }); + }); + }); \ No newline at end of file diff --git a/src/admin/js/album.js b/src/admin/js/album.js index 0d54b2d5..a483dd0b 100644 --- a/src/admin/js/album.js +++ b/src/admin/js/album.js @@ -39,38 +39,55 @@ function delAlbPicOld(picfile, pid) { $Obj('galleryedit').removeChild(tgobj); }); } -function seePicNewAlb(f, imgdid, frname, hpos, acname) { - var newobj = null; - if (f.value == '') return; - vImg = $Obj(imgdid); - picnameObj = document.getElementById('picname'); - nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); - nForm = f.form; - //修改form的action等参数 - if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmitAlb); - else nForm.removeEventListener("submit", checkSubmitAlb, false); - nForm.action = 'archives_do.php'; - nForm.target = frname; - nForm.dopost.value = 'uploadLitpic'; - nForm.submit(); - picnameObj.value = ''; - newobj = $Obj('uploadwait'); - if (!newobj) { - newobj = document.createElement("div"); - newobj.id = 'uploadwait'; - newobj.style.position = 'absolute'; - newobj.className = 'uploadwait'; - newobj.style.width = 120; - newobj.style.height = 20; - newobj.style.top = hpos; - newobj.style.left = 100; - document.body.appendChild(newobj); - newobj.innerHTML = ''; +(function() { + var nForm = null; + var nFrame = null; + var picnameObj = null; + var vImg = null; + function GetWinPos(w, h) { + var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; + var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; + var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; + var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; + var systemZoom = width / window.screen.availWidth; + var left = (width - w) / 2 / systemZoom + dualScreenLeft; + var top = (height - h) / 2 / systemZoom + dualScreenTop; + return { left: left, top: top }; } - newobj.style.display = 'block'; - //提交后还原form的action等参数 - nForm.action = acname; - nForm.dopost.value = 'save'; - nForm.target = ''; - nForm.litpic.disabled = true; -} \ No newline at end of file + function SeePicNew(f, imgdid, frname, hpos, acname) { + var newobj = null; + if (f.value == '') return; + vImg = $Obj(imgdid); + picnameObj = document.getElementById('picname'); + nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); + nForm = f.form; + //修改form的action等参数 + if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmit); + else nForm.removeEventListener("submit", checkSubmit, false); + nForm.action = 'archives_do.php'; + nForm.target = frname; + nForm.dopost.value = 'uploadLitpic'; + nForm.submit(); + picnameObj.value = ''; + newobj = $Obj('uploadwait'); + if (!newobj) { + newobj = document.createElement("div"); + newobj.id = 'uploadwait'; + newobj.style.position = 'absolute'; + newobj.className = 'uploadwait'; + newobj.style.width = 120; + newobj.style.height = 20; + newobj.style.top = hpos; + newobj.style.left = 100; + newobj.style.display = 'block'; + document.body.appendChild(newobj); + newobj.innerHTML = ''; + } + newobj.style.display = 'block'; + //提交后还原form的action等参数 + nForm.action = acname; + nForm.dopost.value = 'save'; + nForm.target = ''; + nForm.litpic.disabled = true; + } +}); \ No newline at end of file diff --git a/src/admin/js/body.js b/src/admin/js/body.js index a254ce43..e69ef2eb 100644 --- a/src/admin/js/body.js +++ b/src/admin/js/body.js @@ -1,92 +1,3 @@ -var dedebizInfo; -function ViewDedeBIZ() { - if (dedebizInfo === false) { - ShowMsg("启动商业组件失败"); - return; - } - ShowMsg(`
    @@ -139,7 +136,7 @@ if (!empty($iseditor)) { else $lstyle = ""; $line = "
    - + $file $filesize KB
    - + $file $filesize KB
    - - - - - - -
    -
    -

    版本号

    - ${dedebizInfo.result.server_version} -
    -
    -
    -

    服务器系统

    - ${dedebizInfo.result.server_goos} -
    -
    -
    -

    运行时间

    - ${dedebizInfo.result.server_run_time} -
    -
    -
    -

    内存占用

    - ${dedebizInfo.result.server_memory_usage}% -
    -
    `); -} -function LoadServer() { - $.get("index_body.php?dopost=system_info",function(data) { - let rsp = JSON.parse(data); - if (rsp.code === 200) { - if (rsp.result.core.code === 200) { - dedebizInfo = JSON.parse(rsp.result.core.data); - } else { - dedebizInfo = false; - } - let infoStr = ``; - if (typeof rsp.result.domain !== "undefined") { - infoStr += ` - - - - - `; - } - infoStr += "
    -
    -

    授权域名

    - ${rsp.result.domain} -
    -
    -
    -

    站点名称

    - ${rsp.result.title} -
    -
    -
    -

    站点证书

    - 查看证书 -
    -
    -
    -

    商业组件

    - 组件状态 -
    -
    "; - $("#system-info").html(infoStr); - } else { - $("#system-info").html(` - - - -
    -
    -

    ${rsp.msg}

    - 您已购买了商业版授权,登录DedeBIZ官网会员中心可查看相关授权信息 -
    -
    `); - } - }); -} Date.prototype.Format = function(fmt) { var o = { "M+" : this.getMonth() + 1, //月份 @@ -235,10 +146,61 @@ $(document).ready(function() { } }); }); - LoadServer(); + $(function() { + var dedebizInfo; + $.get("index_body.php?dopost=system_info",function(data) { + let rsp = JSON.parse(data); + if (rsp.code === 200) { + if (rsp.result.core.code === 200) { + dedebizInfo = JSON.parse(rsp.result.core.data); + } else { + dedebizInfo = false; + } + let infoStr = ``; + if (typeof rsp.result.domain !== "undefined") { + infoStr += ` + + + + + `; + } + infoStr += "
    +
    +

    授权域名

    + ${rsp.result.domain} +
    +
    +
    +

    站点名称

    + ${rsp.result.title} +
    +
    +
    +

    授权证书

    + 查看证书 +
    +
    +
    +

    授权时间

    + ${rsp.result.auth_at} +
    +
    "; + $("#system-info").html(infoStr); + } else { + $("#system-info").html(` + + + +
    +
    +

    ${rsp.msg}

    + 您已购买了商业版授权,登录DedeBIZ官网会员中心可查看相关授权信息 +
    +
    `); + } + }); + }); LoadStat(); LoadStatChart(); - setInterval(function() { - LoadServer(); - }, 3000) }); \ No newline at end of file diff --git a/src/admin/js/float.js b/src/admin/js/float.js deleted file mode 100644 index 3462ff1e..00000000 --- a/src/admin/js/float.js +++ /dev/null @@ -1,94 +0,0 @@ -self.onError=null; -currentX = currentY = 0; -whichIt = null; -lastScrollX = 0; lastScrollY = 0; -NS = (document.layers) ? 1 : 0; -IE = (document.all) ? 1 : 0; -function heartBeat() { - if (IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; } - if (NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; } - if (diffY != lastScrollY) { - percent = .1 * (diffY - lastScrollY); - if (percent > 0) percent = Math.ceil(percent); - else percent = Math.floor(percent); - if (IE) document.all.floater.style.pixelTop += percent; - if (NS) document.floater.top += percent; - lastScrollY = lastScrollY + percent; - } if (diffX != lastScrollX) { - percent = .1 * (diffX - lastScrollX); - if (percent > 0) percent = Math.ceil(percent); - else percent = Math.floor(percent); - if (IE) document.all.floater.style.pixelLeft += percent; - if (NS) document.floater.left += percent; - lastScrollX = lastScrollX + percent; - } -} -function checkFocus(x, y) { - stalkerx = document.floater.pageX; - stalkery = document.floater.pageY; - stalkerwidth = document.floater.clip.width; - stalkerheight = document.floater.clip.height; - if ((x > stalkerx && x < (stalkerx + stalkerwidth)) && (y > stalkery && y < (stalkery + stalkerheight))) return true; - else return false; -} -function grabIt(e) { - if (IE) { - whichIt = event.srcElement; - while (whichIt.id.indexOf("floater") == -1) { - whichIt = whichIt.parentElement; - if (whichIt == null) { return true; } - } - whichIt.style.pixelLeft = whichIt.offsetLeft; - whichIt.style.pixelTop = whichIt.offsetTop; - currentX = (event.clientX + document.body.scrollLeft); - currentY = (event.clientY + document.body.scrollTop); - } else { - window.captureEvents(Event.MOUSEMOVE); - if (checkFocus(e.pageX, e.pageY)) { - whichIt = document.floater; - StalkerTouchedX = e.pageX - document.floater.pageX; - StalkerTouchedY = e.pageY - document.floater.pageY; - } - } return true; -} -function moveIt(e) { - if (whichIt == null) { return false; } - if (IE) { - newX = (event.clientX + document.body.scrollLeft); - newY = (event.clientY + document.body.scrollTop); - distanceX = (newX - currentX); distanceY = (newY - currentY); - currentX = newX; currentY = newY; - whichIt.style.pixelLeft += distanceX; - whichIt.style.pixelTop += distanceY; - if (whichIt.style.pixelTop < document.body.scrollTop) whichIt.style.pixelTop = document.body.scrollTop; - if (whichIt.style.pixelLeft < document.body.scrollLeft) whichIt.style.pixelLeft = document.body.scrollLeft; - if (whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - whichIt.style.pixelWidth - 20) whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20; - if (whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5; - event.returnValue = false; - } else { - whichIt.moveTo(e.pageX - StalkerTouchedX, e.pageY - StalkerTouchedY); - if (whichIt.left < 0 + self.pageXOffset) whichIt.left = 0 + self.pageXOffset; - if (whichIt.top < 0 + self.pageYOffset) whichIt.top = 0 + self.pageYOffset; - if ((whichIt.left + whichIt.clip.width) >= (window.innerWidth + self.pageXOffset - 17)) whichIt.left = ((window.innerWidth + self.pageXOffset) - whichIt.clip.width) - 17; - if ((whichIt.top + whichIt.clip.height) >= (window.innerHeight + self.pageYOffset + 50)) whichIt.top = ((window.innerHeight + self.pageYOffset) - whichIt.clip.height) - 17; - return false; - } - return false; -} -function dropIt() { - whichIt = null; - if (NS) window.releaseEvents(Event.MOUSEMOVE); - return true; -} -if (NS) { - window.captureEvents(Event.MOUSEUPEvent.MOUSEDOWN); - window.onmousedown = grabIt; - window.onmousemove = moveIt; - window.onmouseup = dropIt; -} -if (IE) { - document.onmousedown = grabIt; - document.onmousemove = moveIt; - document.onmouseup = dropIt; -} -if (NS || IE) action = window.setInterval("heartBeat()", 1); \ No newline at end of file diff --git a/src/admin/js/global.js b/src/admin/js/global.js index b8cc15f6..6a25726c 100644 --- a/src/admin/js/global.js +++ b/src/admin/js/global.js @@ -1,23 +1,25 @@ -var BROWSER = {}; -var USERAGENT = navigator.userAgent.toLowerCase(); -browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); -if (BROWSER.safari) { - BROWSER.firefox = true; -} -BROWSER.opera = BROWSER.opera ? opera.version() : 0; -function browserVersion(types) { - var other = 1; - for (i in types) { - var v = types[i] ? types[i] : i; - if (USERAGENT.indexOf(v) != -1) { - var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); - var matches = re.exec(USERAGENT); - var ver = matches != null ? matches[2] : 0; - other = ver !== 0 ? 0 : other; - } else { - var ver = 0; +(function() { + var BROWSER = {}; + var USERAGENT = navigator.userAgent.toLowerCase(); + browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); + if (BROWSER.safari) { + BROWSER.firefox = true; + } + BROWSER.opera = BROWSER.opera ? opera.version() : 0; + function browserVersion(types) { + var other = 1; + for (i in types) { + var v = types[i] ? types[i] : i; + if (USERAGENT.indexOf(v) != -1) { + var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); + var matches = re.exec(USERAGENT); + var ver = matches != null ? matches[2] : 0; + other = ver !== 0 ? 0 : other; + } else { + var ver = 0; + } + eval('BROWSER.' + i + '= ver'); } - eval('BROWSER.' + i + '= ver'); + BROWSER.other = other; } - BROWSER.other = other; -} \ No newline at end of file +}); \ No newline at end of file diff --git a/src/admin/js/main.js b/src/admin/js/main.js index 8597c6d5..f059aab1 100644 --- a/src/admin/js/main.js +++ b/src/admin/js/main.js @@ -1,60 +1,3 @@ -var fixupPos = false; -var canMove = false; -var leftLeaning = 0; -var nForm = null; -var nFrame = null; -var picnameObj = null; -var vImg = null; -function GetWinPos(w, h) { - var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; - var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; - var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; - var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; - var systemZoom = width / window.screen.availWidth; - var left = (width - w) / 2 / systemZoom + dualScreenLeft; - var top = (height - h) / 2 / systemZoom + dualScreenTop; - return { left: left, top: top }; -} -function SeePicNew(f, imgdid, frname, hpos, acname) { - var newobj = null; - if (f.value == '') return; - vImg = $Obj(imgdid); - picnameObj = document.getElementById('picname'); - nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); - nForm = f.form; - //修改form的action等参数 - if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmit); - else nForm.removeEventListener("submit", checkSubmit, false); - nForm.action = 'archives_do.php'; - nForm.target = frname; - nForm.dopost.value = 'uploadLitpic'; - nForm.submit(); - picnameObj.value = ''; - newobj = $Obj('uploadwait'); - if (!newobj) { - newobj = document.createElement("div"); - newobj.id = 'uploadwait'; - newobj.style.position = 'absolute'; - newobj.className = 'uploadwait'; - newobj.style.width = 120; - newobj.style.height = 20; - newobj.style.top = hpos; - newobj.style.left = 100; - newobj.style.display = 'block'; - document.body.appendChild(newobj); - newobj.innerHTML = ''; - } - newobj.style.display = 'block'; - //提交后还原form的action等参数 - nForm.action = acname; - nForm.dopost.value = 'save'; - nForm.target = ''; - nForm.litpic.disabled = true; -} -function SelectFlash() { - var pos = GetWinPos(800,600); - window.open("./dialog/select_media.php?f=form1.flashurl&noeditor=yes", "popUpFlashWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top); -} function SelectMedia(fname) { var pos = GetWinPos(800,600); window.open("./dialog/select_media.php?f=" + fname + "&noeditor=yes", "popUpFlashWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top); @@ -84,10 +27,6 @@ function OpenMyWin(surl) { var pos = GetWinPos(800,600); window.open(surl, "popUpMyWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top); } -function OpenMyWinCoOne(surl) { - var pos = GetWinPos(800,600); - window.open(surl, "popUpMyWin2", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top); -} function InitPage() { var selsource = $Obj('selsource'); var selwriter = $Obj('selwriter'); @@ -96,8 +35,7 @@ function InitPage() { if (selwriter) { selwriter.onmousedown = function(e) { SelectWriter(e); } } } function $Nav() { - if (window.navigator.userAgent.indexOf("MSIE") >= 1) return 'IE'; - else if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF'; + if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF'; else return "OT"; } function $Obj(objname) { @@ -126,11 +64,11 @@ function ShowHide(objname) { function ShowObj(objname) { var obj = $Obj(objname); if (obj == null) return false; - obj.style.display = ($Nav() == "IE" ? "inline-block" : "table-row"); + obj.style.display = "table-row"; } function ShowObjRow(objname) { var obj = $Obj(objname); - obj.style.display = ($Nav() == "IE" ? "inline-block" : "table-row"); + obj.style.display = "table-row"; } function AddTypeid2() { ShowObjRow('typeid2tr'); @@ -146,36 +84,36 @@ function SeePic(img, f) { function PutSource(str) { var osource = $Obj('source'); if (osource) osource.value = str; - $Obj('mysource').style.display = 'none'; - ChangeFullDiv('hide'); + $Obj("mysource").style.display = "none"; + ChangeFullDiv("hide"); } function PutWriter(str) { - var owriter = $Obj('writer'); + var owriter = $Obj("writer"); if (owriter) owriter.value = str; - $Obj('mywriter').style.display = 'none'; - ChangeFullDiv('hide'); + $Obj("mywriter").style.display = "none"; + ChangeFullDiv("hide"); } function ClearDivCt(objname) { if (!$Obj(objname)) return; - $Obj(objname).innerHTML = ''; - $Obj(objname).style.display = 'none'; + $Obj(objname).innerHTML = ""; + $Obj(objname).style.display = "none"; ChangeFullDiv("hide"); } function ChangeFullDiv(showhide, screenheigt) { - var newobj = $Obj('fullpagediv'); - if (showhide == 'show') { + var newobj = $Obj("fullpagediv"); + if (showhide == "show") { if (!newobj) { newobj = document.createElement("div"); - newobj.id = 'fullpagediv'; - newobj.style.position = 'absolute'; - newobj.className = 'fullpagediv'; - newobj.style.height = document.body.clientHeight + 50 + 'px'; + newobj.id = "fullpagediv"; + newobj.style.position = "absolute"; + newobj.className = "fullpagediv"; + newobj.style.height = document.body.clientHeight + 50 + "px"; document.body.appendChild(newobj); } else { - newobj.style.display = 'block'; + newobj.style.display = "block"; } } else { - if (newobj) newobj.style.display = 'none'; + if (newobj) newobj.style.display = "none"; } } function SelectSource(e) { @@ -186,26 +124,14 @@ function SelectWriter(e) { } function LoadNewDiv(e, surl, oname) { var pxStr = ''; - if ($Nav() == 'IE') { - var posLeft = window.event.clientX - 20; - var posTop = window.event.clientY - 30; - //IE下scrollTop的兼容性问题 - var scrollTop = document.documentElement.scrollTop || window.pageYOffset; - if (typeof (scrollTop) == 'undefined') scrollTop = document.body.scrollTop; - posTop += scrollTop; - } else { - var posLeft = e.pageX - 20; - var posTop = e.pageY - 30; - pxStr = 'px'; - } posLeft = posLeft - 100; var newobj = $Obj(oname); if (!newobj) { newobj = document.createElement("div"); newobj.id = oname; - newobj.style.position = 'absolute'; + newobj.style.position = "absolute"; newobj.className = oname; - newobj.className += ' dlgws'; + newobj.className += " dlgws"; newobj.style.top = posTop + pxStr; newobj.style.left = posLeft + pxStr; document.body.appendChild(newobj); @@ -255,52 +181,6 @@ function ShowUrlTrEdit() { var rurl = $Obj('redirecturl'); if (!jumpTest.checked) rurl.value = ""; } -function CkRemote() { - document.getElementById('picname').value = ''; -} -//复制文档到剪切板 -function copyToClipboard(txt) { - if (txt == null || txt == '') { - alert("没有选择任何文档"); - return; - } - if (window.clipboardData) { - window.clipboardData.clearData(); - window.clipboardData.setData("Text", txt); - } else if (navigator.userAgent.indexOf('Opera') != -1) { - window.location = txt; - } else { - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - } catch (e) { - alert("浏览器已拒绝,请稍后重试"); - } - var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); - if (!clip) return; - var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); - if (!trans) return; - trans.addDataFlavor('text/unicode'); - var str = new Object(); - var len = new Object(); - var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); - var copytext = txt; - str.data = copytext; - trans.setTransferData("text/unicode", str, copytext.length * 2); - var clipid = Components.interfaces.nsIClipboard; - if (!clip) return false; - clip.setData(trans, null, clipid.kGlobalClipboard); - } -} -function getSelTxt() { - var g, r; - if (document.all) { - g = document.selection.createRange().text; - } else { - g = document.getSelection(); - } - return g; -} -//文档列表快捷属性弹出 function LoadQuickDiv(e, surl, oname, w, h) { var newobj = $Obj(oname); if (!newobj) { @@ -320,11 +200,9 @@ function LoadQuickDiv(e, surl, oname, w, h) { fetch(surl).then(resp => resp.text()).then((d) => { newobj.innerHTML = d; }); - fixupPos = false; + } -//显示副栏目 function ShowCatMap(e, obj, cid, targetId, oldvalue) { - fixupPos = true; LoadQuickDiv(e, 'archives_do.php?dopost=getCatMap&targetid=' + targetId + '&channelid=' + cid + '&oldvalue=' + oldvalue + '&rnd=' + Math.random(), 'getCatMap', '700px', '500px'); ChangeFullDiv('show'); } @@ -332,7 +210,6 @@ function getSelCat(targetId) { var selBox = document.quicksel.seltypeid; var targetObj = $Obj(targetId); var selvalue = ''; - //副栏目多选 if (targetId == 'typeid2') { var j = 0; for (var i = 0; i < selBox.length; i++) { @@ -344,7 +221,6 @@ function getSelCat(targetId) { } if (targetObj) targetObj.value = selvalue; } else { - //主栏目单选 if (selBox) { for (var i = 0; i < selBox.length; i++) { if (selBox[i].checked) selvalue = selBox[i].value; @@ -454,76 +330,76 @@ function CloseModal(modalID) { }) } //获取缩略图 -var litpicImgSrc = ""; -var litpicImg = ""; -var currentCID = 0; -var mdlCropperID = ""; -var pubAt = 0; -var optCropper = { - preview: ".pv", - crop: function(e) { - $("#cropWidth").text(Math.round(e.detail.height)); - $("#cropHeight").text(Math.round(e.detail.width)); - if ($(this).cropper("getCroppedCanvas")) { +$(function() { + var litpicImgSrc = ""; + var litpicImg = ""; + var currentCID = 0; + var mdlCropperID = ""; + var pubAt = 0; + var optCropper = { + preview: ".pv", + crop: function(e) { + $("#cropWidth").text(Math.round(e.detail.height)); + $("#cropHeight").text(Math.round(e.detail.width)); + if ($(this).cropper("getCroppedCanvas")) { + var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); + litpicImg = dataUrl; + $("#litPic").attr("src", litpicImg); + } + }, + aspectRatio: 4 / 3, + //拖动截取缩略图后,截取的缩略图更新到imageItems中 + cropend: function(data) { + //这里的id要单独取出来 var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); litpicImg = dataUrl; - $("#litPic").attr("src", litpicImg); + $("#litPic").attr("src", litpicImg); + $("#litpic_b64").val(litpicImg); } - }, - aspectRatio: 4 / 3, - //拖动截取缩略图后,截取的缩略图更新到imageItems中 - cropend: function(data) { - //这里的id要单独取出来 - var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); - litpicImg = dataUrl; + } + var cropperAspectRatio = { + 0: 16 / 9, + 1: 4 / 3, + 2: 1 / 1, + 3: 2 / 3, + 4: NaN, + } + function setAspectRatio(ar) { + var opts = optCropper; + opts.aspectRatio = cropperAspectRatio[ar]; + $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts); + } + function okImage(modalID) { + uploadImage(litpicImg); $("#litPic").attr("src", litpicImg); - $("#litpic_b64").val(litpicImg); + CloseModal('GKModal' + modalID); + } + function useDefault(modalID) { + uploadImage(litpicImgSrc); + $("#litPic").attr("src", litpicImgSrc); + CloseModal('GKModal' + modalID); + } + function uploadImage(litpicImgSrc) { + const formData = new FormData() + formData.append('litpic_b64', litpicImgSrc); + fetch('archives_do.php?dopost=upload_base64_image', { + method: 'POST', + body: formData + }) + .then(r => { + if (r.ok) { + return r.json() + } + throw new Error(errMsg); + }) + .then(d => { + if (d.code == 200) { + $("#picname").val(d.data.image_url); + } + }).catch((error) => { + alert("上传缩略图错误"); + }); } -} -var cropperAspectRatio = { - 0: 16 / 9, - 1: 4 / 3, - 2: 1 / 1, - 3: 2 / 3, - 4: NaN, -} -function setAspectRatio(ar) { - var opts = optCropper; - opts.aspectRatio = cropperAspectRatio[ar]; - $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts); -} -function okImage(modalID) { - uploadImage(litpicImg); - $("#litPic").attr("src", litpicImg); - CloseModal('GKModal' + modalID); -} -function useDefault(modalID) { - uploadImage(litpicImgSrc); - $("#litPic").attr("src", litpicImgSrc); - CloseModal('GKModal' + modalID); -} -function uploadImage(litpicImgSrc) { - const formData = new FormData() - formData.append('litpic_b64', litpicImgSrc); - fetch('archives_do.php?dopost=upload_base64_image', { - method: 'POST', - body: formData - }) - .then(r => { - if (r.ok) { - return r.json() - } - throw new Error(errMsg); - }) - .then(d => { - if (d.code == 200) { - $("#picname").val(d.data.image_url); - } - }).catch((error) => { - alert("上传缩略图错误"); - }); -} -$(document).ready(function() { $("#btnClearAll").click(function(event) { litpicImgSrc = ""; litpicImg = ""; @@ -568,6 +444,8 @@ $(document).ready(function() { $("#cropImg" + mdlCropperID).cropper(optCropper); }, 500); } +}); +$(document).ready(function() { if ($.fn.daterangepicker) { $('.datepicker').daterangepicker({ "singleDatePicker": true, diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index b7b1ad06..947fb77a 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -418,16 +418,6 @@ body.hidemenu .body-right { background:#f5f5f5; border-bottom:1px solid #dee2e6 } -.fullpagediv { - position:absolute; - top:0; - left:0; - width:100%; - height:100%; - background:#f5f5f5; - opacity:.6; - z-index:1999 -} .quicksel { margin-left:10px; margin-top:10px; @@ -465,6 +455,10 @@ body.hidemenu .body-right { border:1px solid #dee2e6; z-index:10001 } +#toolimg { + position:absolute; + display:none +} #uploadfield { float:left } @@ -680,18 +674,17 @@ table,input,select,textarea,.search,.menu-body,.coolbg,.mysource,.mywriter,.pubd } @media (max-width:768px) { .tips { - padding:0 15px - } - .tips-box { - width:100% - } + padding:0 15px +} +.tips-box { + width:100% } -@media (min-width:1200px) { +}@media (min-width:1200px) { .web-info { - text-overflow:ellipsis; - white-space:nowrap - } - .modal-dialog { - max-width:500px - } + text-overflow:ellipsis; + white-space:nowrap +} +.modal-dialog { + max-width:500px +} } \ No newline at end of file diff --git a/src/static/web/js/style.js b/src/static/web/js/style.js index 4750fd9f..a6e79b0f 100644 --- a/src/static/web/js/style.js +++ b/src/static/web/js/style.js @@ -1,16 +1,3 @@ -//返回顶部 -$(function() { - $(window).on('scroll', function() { - var scrolled = $(window).scrollTop(); - if (scrolled > 100) $('#returntop').show(); - if (scrolled < 100) $('#returntop').hide(); - }); - $('#returntop').on('click', function() { - $('html, body').animate({ - scrollTop: '0' - }, 500); - }); -}); //读写cookie函数 function GetCookie(c_name) { if (document.cookie.length > 0) { @@ -191,4 +178,16 @@ function ErrorAddSave(id, title) { ShowMsg(content, { 'footer': footer, }); -} \ No newline at end of file +} +$(function() { + $(window).on('scroll', function() { + var scrolled = $(window).scrollTop(); + if (scrolled > 100) $('#returntop').show(); + if (scrolled < 100) $('#returntop').hide(); + }); + $('#returntop').on('click', function() { + $('html, body').animate({ + scrollTop: '0' + }, 500); + }); +}); \ No newline at end of file diff --git a/src/static/web/js/user.album.js b/src/static/web/js/user.album.js index 71b5869b..cb2227b4 100644 --- a/src/static/web/js/user.album.js +++ b/src/static/web/js/user.album.js @@ -1,29 +1,31 @@ -var startNum = 1; -function MakeUpload(mnum) { - var endNum = 0; - var upfield = document.getElementById("uploadfield"); - var pnumObj = document.getElementById("picnum"); - var fhtml = ""; - var dsel = " checked='checked' "; - var dplay = "display:none"; - if (mnum==0) endNum = startNum + Number(pnumObj.value); - else endNum = mnum; - if (endNum>120) endNum = 120; - for (startNum;startNum < endNum;startNum++) - { - if (startNum==1) { - dsel = " checked='checked' "; - dplay = "block"; - } else { - dsel = " "; - dplay = "display:none"; +(function() { + var startNum = 1; + function MakeUpload(mnum) { + var endNum = 0; + var upfield = document.getElementById("uploadfield"); + var pnumObj = document.getElementById("picnum"); + var fhtml = ""; + var dsel = " checked='checked' "; + var dplay = "display:none"; + if (mnum==0) endNum = startNum + Number(pnumObj.value); + else endNum = mnum; + if (endNum>120) endNum = 120; + for (startNum;startNum < endNum;startNum++) + { + if (startNum==1) { + dsel = " checked='checked' "; + dplay = "block"; + } else { + dsel = " "; + dplay = "display:none"; + } + fhtml = ""; + fhtml += "
    "; + fhtml += "
    选择
    "; + upfield.innerHTML += fhtml; } - fhtml = ""; - fhtml += "
    "; - fhtml += "
    选择
    "; - upfield.innerHTML += fhtml; } -} +}); function CheckSelTable(nnum) { var cbox = document.getElementById('isokcheck'+nnum); var seltb = document.getElementById('seltb'+nnum); From 00639fe8cc014ccebfd1bae585526f8745bf9a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Fri, 8 Sep 2023 18:13:44 +0800 Subject: [PATCH 10/53] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/js/album.js | 85 +++++------ src/admin/js/global.js | 63 +++++--- src/admin/js/main.js | 216 +++++++++++++++++----------- src/admin/templets/catalog_main.htm | 21 --- src/admin/templets/index.htm | 12 +- src/static/web/css/admin.css | 3 - src/static/web/js/user.album.js | 68 +++++---- 7 files changed, 240 insertions(+), 228 deletions(-) diff --git a/src/admin/js/album.js b/src/admin/js/album.js index a483dd0b..0d54b2d5 100644 --- a/src/admin/js/album.js +++ b/src/admin/js/album.js @@ -39,55 +39,38 @@ function delAlbPicOld(picfile, pid) { $Obj('galleryedit').removeChild(tgobj); }); } -(function() { - var nForm = null; - var nFrame = null; - var picnameObj = null; - var vImg = null; - function GetWinPos(w, h) { - var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; - var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; - var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; - var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; - var systemZoom = width / window.screen.availWidth; - var left = (width - w) / 2 / systemZoom + dualScreenLeft; - var top = (height - h) / 2 / systemZoom + dualScreenTop; - return { left: left, top: top }; +function seePicNewAlb(f, imgdid, frname, hpos, acname) { + var newobj = null; + if (f.value == '') return; + vImg = $Obj(imgdid); + picnameObj = document.getElementById('picname'); + nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); + nForm = f.form; + //修改form的action等参数 + if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmitAlb); + else nForm.removeEventListener("submit", checkSubmitAlb, false); + nForm.action = 'archives_do.php'; + nForm.target = frname; + nForm.dopost.value = 'uploadLitpic'; + nForm.submit(); + picnameObj.value = ''; + newobj = $Obj('uploadwait'); + if (!newobj) { + newobj = document.createElement("div"); + newobj.id = 'uploadwait'; + newobj.style.position = 'absolute'; + newobj.className = 'uploadwait'; + newobj.style.width = 120; + newobj.style.height = 20; + newobj.style.top = hpos; + newobj.style.left = 100; + document.body.appendChild(newobj); + newobj.innerHTML = ''; } - function SeePicNew(f, imgdid, frname, hpos, acname) { - var newobj = null; - if (f.value == '') return; - vImg = $Obj(imgdid); - picnameObj = document.getElementById('picname'); - nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); - nForm = f.form; - //修改form的action等参数 - if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmit); - else nForm.removeEventListener("submit", checkSubmit, false); - nForm.action = 'archives_do.php'; - nForm.target = frname; - nForm.dopost.value = 'uploadLitpic'; - nForm.submit(); - picnameObj.value = ''; - newobj = $Obj('uploadwait'); - if (!newobj) { - newobj = document.createElement("div"); - newobj.id = 'uploadwait'; - newobj.style.position = 'absolute'; - newobj.className = 'uploadwait'; - newobj.style.width = 120; - newobj.style.height = 20; - newobj.style.top = hpos; - newobj.style.left = 100; - newobj.style.display = 'block'; - document.body.appendChild(newobj); - newobj.innerHTML = ''; - } - newobj.style.display = 'block'; - //提交后还原form的action等参数 - nForm.action = acname; - nForm.dopost.value = 'save'; - nForm.target = ''; - nForm.litpic.disabled = true; - } -}); \ No newline at end of file + newobj.style.display = 'block'; + //提交后还原form的action等参数 + nForm.action = acname; + nForm.dopost.value = 'save'; + nForm.target = ''; + nForm.litpic.disabled = true; +} \ No newline at end of file diff --git a/src/admin/js/global.js b/src/admin/js/global.js index 6a25726c..b58e7557 100644 --- a/src/admin/js/global.js +++ b/src/admin/js/global.js @@ -1,25 +1,42 @@ -(function() { - var BROWSER = {}; - var USERAGENT = navigator.userAgent.toLowerCase(); - browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); - if (BROWSER.safari) { - BROWSER.firefox = true; - } - BROWSER.opera = BROWSER.opera ? opera.version() : 0; - function browserVersion(types) { - var other = 1; - for (i in types) { - var v = types[i] ? types[i] : i; - if (USERAGENT.indexOf(v) != -1) { - var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); - var matches = re.exec(USERAGENT); - var ver = matches != null ? matches[2] : 0; - other = ver !== 0 ? 0 : other; - } else { - var ver = 0; - } - eval('BROWSER.' + i + '= ver'); +var BROWSER = {}; +var USERAGENT = navigator.userAgent.toLowerCase(); +browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); +if (BROWSER.safari) { + BROWSER.firefox = true; +} +BROWSER.opera = BROWSER.opera ? opera.version() : 0; +function browserVersion(types) { + var other = 1; + for (i in types) { + var v = types[i] ? types[i] : i; + if (USERAGENT.indexOf(v) != -1) { + var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); + var matches = re.exec(USERAGENT); + var ver = matches != null ? matches[2] : 0; + other = ver !== 0 ? 0 : other; + } else { + var ver = 0; } - BROWSER.other = other; + eval('BROWSER.' + i + '= ver'); + } + BROWSER.other = other; +} +function LoadSuns(ctid, tid) { + if ($DE(ctid).innerHTML.length < 10) { + $DE('img' + tid).className = 'fa fa-minus-square'; + fetch('catalog_do.php?dopost=GetSunLists&cid=' + tid).then(resp => resp.text()).then((d) => { + $DE(ctid).innerHTML = d; + }); + } else { + showHide(ctid, tid); + } +} +function showHide(objname, tid) { + if ($DE(objname).style.display == "none") { + $DE('img' + tid).className = 'fa fa-minus-square'; + $DE(objname).style.display = BROWSER.firefox ? "" : "block"; + } else { + $DE('img' + tid).className = 'fa fa-plus-square'; + $DE(objname).style.display = "none"; } -}); \ No newline at end of file +} \ No newline at end of file diff --git a/src/admin/js/main.js b/src/admin/js/main.js index f059aab1..f5fc9e49 100644 --- a/src/admin/js/main.js +++ b/src/admin/js/main.js @@ -1,3 +1,53 @@ +var nForm = null; +var nFrame = null; +var picnameObj = null; +var vImg = null; +function GetWinPos(w, h) { + var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; + var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; + var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; + var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; + var systemZoom = width / window.screen.availWidth; + var left = (width - w) / 2 / systemZoom + dualScreenLeft; + var top = (height - h) / 2 / systemZoom + dualScreenTop; + return { left: left, top: top }; +} +function SeePicNew(f, imgdid, frname, hpos, acname) { + var newobj = null; + if (f.value == '') return; + vImg = $Obj(imgdid); + picnameObj = document.getElementById('picname'); + nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); + nForm = f.form; + //修改form的action等参数 + if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmit); + else nForm.removeEventListener("submit", checkSubmit, false); + nForm.action = 'archives_do.php'; + nForm.target = frname; + nForm.dopost.value = 'uploadLitpic'; + nForm.submit(); + picnameObj.value = ''; + newobj = $Obj('uploadwait'); + if (!newobj) { + newobj = document.createElement("div"); + newobj.id = 'uploadwait'; + newobj.style.position = 'absolute'; + newobj.className = 'uploadwait'; + newobj.style.width = 120; + newobj.style.height = 20; + newobj.style.top = hpos; + newobj.style.left = 100; + newobj.style.display = 'block'; + document.body.appendChild(newobj); + newobj.innerHTML = ''; + } + newobj.style.display = 'block'; + //提交后还原form的action等参数 + nForm.action = acname; + nForm.dopost.value = 'save'; + nForm.target = ''; + nForm.litpic.disabled = true; +} function SelectMedia(fname) { var pos = GetWinPos(800,600); window.open("./dialog/select_media.php?f=" + fname + "&noeditor=yes", "popUpFlashWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top); @@ -200,7 +250,6 @@ function LoadQuickDiv(e, surl, oname, w, h) { fetch(surl).then(resp => resp.text()).then((d) => { newobj.innerHTML = d; }); - } function ShowCatMap(e, obj, cid, targetId, oldvalue) { LoadQuickDiv(e, 'archives_do.php?dopost=getCatMap&targetid=' + targetId + '&channelid=' + cid + '&oldvalue=' + oldvalue + '&rnd=' + Math.random(), 'getCatMap', '700px', '500px'); @@ -330,91 +379,105 @@ function CloseModal(modalID) { }) } //获取缩略图 -$(function() { - var litpicImgSrc = ""; - var litpicImg = ""; - var currentCID = 0; - var mdlCropperID = ""; - var pubAt = 0; - var optCropper = { - preview: ".pv", - crop: function(e) { - $("#cropWidth").text(Math.round(e.detail.height)); - $("#cropHeight").text(Math.round(e.detail.width)); - if ($(this).cropper("getCroppedCanvas")) { - var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); - litpicImg = dataUrl; - $("#litPic").attr("src", litpicImg); - } - }, - aspectRatio: 4 / 3, - //拖动截取缩略图后,截取的缩略图更新到imageItems中 - cropend: function(data) { - //这里的id要单独取出来 +var litpicImgSrc = ""; +var litpicImg = ""; +var mdlCropperID = ""; +var optCropper = { + preview: ".pv", + crop: function(e) { + $("#cropWidth").text(Math.round(e.detail.height)); + $("#cropHeight").text(Math.round(e.detail.width)); + if ($(this).cropper("getCroppedCanvas")) { var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); litpicImg = dataUrl; - $("#litPic").attr("src", litpicImg); - $("#litpic_b64").val(litpicImg); + $("#litPic").attr("src", litpicImg); } - } - var cropperAspectRatio = { - 0: 16 / 9, - 1: 4 / 3, - 2: 1 / 1, - 3: 2 / 3, - 4: NaN, - } - function setAspectRatio(ar) { - var opts = optCropper; - opts.aspectRatio = cropperAspectRatio[ar]; - $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts); - } - function okImage(modalID) { - uploadImage(litpicImg); + }, + aspectRatio: 4 / 3, + cropend: function(data) { + var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL(); + litpicImg = dataUrl; $("#litPic").attr("src", litpicImg); - CloseModal('GKModal' + modalID); - } - function useDefault(modalID) { - uploadImage(litpicImgSrc); - $("#litPic").attr("src", litpicImgSrc); - CloseModal('GKModal' + modalID); - } - function uploadImage(litpicImgSrc) { - const formData = new FormData() - formData.append('litpic_b64', litpicImgSrc); - fetch('archives_do.php?dopost=upload_base64_image', { - method: 'POST', - body: formData - }) - .then(r => { - if (r.ok) { - return r.json() - } - throw new Error(errMsg); - }) - .then(d => { - if (d.code == 200) { - $("#picname").val(d.data.image_url); - } - }).catch((error) => { - alert("上传缩略图错误"); - }); + $("#litpic_b64").val(litpicImg); } +} +var cropperAspectRatio = { + 0: 16 / 9, + 1: 4 / 3, + 2: 1 / 1, + 3: 2 / 3, + 4: NaN, +} +function setAspectRatio(ar) { + var opts = optCropper; + opts.aspectRatio = cropperAspectRatio[ar]; + $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts); +} +function okImage(modalID) { + uploadImage(litpicImg); + $("#litPic").attr("src", litpicImg); + CloseModal('GKModal' + modalID); +} +function useDefault(modalID) { + uploadImage(litpicImgSrc); + $("#litPic").attr("src", litpicImgSrc); + CloseModal('GKModal' + modalID); +} +function uploadImage(litpicImgSrc) { + const formData = new FormData() + formData.append('litpic_b64', litpicImgSrc); + fetch('archives_do.php?dopost=upload_base64_image', { + method: 'POST', + body: formData + }) + .then(r => { + if (r.ok) { + return r.json() + } + throw new Error(errMsg); + }) + .then(d => { + if (d.code == 200) { + $("#picname").val(d.data.image_url); + } + }).catch((error) => { + alert("上传缩略图错误"); + }); +} +function SetThumb(srcURL) { + var footer = "

    使用原图确定

    "; + var optButton = `

    `; + mdlCropperID = ShowMsg('

    宽度:px,高度:px

    ' + optButton + '
    ', { + footer: footer, + noClose: false, + title: '图片裁剪', + }); + setTimeout(function() { + $("#cropImg" + mdlCropperID).cropper(optCropper); + }, 500); +} +$(document).ready(function() { + $("#togglemenu").click(function() { + if ($("body").attr("class") == "showmenu") { + $("body").attr("class", "hidemenu"); + $(this).html(''); + } else { + $("body").attr("class", "showmenu"); + $(this).html(''); + } + }); $("#btnClearAll").click(function(event) { litpicImgSrc = ""; litpicImg = ""; $("#picname").val(litpicImg); $("#litPic").attr("src", "/static/web/img/thumbnail.jpg"); }) - //添加图片 $("#iptAddImages").change(function(event) { var files = event.target.files; for (var i = 0, f; f = files[i]; i++) { - //如果不是图片忽略 if (!f.type.match('image.*')) { continue; } - //将图片渲染到浏览器 var reader = new FileReader(); reader.onload = (function(theFile) { return function(e) { @@ -431,21 +494,6 @@ $(function() { } $("#iptAddImages").val(""); }); - //截取缩略图 - function SetThumb(srcURL) { - var footer = "

    使用原图确定

    "; - var optButton = `

    `; - mdlCropperID = ShowMsg('

    宽度:px,高度:px

    ' + optButton + '
    ', { - footer: footer, - noClose: false, - title: '图片裁剪', - }); - setTimeout(function() { - $("#cropImg" + mdlCropperID).cropper(optCropper); - }, 500); - } -}); -$(document).ready(function() { if ($.fn.daterangepicker) { $('.datepicker').daterangepicker({ "singleDatePicker": true, diff --git a/src/admin/templets/catalog_main.htm b/src/admin/templets/catalog_main.htm index 2ea125e0..84d68e4a 100644 --- a/src/admin/templets/catalog_main.htm +++ b/src/admin/templets/catalog_main.htm @@ -47,26 +47,5 @@ - \ No newline at end of file diff --git a/src/admin/templets/index.htm b/src/admin/templets/index.htm index 499a733a..87e0aa8a 100644 --- a/src/admin/templets/index.htm +++ b/src/admin/templets/index.htm @@ -10,6 +10,7 @@ + @@ -62,16 +63,5 @@
    - \ No newline at end of file diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 947fb77a..f4b19e40 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -343,9 +343,6 @@ body.hidemenu .body-right { padding:10px; background:#f5f5f5 } -#fz-0 { - font-size:0 -} #_fileList,#_verList { height:360px; overflow-y:auto diff --git a/src/static/web/js/user.album.js b/src/static/web/js/user.album.js index cb2227b4..376ab94c 100644 --- a/src/static/web/js/user.album.js +++ b/src/static/web/js/user.album.js @@ -1,31 +1,38 @@ -(function() { - var startNum = 1; - function MakeUpload(mnum) { - var endNum = 0; - var upfield = document.getElementById("uploadfield"); - var pnumObj = document.getElementById("picnum"); - var fhtml = ""; - var dsel = " checked='checked' "; - var dplay = "display:none"; - if (mnum==0) endNum = startNum + Number(pnumObj.value); - else endNum = mnum; - if (endNum>120) endNum = 120; - for (startNum;startNum < endNum;startNum++) - { - if (startNum==1) { - dsel = " checked='checked' "; - dplay = "block"; - } else { - dsel = " "; - dplay = "display:none"; - } - fhtml = ""; - fhtml += "
    "; - fhtml += "
    选择
    "; - upfield.innerHTML += fhtml; +var startNum = 1; +function MakeUpload(mnum) { + var endNum = 0; + var upfield = document.getElementById("uploadfield"); + var pnumObj = document.getElementById("picnum"); + var fhtml = ""; + var dsel = " checked='checked' "; + var dplay = "display:none"; + if (mnum==0) endNum = startNum + Number(pnumObj.value); + else endNum = mnum; + if (endNum>120) endNum = 120; + for (startNum;startNum < endNum;startNum++) + { + if (startNum==1) { + dsel = " checked='checked' "; + dplay = "block"; + } else { + dsel = " "; + dplay = "display:none"; } + fhtml = ""; + fhtml += "
    "; + fhtml += "
    选择
    "; + upfield.innerHTML += fhtml; } -}); +} +function checkMuList(psid, cmid) { + if (document.getElementById('pagestyle3').checked) { + document.getElementById('spagelist').style.display = 'none'; + } else if (document.getElementById('pagestyle1').checked) { + document.getElementById('spagelist').style.display = 'block'; + } else { + document.getElementById('spagelist').style.display = 'none'; + } +} function CheckSelTable(nnum) { var cbox = document.getElementById('isokcheck'+nnum); var seltb = document.getElementById('seltb'+nnum); @@ -42,13 +49,4 @@ function checkSubmit() { alert("请您选择文档所属栏目"); return false; } -} -function checkMuList(psid, cmid) { - if (document.getElementById('pagestyle3').checked) { - document.getElementById('spagelist').style.display = 'none'; - } else if (document.getElementById('pagestyle1').checked) { - document.getElementById('spagelist').style.display = 'block'; - } else { - document.getElementById('spagelist').style.display = 'none'; - } } \ No newline at end of file From b5ba5f06abf5a452bf0c0cc487213666dd7a5a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Fri, 8 Sep 2023 18:28:37 +0800 Subject: [PATCH 11/53] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=B0=B7=E6=AD=8C?= =?UTF-8?q?=E5=BC=95=E8=B5=B7=E7=9A=84id=E5=90=8D=E7=A7=B0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/templets/content_i_list.htm | 2 +- src/admin/templets/content_list.htm | 4 ++-- src/admin/templets/content_s_list.htm | 2 +- src/admin/templets/content_select_list.htm | 2 +- src/admin/templets/content_sg_list.htm | 2 +- src/admin/templets/member_main.htm | 2 +- src/admin/templets/mytag_tag_guide.htm | 2 +- src/admin/templets/recycling.htm | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/admin/templets/content_i_list.htm b/src/admin/templets/content_i_list.htm index 2d3b0e5b..b5b69d00 100644 --- a/src/admin/templets/content_i_list.htm +++ b/src/admin/templets/content_i_list.htm @@ -78,7 +78,7 @@ {dede:datalist empty='暂无记录'} - + {dede:field.id/} diff --git a/src/admin/templets/content_list.htm b/src/admin/templets/content_list.htm index afcfcc67..3ddabbd4 100644 --- a/src/admin/templets/content_list.htm +++ b/src/admin/templets/content_list.htm @@ -81,9 +81,9 @@ {dede:datalist empty='暂无记录'} - + {dede:field.id/} - {dede:field.title/}{dede:field.flag function='IsCommendArchives(@me)'/} + {dede:field.title/}{dede:field.flag function='IsCommendArchives(@me)'/} {dede:field.senddate function='GetDateMk(@me)'/} {dede:field.typeid function='GetTypename(@me)'/} {dede:field.click/} diff --git a/src/admin/templets/content_s_list.htm b/src/admin/templets/content_s_list.htm index 6afb7ef0..c3b5cab3 100644 --- a/src/admin/templets/content_s_list.htm +++ b/src/admin/templets/content_s_list.htm @@ -59,7 +59,7 @@ {dede:datalist empty='暂无记录'} - + {dede:field.id/} {dede:field.title/} diff --git a/src/admin/templets/content_select_list.htm b/src/admin/templets/content_select_list.htm index 20bd9b28..a5a5a19c 100644 --- a/src/admin/templets/content_select_list.htm +++ b/src/admin/templets/content_select_list.htm @@ -42,7 +42,7 @@ {dede:datalist empty='暂无记录'} - + {dede:field.id/} {dede:field.title/} {dede:field.senddate function="GetDateMk(@me)"/} diff --git a/src/admin/templets/content_sg_list.htm b/src/admin/templets/content_sg_list.htm index 79cc5f33..31654d58 100644 --- a/src/admin/templets/content_sg_list.htm +++ b/src/admin/templets/content_sg_list.htm @@ -68,7 +68,7 @@ {dede:datalist empty='暂无记录'} - + {dede:field.id/} {dede:field.title/}{dede:field.flag function='IsCommendArchives(@me)'/} {dede:field.senddate function='GetDateMk(@me)'/} diff --git a/src/admin/templets/member_main.htm b/src/admin/templets/member_main.htm index 8deeb7ca..4daaa398 100644 --- a/src/admin/templets/member_main.htm +++ b/src/admin/templets/member_main.htm @@ -67,7 +67,7 @@ {dede:datalist empty='暂无会员'} - + {dede:field.mid/} ";};echo ''.$fields['userid'].'';if ($fields['spacesta']==-2) echo " 禁言";if ($fields['spacesta']==-1) echo " 未审核";?> diff --git a/src/admin/templets/mytag_tag_guide.htm b/src/admin/templets/mytag_tag_guide.htm index 05b9c5d2..6366e928 100644 --- a/src/admin/templets/mytag_tag_guide.htm +++ b/src/admin/templets/mytag_tag_guide.htm @@ -124,7 +124,7 @@ 提取特定文档: - + diff --git a/src/admin/templets/recycling.htm b/src/admin/templets/recycling.htm index ee0db2bb..79a72193 100644 --- a/src/admin/templets/recycling.htm +++ b/src/admin/templets/recycling.htm @@ -26,7 +26,7 @@ {dede:datalist empty='暂无记录'} {dede:field.id/} - + {dede:field.title/} {dede:field.senddate function='GetDateMk(@me)'/} {dede:field.typename/} From bed97cb9d3bd418e737e088aaed49ba6b7a16db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Fri, 8 Sep 2023 18:36:55 +0800 Subject: [PATCH 12/53] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/js/main.js | 75 ++++++++++++++++++++----------- src/admin/templets/index_menu.htm | 26 +---------- 2 files changed, 50 insertions(+), 51 deletions(-) diff --git a/src/admin/js/main.js b/src/admin/js/main.js index f5fc9e49..b7cf610f 100644 --- a/src/admin/js/main.js +++ b/src/admin/js/main.js @@ -299,35 +299,35 @@ function guid() { var _DedeConfirmFuncs = {}; var _DedeConfirmFuncsClose = {}; function __DedeConfirmRun(modalID) { - _DedeConfirmFuncs[modalID](); + _DedeConfirmFuncs[modalID](); } function __DedeConfirmRunClose(modalID) { - _DedeConfirmFuncsClose[modalID](); + _DedeConfirmFuncsClose[modalID](); } function DedeConfirm(content = "", title = "确认提示") { - let modalID = guid(); - return new Promise((resolve, reject) => { - _DedeConfirmFuncs[modalID] = ()=>{ - resolve("success"); - CloseModal(`DedeModal${modalID}`); - } - _DedeConfirmFuncsClose[modalID] = ()=>{ - reject("cancel"); - CloseModal(`DedeModal${modalID}`); - } - let footer = ``; - let modal = ``; - $("body").append(modal) - $("#DedeModal" + modalID).modal({ - backdrop: 'static', - show: true - }); - $("#DedeModal" + modalID).on('hidden.bs.modal', function(e) { - $("#DedeModal" + modalID).remove(); - }) - }) + let modalID = guid(); + return new Promise((resolve, reject) => { + _DedeConfirmFuncs[modalID] = ()=>{ + resolve("success"); + CloseModal(`DedeModal${modalID}`); + } + _DedeConfirmFuncsClose[modalID] = ()=>{ + reject("cancel"); + CloseModal(`DedeModal${modalID}`); + } + let footer = ``; + let modal = ``; + $("body").append(modal) + $("#DedeModal" + modalID).modal({ + backdrop: 'static', + show: true + }); + $("#DedeModal" + modalID).on('hidden.bs.modal', function(e) { + $("#DedeModal" + modalID).remove(); + }) + }) } //函数会返回一个modalID,通过这个id可自已定义一些方法,这里用到了一个展开语法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax function ShowMsg(content, ...args) { @@ -466,6 +466,29 @@ $(document).ready(function() { $(this).html(''); } }); + $(function() { + var menu = function(el, multiple) { + this.el = el || {}; + this.multiple = multiple || false; + var links = this.el.find('.link'); + links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown) + } + menu.prototype.dropdown = function(e) { + var $el = e.data.el; + $this = $(this), + $next = $this.next(); + $next.slideToggle(); + $this.parent().toggleClass('open'); + if (!e.data.multiple) { + $el.find('.submenu').not($next).slideUp().parent().removeClass('open'); + }; + } + var menu = new menu($('#menu'), false); + $(".submenu li a").click(function(e) { + $(".submenu li").removeClass('active'); + $(this).parent().addClass('active'); + }) + }); $("#btnClearAll").click(function(event) { litpicImgSrc = ""; litpicImg = ""; @@ -529,6 +552,6 @@ $(document).ready(function() { picker.drops = 'down'; } picker.move(); - }) + }); } }); \ No newline at end of file diff --git a/src/admin/templets/index_menu.htm b/src/admin/templets/index_menu.htm index 03c88d78..e34495e5 100644 --- a/src/admin/templets/index_menu.htm +++ b/src/admin/templets/index_menu.htm @@ -7,6 +7,7 @@ + - \ No newline at end of file From f594f317cb6ea484c53131c7ff8ce5d61aaef995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Fri, 8 Sep 2023 18:48:41 +0800 Subject: [PATCH 13/53] Update select_images.php --- src/admin/dialog/select_images.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/dialog/select_images.php b/src/admin/dialog/select_images.php index 7adaeaec..04f0cd07 100644 --- a/src/admin/dialog/select_images.php +++ b/src/admin/dialog/select_images.php @@ -219,7 +219,7 @@ if (!empty($iseditor)) { var x = 10; var y = 20; $("a.toolimg").mouseover(function(e) { - var toolimg = "
    <\/div>"; + var toolimg = "
    "; $("body").append(toolimg); $("#toolimg").css({ "top": (e.pageY + y) + "px", From 036bc6ae27540600633545ace6610161d6540b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Fri, 8 Sep 2023 19:03:54 +0800 Subject: [PATCH 14/53] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=B0=B7=E6=AD=8C?= =?UTF-8?q?=E5=BC=95=E8=B5=B7=E7=9A=84id=E5=90=8D=E7=A7=B0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=97=AE=E9=A2=982?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/templets/album_add.htm | 4 ++-- src/admin/templets/album_edit.htm | 4 ++-- src/admin/templets/archives_add.htm | 4 ++-- src/admin/templets/archives_edit.htm | 4 ++-- src/admin/templets/archives_sg_add.htm | 2 +- src/admin/templets/archives_sg_edit.htm | 2 +- src/admin/templets/article_add.htm | 4 ++-- src/admin/templets/article_edit.htm | 4 ++-- src/admin/templets/soft_add.htm | 4 ++-- src/admin/templets/soft_edit.htm | 4 ++-- src/admin/templets/spec_add.htm | 2 +- src/admin/templets/spec_edit.htm | 2 +- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/admin/templets/album_add.htm b/src/admin/templets/album_add.htm index 0ceb7110..65861dc0 100644 --- a/src/admin/templets/album_add.htm +++ b/src/admin/templets/album_add.htm @@ -139,7 +139,7 @@ echo ""; ?> - + 选择副栏目"; @@ -160,7 +160,7 @@ - + diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index d5d1bb19..7d8f2609 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -138,7 +138,7 @@ echo $typeOptions; echo ''; ?> - + 需要金币: @@ -155,7 +155,7 @@ - + diff --git a/src/admin/templets/archives_add.htm b/src/admin/templets/archives_add.htm index 9ebca2aa..ec2b2bea 100644 --- a/src/admin/templets/archives_add.htm +++ b/src/admin/templets/archives_add.htm @@ -140,7 +140,7 @@ echo ""; ?> - + 选择副栏目"; @@ -161,7 +161,7 @@ - + diff --git a/src/admin/templets/archives_edit.htm b/src/admin/templets/archives_edit.htm index 17881ec3..d294d2e0 100644 --- a/src/admin/templets/archives_edit.htm +++ b/src/admin/templets/archives_edit.htm @@ -142,7 +142,7 @@ echo $typeOptions; echo ""; ?> - + 需要金币: @@ -159,7 +159,7 @@ - + diff --git a/src/admin/templets/archives_sg_add.htm b/src/admin/templets/archives_sg_add.htm index 1ee9617d..d7005d5b 100644 --- a/src/admin/templets/archives_sg_add.htm +++ b/src/admin/templets/archives_sg_add.htm @@ -93,7 +93,7 @@ echo ""; ?> - + diff --git a/src/admin/templets/archives_sg_edit.htm b/src/admin/templets/archives_sg_edit.htm index 82475b4e..a3401225 100644 --- a/src/admin/templets/archives_sg_edit.htm +++ b/src/admin/templets/archives_sg_edit.htm @@ -95,7 +95,7 @@ echo $typeOptions; echo ""; ?> - + diff --git a/src/admin/templets/article_add.htm b/src/admin/templets/article_add.htm index 42c118e7..5dbe282d 100644 --- a/src/admin/templets/article_add.htm +++ b/src/admin/templets/article_add.htm @@ -133,7 +133,7 @@ echo ""; ?> - + 选择副栏目"; @@ -154,7 +154,7 @@ - + diff --git a/src/admin/templets/article_edit.htm b/src/admin/templets/article_edit.htm index 1ea405d0..bc0c3102 100644 --- a/src/admin/templets/article_edit.htm +++ b/src/admin/templets/article_edit.htm @@ -138,7 +138,7 @@ echo $typeOptions; echo ""; ?> - + 需要金币: @@ -155,7 +155,7 @@ - + diff --git a/src/admin/templets/soft_add.htm b/src/admin/templets/soft_add.htm index 8a32d280..d4e2871d 100644 --- a/src/admin/templets/soft_add.htm +++ b/src/admin/templets/soft_add.htm @@ -149,7 +149,7 @@ echo ""; ?> - + 选择副栏目"; @@ -170,7 +170,7 @@ - + diff --git a/src/admin/templets/soft_edit.htm b/src/admin/templets/soft_edit.htm index 89ce7a66..c902551f 100644 --- a/src/admin/templets/soft_edit.htm +++ b/src/admin/templets/soft_edit.htm @@ -149,7 +149,7 @@ echo $typeOptions; echo ""; ?> - + 需要金币: @@ -166,7 +166,7 @@ - + diff --git a/src/admin/templets/spec_add.htm b/src/admin/templets/spec_add.htm index 7e53ca75..2e042321 100644 --- a/src/admin/templets/spec_add.htm +++ b/src/admin/templets/spec_add.htm @@ -143,7 +143,7 @@ echo $typeOptions; echo ""; ?> - + diff --git a/src/admin/templets/spec_edit.htm b/src/admin/templets/spec_edit.htm index 4e3e0329..7221707b 100644 --- a/src/admin/templets/spec_edit.htm +++ b/src/admin/templets/spec_edit.htm @@ -143,7 +143,7 @@ echo $typeOptions; echo ""; ?> - + From e384b14007160d2459addc68748ec5e0a8261d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 11:30:42 +0800 Subject: [PATCH 15/53] =?UTF-8?q?=E8=B0=83=E6=95=B4JS=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E8=A7=84=E8=8C=83=EF=BC=8C=E8=B0=83=E6=95=B4=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=AD=89=E5=BC=95=E7=94=A8=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/js/album.js | 83 ++++++---- src/admin/js/catalog.js | 24 +++ src/admin/js/global.js | 42 ------ src/admin/js/handlers.js | 22 --- src/admin/js/list.js | 76 +++++----- src/admin/js/main.js | 150 ++++++++++--------- src/admin/js/{key.js => search.js} | 8 +- src/admin/js/update.js | 26 ++-- src/admin/js/user.js | 4 +- src/admin/templets/album_add.htm | 3 +- src/admin/templets/album_edit.htm | 3 +- src/admin/templets/archives_add.htm | 2 +- src/admin/templets/archives_edit.htm | 2 +- src/admin/templets/archives_sg_add.htm | 2 +- src/admin/templets/archives_sg_edit.htm | 2 +- src/admin/templets/article_add.htm | 3 +- src/admin/templets/article_edit.htm | 3 +- src/admin/templets/catalog_main.htm | 2 +- src/admin/templets/search_keywords_main.htm | 2 +- src/admin/templets/soft_add.htm | 2 +- src/admin/templets/soft_edit.htm | 2 +- src/admin/templets/spec_add.htm | 2 +- src/admin/templets/spec_edit.htm | 2 +- src/install/install.html | 1 - src/static/web/js/popper.min.js | 5 - src/static/web/js/popper.min.js.map | 1 - src/static/web/js/style.js | 12 +- src/static/web/js/user.album.js | 44 +++--- src/system/typelink/typeunit.class.admin.php | 12 +- src/theme/apps/heightsearch.htm | 2 +- src/user/templets/album_add.htm | 5 +- src/user/templets/album_edit.htm | 5 +- src/user/templets/archives_add.htm | 3 +- src/user/templets/archives_edit.htm | 3 +- src/user/templets/archives_sg_add.htm | 3 +- src/user/templets/archives_sg_edit.htm | 3 +- src/user/templets/article_add.htm | 3 +- src/user/templets/article_edit.htm | 3 +- src/user/templets/buy.htm | 1 - src/user/templets/buy_action_payment.htm | 1 - src/user/templets/content_list.htm | 1 - src/user/templets/content_sg_list.htm | 1 - src/user/templets/edit_baseinfo.htm | 1 - src/user/templets/index.htm | 1 - src/user/templets/login.htm | 3 +- src/user/templets/mypay.htm | 1 - src/user/templets/mystow.htm | 1 - src/user/templets/operation.htm | 1 - src/user/templets/pm-main.htm | 4 +- src/user/templets/reg-new.htm | 1 - src/user/templets/resetpassword.htm | 1 - src/user/templets/resetpassword2.htm | 1 - src/user/templets/resetpassword3.htm | 1 - src/user/templets/soft_add.htm | 37 +++-- src/user/templets/soft_edit.htm | 37 +++-- src/user/templets/space.htm | 1 - 56 files changed, 308 insertions(+), 359 deletions(-) create mode 100644 src/admin/js/catalog.js delete mode 100644 src/admin/js/global.js delete mode 100644 src/admin/js/handlers.js rename src/admin/js/{key.js => search.js} (78%) delete mode 100644 src/static/web/js/popper.min.js delete mode 100644 src/static/web/js/popper.min.js.map diff --git a/src/admin/js/album.js b/src/admin/js/album.js index 0d54b2d5..9e6f6f7f 100644 --- a/src/admin/js/album.js +++ b/src/admin/js/album.js @@ -1,6 +1,17 @@ +function checkMuList(psid, cmid) { + if ($Obj("pagestyle3").checked) { + $Obj("cfgmulist").style.display = "table-row"; + $Obj("spagelist").style.display = "none"; + } else if ($Obj("pagestyle1").checked) { + $Obj("cfgmulist").style.display = "none"; + $Obj("spagelist").style.display = "table-row"; + } else { + $Obj("cfgmulist").style.display = "none"; + $Obj("spagelist").style.display = "none"; + } +} function checkSubmitAlb() { if ($("#gallery .atlas").length > 0) { - //这里从gallery中取出图片元素信息 $("#gallery .atlas").each(function() { albums.push({ "img": $(this).find("img").attr("src"), @@ -11,55 +22,40 @@ function checkSubmitAlb() { $("#albums").val(JSON.stringify(albums)); return true; } -function checkMuList(psid, cmid) { - if ($Obj('pagestyle3').checked) { - $Obj('cfgmulist').style.display = 'table-row'; - $Obj('spagelist').style.display = 'none'; - } else if ($Obj('pagestyle1').checked) { - $Obj('cfgmulist').style.display = 'none'; - $Obj('spagelist').style.display = 'table-row'; - } else { - $Obj('cfgmulist').style.display = 'none'; - $Obj('spagelist').style.display = 'none'; - } -} -//删除已经上传的图片 function delAlbPic(pid) { - var tgobj = $Obj('atlasok' + pid); - fetch('swfupload.php?dopost=del&id=' + pid).then(resp => resp.text()).then((d) => { + var tgobj = $Obj("atlasok" + pid); + fetch("swfupload.php?dopost=del&id=" + pid).then(resp => resp.text()).then((d) => { tgobj.innerHTML = d; - $Obj('gallery').removeChild(tgobj); + $Obj("gallery").removeChild(tgobj); }); } -//删除已经上传的图片修改时用 function delAlbPicOld(picfile, pid) { - var tgobj = $Obj('albold' + pid); - fetch('swfupload.php?dopost=delold&picfile=' + picfile).then(resp => resp.text()).then((d) => { + var tgobj = $Obj("albold" + pid); + fetch("swfupload.php?dopost=delold&picfile=" + picfile).then(resp => resp.text()).then((d) => { tgobj.innerHTML = d; - $Obj('galleryedit').removeChild(tgobj); + $Obj("galleryedit").removeChild(tgobj); }); } function seePicNewAlb(f, imgdid, frname, hpos, acname) { var newobj = null; if (f.value == '') return; vImg = $Obj(imgdid); - picnameObj = document.getElementById('picname'); - nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname); + picnameObj = document.getElementById("picname"); + nFrame = $Nav() == $Obj(frname); nForm = f.form; - //修改form的action等参数 if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmitAlb); else nForm.removeEventListener("submit", checkSubmitAlb, false); - nForm.action = 'archives_do.php'; + nForm.action = "archives_do.php"; nForm.target = frname; - nForm.dopost.value = 'uploadLitpic'; + nForm.dopost.value = "uploadLitpic"; nForm.submit(); picnameObj.value = ''; - newobj = $Obj('uploadwait'); + newobj = $Obj("uploadwait"); if (!newobj) { newobj = document.createElement("div"); - newobj.id = 'uploadwait'; - newobj.style.position = 'absolute'; - newobj.className = 'uploadwait'; + newobj.id = "uploadwait"; + newobj.style.position = "absolute"; + newobj.className = "uploadwait"; newobj.style.width = 120; newobj.style.height = 20; newobj.style.top = hpos; @@ -67,10 +63,31 @@ function seePicNewAlb(f, imgdid, frname, hpos, acname) { document.body.appendChild(newobj); newobj.innerHTML = ''; } - newobj.style.display = 'block'; - //提交后还原form的action等参数 + newobj.style.display = "block"; nForm.action = acname; - nForm.dopost.value = 'save'; + nForm.dopost.value = "save"; nForm.target = ''; nForm.litpic.disabled = true; +} +var atlasimg = 0; +function addImage(src, pid) { + var newImgDiv = document.createElement("div"); + var delstr = ''; + atlasimg++; + if (pid != 0) { + atlasimg = 'ok' + pid; + delstr = '
    删除

    '; + } else { + atlasimg = 'err' + atlasimg; + } + newImgDiv.className = 'atlas'; + newImgDiv.id = 'atlas' + atlasimg; + document.getElementById("gallery").appendChild(newImgDiv); + newImgDiv.innerHTML = '
    ' + delstr; + if (typeof arctype != 'undefined' && arctype == 'article') { + if (pid != 0) { + newImgDiv.innerHTML = '
    ' + delstr; + } + } + newImgDiv.innerHTML += '
    '; } \ No newline at end of file diff --git a/src/admin/js/catalog.js b/src/admin/js/catalog.js new file mode 100644 index 00000000..e4eead79 --- /dev/null +++ b/src/admin/js/catalog.js @@ -0,0 +1,24 @@ +var BROWSER = {}; +var USERAGENT = navigator.userAgent.toLowerCase(); +if (BROWSER.safari) { + BROWSER.firefox = true; +} +function LoadSuns(ctid, tid) { + if ($DE(ctid).innerHTML.length < 10) { + $DE('icon' + tid).className = 'fa fa-minus-square'; + fetch('catalog_do.php?dopost=GetSunLists&cid=' + tid).then(resp => resp.text()).then((d) => { + $DE(ctid).innerHTML = d; + }); + } else { + showHide(ctid, tid); + } +} +function showHide(objname, tid) { + if ($DE(objname).style.display == "none") { + $DE('icon' + tid).className = 'fa fa-minus-square'; + $DE(objname).style.display = BROWSER.firefox ? "" : "block"; + } else { + $DE('icon' + tid).className = 'fa fa-plus-square'; + $DE(objname).style.display = "none"; + } +} \ No newline at end of file diff --git a/src/admin/js/global.js b/src/admin/js/global.js deleted file mode 100644 index b58e7557..00000000 --- a/src/admin/js/global.js +++ /dev/null @@ -1,42 +0,0 @@ -var BROWSER = {}; -var USERAGENT = navigator.userAgent.toLowerCase(); -browserVersion({'firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''}); -if (BROWSER.safari) { - BROWSER.firefox = true; -} -BROWSER.opera = BROWSER.opera ? opera.version() : 0; -function browserVersion(types) { - var other = 1; - for (i in types) { - var v = types[i] ? types[i] : i; - if (USERAGENT.indexOf(v) != -1) { - var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig'); - var matches = re.exec(USERAGENT); - var ver = matches != null ? matches[2] : 0; - other = ver !== 0 ? 0 : other; - } else { - var ver = 0; - } - eval('BROWSER.' + i + '= ver'); - } - BROWSER.other = other; -} -function LoadSuns(ctid, tid) { - if ($DE(ctid).innerHTML.length < 10) { - $DE('img' + tid).className = 'fa fa-minus-square'; - fetch('catalog_do.php?dopost=GetSunLists&cid=' + tid).then(resp => resp.text()).then((d) => { - $DE(ctid).innerHTML = d; - }); - } else { - showHide(ctid, tid); - } -} -function showHide(objname, tid) { - if ($DE(objname).style.display == "none") { - $DE('img' + tid).className = 'fa fa-minus-square'; - $DE(objname).style.display = BROWSER.firefox ? "" : "block"; - } else { - $DE('img' + tid).className = 'fa fa-plus-square'; - $DE(objname).style.display = "none"; - } -} \ No newline at end of file diff --git a/src/admin/js/handlers.js b/src/admin/js/handlers.js deleted file mode 100644 index ab6d2463..00000000 --- a/src/admin/js/handlers.js +++ /dev/null @@ -1,22 +0,0 @@ -var atlasimg = 0; -function addImage(src, pid) { - var newImgDiv = document.createElement("div"); - var delstr = ''; - atlasimg++; - if (pid != 0) { - atlasimg = 'ok' + pid; - delstr = '
    删除

    '; - } else { - atlasimg = 'err' + atlasimg; - } - newImgDiv.className = 'atlas'; - newImgDiv.id = 'atlas' + atlasimg; - document.getElementById("gallery").appendChild(newImgDiv); - newImgDiv.innerHTML = '
    ' + delstr; - if (typeof arctype != 'undefined' && arctype == 'article') { - if (pid != 0) { - newImgDiv.innerHTML = '
    ' + delstr; - } - } - newImgDiv.innerHTML += '
    '; -} \ No newline at end of file diff --git a/src/admin/js/list.js b/src/admin/js/list.js index 9c718e1b..c59d6c95 100644 --- a/src/admin/js/list.js +++ b/src/admin/js/list.js @@ -1,82 +1,82 @@ function viewArc(aid) { - if (aid==0) aid = getOneItem(); - window.open("archives_do.php?aid="+aid+"&dopost=viewArchives"); + if (aid == 0) aid = getOneItem(); + window.open("archives_do.php?aid=" + aid + "&dopost=viewArchives"); } function kwArc(aid) { - var qstr=getCheckboxItem(); - if (aid==0) aid = getOneItem(); - if (qstr=='') { + var qstr = getCheckboxItem(); + if (aid == 0) aid = getOneItem(); + if (qstr == '') { ShowMsg('请选择一个或多个文档'); return; } - location="archives_do.php?aid="+aid+"&dopost=makekw&qstr="+qstr; + location="archives_do.php?aid=" + aid + "&dopost=makekw&qstr=" + qstr; } function editArc(aid) { - if (aid==0) aid = getOneItem(); - location="archives_do.php?aid="+aid+"&dopost=editArchives"; + if (aid == 0) aid = getOneItem(); + location="archives_do.php?aid=" + aid + "&dopost=editArchives"; } function updateArc(aid) { - var qstr=getCheckboxItem(); - if (aid==0) aid = getOneItem(); - location="archives_do.php?aid="+aid+"&dopost=makeArchives&qstr="+qstr; + var qstr = getCheckboxItem(); + if (aid == 0) aid = getOneItem(); + location = "archives_do.php?aid=" + aid + "&dopost=makeArchives&qstr=" + qstr; } function checkArc(aid) { - var qstr=getCheckboxItem(); - if (aid==0) aid = getOneItem(); - location="archives_do.php?aid="+aid+"&dopost=checkArchives&qstr="+qstr; + var qstr = getCheckboxItem(); + if (aid == 0) aid = getOneItem(); + location = "archives_do.php?aid=" + aid + "&dopost=checkArchives&qstr=" + qstr; } function moveArc(e, obj, cid){ - var qstr=getCheckboxItem(); - if (qstr=='') { + var qstr = getCheckboxItem(); + if (qstr == '') { ShowMsg('请选择一个或多个文档'); return; } - LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr='+qstr+'&channelid='+cid+'&rnd='+Math.random(), 'moveArchives', 'auto', '180px'); + LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr=' + qstr + '&channelid=' + cid + '&rnd=' + Math.random(), 'moveArchives', 'auto', '180px'); ChangeFullDiv('show'); } function adArc(aid) { - var qstr=getCheckboxItem(); - if (aid==0) aid = getOneItem(); - location="archives_do.php?aid="+aid+"&dopost=commendArchives&qstr="+qstr; + var qstr = getCheckboxItem(); + if (aid == 0) aid = getOneItem(); + location = "archives_do.php?aid=" + aid + "&dopost=commendArchives&qstr=" + qstr; } function cAtts(jname, e, obj) { - var qstr=getCheckboxItem(); + var qstr = getCheckboxItem(); var screeheight = document.body.clientHeight + 20; - if (qstr=='') { + if (qstr == '') { ShowMsg('请选择一个或多个文档'); return; } - LoadQuickDiv(e, 'archives_do.php?dopost=attsDlg&qstr='+qstr+'&dojob='+jname+'&rnd='+Math.random(), 'attsDlg', 'auto', '180px'); + LoadQuickDiv(e, 'archives_do.php?dopost=attsDlg&qstr=' + qstr + '&dojob=' + jname + '&rnd=' + Math.random(), 'attsDlg', 'auto', '180px'); ChangeFullDiv('show', screeheight); } function delArc(aid) { - var qstr=getCheckboxItem(); - if (aid==0) aid = getOneItem(); - location="archives_do.php?qstr="+qstr+"&aid="+aid+"&dopost=delArchives"; + var qstr = getCheckboxItem(); + if (aid == 0) aid = getOneItem(); + location = "archives_do.php?qstr=" + qstr + "&aid=" + aid + "&dopost=delArchives"; } function QuickEdit(aid, e, obj) { - LoadQuickDiv(e, 'archives_do.php?dopost=quickEdit&aid='+aid+'&rnd='+Math.random(), 'quickEdit', 'auto', '300px'); + LoadQuickDiv(e, 'archives_do.php?dopost=quickEdit&aid=' + aid + '&rnd=' + Math.random(), 'quickEdit', 'auto', '300px'); ChangeFullDiv('show'); } //获得选中文件的文件名 function getCheckboxItem() { - var allSel=""; + var allSel = ""; if (document.form2.arcID.value) return document.form2.arcID.value; - for (i=0;i= 1) return 'FF'; + if (window.navigator.userAgent.indexOf("Firefox") >= 1) return "FF"; else return "OT"; } function $Obj(objname) { @@ -93,18 +99,18 @@ function $Obj(objname) { } function ColorSel(c, oname) { var tobj = $Obj(oname); - if (!tobj) tobj = eval('document.form1.' + oname); + if (!tobj) tobj = eval("document.form1." + oname); if (!tobj) { - $Obj('colordlg').style.display = 'none'; + $Obj("colordlg").style.display = "none"; return false; } else { tobj.value = c; - $Obj('colordlg').style.display = 'none'; + $Obj("colordlg").style.display = "none"; return true; } } function ShowColor(e, o) { - LoadNewDiv(e, '../../static/web/img/colornew.htm', 'colordlg'); + LoadNewDiv(e, "../../static/web/img/colornew.htm", "colordlg"); } function ShowHide(objname) { var obj = $Obj(objname); @@ -121,7 +127,7 @@ function ShowObjRow(objname) { obj.style.display = "table-row"; } function AddTypeid2() { - ShowObjRow('typeid2tr'); + ShowObjRow("typeid2tr"); } function HideObj(objname) { var obj = $Obj(objname); @@ -132,7 +138,7 @@ function SeePic(img, f) { if (f.value != '') img.src = f.value; } function PutSource(str) { - var osource = $Obj('source'); + var osource = $Obj("source"); if (osource) osource.value = str; $Obj("mysource").style.display = "none"; ChangeFullDiv("hide"); @@ -145,7 +151,7 @@ function PutWriter(str) { } function ClearDivCt(objname) { if (!$Obj(objname)) return; - $Obj(objname).innerHTML = ""; + $Obj(objname).innerHTML = ''; $Obj(objname).style.display = "none"; ChangeFullDiv("hide"); } @@ -167,10 +173,10 @@ function ChangeFullDiv(showhide, screenheigt) { } } function SelectSource(e) { - LoadNewDiv(e, 'article_select_sw.php?t=source&k=8&rnd=' + Math.random(), 'mysource'); + LoadNewDiv(e, "article_select_sw.php?t=source&k=8&rnd=" + Math.random(), "mysource"); } function SelectWriter(e) { - LoadNewDiv(e, 'article_select_sw.php?t=writer&k=8&rnd=' + Math.random(), 'mywriter'); + LoadNewDiv(e, "article_select_sw.php?t=writer&k=8&rnd=" + Math.random(), "mywriter"); } function LoadNewDiv(e, surl, oname) { var pxStr = ''; @@ -199,26 +205,26 @@ function LoadNewDiv2(e, surl, oname, dlgcls) { if (!newobj) { newobj = document.createElement("div"); newobj.id = oname; - newobj.style.position = 'absolute'; + newobj.style.position = "absolute"; newobj.className = dlgcls; newobj.style.top = posTop; newobj.style.left = posLeft; - newobj.style.display = 'none'; + newobj.style.display = "none"; document.body.appendChild(newobj); } newobj.innerHTML = ''; fetch(surl).then(resp => resp.text()).then((d) => { newobj.innerHTML = d; }); - if (newobj.innerHTML == '') newobj.style.display = 'none'; - else newobj.style.display = 'block'; - jQuery(newobj).css('top', '50px').css('left', '300px'); + if (newobj.innerHTML == '') newobj.style.display = "none"; + else newobj.style.display = "block"; + jQuery(newobj).css("top", "50px").css("left", "300px"); DedeXHTTP = null; } function ShowUrlTr() { - var jumpTest = $Obj('flagsj'); - var jtr = $Obj('redirecturltr'); - var jf = $Obj('redirecturl'); + var jumpTest = $Obj("flagsj"); + var jtr = $Obj("redirecturltr"); + var jf = $Obj("redirecturl"); if (jumpTest.checked) jtr.style.display = "block"; else { jf.value = ''; @@ -227,8 +233,8 @@ function ShowUrlTr() { } function ShowUrlTrEdit() { ShowUrlTr(); - var jumpTest = $Obj('isjump'); - var rurl = $Obj('redirecturl'); + var jumpTest = $Obj("isjump"); + var rurl = $Obj("redirecturl"); if (!jumpTest.checked) rurl.value = ""; } function LoadQuickDiv(e, surl, oname, w, h) { @@ -236,15 +242,15 @@ function LoadQuickDiv(e, surl, oname, w, h) { if (!newobj) { newobj = document.createElement("div"); newobj.id = oname; - newobj.style.position = 'fixed'; - newobj.className = 'pubdlg'; + newobj.style.position = "fixed"; + newobj.className = "pubdlg"; newobj.style.width = w; newobj.style.height = h + 30; document.body.appendChild(newobj); } newobj.style.top = "50%"; newobj.style.left = "50%"; - newobj.style.display = 'block'; + newobj.style.display = "block"; newobj.style.transform = "translate(-50%, -201px)"; newobj.innerHTML = ''; fetch(surl).then(resp => resp.text()).then((d) => { @@ -252,8 +258,8 @@ function LoadQuickDiv(e, surl, oname, w, h) { }); } function ShowCatMap(e, obj, cid, targetId, oldvalue) { - LoadQuickDiv(e, 'archives_do.php?dopost=getCatMap&targetid=' + targetId + '&channelid=' + cid + '&oldvalue=' + oldvalue + '&rnd=' + Math.random(), 'getCatMap', '700px', '500px'); - ChangeFullDiv('show'); + LoadQuickDiv(e, "archives_do.php?dopost=getCatMap&targetid=" + targetId + "&channelid=" + cid + "&oldvalue=" + oldvalue + "&rnd=" + Math.random(), "getCatMap", "700px", "500px"); + ChangeFullDiv("show"); } function getSelCat(targetId) { var selBox = document.quicksel.seltypeid; @@ -276,7 +282,7 @@ function getSelCat(targetId) { } } if (selvalue == '') { - alert('您没有选中任何栏目'); + alert("您没有选中任何栏目"); return; } if (targetObj) { @@ -411,22 +417,22 @@ var cropperAspectRatio = { function setAspectRatio(ar) { var opts = optCropper; opts.aspectRatio = cropperAspectRatio[ar]; - $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts); + $("#cropImg" + mdlCropperID).cropper("destroy").cropper(opts); } function okImage(modalID) { uploadImage(litpicImg); $("#litPic").attr("src", litpicImg); - CloseModal('GKModal' + modalID); + CloseModal("GKModal" + modalID); } function useDefault(modalID) { uploadImage(litpicImgSrc); $("#litPic").attr("src", litpicImgSrc); - CloseModal('GKModal' + modalID); + CloseModal("GKModal" + modalID); } function uploadImage(litpicImgSrc) { const formData = new FormData() - formData.append('litpic_b64', litpicImgSrc); - fetch('archives_do.php?dopost=upload_base64_image', { + formData.append("litpic_b64", litpicImgSrc); + fetch("archives_do.php?dopost=upload_base64_image", { method: 'POST', body: formData }) @@ -470,28 +476,32 @@ $(document).ready(function() { var menu = function(el, multiple) { this.el = el || {}; this.multiple = multiple || false; - var links = this.el.find('.link'); - links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown) + var links = this.el.find(".link"); + links.on("click", { + el: this.el, + multiple: this.multiple, + }, + this.dropdown); } menu.prototype.dropdown = function(e) { var $el = e.data.el; - $this = $(this), - $next = $this.next(); - $next.slideToggle(); - $this.parent().toggleClass('open'); + $this = $(this), + $next = $this.next(); + $next.slideToggle(); + $this.parent().toggleClass("open"); if (!e.data.multiple) { - $el.find('.submenu').not($next).slideUp().parent().removeClass('open'); - }; - } + $el.find(".submenu").not($next).slideUp().parent().removeClass("open"); + } + } var menu = new menu($('#menu'), false); $(".submenu li a").click(function(e) { - $(".submenu li").removeClass('active'); - $(this).parent().addClass('active'); - }) + $(".submenu li").removeClass("active"); + $(this).parent().addClass("active"); + }); }); $("#btnClearAll").click(function(event) { - litpicImgSrc = ""; - litpicImg = ""; + litpicImgSrc = ''; + litpicImg = ''; $("#picname").val(litpicImg); $("#litPic").attr("src", "/static/web/img/thumbnail.jpg"); }) @@ -518,7 +528,7 @@ $(document).ready(function() { $("#iptAddImages").val(""); }); if ($.fn.daterangepicker) { - $('.datepicker').daterangepicker({ + $(".datepicker").daterangepicker({ "singleDatePicker": true, "autoApply": true, "showDropdowns": true, @@ -545,11 +555,11 @@ $(document).ready(function() { }, function(start) { $(this).val(start.format("YYYY-MM-DD HH:mm:ss")); }); - $('.datepicker').on('show.daterangepicker', function(ev, picker) { + $(".datepicker").on("show.daterangepicker", function(ev, picker) { if (picker.element.offset().top - $(window).scrollTop() + picker.container.outerHeight() > $(window).height()) { - picker.drops = 'up'; + picker.drops = "up"; } else { - picker.drops = 'down'; + picker.drops = "down"; } picker.move(); }); diff --git a/src/admin/js/key.js b/src/admin/js/search.js similarity index 78% rename from src/admin/js/key.js rename to src/admin/js/search.js index 70cf0fff..fe552ea1 100644 --- a/src/admin/js/key.js +++ b/src/admin/js/search.js @@ -13,12 +13,12 @@ function noselAll() { } } } -//批量删除搜多关键字 +//批量删除搜多关键词 function delall() { - DedeConfirm("您确定要删除选定的关键字吗").then((v)=>{ + DedeConfirm("您确定要删除选定关键词吗").then((v) => { document.form3.dopost.value = 'delall'; document.form3.submit(); - }).catch((e)=>{ - console.log(e) + }).catch((e) => { + console.log(e); }); } \ No newline at end of file diff --git a/src/admin/js/update.js b/src/admin/js/update.js index f02e84cf..886afca1 100644 --- a/src/admin/js/update.js +++ b/src/admin/js/update.js @@ -29,7 +29,7 @@ function update() { showStepArea(currentStep); } } - }) + }); } function hasNewVersion() { $.get("api.php?action=has_new_version", function(rs) { @@ -47,9 +47,9 @@ function hasNewVersion() { showStepArea(0); } } catch (error) { - console.log("获取软件信息失败") + console.log("获取软件信息失败"); } - }) + }); } $(document).ready(function() { hasNewVersion(); @@ -66,16 +66,16 @@ $(document).ready(function() { alertMsg = dedeAlter(`成功备份差异文件,目录:${rs.data.backupdir}`, 'success'); $("#_msgInfo").html(alertMsg); } - }) - }) + }); + }); $("#systemUpdate").click(function() { if (hasNewVer === false) { currentStep = 5; showStepArea(currentStep); - $('#mdlUpdate').modal('show'); + $("#mdlUpdate").modal("show"); return; } - $('#mdlUpdate').modal('show'); + $("#mdlUpdate").modal("show"); showStepArea(currentStep); currentStep++; $.get("api.php?action=get_changed_files", function(rs) { @@ -92,8 +92,8 @@ $(document).ready(function() { } else { showStepArea(0); } - }) - }) + }); + }); $('#mdlUpdate').on('hidden.bs.modal', function(event) { currentStep = 1; $("#_msgInfo").html(''); @@ -117,8 +117,8 @@ $(document).ready(function() { } else { showStepArea(0); } - }) - }) + }); + }); $("#btnGoStep4").click(function() { currentStep++ $("#_msgInfo").html(''); @@ -128,5 +128,5 @@ $(document).ready(function() { }) $("#btnOK").click(function() { hasNewVersion(); - }) -}) \ No newline at end of file + }); +}); \ No newline at end of file diff --git a/src/admin/js/user.js b/src/admin/js/user.js index 84830ef2..2306e6de 100644 --- a/src/admin/js/user.js +++ b/src/admin/js/user.js @@ -39,7 +39,7 @@ function selAll() { } for (i=0;i + - -
    diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index 7d8f2609..5b9001ab 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -16,10 +16,9 @@ + - - diff --git a/src/admin/templets/archives_add.htm b/src/admin/templets/archives_add.htm index ec2b2bea..3de7add6 100644 --- a/src/admin/templets/archives_add.htm +++ b/src/admin/templets/archives_add.htm @@ -15,8 +15,8 @@ - + diff --git a/src/admin/templets/archives_edit.htm b/src/admin/templets/archives_edit.htm index d294d2e0..e81642a2 100644 --- a/src/admin/templets/archives_edit.htm +++ b/src/admin/templets/archives_edit.htm @@ -15,8 +15,8 @@ - + diff --git a/src/admin/templets/archives_sg_add.htm b/src/admin/templets/archives_sg_add.htm index d7005d5b..836a6bba 100644 --- a/src/admin/templets/archives_sg_add.htm +++ b/src/admin/templets/archives_sg_add.htm @@ -15,8 +15,8 @@ - + diff --git a/src/admin/templets/archives_sg_edit.htm b/src/admin/templets/archives_sg_edit.htm index a3401225..ffe60d1a 100644 --- a/src/admin/templets/archives_sg_edit.htm +++ b/src/admin/templets/archives_sg_edit.htm @@ -15,8 +15,8 @@ - + diff --git a/src/admin/templets/article_add.htm b/src/admin/templets/article_add.htm index 5dbe282d..54f007ca 100644 --- a/src/admin/templets/article_add.htm +++ b/src/admin/templets/article_add.htm @@ -15,9 +15,8 @@ - - + diff --git a/src/admin/templets/article_edit.htm b/src/admin/templets/article_edit.htm index bc0c3102..b5bba5de 100644 --- a/src/admin/templets/article_edit.htm +++ b/src/admin/templets/article_edit.htm @@ -15,9 +15,8 @@ - - + diff --git a/src/admin/templets/catalog_main.htm b/src/admin/templets/catalog_main.htm index 84d68e4a..668267e8 100644 --- a/src/admin/templets/catalog_main.htm +++ b/src/admin/templets/catalog_main.htm @@ -10,7 +10,7 @@ - + diff --git a/src/admin/templets/search_keywords_main.htm b/src/admin/templets/search_keywords_main.htm index 68de6751..0bc21e15 100644 --- a/src/admin/templets/search_keywords_main.htm +++ b/src/admin/templets/search_keywords_main.htm @@ -9,7 +9,7 @@ - + - + - + - + - + - diff --git a/src/static/web/js/popper.min.js b/src/static/web/js/popper.min.js deleted file mode 100644 index 8a17212f..00000000 --- a/src/static/web/js/popper.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* - Copyright (C) Federico Zivolo 2019 - Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function i(e){return e&&e.referenceNode?e.referenceNode:e}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,$(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ce.FLIP:p=[n,i];break;case ce.CLOCKWISE:p=G(n);break;case ce.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!fe),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ge}); -//# sourceMappingURL=popper.min.js.map diff --git a/src/static/web/js/popper.min.js.map b/src/static/web/js/popper.min.js.map deleted file mode 100644 index a7650a2e..00000000 --- a/src/static/web/js/popper.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"popper.min.js","sources":["../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/getReferenceNode.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/utils/getRoundedOffsets.js","../../src/utils/isModifierRequired.js","../../src/utils/getOppositeVariation.js","../../src/utils/clockwise.js","../../src/modifiers/offset.js","../../src/modifiers/arrow.js","../../src/utils/isBrowser.js","../../src/utils/debounce.js","../../src/modifiers/computeStyle.js","../../src/modifiers/flip.js","../../src/index.js","../../src/methods/defaults.js","../../src/modifiers/index.js","../../src/modifiers/shift.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/keepTogether.js","../../src/modifiers/inner.js","../../src/modifiers/hide.js","../../src/modifiers/applyStyle.js"],"sourcesContent":["/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll VALUES (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`], 10) +\n parseFloat(styles[`border${sideB}Width`], 10)\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop, 10);\n const marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
    \n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
    \n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number VALUES (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
    \n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
    \n * These can be overridden using the `options` argument of Popper.js.
    \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
    \n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
    \n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
    \n * It will read the variation of the `placement` property.
    \n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
    \n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
    \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
    \n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
    \n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
    \n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n"],"names":["functionToCheck","getType","toString","call","element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","reference","referenceNode","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","isIE10","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","getReferenceNode","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","key","variation","split","commonOffsetParent","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","Array","prototype","find","arr","findIndex","cur","match","obj","modifiersToRun","ends","modifiers","slice","forEach","warn","fn","enabled","isFunction","data","state","isDestroyed","getReferenceOffsets","options","positionFixed","computeAutoPlacement","flip","originalPlacement","getPopperOffsets","position","runModifiers","isCreated","onUpdate","onCreate","some","name","prefixes","upperProp","charAt","toUpperCase","i","prefix","toCheck","style","isModifierEnabled","removeAttribute","willChange","getSupportedPropertyName","disableEventListeners","removeOnDestroy","removeChild","isBody","target","addEventListener","passive","push","updateBound","scrollElement","scrollParents","eventsEnabled","setupEventListeners","scheduleUpdate","removeEventListener","removeEventListeners","n","isNaN","isFinite","unit","isNumeric","value","attributes","setAttribute","round","noRound","referenceWidth","popperWidth","isVertical","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","requesting","isRequired","requested","counter","index","validPlacements","concat","reverse","str","size","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","mergeWithPrevious","op","reduce","toValue","index2","basePlacement","parseOffset","min","floor","max","navigator","longerTimeoutBrowsers","isBrowser","userAgent","supportsMicroTasks","Promise","called","resolve","then","scheduled","MSInputMethodContext","documentMode","isFirefox","placements","BEHAVIORS","Popper","requestAnimationFrame","update","debounce","bind","Defaults","jquery","modifierOptions","onLoad","enableEventListeners","destroy","Utils","global","PopperUtils","shiftvariation","shiftOffsets","instance","transformProp","popperStyles","transform","priority","check","escapeWithReference","opSide","isModifierRequired","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","clockwise","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles"],"mappings":"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"} \ No newline at end of file diff --git a/src/static/web/js/style.js b/src/static/web/js/style.js index a6e79b0f..a68579ad 100644 --- a/src/static/web/js/style.js +++ b/src/static/web/js/style.js @@ -16,7 +16,7 @@ function GetCookie(c_name) { function SetCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); - document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。添加toGMTString() + document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); } //全局消息提示框,生成一个随机id function guid() { @@ -180,13 +180,13 @@ function ErrorAddSave(id, title) { }); } $(function() { - $(window).on('scroll', function() { + $(window).on("scroll", function() { var scrolled = $(window).scrollTop(); - if (scrolled > 100) $('#returntop').show(); - if (scrolled < 100) $('#returntop').hide(); + if (scrolled > 100) $("#returntop").show(); + if (scrolled < 100) $("#returntop").hide(); }); - $('#returntop').on('click', function() { - $('html, body').animate({ + $("#returntop").on("click", function() { + $("html, body").animate({ scrollTop: '0' }, 500); }); diff --git a/src/static/web/js/user.album.js b/src/static/web/js/user.album.js index 376ab94c..7421a8de 100644 --- a/src/static/web/js/user.album.js +++ b/src/static/web/js/user.album.js @@ -3,49 +3,49 @@ function MakeUpload(mnum) { var endNum = 0; var upfield = document.getElementById("uploadfield"); var pnumObj = document.getElementById("picnum"); - var fhtml = ""; - var dsel = " checked='checked' "; - var dplay = "display:none"; - if (mnum==0) endNum = startNum + Number(pnumObj.value); + var fhtml = ''; + var dsel = ' checked="checked" '; + var dplay = 'display:none'; + if (mnum == 0) endNum = startNum + Number(pnumObj.value); else endNum = mnum; - if (endNum>120) endNum = 120; + if (endNum > 120) endNum = 120; for (startNum;startNum < endNum;startNum++) { - if (startNum==1) { - dsel = " checked='checked' "; - dplay = "block"; + if (startNum == 1) { + dsel = ' checked="checked" '; + dplay = 'display:block'; } else { - dsel = " "; - dplay = "display:none"; + dsel = ' '; + dplay = 'display:none'; } - fhtml = ""; + fhtml = ''; fhtml += "
    "; fhtml += "
    选择
    "; upfield.innerHTML += fhtml; } } function checkMuList(psid, cmid) { - if (document.getElementById('pagestyle3').checked) { - document.getElementById('spagelist').style.display = 'none'; - } else if (document.getElementById('pagestyle1').checked) { - document.getElementById('spagelist').style.display = 'block'; + if (document.getElementById("pagestyle3").checked) { + document.getElementById("spagelist").style.display = "none"; + } else if (document.getElementById("pagestyle1").checked) { + document.getElementById("spagelist").style.display = "block"; } else { - document.getElementById('spagelist').style.display = 'none'; + document.getElementById("spagelist").style.display = "none"; } } function CheckSelTable(nnum) { - var cbox = document.getElementById('isokcheck'+nnum); - var seltb = document.getElementById('seltb'+nnum); - if (!cbox.checked) seltb.style.display = 'none'; - else seltb.style.display = 'block'; + var cbox = document.getElementById("isokcheck" + nnum); + var seltb = document.getElementById("seltb" + nnum); + if (!cbox.checked) seltb.style.display = "none"; + else seltb.style.display = "block"; } function checkSubmit() { - if (document.form1.title.value=='') { + if (document.form1.title.value == '') { alert("文档标题不能为空"); document.form1.title.focus(); return false; } - if (document.form1.typeid.value==0) { + if (document.form1.typeid.value == 0) { alert("请您选择文档所属栏目"); return false; } diff --git a/src/system/typelink/typeunit.class.admin.php b/src/system/typelink/typeunit.class.admin.php index 22b434f3..e4c61eab 100755 --- a/src/system/typelink/typeunit.class.admin.php +++ b/src/system/typelink/typeunit.class.admin.php @@ -110,7 +110,7 @@ class TypeUnit if ($ispart == 0) { //列表栏目 echo "
    "; - echo "
    列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; + echo ""; echo ""; - echo "
    列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; echo ""; echo ""; @@ -122,7 +122,7 @@ class TypeUnit } else if ($ispart == 1) { //封面栏目 echo "
    封面{$nss}".$typeName."[id:".$id."]"; + echo ""; echo ""; - echo "
    封面{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -134,7 +134,7 @@ class TypeUnit } else if ($ispart == 2) { //外部栏目 echo "
    外部{$nss}".$typeName."[id:".$id."]"; + echo ""; echo ""; echo "
    外部{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -194,7 +194,7 @@ class TypeUnit //列表栏目 echo "
    "; echo ""; echo "
    "; - echo "$step列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; + echo "$step列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; echo ""; echo ""; @@ -207,7 +207,7 @@ class TypeUnit //封面栏目 echo "
    "; echo ""; echo "
    "; - echo "$step封面{$nss}".$typeName."[id:".$id."]"; + echo "$step封面{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -220,7 +220,7 @@ class TypeUnit //外部栏目 echo "
    "; echo " - + diff --git a/src/user/templets/album_add.htm b/src/user/templets/album_add.htm index c8ac3379..af1a6f25 100755 --- a/src/user/templets/album_add.htm +++ b/src/user/templets/album_add.htm @@ -8,9 +8,6 @@ - - - @@ -101,6 +98,8 @@ + + \ No newline at end of file diff --git a/src/user/templets/album_edit.htm b/src/user/templets/album_edit.htm index 735d40a5..97ef9748 100755 --- a/src/user/templets/album_edit.htm +++ b/src/user/templets/album_edit.htm @@ -8,9 +8,6 @@ - - - @@ -128,6 +125,8 @@ + + diff --git a/src/user/templets/archives_add.htm b/src/user/templets/archives_add.htm index 7ae6c4a3..c08ba269 100755 --- a/src/user/templets/archives_add.htm +++ b/src/user/templets/archives_add.htm @@ -8,8 +8,6 @@ - - @@ -75,6 +73,7 @@ + \ No newline at end of file diff --git a/src/user/templets/archives_edit.htm b/src/user/templets/archives_edit.htm index a378aab4..79386050 100755 --- a/src/user/templets/archives_edit.htm +++ b/src/user/templets/archives_edit.htm @@ -8,8 +8,6 @@ - - @@ -74,6 +72,7 @@ + \ No newline at end of file diff --git a/src/user/templets/archives_sg_add.htm b/src/user/templets/archives_sg_add.htm index be2d1e3a..1c544a33 100755 --- a/src/user/templets/archives_sg_add.htm +++ b/src/user/templets/archives_sg_add.htm @@ -8,8 +8,6 @@ - - @@ -71,6 +69,7 @@ + \ No newline at end of file diff --git a/src/user/templets/archives_sg_edit.htm b/src/user/templets/archives_sg_edit.htm index e3d03ee8..efaf6e6b 100755 --- a/src/user/templets/archives_sg_edit.htm +++ b/src/user/templets/archives_sg_edit.htm @@ -8,8 +8,6 @@ - - @@ -70,6 +68,7 @@ + \ No newline at end of file diff --git a/src/user/templets/article_add.htm b/src/user/templets/article_add.htm index 77976407..8798a2b3 100755 --- a/src/user/templets/article_add.htm +++ b/src/user/templets/article_add.htm @@ -8,8 +8,6 @@ - - @@ -79,6 +77,7 @@ + \ No newline at end of file diff --git a/src/user/templets/article_edit.htm b/src/user/templets/article_edit.htm index f1fcd364..0949c50d 100755 --- a/src/user/templets/article_edit.htm +++ b/src/user/templets/article_edit.htm @@ -8,8 +8,6 @@ - - @@ -82,6 +80,7 @@ + \ No newline at end of file diff --git a/src/user/templets/buy.htm b/src/user/templets/buy.htm index 416b884e..31b0a98a 100755 --- a/src/user/templets/buy.htm +++ b/src/user/templets/buy.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/buy_action_payment.htm b/src/user/templets/buy_action_payment.htm index 711815b2..9fa4271c 100755 --- a/src/user/templets/buy_action_payment.htm +++ b/src/user/templets/buy_action_payment.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/content_list.htm b/src/user/templets/content_list.htm index 17611746..0522b667 100755 --- a/src/user/templets/content_list.htm +++ b/src/user/templets/content_list.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/content_sg_list.htm b/src/user/templets/content_sg_list.htm index 61e7a7de..0d0b8e60 100755 --- a/src/user/templets/content_sg_list.htm +++ b/src/user/templets/content_sg_list.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/edit_baseinfo.htm b/src/user/templets/edit_baseinfo.htm index 2035377b..0822b6ca 100755 --- a/src/user/templets/edit_baseinfo.htm +++ b/src/user/templets/edit_baseinfo.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/index.htm b/src/user/templets/index.htm index da7ccd9f..4fb04b60 100755 --- a/src/user/templets/index.htm +++ b/src/user/templets/index.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/login.htm b/src/user/templets/login.htm index 6d70db51..0a9c1c05 100755 --- a/src/user/templets/login.htm +++ b/src/user/templets/login.htm @@ -8,8 +8,6 @@ - - @@ -49,5 +47,6 @@ + \ No newline at end of file diff --git a/src/user/templets/mypay.htm b/src/user/templets/mypay.htm index 965eab28..91824673 100755 --- a/src/user/templets/mypay.htm +++ b/src/user/templets/mypay.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/mystow.htm b/src/user/templets/mystow.htm index 732cd336..b6040d55 100755 --- a/src/user/templets/mystow.htm +++ b/src/user/templets/mystow.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/operation.htm b/src/user/templets/operation.htm index ad872509..7e1f451a 100755 --- a/src/user/templets/operation.htm +++ b/src/user/templets/operation.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/pm-main.htm b/src/user/templets/pm-main.htm index 2d4a0962..194f2cc3 100755 --- a/src/user/templets/pm-main.htm +++ b/src/user/templets/pm-main.htm @@ -8,9 +8,6 @@ - - - @@ -89,6 +86,7 @@ + diff --git a/src/user/templets/resetpassword.htm b/src/user/templets/resetpassword.htm index fa60ee86..fec867c3 100755 --- a/src/user/templets/resetpassword.htm +++ b/src/user/templets/resetpassword.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/resetpassword2.htm b/src/user/templets/resetpassword2.htm index 291bb986..b3c769b3 100755 --- a/src/user/templets/resetpassword2.htm +++ b/src/user/templets/resetpassword2.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/resetpassword3.htm b/src/user/templets/resetpassword3.htm index 8f08ea42..71422780 100755 --- a/src/user/templets/resetpassword3.htm +++ b/src/user/templets/resetpassword3.htm @@ -8,7 +8,6 @@ - diff --git a/src/user/templets/soft_add.htm b/src/user/templets/soft_add.htm index 04c1c0bd..ec6dee6a 100755 --- a/src/user/templets/soft_add.htm +++ b/src/user/templets/soft_add.htm @@ -8,25 +8,6 @@ - - - @@ -202,6 +183,24 @@ + + \ No newline at end of file diff --git a/src/user/templets/soft_edit.htm b/src/user/templets/soft_edit.htm index b04c6996..f070f245 100755 --- a/src/user/templets/soft_edit.htm +++ b/src/user/templets/soft_edit.htm @@ -8,25 +8,6 @@ - - - @@ -199,6 +180,24 @@ + + \ No newline at end of file diff --git a/src/user/templets/space.htm b/src/user/templets/space.htm index 3bb3a3ff..6d47e5d3 100755 --- a/src/user/templets/space.htm +++ b/src/user/templets/space.htm @@ -8,7 +8,6 @@ - From 1e449139ad0f3cccd153e23dd838950b3f0838b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 11:37:17 +0800 Subject: [PATCH 16/53] Update changelog.md --- docs/changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index 032db37a..6dea1f31 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,6 +1,13 @@ # 更新记录 通过访问 https://www.dedebiz.com/git 获取完整更新记录 +# V6.2.12 +- 优化后台部分代码面向对象,提高性能正确引导,致力于打造高效简单轻型CMS; +- 增强图片选择器,鼠标移动小图标预览; +- 调整后台和默认模板及会员中心的JQ文件引用问题; +- 修正谷歌浏览器ID重复部分提示问题; +- 修正资源选择器上传回调问题; + # V6.2.11 - 增加商业版扩展DedeBIZ Search; - 增加用户中心个人主页功能; From b050b101d03324cebb3f73795a91e5fad2558c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 11:45:35 +0800 Subject: [PATCH 17/53] =?UTF-8?q?JQ=E6=96=87=E4=BB=B6=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/theme/apps/advancedsearch.htm | 1 - src/theme/apps/download_links.htm | 1 - src/theme/apps/flink_add.htm | 1 - src/theme/apps/flink_list.htm | 1 - src/theme/apps/heightsearch.htm | 1 - src/theme/apps/list_diyform.htm | 1 - src/theme/apps/post_diyform.htm | 7 +++---- src/theme/apps/recommend.htm | 1 - src/theme/apps/showphoto.htm | 1 - src/theme/apps/view_diyform.htm | 1 - src/theme/apps/view_msg.htm | 1 - src/theme/apps/view_msg_catalog.htm | 1 - src/theme/apps/vote.htm | 1 - src/theme/apps/win_templet.htm | 1 - 14 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/theme/apps/advancedsearch.htm b/src/theme/apps/advancedsearch.htm index f2dcbd87..f3e8b492 100644 --- a/src/theme/apps/advancedsearch.htm +++ b/src/theme/apps/advancedsearch.htm @@ -8,7 +8,6 @@ -
    diff --git a/src/theme/apps/download_links.htm b/src/theme/apps/download_links.htm index ec0b23a1..23aecb7a 100644 --- a/src/theme/apps/download_links.htm +++ b/src/theme/apps/download_links.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/flink_add.htm b/src/theme/apps/flink_add.htm index 911a86d8..7c79ff69 100644 --- a/src/theme/apps/flink_add.htm +++ b/src/theme/apps/flink_add.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/flink_list.htm b/src/theme/apps/flink_list.htm index e789df7f..8091b69a 100644 --- a/src/theme/apps/flink_list.htm +++ b/src/theme/apps/flink_list.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/heightsearch.htm b/src/theme/apps/heightsearch.htm index e9517132..6e7f9e39 100644 --- a/src/theme/apps/heightsearch.htm +++ b/src/theme/apps/heightsearch.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/list_diyform.htm b/src/theme/apps/list_diyform.htm index 31d154ab..0588aca2 100644 --- a/src/theme/apps/list_diyform.htm +++ b/src/theme/apps/list_diyform.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/post_diyform.htm b/src/theme/apps/post_diyform.htm index 1ce6dd89..1b64c582 100644 --- a/src/theme/apps/post_diyform.htm +++ b/src/theme/apps/post_diyform.htm @@ -9,10 +9,6 @@ - - - - @@ -44,5 +40,8 @@
    + + + \ No newline at end of file diff --git a/src/theme/apps/recommend.htm b/src/theme/apps/recommend.htm index abb96bb4..2e3a5bde 100644 --- a/src/theme/apps/recommend.htm +++ b/src/theme/apps/recommend.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/showphoto.htm b/src/theme/apps/showphoto.htm index 764c7401..77560bc1 100644 --- a/src/theme/apps/showphoto.htm +++ b/src/theme/apps/showphoto.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/view_diyform.htm b/src/theme/apps/view_diyform.htm index dfb522ea..ada02e2c 100644 --- a/src/theme/apps/view_diyform.htm +++ b/src/theme/apps/view_diyform.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/view_msg.htm b/src/theme/apps/view_msg.htm index dda38ff6..634b9712 100644 --- a/src/theme/apps/view_msg.htm +++ b/src/theme/apps/view_msg.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/view_msg_catalog.htm b/src/theme/apps/view_msg_catalog.htm index e9e33123..ac3cf03e 100644 --- a/src/theme/apps/view_msg_catalog.htm +++ b/src/theme/apps/view_msg_catalog.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/vote.htm b/src/theme/apps/vote.htm index a85f27a3..f18ac34f 100644 --- a/src/theme/apps/vote.htm +++ b/src/theme/apps/vote.htm @@ -8,7 +8,6 @@ - diff --git a/src/theme/apps/win_templet.htm b/src/theme/apps/win_templet.htm index 4ec016ec..35b7e6a3 100644 --- a/src/theme/apps/win_templet.htm +++ b/src/theme/apps/win_templet.htm @@ -8,7 +8,6 @@ -
    "; - echo "$step外部{$nss}".$typeName."[id:".$id."]"; + echo "$step外部{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; diff --git a/src/theme/apps/heightsearch.htm b/src/theme/apps/heightsearch.htm index 5c9550b1..e9517132 100644 --- a/src/theme/apps/heightsearch.htm +++ b/src/theme/apps/heightsearch.htm @@ -31,7 +31,7 @@
    关键字:关键词:
    From ecc1a22bf2e31a807be4059f9dbe46ebdfee6bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 12:14:35 +0800 Subject: [PATCH 18/53] =?UTF-8?q?JQ=E6=96=87=E4=BB=B6=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/theme/dedebiz/article_article.htm | 174 ++++++++++++++++- src/theme/dedebiz/article_default.htm | 173 ++++++++++++++++- src/theme/dedebiz/article_default_sg.htm | 175 +++++++++++++++++- src/theme/dedebiz/article_image.htm | 173 ++++++++++++++++- src/theme/dedebiz/article_infos.htm | 172 ++++++++++++++++- src/theme/dedebiz/article_soft.htm | 172 ++++++++++++++++- src/theme/dedebiz/article_spec.htm | 4 +- src/theme/dedebiz/foot.htm | 9 +- src/theme/dedebiz/index.htm | 1 - src/theme/dedebiz/index_article.htm | 1 - src/theme/dedebiz/index_default.htm | 1 - src/theme/dedebiz/index_default_sg.htm | 1 - src/theme/dedebiz/index_image.htm | 1 - src/theme/dedebiz/index_infos.htm | 1 - src/theme/dedebiz/index_soft.htm | 1 - src/theme/dedebiz/list_article.htm | 1 - src/theme/dedebiz/list_default.htm | 1 - src/theme/dedebiz/list_default_sg.htm | 1 - src/theme/dedebiz/list_free.htm | 1 - src/theme/dedebiz/list_image.htm | 1 - src/theme/dedebiz/list_infos.htm | 1 - src/theme/dedebiz/list_soft.htm | 1 - src/theme/dedebiz/list_spec.htm | 1 - src/theme/dedebiz/search.htm | 1 - src/theme/dedebiz/tag.htm | 3 +- src/theme/dedebiz/taglist.htm | 3 +- src/theme/dedebiz/widget_article_feedback.htm | 122 +----------- src/theme/dedebiz/widget_article_likes.htm | 53 +----- 28 files changed, 1032 insertions(+), 217 deletions(-) diff --git a/src/theme/dedebiz/article_article.htm b/src/theme/dedebiz/article_article.htm index 2db2d81b..d101cff8 100644 --- a/src/theme/dedebiz/article_article.htm +++ b/src/theme/dedebiz/article_article.htm @@ -12,9 +12,6 @@ - - - {dede:include filename='top.htm'/} @@ -75,7 +72,178 @@ + {dede:include filename='foot.htm'/} + + \ No newline at end of file diff --git a/src/theme/dedebiz/article_default.htm b/src/theme/dedebiz/article_default.htm index d81f1f3e..4eb8a733 100644 --- a/src/theme/dedebiz/article_default.htm +++ b/src/theme/dedebiz/article_default.htm @@ -11,9 +11,6 @@ - - - {dede:include filename='top.htm'/} @@ -86,6 +83,176 @@ + {dede:include filename='foot.htm'/} + \ No newline at end of file diff --git a/src/theme/dedebiz/article_default_sg.htm b/src/theme/dedebiz/article_default_sg.htm index 06e748bb..1b323ea8 100644 --- a/src/theme/dedebiz/article_default_sg.htm +++ b/src/theme/dedebiz/article_default_sg.htm @@ -12,10 +12,6 @@ - - - - {dede:include filename='top.htm'/} @@ -88,7 +84,178 @@ + {dede:include filename='foot.htm'/} + + \ No newline at end of file diff --git a/src/theme/dedebiz/article_image.htm b/src/theme/dedebiz/article_image.htm index 21ec5c1a..c348781d 100644 --- a/src/theme/dedebiz/article_image.htm +++ b/src/theme/dedebiz/article_image.htm @@ -11,9 +11,6 @@ - - - {dede:include filename='foot.htm'/} + \ No newline at end of file diff --git a/src/theme/dedebiz/article_infos.htm b/src/theme/dedebiz/article_infos.htm index 8ca5e68c..bbcd950a 100644 --- a/src/theme/dedebiz/article_infos.htm +++ b/src/theme/dedebiz/article_infos.htm @@ -11,8 +11,6 @@ - - {dede:include filename='top.htm'/} @@ -81,6 +79,176 @@ + {dede:include filename='foot.htm'/} + \ No newline at end of file diff --git a/src/theme/dedebiz/article_soft.htm b/src/theme/dedebiz/article_soft.htm index 2606543a..c13100b2 100644 --- a/src/theme/dedebiz/article_soft.htm +++ b/src/theme/dedebiz/article_soft.htm @@ -11,8 +11,6 @@ - - {dede:include filename='top.htm'/} @@ -89,6 +87,176 @@ + {dede:include filename='foot.htm'/} + \ No newline at end of file diff --git a/src/theme/dedebiz/article_spec.htm b/src/theme/dedebiz/article_spec.htm index b10471d1..f84ff7c5 100644 --- a/src/theme/dedebiz/article_spec.htm +++ b/src/theme/dedebiz/article_spec.htm @@ -11,9 +11,6 @@ - - - {dede:include filename='top.htm'/} @@ -54,6 +51,7 @@ + {dede:include filename='foot.htm'/} \ No newline at end of file diff --git a/src/theme/dedebiz/foot.htm b/src/theme/dedebiz/foot.htm index 9f363ef0..25f1f40e 100644 --- a/src/theme/dedebiz/foot.htm +++ b/src/theme/dedebiz/foot.htm @@ -7,13 +7,14 @@
    - - + + + {dede:statistics/} {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_article.htm b/src/theme/dedebiz/index_article.htm index 7ddf4b4d..e46428cf 100644 --- a/src/theme/dedebiz/index_article.htm +++ b/src/theme/dedebiz/index_article.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_default.htm b/src/theme/dedebiz/index_default.htm index 7ddf4b4d..e46428cf 100644 --- a/src/theme/dedebiz/index_default.htm +++ b/src/theme/dedebiz/index_default.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_default_sg.htm b/src/theme/dedebiz/index_default_sg.htm index 7ddf4b4d..e46428cf 100644 --- a/src/theme/dedebiz/index_default_sg.htm +++ b/src/theme/dedebiz/index_default_sg.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_image.htm b/src/theme/dedebiz/index_image.htm index 7c5fb080..2d8946ea 100644 --- a/src/theme/dedebiz/index_image.htm +++ b/src/theme/dedebiz/index_image.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_infos.htm b/src/theme/dedebiz/index_infos.htm index 6655f664..20946b2d 100644 --- a/src/theme/dedebiz/index_infos.htm +++ b/src/theme/dedebiz/index_infos.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/index_soft.htm b/src/theme/dedebiz/index_soft.htm index cf1e0dff..1f464863 100644 --- a/src/theme/dedebiz/index_soft.htm +++ b/src/theme/dedebiz/index_soft.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_article.htm b/src/theme/dedebiz/list_article.htm index 9b8852a8..fbc1dc29 100644 --- a/src/theme/dedebiz/list_article.htm +++ b/src/theme/dedebiz/list_article.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_default.htm b/src/theme/dedebiz/list_default.htm index 9b8852a8..fbc1dc29 100644 --- a/src/theme/dedebiz/list_default.htm +++ b/src/theme/dedebiz/list_default.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_default_sg.htm b/src/theme/dedebiz/list_default_sg.htm index 8f8e56dd..5cba8930 100644 --- a/src/theme/dedebiz/list_default_sg.htm +++ b/src/theme/dedebiz/list_default_sg.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_free.htm b/src/theme/dedebiz/list_free.htm index 9b119410..bcc3348f 100644 --- a/src/theme/dedebiz/list_free.htm +++ b/src/theme/dedebiz/list_free.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_image.htm b/src/theme/dedebiz/list_image.htm index be4d84dc..6a27e524 100644 --- a/src/theme/dedebiz/list_image.htm +++ b/src/theme/dedebiz/list_image.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_infos.htm b/src/theme/dedebiz/list_infos.htm index 04a139b7..854cd4ca 100644 --- a/src/theme/dedebiz/list_infos.htm +++ b/src/theme/dedebiz/list_infos.htm @@ -12,7 +12,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_soft.htm b/src/theme/dedebiz/list_soft.htm index 5af42ead..15ab4c40 100644 --- a/src/theme/dedebiz/list_soft.htm +++ b/src/theme/dedebiz/list_soft.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/list_spec.htm b/src/theme/dedebiz/list_spec.htm index c2c11971..51b23c1d 100644 --- a/src/theme/dedebiz/list_spec.htm +++ b/src/theme/dedebiz/list_spec.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/search.htm b/src/theme/dedebiz/search.htm index a485226c..c23d3411 100644 --- a/src/theme/dedebiz/search.htm +++ b/src/theme/dedebiz/search.htm @@ -11,7 +11,6 @@ - {dede:include filename='top.htm'/} diff --git a/src/theme/dedebiz/tag.htm b/src/theme/dedebiz/tag.htm index 0b36e0b5..fa9dc11f 100644 --- a/src/theme/dedebiz/tag.htm +++ b/src/theme/dedebiz/tag.htm @@ -12,8 +12,6 @@ - - {dede:include filename='top.htm'/} @@ -48,6 +46,7 @@ + {dede:include filename='foot.htm'/} \ No newline at end of file diff --git a/src/theme/dedebiz/taglist.htm b/src/theme/dedebiz/taglist.htm index 2f43f9e2..4a579172 100644 --- a/src/theme/dedebiz/taglist.htm +++ b/src/theme/dedebiz/taglist.htm @@ -11,8 +11,6 @@ - - {dede:include filename='top.htm'/} @@ -66,6 +64,7 @@ + {dede:include filename='foot.htm'/} \ No newline at end of file diff --git a/src/theme/dedebiz/widget_article_feedback.htm b/src/theme/dedebiz/widget_article_feedback.htm index 03751f19..fa79ef47 100644 --- a/src/theme/dedebiz/widget_article_feedback.htm +++ b/src/theme/dedebiz/widget_article_feedback.htm @@ -54,124 +54,4 @@ {/dede:feedback} - - \ No newline at end of file + \ No newline at end of file diff --git a/src/theme/dedebiz/widget_article_likes.htm b/src/theme/dedebiz/widget_article_likes.htm index 5b8bfaf5..d55f4dd0 100644 --- a/src/theme/dedebiz/widget_article_likes.htm +++ b/src/theme/dedebiz/widget_article_likes.htm @@ -17,55 +17,4 @@
    - - \ No newline at end of file + \ No newline at end of file From 9f114d1b3444a957e561f35f2afd64d6d5445ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 19:15:44 +0800 Subject: [PATCH 19/53] Update admin.css --- src/static/web/css/admin.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index f4b19e40..889d182d 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -415,6 +415,16 @@ body.hidemenu .body-right { background:#f5f5f5; border-bottom:1px solid #dee2e6 } +.fullpagediv { + position:absolute; + top:0; + left:0; + width:100%; + height:100%; + background:#f5f5f5; + opacity:0.6; + z-index:1999 +} .quicksel { margin-left:10px; margin-top:10px; From e78e4f50bbc41e68c19d25a939dd201254aaefb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Mon, 11 Sep 2023 19:16:56 +0800 Subject: [PATCH 20/53] Update admin.css --- src/static/web/css/admin.css | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 889d182d..f1f243ef 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -681,17 +681,18 @@ table,input,select,textarea,.search,.menu-body,.coolbg,.mysource,.mywriter,.pubd } @media (max-width:768px) { .tips { - padding:0 15px + padding:0 15px + } + .tips-box { + width:100% + } } -.tips-box { - width:100% -} -}@media (min-width:1200px) { +@media (min-width:1200px) { .web-info { - text-overflow:ellipsis; - white-space:nowrap -} -.modal-dialog { - max-width:500px -} + text-overflow:ellipsis; + white-space:nowrap + } + .modal-dialog { + max-width:500px + } } \ No newline at end of file From 311feeae8de4d39119cd748780b3b658500152e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 10:38:32 +0800 Subject: [PATCH 21/53] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=8F=E7=9B=AE?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=9C=A8=E8=B0=B7=E6=AD=8C=E4=B8=8B=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=EF=BC=8C=E5=85=B6=E4=BB=96=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/js/album.js | 6 +++--- src/admin/js/body.js | 10 +++++----- src/admin/js/catalog.js | 1 - src/admin/js/list.js | 6 ++---- src/admin/js/search.js | 3 +-- src/admin/js/update.js | 2 -- src/admin/js/user.js | 2 -- src/static/web/js/diy.js | 9 ++++----- src/static/web/js/enums.js | 20 +++++++++----------- src/static/web/js/user.js | 2 +- 10 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/admin/js/album.js b/src/admin/js/album.js index 9e6f6f7f..744a42ff 100644 --- a/src/admin/js/album.js +++ b/src/admin/js/album.js @@ -15,9 +15,9 @@ function checkSubmitAlb() { $("#gallery .atlas").each(function() { albums.push({ "img": $(this).find("img").attr("src"), - "txt": $(this).find("input").val() - }) - }) + "txt": $(this).find("input").val(), + }); + }); } $("#albums").val(JSON.stringify(albums)); return true; diff --git a/src/admin/js/body.js b/src/admin/js/body.js index e69ef2eb..0f3a42c5 100644 --- a/src/admin/js/body.js +++ b/src/admin/js/body.js @@ -6,7 +6,7 @@ Date.prototype.Format = function(fmt) { "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 - "S" : this.getMilliseconds() //毫秒 + "S" : this.getMilliseconds(), //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) @@ -106,28 +106,28 @@ async function LoadStatChart() { lineTension: .5, borderColor: 'rgba(54, 162, 235, 1)', backgroundColor: 'rgba(54, 162, 235, 0.1)', - borderWidth: 2 + borderWidth: 2, }, { label: 'UV', data: uvs, lineTension: .5, borderColor: 'rgba(255, 206, 86, 1)', backgroundColor: 'rgba(255, 206, 86, 0.1)', - borderWidth: 2 + borderWidth: 2, }, { label: 'IP', data: ips, lineTension: .5, borderColor: 'rgba(255, 99, 132, 1)', backgroundColor: 'rgba(255, 99, 132, 0.1)', - borderWidth: 2 + borderWidth: 2, }, { label: 'VV', data: vvs, lineTension: .5, borderColor: 'rgba(75, 192, 192, 1)', backgroundColor: 'rgba(75, 192, 192, 0.1)', - borderWidth: 2 + borderWidth: 2, } ] }, diff --git a/src/admin/js/catalog.js b/src/admin/js/catalog.js index e4eead79..963292ac 100644 --- a/src/admin/js/catalog.js +++ b/src/admin/js/catalog.js @@ -1,5 +1,4 @@ var BROWSER = {}; -var USERAGENT = navigator.userAgent.toLowerCase(); if (BROWSER.safari) { BROWSER.firefox = true; } diff --git a/src/admin/js/list.js b/src/admin/js/list.js index c59d6c95..e5411d03 100644 --- a/src/admin/js/list.js +++ b/src/admin/js/list.js @@ -31,7 +31,7 @@ function moveArc(e, obj, cid){ ShowMsg('请选择一个或多个文档'); return; } - LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr=' + qstr + '&channelid=' + cid + '&rnd=' + Math.random(), 'moveArchives', 'auto', '180px'); + LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr=' + qstr + '&channelid=' + cid + '&rnd=' + Math.random(), 'moveArchives', 'auto', '300px'); ChangeFullDiv('show'); } function adArc(aid) { @@ -46,7 +46,7 @@ function cAtts(jname, e, obj) { ShowMsg('请选择一个或多个文档'); return; } - LoadQuickDiv(e, 'archives_do.php?dopost=attsDlg&qstr=' + qstr + '&dojob=' + jname + '&rnd=' + Math.random(), 'attsDlg', 'auto', '180px'); + LoadQuickDiv(e, 'archives_do.php?dopost=attsDlg&qstr=' + qstr + '&dojob=' + jname + '&rnd=' + Math.random(), 'attsDlg', 'auto', '300px'); ChangeFullDiv('show', screeheight); } function delArc(aid) { @@ -58,7 +58,6 @@ function QuickEdit(aid, e, obj) { LoadQuickDiv(e, 'archives_do.php?dopost=quickEdit&aid=' + aid + '&rnd=' + Math.random(), 'quickEdit', 'auto', '300px'); ChangeFullDiv('show'); } -//获得选中文件的文件名 function getCheckboxItem() { var allSel = ""; if (document.form2.arcID.value) return document.form2.arcID.value; @@ -72,7 +71,6 @@ function getCheckboxItem() { } return allSel; } -//获得选中其中一个的id function getOneItem() { var allSel = ''; if (document.form2.arcID.value) return document.form2.arcID.value; diff --git a/src/admin/js/search.js b/src/admin/js/search.js index fe552ea1..2015d5fe 100644 --- a/src/admin/js/search.js +++ b/src/admin/js/search.js @@ -13,9 +13,8 @@ function noselAll() { } } } -//批量删除搜多关键词 function delall() { - DedeConfirm("您确定要删除选定关键词吗").then((v) => { + DedeConfirm("您确定要删除关键词吗").then((v) => { document.form3.dopost.value = 'delall'; document.form3.submit(); }).catch((e) => { diff --git a/src/admin/js/update.js b/src/admin/js/update.js index 886afca1..32896e54 100644 --- a/src/admin/js/update.js +++ b/src/admin/js/update.js @@ -1,13 +1,11 @@ var currentStep = 1; var hasNewVer = false; -//步骤 function dedeAlter(msg, t = 'info', loading = false) { let loadingStr = loading ? '' : ''; return `
    ${loadingStr} ${msg}
    `; } -//显示步骤区域 function showStepArea(step) { $(".stepArea").hide(); $(".btnStep").hide(); diff --git a/src/admin/js/user.js b/src/admin/js/user.js index 2306e6de..6bcb1e5a 100644 --- a/src/admin/js/user.js +++ b/src/admin/js/user.js @@ -7,7 +7,6 @@ function delArc(mid) { if (mid==0) mid = getOneItem(); location="member_do.php?id="+qstr+"&dopost=delmembers"; } -//获得选中文件的文件名 function getCheckboxItem() { var allSel=""; if (document.form2.mid.value) return document.form2.mid.value; @@ -21,7 +20,6 @@ function getCheckboxItem() { } return allSel; } -//获得选中其中一个的id function getOneItem() { var allSel=""; if (document.form2.mid.value) return document.form2.mid.value; diff --git a/src/static/web/js/diy.js b/src/static/web/js/diy.js index c41b469f..508c615d 100644 --- a/src/static/web/js/diy.js +++ b/src/static/web/js/diy.js @@ -4,18 +4,18 @@ function SelectImage(sform, stype) { let frm = document.getElementsByName(s[0]); let ipt = document.getElementsByName(s[1]); let tmp = document.createElement("input"); - tmp.id = 'field'+s[1]; + tmp.id = "field" + s[1]; tmp.type = "file"; - tmp.style.display = 'none'; + tmp.style.display = "none"; if ($(`#${tmp.id}`).length === 0) { $(frm).append(tmp); } $(`#${tmp.id}`).click(); - $(`#${tmp.id}`).off('change').change(function (val) { + $(`#${tmp.id}`).off("change").change(function (val) { const f = val.target.files[0]; var formData = new FormData(); var fileData = f; - formData.append('file', fileData); + formData.append("file", fileData); $.ajax({ url: '../user/api.php?action=upload&type=litpic', type: 'POST', @@ -44,7 +44,6 @@ $(document).ready(function() { "linkedCalendars": false, "timePicker": true, "timePicker24Hour": true, - //"timePickerSeconds": true, "showCustomRangeLabel": false, ranges: { '今日': [moment(), moment()], diff --git a/src/static/web/js/enums.js b/src/static/web/js/enums.js index 3f73aa8e..4ac9396e 100644 --- a/src/static/web/js/enums.js +++ b/src/static/web/js/enums.js @@ -30,7 +30,7 @@ function selNext(oj, v) { } //子类改变事件 function ChangeSon() { - //由于支持3级联动,所以这里需要对自己改变进行重构 + //由于支持3级联动,所以这里需要对自己改变进行重构 var emname = this.name.replace('_son', ''); if (document.getElementById(emname + '_sec')) { var oj = document.getElementById(emname + '_sec'); @@ -52,13 +52,13 @@ function ChangeSon() { clear(oj); if (selv == 0) { aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = '0'; oj.options.add(aOption); return; } else { aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = '0'; oj.options.add(aOption); } @@ -114,13 +114,13 @@ function selNextSon() { clear(oj); if (selv == 0) { aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = '0'; oj.options.add(aOption); return; } else { aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = '0'; oj.options.add(aOption); } @@ -156,7 +156,7 @@ function MakeTopSelect(emname, selvalue) { var sonvalue = 0; var secvalue = 0; aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = 0; selObj.options.add(aOption); var fkey = Object.keys(selarr)[0]; @@ -164,7 +164,7 @@ function MakeTopSelect(emname, selvalue) { if (selvalue % 500 == 0) { topvalue = selvalue; } - //如果是小数,则依次取出顶级数值,二级数值以及三级数值 + //如果是小数,则依次取出顶级数值,二级数值以及三级数值 else if (!!(selvalue % 1)) { secvalue = selvalue; sonvalue = Math.floor(selvalue); @@ -190,7 +190,6 @@ function MakeTopSelect(emname, selvalue) { selObj.options.add(aOption); } } - document.getElementById('span_' + emname).appendChild(selObj); //如果子类存在值,创建子类 selObj = document.createElement("select"); @@ -199,7 +198,7 @@ function MakeTopSelect(emname, selvalue) { selObj.className = "form-control admin-input-sm mr-2"; selObj.onchange = ChangeSon; aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; aOption.value = 0; selObj.options.add(aOption); //当大类有值输出子类 @@ -231,7 +230,6 @@ function MakeTopSelect(emname, selvalue) { } else { document.getElementById('span_' + emname + '_son').style.display = "none"; } - //若存在第三级则创建 if (secvalue > 0) { selObj = document.createElement("select"); @@ -239,7 +237,7 @@ function MakeTopSelect(emname, selvalue) { selObj.id = emname + '_sec'; selObj.onchange = ChangeSec; aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; + aOption.text = '请选择'; selObj.className = "form-control admin-input-sm mr-2"; aOption.value = 0; selObj.options.add(aOption); diff --git a/src/static/web/js/user.js b/src/static/web/js/user.js index ec392404..328d894c 100644 --- a/src/static/web/js/user.js +++ b/src/static/web/js/user.js @@ -1,6 +1,6 @@ function checkSubmit(t) { if (document.addcontent.title.value == "") { - ShowMsg(`文档标题不能为空`); + ShowMsg("文档标题不能为空"); document.addcontent.title.focus(); return false; } From 459498ad1391ff849fb856fe61e9468096d3e360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 11:32:46 +0800 Subject: [PATCH 22/53] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E4=BF=AE=E6=AD=A3=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/actionsearch_class.php | 6 ++-- src/admin/album_add.php | 4 +-- src/admin/album_edit.php | 2 +- src/admin/archives_add.php | 2 +- src/admin/archives_do.php | 12 ++++---- src/admin/archives_edit.php | 2 +- src/admin/archives_sg_add.php | 2 +- src/admin/archives_sg_edit.php | 2 +- src/admin/article_add.php | 4 +-- src/admin/article_description_main.php | 4 +-- src/admin/article_edit.php | 2 +- src/admin/article_test_same.php | 2 +- src/admin/cards_make.php | 2 +- src/admin/catalog_add.php | 2 +- src/admin/catalog_del.php | 2 +- src/admin/catalog_do.php | 4 +-- src/admin/content_batchup_action.php | 8 ++--- src/admin/dialog/select_images_post.php | 2 +- src/admin/dialog/select_soft_post.php | 4 +-- src/admin/dialog/select_templets_post.php | 2 +- src/admin/diy_edit.php | 2 +- src/admin/erraddsave.php | 2 +- src/admin/feedback_edit.php | 2 +- src/admin/file_class.php | 2 +- src/admin/file_manage_control.php | 2 +- src/admin/file_manage_view.php | 4 +-- src/admin/friendlink_add.php | 2 +- src/admin/friendlink_edit.php | 2 +- src/admin/makehtml_all.php | 2 +- src/admin/makehtml_archives_action.php | 6 ++-- src/admin/makehtml_freelist_action.php | 4 +-- src/admin/makehtml_taglist_action.php | 6 ++-- src/admin/media_add.php | 2 +- src/admin/member_do.php | 8 ++--- src/admin/member_toadmin.php | 2 +- src/admin/module_main.php | 6 ++-- src/admin/module_upload.php | 2 +- src/admin/mychannel_edit.php | 12 ++++---- src/admin/mychannel_field_add.php | 2 +- src/admin/mychannel_field_edit.php | 2 +- src/admin/plus_edit.php | 2 +- src/admin/soft_add.php | 4 +-- src/admin/soft_edit.php | 2 +- src/admin/sys_admin_user_edit.php | 8 ++--- src/admin/sys_data.php | 8 ++--- src/admin/sys_data_replace.php | 4 +-- src/admin/sys_info.php | 8 ++--- src/admin/sys_info_mark.php | 2 +- src/admin/sys_sql_query.php | 34 +++++++++++----------- src/admin/tag_test_action.php | 2 +- src/admin/templets/album_edit.htm | 2 +- src/admin/templets/archives_edit.htm | 2 +- src/admin/templets/article_edit.htm | 2 +- src/admin/templets/makehtml_taglist.htm | 5 +++- src/admin/templets/member_toadmin.htm | 3 +- src/admin/templets/module_edit.htm | 5 +++- src/admin/templets/module_main.htm | 2 +- src/admin/templets/module_make.htm | 5 +++- src/admin/templets/soft_edit.htm | 2 +- src/admin/templets/spec_edit.htm | 2 +- src/admin/templets/sys_admin_user_add.htm | 3 +- src/admin/templets/sys_admin_user_edit.htm | 3 +- src/admin/templets/sys_data_replace.htm | 2 +- src/admin/templets/sys_group_add.htm | 2 +- src/admin/templets_one_edit.php | 4 +-- src/apps/download.php | 4 +-- src/apps/list.php | 2 +- src/apps/search.php | 2 +- src/apps/view.php | 8 ++--- src/install/install.html | 2 +- src/install/install.inc.php | 2 +- src/system/database/dedesqli.class.php | 2 +- src/system/database/dedesqlite.class.php | 2 +- src/system/dedemodule.class.php | 20 ++++++------- src/system/helpers/upload.helper.php | 2 +- src/system/inc/inc_fun_funAdmin.php | 2 +- src/system/memberlogin.class.php | 4 +-- src/user/album_add.php | 6 ++-- src/user/archives_add.php | 6 ++-- src/user/archives_sg_add.php | 10 +++---- src/user/article_add.php | 6 ++-- src/user/config.php | 4 +-- src/user/inc/archives_check.php | 4 +-- src/user/index_do.php | 2 +- src/user/reg_new.php | 2 +- src/user/resetpassword.php | 2 +- src/user/soft_add.php | 6 ++-- 87 files changed, 186 insertions(+), 174 deletions(-) diff --git a/src/admin/actionsearch_class.php b/src/admin/actionsearch_class.php index 7046423a..f311b631 100644 --- a/src/admin/actionsearch_class.php +++ b/src/admin/actionsearch_class.php @@ -77,14 +77,14 @@ class ActionSearch if ($key == 'title' || $key == 'description') { //仅对title,description进行数组替换 if ($key == 'description') { - $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); + $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); } else { - $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); + $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); } } } } else { - $text = str_replace($this->keyword, ''.$this->keyword.'', $text); + $text = str_replace($this->keyword, ''.$this->keyword.'', $text); } return $text; } diff --git a/src/admin/album_add.php b/src/admin/album_add.php index 17cd1cce..06afaca3 100644 --- a/src/admin/album_add.php +++ b/src/admin/album_add.php @@ -66,7 +66,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_New')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); } //对保存的文档进行处理 if (empty($writer)) $writer = $cuserLogin->getUserName(); @@ -194,7 +194,7 @@ if ($dopost != 'save') { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } $useip = GetIP(); diff --git a/src/admin/album_edit.php b/src/admin/album_edit.php index c2884198..74c1cdcf 100644 --- a/src/admin/album_edit.php +++ b/src/admin/album_edit.php @@ -79,7 +79,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } //对保存的文档进行处理 $pubdate = GetMkTime($pubdate); diff --git a/src/admin/archives_add.php b/src/admin/archives_add.php index bdfc8829..b1340815 100644 --- a/src/admin/archives_add.php +++ b/src/admin/archives_add.php @@ -66,7 +66,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_New')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); } //对保存的文档进行处理 if (empty($writer)) $writer = $cuserLogin->getUserName(); diff --git a/src/admin/archives_do.php b/src/admin/archives_do.php index 54c79e98..aa2d4115 100644 --- a/src/admin/archives_do.php +++ b/src/admin/archives_do.php @@ -208,7 +208,7 @@ else if ($dopost == "makeArchives") { $i++; $pageurl = MakeArt($aid, false); } - ShowMsg("成功更新指定$i个文件", $ENV_GOBACK_URL); + ShowMsg("成功更新指定$i个文件", $ENV_GOBACK_URL); exit(); } //审核文档 @@ -317,7 +317,7 @@ else if ($dopost == "checkArchives") { $arc = new Archives($aid); $arc->MakeHtml(); } - ShowMsg("成功移动$j个文档", $ENV_GOBACK_URL); + ShowMsg("成功移动$j个文档", $ENV_GOBACK_URL); exit(); } } @@ -373,7 +373,7 @@ else if ($dopost == "delArchives") { $win->AddHidden("dopost", $dopost); $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); - $win->AddTitle("您确定删除,序号$qstr文档吗"); + $win->AddTitle("您确定删除,序号$qstr文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -424,7 +424,7 @@ else if ($dopost == 'clear') { $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); $win->AddHidden("recycle", $recycle); - $win->AddTitle("清空回收站$num篇文档
    您确定删除,序号$qstr文档吗"); + $win->AddTitle("清空回收站$num篇文档
    您确定删除,序号$qstr文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -462,7 +462,7 @@ else if ($dopost == 'del') { $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); $win->AddHidden("recycle", $recycle); - $win->AddTitle("您确要删除,序号$qstr文档吗"); + $win->AddTitle("您确要删除,序号$qstr文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -556,7 +556,7 @@ else if ($dopost == 'quickEditSave') { require_once(DEDEADMIN.'/inc/inc_archives_functions.php'); //权限检测 if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } $title = dede_htmlspecialchars(cn_substrR($title, $cfg_title_maxlen)); $shorttitle = cn_substrR($shorttitle, 36); diff --git a/src/admin/archives_edit.php b/src/admin/archives_edit.php index e475043b..60230eea 100644 --- a/src/admin/archives_edit.php +++ b/src/admin/archives_edit.php @@ -65,7 +65,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } //对保存的文档进行处理 $pubdate = GetMkTime($pubdate); diff --git a/src/admin/archives_sg_add.php b/src/admin/archives_sg_add.php index e2e63895..4b1b90a9 100644 --- a/src/admin/archives_sg_add.php +++ b/src/admin/archives_sg_add.php @@ -54,7 +54,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_New')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); } //对保存的文档进行处理 if (empty($writer)) $writer = $cuserLogin->getUserName(); diff --git a/src/admin/archives_sg_edit.php b/src/admin/archives_sg_edit.php index 561309dc..3efb4128 100644 --- a/src/admin/archives_sg_edit.php +++ b/src/admin/archives_sg_edit.php @@ -51,7 +51,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } //对保存的文档进行处理 if (empty($flags)) $flag = ''; diff --git a/src/admin/article_add.php b/src/admin/article_add.php index df5b0b98..178b0491 100644 --- a/src/admin/article_add.php +++ b/src/admin/article_add.php @@ -68,7 +68,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_New')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); } //对保存的文档进行处理 if (empty($writer)) $writer = $cuserLogin->getUserName(); @@ -152,7 +152,7 @@ if ($dopost != 'save') { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } $useip = GetIP(); diff --git a/src/admin/article_description_main.php b/src/admin/article_description_main.php index 72ae4a58..69a7ac29 100644 --- a/src/admin/article_description_main.php +++ b/src/admin/article_description_main.php @@ -80,7 +80,7 @@ if ($dojob == '') { } $dvlen = $tjlen * 1; $tjsta = "
    $dvlen%
    "; - $tjsta .= "完成更新文档总数$tjlen%"; + $tjsta .= "完成更新文档总数$tjlen%"; $nurl = "article_description_main.php?totalnum=$totalnum&startdd={$startdd}&pagesize=$pagesize&table={$table}&field={$field}&dsize={$dsize}&msize={$msize}&channel={$channel}&dojob={$dojob}"; ShowMsg($tjsta, $nurl, 0, 500); exit(); @@ -140,7 +140,7 @@ if ($dojob == '') { } $dvlen = $tjlen * 1; $tjsta = "
    $dvlen%
    "; - $tjsta .= "完成更新文档总数$tjlen%"; + $tjsta .= "完成更新文档总数$tjlen%"; if ($tjnum < $totalnum) { $nurl = "article_description_main.php?totalnum=$totalnum&startdd=".($startdd + $pagesize)."&pagesize=$pagesize&table={$table}&field={$field}&dsize={$dsize}&msize={$msize}&channel={$channel}&dojob={$dojob}"; ShowMsg($tjsta, $nurl, 0, 500); diff --git a/src/admin/article_edit.php b/src/admin/article_edit.php index 25bfbe95..9e79e1b4 100644 --- a/src/admin/article_edit.php +++ b/src/admin/article_edit.php @@ -71,7 +71,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } //对保存的文档进行处理 $pubdate = GetMkTime($pubdate); diff --git a/src/admin/article_test_same.php b/src/admin/article_test_same.php index 8ca1f655..134a97ca 100644 --- a/src/admin/article_test_same.php +++ b/src/admin/article_test_same.php @@ -71,7 +71,7 @@ else if ($dopost == 'delsel') { } } $dsql->ExecuteNoneQuery(" OPTIMIZE TABLE `$maintable`;"); - ShowMsg("一共删除了{$totalarc}篇重复的文档", "javascript:;"); + ShowMsg("成功删除{$totalarc}篇重复文档", "javascript:;"); exit(); } //向导页 diff --git a/src/admin/cards_make.php b/src/admin/cards_make.php index a1e14a2e..760e327a 100644 --- a/src/admin/cards_make.php +++ b/src/admin/cards_make.php @@ -50,6 +50,6 @@ elseif ($dopost == 'make') { $dsql->ExecuteNoneQuery($inquery); echo "成功生成积分:{$cardid}
    "; } - echo "成功生成{$mnum}个积分"; + echo "成功生成{$mnum}个积分"; } ?> \ No newline at end of file diff --git a/src/admin/catalog_add.php b/src/admin/catalog_add.php index 13950623..6ec35882 100644 --- a/src/admin/catalog_add.php +++ b/src/admin/catalog_add.php @@ -169,7 +169,7 @@ if ($dopost == 'quick') { $true_typedir = str_replace("{cmspath}", $cfg_cmspath, $typedir); $true_typedir = preg_replace("#\/{1,}#", "/", $true_typedir); if (!CreateDir($true_typedir)) { - ShowMsg("创建目录{$true_typedir}失败,请检查您的路径是否存在问题", "-1"); + ShowMsg("创建目录{$true_typedir}失败,请检查您的路径是否存在问题", "-1"); exit(); } } diff --git a/src/admin/catalog_del.php b/src/admin/catalog_del.php index 71a4f506..f8ff8d48 100644 --- a/src/admin/catalog_del.php +++ b/src/admin/catalog_del.php @@ -32,7 +32,7 @@ $win = new OxWindow(); $win->Init('catalog_del.php', 'js/blank.js', 'POST'); $win->AddHidden('id', $id); $win->AddHidden('dopost', 'ok'); -$win->AddTitle("您要确定要删除{$row['typename']}栏目吗"); +$win->AddTitle("您要确定要删除{$row['typename']}栏目吗"); $win->AddItem('栏目的文件保存目录:', $row['typedir']); $winform = $win->GetWindow('ok'); $win->Display(); diff --git a/src/admin/catalog_do.php b/src/admin/catalog_do.php index c040cb91..8f9f5718 100644 --- a/src/admin/catalog_do.php +++ b/src/admin/catalog_do.php @@ -175,7 +175,7 @@ else if ($dopost == 'unitCatalog') { $reid = $tl->TypeInfos['reid']; $channelid = $tl->TypeInfos['channeltype']; if (!empty($row['dd'])) { - ShowMsg("栏目$typename($typeid)有子栏目,不能进行合并操作", '-1'); + ShowMsg("栏目$typename有子栏目,不能进行合并操作", '-1'); exit(); } $typeOptions = $tl->GetOptionArray(0, 0, $channelid); @@ -188,7 +188,7 @@ else if ($dopost == 'unitCatalog') { $win->AddHidden('channelid', $channelid); $win->AddHidden('nextjob', 'unitok'); $win->AddTitle("合并目录时不会删除原来的栏目目录,合并后需手动更新目标栏目的文档网页和列表网页,栏目不能有下级子栏目,只允许子级到更高级或同级或不同父级的情况"); - $win->AddItem('您选择的栏目是:', "$typename($typeid)"); + $win->AddItem('您选择的栏目是:', "$typename"); $win->AddItem('您希望合并到那个栏目', ""); $winform = $win->GetWindow('ok'); $win->Display(); diff --git a/src/admin/content_batchup_action.php b/src/admin/content_batchup_action.php index 10b334dd..1499deff 100644 --- a/src/admin/content_batchup_action.php +++ b/src/admin/content_batchup_action.php @@ -80,7 +80,7 @@ else if ($action == 'del') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除$tdd条记录", "javascript:;"); exit(); } //删除空标题文档 @@ -91,7 +91,7 @@ else if ($action == 'delnulltitle') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除$tdd条记录", "javascript:;"); exit(); } //删除空文档 @@ -102,7 +102,7 @@ else if ($action == 'delnullbody') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->aid)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除$tdd条记录", "javascript:;"); exit(); } //修正缩略图错误 @@ -165,7 +165,7 @@ else if ($action == 'delnulltitle') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除$tdd条记录", "javascript:;"); exit(); } //修正缩略图错误 diff --git a/src/admin/dialog/select_images_post.php b/src/admin/dialog/select_images_post.php index 6c58a0b3..dcb716d8 100644 --- a/src/admin/dialog/select_images_post.php +++ b/src/admin/dialog/select_images_post.php @@ -59,7 +59,7 @@ if (!preg_match("#^(image|video|audio|application)#i", $mime)) { ShowMsg("仅支持媒体文件及应用程序上传", -1); exit; } -move_uploaded_file($imgfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($imgfile, $fullfilename) or die("上传文件到$fullfilename失败"); @unlink($imgfile); if (empty($resize)) { $resize = 0; diff --git a/src/admin/dialog/select_soft_post.php b/src/admin/dialog/select_soft_post.php index fe699514..a9884e8b 100644 --- a/src/admin/dialog/select_soft_post.php +++ b/src/admin/dialog/select_soft_post.php @@ -28,7 +28,7 @@ $cfg_softtype = $cfg_softtype; $cfg_softtype = str_replace('||', '|', $cfg_softtype); $uploadfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $uploadfile_name)); if (!preg_match("#\.(".$cfg_softtype.")#i", $uploadfile_name)) { - ShowMsg("您上传的{$uploadmbtype}扩展名已被系统禁止", "-1"); + ShowMsg("您上传的{$uploadmbtype}扩展名已被系统禁止", "-1"); exit(); } $nowtme = time(); @@ -73,7 +73,7 @@ if (!preg_match("#^(image|video|audio|application)#i", $mime)) { ShowMsg("仅支持媒体文件及应用程序上传", -1); exit; } -move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); @unlink($uploadfile); if ($uploadfile_type == 'application/x-shockwave-flash') { $mediatype = 2; diff --git a/src/admin/dialog/select_templets_post.php b/src/admin/dialog/select_templets_post.php index 91b1945d..e2759240 100644 --- a/src/admin/dialog/select_templets_post.php +++ b/src/admin/dialog/select_templets_post.php @@ -34,7 +34,7 @@ if ($filename == '' || !preg_match("#\.(".$cfg_txttype.")#i", $filename)) { exit(); } $fullfilename = $cfg_basedir.$activepath."/".$filename; -move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); @unlink($uploadfile); ShowMsg("成功上传文件", "select_templets.php?comeback=".urlencode($filename)."&f=$f&activepath=".urlencode($activepath)."&d=".time()); exit(); diff --git a/src/admin/diy_edit.php b/src/admin/diy_edit.php index c68010e0..369b2fc2 100644 --- a/src/admin/diy_edit.php +++ b/src/admin/diy_edit.php @@ -35,7 +35,7 @@ if ($dopost == "save") { $win->AddHidden("job", "yes"); $win->AddHidden("dopost", $dopost); $win->AddHidden("diyid", $diyid); - $win->AddTitle("删除自定义表单包括数据,您确定要删除".$row['name']."自定义表单吗"); + $win->AddTitle("删除自定义表单包括数据,您确定要删除".$row['name']."自定义表单吗"); $winform = $win->GetWindow("ok"); $win->Display(); exit(); diff --git a/src/admin/erraddsave.php b/src/admin/erraddsave.php index ea7b2990..d0f20a46 100644 --- a/src/admin/erraddsave.php +++ b/src/admin/erraddsave.php @@ -78,7 +78,7 @@ if ($dopost == "delete") { $win->AddHidden("fmdo", "yes"); $win->AddHidden("dopost", $dopost); $win->AddHidden("id", $id); - $win->AddTitle("您确定要删除$id错误提示吗"); + $win->AddTitle("您确定要删除$id错误提示吗"); $winform = $win->GetWindow("ok"); $win->Display(); exit(); diff --git a/src/admin/feedback_edit.php b/src/admin/feedback_edit.php index 1d54a9b0..def12503 100644 --- a/src/admin/feedback_edit.php +++ b/src/admin/feedback_edit.php @@ -22,7 +22,7 @@ if ($dopost == 'edit') { $adminmsg = str_replace(">", ">", $adminmsg); $adminmsg = str_replace(" ", "  ", $adminmsg); $adminmsg = str_replace("\r\n", "
    \n", $adminmsg); - $msg = $msg."
    \n"."管理员回复:$adminmsg\n"; + $msg = $msg."
    \n"."管理员回复:$adminmsg\n"; } $query = "UPDATE `#@__feedback` SET username='$username',msg='$msg',ischeck=1 WHERE id=$id"; $dsql->ExecuteNoneQuery($query); diff --git a/src/admin/file_class.php b/src/admin/file_class.php index fc5fe2f9..de563616 100644 --- a/src/admin/file_class.php +++ b/src/admin/file_class.php @@ -84,7 +84,7 @@ class FileManagement ShowMsg("成功移动文件", "file_manage_main.php?activepath=$mpath", 0, 1000); return 1; } else { - ShowMsg("移动文件$oldfile>$truepath/$mfile失败,某个位置权限不足", "file_manage_main.php?activepath=$mpath", 0, 1000); + ShowMsg("移动文件$oldfile - $truepath/$mfile失败,某个位置权限不足", "file_manage_main.php?activepath=$mpath", 0, 1000); return 0; } } else { diff --git a/src/admin/file_manage_control.php b/src/admin/file_manage_control.php index 3e540648..5075af16 100644 --- a/src/admin/file_manage_control.php +++ b/src/admin/file_manage_control.php @@ -91,7 +91,7 @@ else if ($fmdo == "upload") { $j++; } } - ShowMsg("成功上传$j个文件到$activepath", "file_manage_main.php?activepath=$activepath"); + ShowMsg("成功上传$j个文件到$activepath", "file_manage_main.php?activepath=$activepath"); exit(); } //空间检查 diff --git a/src/admin/file_manage_view.php b/src/admin/file_manage_view.php index a2909e5e..3ced4ee7 100644 --- a/src/admin/file_manage_view.php +++ b/src/admin/file_manage_view.php @@ -75,9 +75,9 @@ else if ($fmdo == "del") { $win->AddHidden("activepath", $activepath); $win->AddHidden("filename", $filename); if (@is_dir($cfg_basedir.$activepath."/$filename")) { - $msg = ""; + $msg = ""; } else { - $msg = ""; + $msg = ""; } $win->AddTitle("删除文件确认"); $win->AddMsgItem($msg); diff --git a/src/admin/friendlink_add.php b/src/admin/friendlink_add.php index aade9465..31349918 100644 --- a/src/admin/friendlink_add.php +++ b/src/admin/friendlink_add.php @@ -34,7 +34,7 @@ if ($dopost == "add") { ShowMsg("非图片格式文件,无法正常上传", -1); exit; } - move_uploaded_file($logoimg, $cfg_basedir.$imgurl) or die("复制文件到".$cfg_basedir.$imgurl."失败"); + move_uploaded_file($logoimg, $cfg_basedir.$imgurl) or die("复制文件到".$cfg_basedir.$imgurl."失败"); @unlink($logoimg); } else { $imgurl = $logo; diff --git a/src/admin/friendlink_edit.php b/src/admin/friendlink_edit.php index e46bed29..ae17e451 100644 --- a/src/admin/friendlink_edit.php +++ b/src/admin/friendlink_edit.php @@ -58,7 +58,7 @@ if ($dopost == "delete") { } $logoimg_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $logoimg_name)); $fullfilename = DEDEROOT.'static/flink/'.$logoimg_name; - move_uploaded_file($logoimg, $fullfilename) or die("上传文件到$fullfilename失败"); + move_uploaded_file($logoimg, $fullfilename) or die("上传文件到$fullfilename失败"); @unlink($logoimg); $logo = $cfg_cmspath.'/static/flink/'.$logoimg_name; } diff --git a/src/admin/makehtml_all.php b/src/admin/makehtml_all.php index 38930ad6..1a725778 100644 --- a/src/admin/makehtml_all.php +++ b/src/admin/makehtml_all.php @@ -82,7 +82,7 @@ if ($action == '') { } } } - $fp = fopen($mkcachefile, 'w') or die("无法写入缓存文件{$mkcachefile}所以无法更新栏目"); + $fp = fopen($mkcachefile, 'w') or die("无法写入缓存文件{$mkcachefile}所以无法更新栏目"); if (count($typeidsok) > 0) { fwrite($fp, "<"."?php\r\n"); $i = -1; diff --git a/src/admin/makehtml_archives_action.php b/src/admin/makehtml_archives_action.php index b1579707..3aad7f30 100644 --- a/src/admin/makehtml_archives_action.php +++ b/src/admin/makehtml_archives_action.php @@ -80,7 +80,7 @@ $ttime = number_format(($ttime / 60), 2); //返回提示信息 $tjlen = $totalnum > 0 ? ceil(($tjnum / $totalnum) * 100) : 100; $tjsta = "
    $tjlen%
    "; -$tjsta .= "更新文档[id:".($startdd + $pagesize)."],用时{$ttime}分钟,完成更新文档总数$tjlen%"; +$tjsta .= "更新文档[id:".($startdd + $pagesize)."],用时{$ttime}分钟,完成更新文档总数$tjlen%"; //速度测试 if ($tjnum < $totalnum) { $nurl = "makehtml_archives_action.php?endid=$endid&startid=$startid&typeid=$typeid"; @@ -90,10 +90,10 @@ if ($tjnum < $totalnum) { exit(); } else { if ($typeid != '') { - ShowMsg("更新文档$totalnum,用时{$ttime}分钟,开始更新栏目", "makehtml_list_action.php?typeid=$typeid&uptype=all&maxpagesize=50&upnext=1"); + ShowMsg("更新文档$totalnum,用时{$ttime}分钟,开始更新栏目", "makehtml_list_action.php?typeid=$typeid&uptype=all&maxpagesize=50&upnext=1"); } else { if ($uptype == '') { - ShowMsg("更新文档$totalnum,用时{$ttime}分钟,完成所有文档更新", "javascript:;"); + ShowMsg("更新文档$totalnum,用时{$ttime}分钟,完成所有文档更新", "javascript:;"); } else { ShowMsg("完成所有文档更新,开始更新首页", "makehtml_all.php?action=make&step=3&uptype=$uptype&mkvalue=$mkvalue"); } diff --git a/src/admin/makehtml_freelist_action.php b/src/admin/makehtml_freelist_action.php index 53b236c1..a1474805 100644 --- a/src/admin/makehtml_freelist_action.php +++ b/src/admin/makehtml_freelist_action.php @@ -54,10 +54,10 @@ if ($nextpage == $totalpage) { } else { if ($finishType) { $gourl = "makehtml_freelist_action.php?maxpagesize=$maxpagesize&startid=$startid&endid=$endid&pageno=$nextpage"; - ShowMsg("更新列表".$tid.",继续更新列表", $gourl, 0, 100); + ShowMsg("更新列表".$tid.",继续更新列表", $gourl, 0, 100); } else { $gourl = "makehtml_freelist_action.php?mkpage=$mkpage&maxpagesize=$maxpagesize&startid=$startid&endid=$endid&pageno=$pageno"; - ShowMsg("更新列表".$tid.",继续更新列表", $gourl, 0, 100); + ShowMsg("更新列表".$tid.",继续更新列表", $gourl, 0, 100); } } $dsql->ExecuteNoneQuery("UPDATE `#@__freelist` SET nodefault='1' WHERE aid='$startid';"); diff --git a/src/admin/makehtml_taglist_action.php b/src/admin/makehtml_taglist_action.php index 0d431b9b..bd7f3cdb 100644 --- a/src/admin/makehtml_taglist_action.php +++ b/src/admin/makehtml_taglist_action.php @@ -80,7 +80,7 @@ if (is_array($tag) && count($tag) > 0) { $query = "UPDATE `#@__tagindex` SET mktime=uptime WHERE id='$ctagid' "; $dsql->ExecuteNoneQuery($query); $reurl .= '/'.$ctagid; - ShowMsg("更新标签".$tag['tag']."点击浏览", "javascript:;"); + ShowMsg("更新标签".$tag['tag'].",点击浏览", "javascript:;"); } exit(); } else { @@ -93,12 +93,12 @@ if (is_array($tag) && count($tag) > 0) { $nextpage = 0; } $gourl = "makehtml_taglist_action.php?maxpagesize=$maxpagesize&tagid=$tagid&pageno=$nextpage&upall=$upall&ctagid=$ctagid&startid=$startid&endid=$endid&mktime=$mktime"; - ShowMsg("更新标签".$tag['tag'].",继续更新标签", $gourl, 0, 100); + ShowMsg("更新标签".$tag['tag'].",继续更新标签", $gourl, 0, 100); exit(); } else { //继续当前这个 $gourl = "makehtml_taglist_action.php?mkpage=$mkpage&maxpagesize=$maxpagesize&tagid=$tagid&pageno=$pageno&upall=$upall&ctagid=$ctagid&startid=$startid&endid=$endid&mktime=$mktime"; - ShowMsg("更新标签".$tag['tag'].",继续更新标签", $gourl, 0, 100); + ShowMsg("更新标签".$tag['tag'].",继续更新标签", $gourl, 0, 100); exit(); } } diff --git a/src/admin/media_add.php b/src/admin/media_add.php index 6156852b..770d2605 100644 --- a/src/admin/media_add.php +++ b/src/admin/media_add.php @@ -85,7 +85,7 @@ if ($dopost == "upload") { $dsql->ExecuteNoneQuery($inquery); } } - ShowMsg("成功上传{$okdd}个文件", "media_main.php"); + ShowMsg("成功上传{$okdd}个文件", "media_main.php"); exit(); } include DedeInclude('templets/media_add.htm'); diff --git a/src/admin/member_do.php b/src/admin/member_do.php index a078c5bc..bcfe750a 100644 --- a/src/admin/member_do.php +++ b/src/admin/member_do.php @@ -66,8 +66,8 @@ if ($dopost == "delmember") { $win->AddHidden("id", $id); $win->AddHidden("randcode", $randcode); $win->AddHidden("safecode", $safecode); - $win->AddTitle("您确定要删除id".$id."会员吗"); - $win->AddMsgItem(""); + $win->AddTitle("您确定要删除id".$id."会员吗"); + $win->AddMsgItem(""); $winform = $win->GetWindow("ok"); $win->Display(); } else if ($dopost == "delmembers") { @@ -113,8 +113,8 @@ if ($dopost == "delmember") { $win->AddHidden("id", $id); $win->AddHidden("randcode", $randcode); $win->AddHidden("safecode", $safecode); - $win->AddTitle("您确定要删除id".$id."会员吗"); - $win->AddMsgItem(""); + $win->AddTitle("您确定要删除id".$id."会员吗"); + $win->AddMsgItem(""); $winform = $win->GetWindow("ok"); $win->Display(); } diff --git a/src/admin/member_toadmin.php b/src/admin/member_toadmin.php index d1e710f3..33524370 100644 --- a/src/admin/member_toadmin.php +++ b/src/admin/member_toadmin.php @@ -71,7 +71,7 @@ if ($dopost == "toadmin") { $floginid = $cuserLogin->getUserName(); $fromid = $cuserLogin->getUserID(); $subject = "恭喜您已经成功提升管理员"; - $message = "亲爱的会员{$userid},您已经成功提升为{$row['typename']},具体操作权限请同网站超级管理员联系"; + $message = "尊敬的{$userid}会员,您已经成功提升为{$row['typename']},具体操作权限请同网站超级管理员联系"; $sendtime = $writetime = time(); $inquery = "INSERT INTO `#@__member_pms` (`floginid`,`fromid`,`toid`,`tologinid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`) VALUES ('$floginid','$fromid','$id','$userid','inbox','$subject','$sendtime','$writetime','0','0','$message'); "; $dsql->ExecuteNoneQuery($inquery); diff --git a/src/admin/module_main.php b/src/admin/module_main.php index a6f65839..b34cbe58 100644 --- a/src/admin/module_main.php +++ b/src/admin/module_main.php @@ -36,7 +36,7 @@ function ReWriteConfigAuto() global $dsql; $configfile = DEDEDATA.'/config.cache.inc.php'; if (!is_writeable($configfile)) { - echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; + echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; exit(); } $fp = fopen($configfile, 'w'); @@ -203,7 +203,7 @@ if ($action == '') { exit(); } else if ($action == 'setupstart') { if (!is_writeable($mdir)) { - ShowMsg("目录{$mdir}不支持写入,这导致程序安装没法正常创建", "-1"); + ShowMsg("目录{$mdir}不支持写入,这导致程序安装没法正常创建", "-1"); exit(); } $dm = new DedeModule($mdir); @@ -303,7 +303,7 @@ if ($action == '') { } else if ($action == 'delok') { $dm = new DedeModule($mdir); $modfile = $mdir."/".$dm->GetHashFile($hash); - unlink($modfile) or die("删除文件{$modfile}失败"); + unlink($modfile) or die("删除文件{$modfile}失败"); ShowMsg("成功删除一个模块文件", "module_main.php"); exit(); } else if ($action == 'uninstall') { diff --git a/src/admin/module_upload.php b/src/admin/module_upload.php index d32ffe78..3beda2e6 100644 --- a/src/admin/module_upload.php +++ b/src/admin/module_upload.php @@ -24,7 +24,7 @@ if ($action == 'upload') { } else { include_once(DEDEINC."/libraries/zip.class.php"); $tmpfilename = $mdir.'/'.ExecTime().mt_rand(10000, 50000).'.tmp'; - move_uploaded_file($upfile, $tmpfilename) or die("上传文件移动到{$tmpfilename}时失败,请检查{$mdir}目录是否有写入权限"); + move_uploaded_file($upfile, $tmpfilename) or die("上传文件移动到{$tmpfilename}时失败,请检查{$mdir}目录是否有写入权限"); $dm = new DedeModule($mdir); $infos = $dm->GetModuleInfo($tmpfilename, 'file'); if (empty($infos['hash'])) { diff --git a/src/admin/mychannel_edit.php b/src/admin/mychannel_edit.php index 7cb2b03a..de5be784 100644 --- a/src/admin/mychannel_edit.php +++ b/src/admin/mychannel_edit.php @@ -51,7 +51,7 @@ if ($dopost == "show") { $wecome_info = "文档模型管理 - 复制文档模型"; $win = new OxWindow(); $win->Init("mychannel_edit.php", "js/blank.js", "post"); - $win->AddTitle("复制文档模型:".$row['typename'].""); + $win->AddTitle("复制文档模型:".$row['typename'].""); $win->AddHidden("cid", $id); $win->AddHidden("id", $id); $win->AddHidden("dopost", 'copysave'); @@ -99,7 +99,7 @@ if ($dopost == "show") { $wecome_info = "文档模型管理 - 导出文档模型规则"; $win = new OxWindow(); $win->Init(); - $win->AddTitle("导出{$row['typename']}文档模型规则"); + $win->AddTitle("导出{$row['typename']}文档模型规则"); $winform = $win->GetWindow("hand", ""); $win->Display(); exit(); @@ -156,7 +156,7 @@ if ($dopost == "show") { $row = $dsql->GetOne("SELECT * FROM `#@__channeltype` WHERE nid='{$fields['nid']}' "); if (is_array($row)) { GotoStaMsg(" - + @@ -277,7 +277,7 @@ if ($dopost == "show") { } $trueTable = str_replace("#@__", $cfg_dbprefix, $addtable); if (!$dsql->IsTable($trueTable)) { - ShowMsg("系统找不到您所指定的$trueTable表", "-1"); + ShowMsg("系统找不到您所指定的$trueTable表", "-1"); exit(); } $dsql->ExecuteNoneQuery($query); @@ -290,7 +290,7 @@ if ($dopost == "show") { $wecome_info = "文档模型管理 - 模型应用模板"; $win = new OxWindow(); $win->Init("", "js/blank.js", ""); - $win->AddTitle("栏目".$row['typename']."默认模板文件说明"); + $win->AddTitle("栏目".$row['typename']."默认模板文件说明"); $defaulttemplate = $cfg_templets_dir.'/'.$cfg_df_style; $msg = ""); $winform = $win->GetWindow("ok"); $win->Display(); diff --git a/src/admin/soft_add.php b/src/admin/soft_add.php index 981805c1..7220d82f 100644 --- a/src/admin/soft_add.php +++ b/src/admin/soft_add.php @@ -63,7 +63,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_New')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}权限"); } //对保存的文档进行处理 if (empty($writer)) $writer = $cuserLogin->getUserName(); @@ -198,7 +198,7 @@ if ($dopost != 'save') { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } $daccess = isset($daccess) && is_numeric($daccess) ? $daccess : 0; diff --git a/src/admin/soft_edit.php b/src/admin/soft_edit.php index 42025a75..7f337fa7 100644 --- a/src/admin/soft_edit.php +++ b/src/admin/soft_edit.php @@ -89,7 +89,7 @@ if ($dopost != 'save') { exit(); } if (!TestPurview('a_Edit')) { - CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); + CheckCatalog($typeid, "您没有操作栏目{$typeid}文档权限"); } //对保存的文档进行处理 $pubdate = GetMkTime($pubdate); diff --git a/src/admin/sys_admin_user_edit.php b/src/admin/sys_admin_user_edit.php index f5d0204b..75f69d03 100644 --- a/src/admin/sys_admin_user_edit.php +++ b/src/admin/sys_admin_user_edit.php @@ -51,12 +51,12 @@ if ($dopost == 'saveedit') { if ($olduserid !== $userid) { $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE userid LIKE '$userid' "); if (is_array($row)) { - ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); + ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); exit(); } $row = $dsql->GetOne("SELECT id FROM `#@__admin` WHERE userid LIKE '$userid' "); if (is_array($row)) { - ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); + ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); exit(); } $usql = ",userid='$userid'"; @@ -86,8 +86,8 @@ if ($dopost == 'saveedit') { $win->AddHidden("randcode", $randcode); $win->AddHidden("safecode", $safecode); $win->AddHidden("id", $id); - $win->AddMsgItem(""); - $win->AddMsgItem(""); + $win->AddMsgItem(""); + $win->AddMsgItem(""); $winform = $win->GetWindow("ok"); $win->Display(); exit(); diff --git a/src/admin/sys_data.php b/src/admin/sys_data.php index 306c82d5..c843d8a8 100644 --- a/src/admin/sys_data.php +++ b/src/admin/sys_data.php @@ -41,9 +41,9 @@ else if ($dopost == "opimize") { } else { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); if ($rs) { - echo "执行优化表$tablename完成
    "; + echo "执行优化表$tablename完成"; } else { - echo "执行优化表$tablename失败,原因是:".$dsql->GetError(); + echo "
    执行优化表$tablename失败,原因是:".$dsql->GetError(); } } echo ''; @@ -57,9 +57,9 @@ else if ($dopost == "repair") { } else { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`"); if ($rs) { - echo "修复表$tablename完成
    "; + echo "修复表$tablename完成"; } else { - echo "修复表$tablename失败,原因是:".$dsql->GetError(); + echo "
    修复表$tablename失败,原因是:".$dsql->GetError(); } } echo ''; diff --git a/src/admin/sys_data_replace.php b/src/admin/sys_data_replace.php index c03cb5a9..13459adf 100644 --- a/src/admin/sys_data_replace.php +++ b/src/admin/sys_data_replace.php @@ -23,7 +23,7 @@ else if ($action == 'getfields') { AjaxHead(); $dsql->GetTableFields($exptable); echo "
    "; - echo "

    ".$exptable."含有的字段:

    "; + echo "

    表".$exptable."含有的字段:

    "; while ($row = $dsql->GetFieldObject()) { echo "name}')\">".$row->name."\r\n"; } @@ -79,7 +79,7 @@ else if ($action == 'apply') { } } $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`"); - ShowMsg("共找到$tt条记录,成功替换了$oo条", "javascript:;"); + ShowMsg("共找到$tt条记录,成功替换了$oo条", "javascript:;"); exit(); } } diff --git a/src/admin/sys_info.php b/src/admin/sys_info.php index 2ca3e073..9f3b0ec5 100644 --- a/src/admin/sys_info.php +++ b/src/admin/sys_info.php @@ -17,7 +17,7 @@ function ReWriteConfig() { global $dsql, $configfile; if (!is_writeable($configfile)) { - echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; + echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; exit(); } $fp = fopen($configfile, 'w'); @@ -86,7 +86,7 @@ else if ($dopost == 'add') { exit(); } if (!is_writeable($configfile)) { - ShowMsg("成功保存变量,但由于$configfile无法写入,因此不能更新配置文件", "sys_info.php?gp=$vargroup"); + ShowMsg("成功保存变量,但由于$configfile无法写入,因此不能更新配置文件", "sys_info.php?gp=$vargroup"); exit(); } else { ReWriteConfig(); @@ -115,8 +115,8 @@ EOT; $dsql->Execute(); while ($row = $dsql->GetArray()) { $bgcolor = ($i++ % 2 == 0) ? "#f5f5f5" : "#ffffff"; - $row['info'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['info']); - $row['varname'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['varname']); + $row['info'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['info']); + $row['varname'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['varname']); ?>
    diff --git a/src/admin/sys_info_mark.php b/src/admin/sys_info_mark.php index 1165a3ed..bab93210 100644 --- a/src/admin/sys_info_mark.php +++ b/src/admin/sys_info_mark.php @@ -58,7 +58,7 @@ if ($action == "save") { } $configstr .= "\$photo_markimg = '{$photo_markimg}';\r\n"; $configstr = "<"."?php\r\n".$configstr."?".">\r\n"; - $fp = fopen($ImageWaterConfigFile, "w") or die("写入文件$ImageWaterConfigFile失败,请检查权限"); + $fp = fopen($ImageWaterConfigFile, "w") or die("写入文件$ImageWaterConfigFile失败,请检查权限"); fwrite($fp, $configstr); fclose($fp); echo "\r\n"; diff --git a/src/admin/sys_sql_query.php b/src/admin/sys_sql_query.php index 01f98350..97e4ae13 100644 --- a/src/admin/sys_sql_query.php +++ b/src/admin/sys_sql_query.php @@ -35,8 +35,8 @@ else if ($dopost == "opimize") { echo "没有指定表名"; } else { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); - if ($rs) echo "执行优化表$tablename完成
    "; - else echo "执行优化表$tablename失败,原因是:".$dsql->GetError(); + if ($rs) echo "执行优化表$tablename完成"; + else echo "
    执行优化表$tablename失败,原因是:".$dsql->GetError(); } exit(); } @@ -48,9 +48,9 @@ else if ($dopost == "opimizeAll") { while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `{$row[0]}`"); if ($rs) { - echo "优化表{$row[0]}完成
    "; + echo "优化表{$row[0]}完成"; } else { - echo "优化表{$row[0]}失败,原因是: ".$dsql->GetError()."
    "; + echo "
    优化表{$row[0]}失败,原因是: ".$dsql->GetError(); } } exit(); @@ -62,8 +62,8 @@ else if ($dopost == "repair") { echo "没有指定表名"; } else { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`"); - if ($rs) echo "修复表$tablename完成
    "; - else echo "修复表$tablename失败,原因是:".$dsql->GetError(); + if ($rs) echo "修复表$tablename完成"; + else echo "
    修复表$tablename失败,原因是:".$dsql->GetError(); } exit(); } @@ -75,9 +75,9 @@ else if ($dopost == "repairAll") { while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `{$row[0]}`"); if ($rs) { - echo "修复表{$row[0]}完成
    "; + echo "修复表{$row[0]}完成"; } else { - echo "修复表{$row[0]}失败,原因是: ".$dsql->GetError()."

    "; + echo "
    修复表{$row[0]}失败,原因是: ".$dsql->GetError(); } } exit(); @@ -96,9 +96,9 @@ else if ($dopost == "query") { $dsql->SetQuery($sqlquery); $dsql->Execute(); if ($dsql->GetTotalRow() <= 0) { - echo "运行SQL:{$sqlquery},无返回记录
    "; + echo "运行SQL:{$sqlquery}无返回记录
    "; } else { - echo "运行SQL:{$sqlquery},共有".$dsql->GetTotalRow()."条记录,最大返回100条
    "; + echo "运行SQL:{$sqlquery}共有".$dsql->GetTotalRow()."条记录,最大返回100条"; } $j = 0; while ($row = $dsql->GetArray()) { @@ -106,11 +106,11 @@ else if ($dopost == "query") { if ($j > 100) { break; } - echo "
    "; - echo "记录:$j"; - echo "
    "; + echo "
    "; + echo "记录:$j"; + echo "
    "; foreach ($row as $k => $v) { - echo "{$k}:{$v}
    \r\n"; + echo "{$k}:{$v}
    \r\n"; } } exit(); @@ -131,15 +131,15 @@ else if ($dopost == "query") { if ($errCode == "") { $i++; } else { - $nerrCode .= "执行$q出错,错误提示:".$errCode."
    "; + $nerrCode .= "执行$q出错,错误提示:".$errCode.""; } } - echo "成功执行{$i}个SQL语句
    "; + echo "成功执行{$i}个SQL语句"; echo $nerrCode; } else { $dsql->ExecuteNoneQuery($sqlquery); $nerrCode = trim($dsql->GetError()); - echo "成功执行1个SQL语句
    "; + echo "成功执行1个SQL语句"; echo $nerrCode; } exit(); diff --git a/src/admin/tag_test_action.php b/src/admin/tag_test_action.php index 82474093..5ac3e88d 100644 --- a/src/admin/tag_test_action.php +++ b/src/admin/tag_test_action.php @@ -26,7 +26,7 @@ if ($typeid > 0) $pv = new PartView($typeid); else $pv = new PartView(); $pv->SetTemplet($partcode, "string"); if ($showsource == "" || $showsource == "yes") { - echo "
    ".dede_htmlspecialchars($partcode)."
    "; + echo "
    ".dede_htmlspecialchars($partcode)."
    "; echo "
    "; } $pv->Display(); diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index 5b9001ab..0795bfba 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -340,7 +340,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/archives_edit.htm b/src/admin/templets/archives_edit.htm index e81642a2..1cd34393 100644 --- a/src/admin/templets/archives_edit.htm +++ b/src/admin/templets/archives_edit.htm @@ -227,7 +227,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/article_edit.htm b/src/admin/templets/article_edit.htm index b5bba5de..5a6cd554 100644 --- a/src/admin/templets/article_edit.htm +++ b/src/admin/templets/article_edit.htm @@ -226,7 +226,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/makehtml_taglist.htm b/src/admin/templets/makehtml_taglist.htm index b1a9a677..2247905e 100644 --- a/src/admin/templets/makehtml_taglist.htm +++ b/src/admin/templets/makehtml_taglist.htm @@ -26,7 +26,10 @@ 0) {$row = $dsql->GetOne("SELECT tag FROM `#@__tagindex` WHERE id = '$tagid' ");?> - + diff --git a/src/admin/templets/member_toadmin.htm b/src/admin/templets/member_toadmin.htm index e3ea60f1..25467748 100644 --- a/src/admin/templets/member_toadmin.htm +++ b/src/admin/templets/member_toadmin.htm @@ -71,7 +71,8 @@ diff --git a/src/admin/templets/module_edit.htm b/src/admin/templets/module_edit.htm index 2ddc5519..3ff8259b 100644 --- a/src/admin/templets/module_edit.htm +++ b/src/admin/templets/module_edit.htm @@ -23,7 +23,10 @@ - + diff --git a/src/admin/templets/module_main.htm b/src/admin/templets/module_main.htm index 6a29d40c..738691bc 100644 --- a/src/admin/templets/module_main.htm +++ b/src/admin/templets/module_main.htm @@ -58,7 +58,7 @@ diff --git a/src/admin/templets/module_make.htm b/src/admin/templets/module_make.htm index 48c49dc7..2732544c 100644 --- a/src/admin/templets/module_make.htm +++ b/src/admin/templets/module_make.htm @@ -40,7 +40,10 @@ - + diff --git a/src/admin/templets/soft_edit.htm b/src/admin/templets/soft_edit.htm index 6d03af17..d41abc0e 100644 --- a/src/admin/templets/soft_edit.htm +++ b/src/admin/templets/soft_edit.htm @@ -382,7 +382,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/spec_edit.htm b/src/admin/templets/spec_edit.htm index aa389c07..b771547f 100644 --- a/src/admin/templets/spec_edit.htm +++ b/src/admin/templets/spec_edit.htm @@ -313,7 +313,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/sys_admin_user_add.htm b/src/admin/templets/sys_admin_user_add.htm index 6fa5d936..299048d1 100644 --- a/src/admin/templets/sys_admin_user_add.htm +++ b/src/admin/templets/sys_admin_user_add.htm @@ -78,7 +78,8 @@ diff --git a/src/admin/templets/sys_admin_user_edit.htm b/src/admin/templets/sys_admin_user_edit.htm index 79b566f7..adb120fb 100644 --- a/src/admin/templets/sys_admin_user_edit.htm +++ b/src/admin/templets/sys_admin_user_edit.htm @@ -74,7 +74,8 @@ diff --git a/src/admin/templets/sys_data_replace.htm b/src/admin/templets/sys_data_replace.htm index f706b52a..5e03fb7f 100644 --- a/src/admin/templets/sys_data_replace.htm +++ b/src/admin/templets/sys_data_replace.htm @@ -34,7 +34,7 @@ $dsql->SetQuery("Show Tables"); $dsql->Execute('t'); if ($dsql->GetError()!=''){ - echo "找不到您所指定的数据库 $dbname
    "; + echo "找不到您所指定的数据库$dbname"; echo $qbutton; } echo "SaveToHtml(); $i++; } - ShowMsg("成功更新$i个页面", '-1'); + ShowMsg("成功更新$i个页面", '-1'); exit(); } else if ($dopost == "mksel") { if (empty($ids)) { @@ -84,7 +84,7 @@ if ($dopost == "saveedit") { $sg->SaveToHtml(); $i++; } - ShowMsg("成功更新$i个页面", '-1'); + ShowMsg("成功更新$i个页面", '-1'); exit(); } } else if ($dopost == "view") { diff --git a/src/apps/download.php b/src/apps/download.php index fcee1dcb..25e84d57 100755 --- a/src/apps/download.php +++ b/src/apps/download.php @@ -165,7 +165,7 @@ else if ($open == 2) { } $memberTypes[0] = "游客或没权限会员"; $msgtitle = "您没有权限下载软件:{$arctitle}"; - $moremsg = "该软件需要等级".$memberTypes[$needRank]."才能下载,您目前等级是".$memberTypes[$cfg_ml->M_Rank]."升级会员"; + $moremsg = "该软件需要等级".$memberTypes[$needRank]."才能下载,您目前等级是".$memberTypes[$cfg_ml->M_Rank]." 升级会员"; include_once(DEDETEMPLATE.'/apps/view_msg.htm'); exit(); } @@ -178,7 +178,7 @@ else if ($open == 2) { //没有足够的金币 if ($needMoney > $cfg_ml->M_Money || $cfg_ml->M_Money == '') { $msgtitle = "您没有权限下载软件:{$arctitle}"; - $moremsg = "该软件需要消费".$needMoney."金币才能下载,您目前金币".$cfg_ml->M_Money."充值金币"; + $moremsg = "该软件需要消费".$needMoney."金币才能下载,您目前金币".$cfg_ml->M_Money." 充值金币"; include_once(DEDETEMPLATE.'/apps/view_msg.htm'); exit(0); } diff --git a/src/apps/list.php b/src/apps/list.php index 7fcf05b2..b0cd122e 100755 --- a/src/apps/list.php +++ b/src/apps/list.php @@ -48,7 +48,7 @@ if (isset($lv->Fields['corank']) && $lv->Fields['corank'] > 0) { } $memberTypes[0] = "游客或没权限会员"; $msgtitle = "您没有权限浏览栏目:{$lv->Fields['typename']}"; - $moremsg = "该栏目需要等级".$memberTypes[$lv->Fields['corank']]."才能浏览,您目前等级是".$memberTypes[$cfg_ml->M_Rank]."升级会员"; + $moremsg = "该栏目需要等级".$memberTypes[$lv->Fields['corank']]."才能浏览,您目前等级是".$memberTypes[$cfg_ml->M_Rank]." 升级会员"; include_once(DEDETEMPLATE.'/apps/view_msg_catalog.htm'); exit(); } diff --git a/src/apps/search.php b/src/apps/search.php index 8291595a..92d11ffe 100755 --- a/src/apps/search.php +++ b/src/apps/search.php @@ -70,7 +70,7 @@ $now = time(); $row = $dsql->GetOne("SELECT * FROM `#@__search_limits` WHERE ip='{$ip}'"); if (is_array($row)) { if (($now - $row['searchtime']) < $cfg_search_time) { - ShowMsg("搜索间隔为$cfg_search_time秒,请稍后重试", "-1"); + ShowMsg("搜索间隔为$cfg_search_time秒,请稍后重试", "-1"); exit; } $dsql->ExecuteNoneQuery("UPDATE `#@__search_limits` SET `searchtime`='{$now}' WHERE `ip`='{$ip}';"); diff --git a/src/apps/view.php b/src/apps/view.php index c7899039..f1165c5b 100755 --- a/src/apps/view.php +++ b/src/apps/view.php @@ -43,7 +43,7 @@ if ($needMoney > 0 || $needRank > 1) { } $memberTypes[0] = "游客或没权限会员"; $msgtitle = "您没有权限浏览文档:{$arctitle}"; - $moremsg = "该文档需要消费".$memberTypes[$needRank]."才能浏览,您目前等级是".$memberTypes[$cfg_ml->M_Rank].""; + $moremsg = "该文档需要消费".$memberTypes[$needRank]."才能浏览,您目前等级是".$memberTypes[$cfg_ml->M_Rank].""; include_once(DEDETEMPLATE.'/apps/view_msg.htm'); exit(); } @@ -54,8 +54,8 @@ if ($needMoney > 0 || $needRank > 1) { //未购买过此文档 if (!is_array($row)) { if ($cfg_ml->M_Money == '' || $needMoney > $cfg_ml->M_Money) { - $msgtitle = "您没有权限浏览文档:{$arctitle} "; - $moremsg = "该文档需要消费".$needMoney."金币才能浏览,您目前金币".$cfg_ml->M_Money."充值金币"; + $msgtitle = "您没有权限浏览文档:{$arctitle}"; + $moremsg = "该文档需要消费".$needMoney."金币才能浏览,您目前金币".$cfg_ml->M_Money." 充值金币"; include_once(DEDETEMPLATE.'/apps/view_msg.htm'); $arc->Close(); exit(); @@ -76,7 +76,7 @@ if ($needMoney > 0 || $needRank > 1) { } } $msgtitle = "扣金币购买阅读"; - $moremsg = "该文档需要消费".$needMoney."金币才能浏览,您目前金币".$cfg_ml->M_Money."确认阅读"; + $moremsg = "该文档需要消费".$needMoney."金币才能浏览,您目前金币".$cfg_ml->M_Money." 确认阅读"; include_once($cfg_basedir.$cfg_templets_dir."/apps/view_msg.htm"); $arc->Close(); exit(); diff --git a/src/install/install.html b/src/install/install.html index 66737878..f5220152 100644 --- a/src/install/install.html +++ b/src/install/install.html @@ -30,7 +30,7 @@ 0) {foreach($arrMsg as $msg){?>
    - +

    安装DedeV

    diff --git a/src/install/install.inc.php b/src/install/install.inc.php index f3135368..780f63be 100755 --- a/src/install/install.inc.php +++ b/src/install/install.inc.php @@ -60,7 +60,7 @@ function ReWriteConfigAuto() global $dsql; $configfile = DEDEDATA.'/config.cache.inc.php'; if (!is_writeable($configfile)) { - echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; + echo "配置文件{$configfile}不支持写入,无法修改系统配置参数"; //ClearAllLink(); exit(); } diff --git a/src/system/database/dedesqli.class.php b/src/system/database/dedesqli.class.php index 3694f0cf..f8f1b2fc 100755 --- a/src/system/database/dedesqli.class.php +++ b/src/system/database/dedesqli.class.php @@ -306,7 +306,7 @@ class DedeSqli } } if ($this->result[$id] === FALSE) { - $this->DisplayError(mysqli_error($this->linkID)."
    Error sql:".$this->queryString.""); + $this->DisplayError(mysqli_error($this->linkID)."
    Error sql:".$this->queryString.""); } } function Query($id = "me", $sql = '') diff --git a/src/system/database/dedesqlite.class.php b/src/system/database/dedesqlite.class.php index 95ff9c0e..42bd52e6 100755 --- a/src/system/database/dedesqlite.class.php +++ b/src/system/database/dedesqlite.class.php @@ -267,7 +267,7 @@ class DedeSqlite //echo $this->queryString."--{$queryTime}
    \r\n"; } if ($this->result[$id] === FALSE) { - $this->DisplayError($this->linkID->lastErrorMsg()."
    Error sql:".$this->queryString.""); + $this->DisplayError($this->linkID->lastErrorMsg()."
    Error sql:".$this->queryString.""); } } function Query($id = "me", $sql = '') diff --git a/src/system/dedemodule.class.php b/src/system/dedemodule.class.php index 34062677..2eafe809 100755 --- a/src/system/dedemodule.class.php +++ b/src/system/dedemodule.class.php @@ -148,7 +148,7 @@ class DedeModule $minfos['filesize'] = filesize($filename) / 1024; $minfos['filesize'] = number_format($minfos['filesize'], 2, '.', '').' Kb'; } - $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); + $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); $n = 0; while (!feof($fp)) { $n++; @@ -204,7 +204,7 @@ class DedeModule if ($ftype == 'file') $filename = $hash; else $filename = $this->modulesPath.'/'.$this->GetHashFile($hash); $filexml = ''; - $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); + $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); $start = 0; while (!feof($fp)) { $line = fgets($fp, 1024); @@ -236,7 +236,7 @@ class DedeModule $this->GetModuleInfo($hashcode, $ntype); $start = FALSE; $filename = $this->modulesPath.'/'.$this->GetHashFile($hashcode); - $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); + $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); $okdata = ''; while (!feof($fp)) { $line = fgets($fp, 1024); @@ -268,7 +268,7 @@ class DedeModule $filename = $hashcode."-{$ntype}.php"; $fname = $this->modulesPath.'/'.$filename; $filect = $this->GetSystemFile($hashcode, $ntype); - $fp = fopen($fname, 'w') or die("生成{$ntype}文件失败"); + $fp = fopen($fname, 'w') or die("生成{$ntype}文件失败"); fwrite($fp, $filect); fclose($fp); return $filename; @@ -309,7 +309,7 @@ class DedeModule */ function GetEncodeFile($filename, $isremove = FALSE) { - $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); + $fp = fopen($filename, 'r') or die("文件{$filename}不存在或不可读"); $str = @fread($fp, filesize($filename)); fclose($fp); if ($isremove) @unlink($filename); @@ -328,7 +328,7 @@ class DedeModule $dap = new DedeAttParse(); $filelists = array(); $modulefile = $this->modulesPath.'/'.$this->GetHashFile($hashcode); - $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); + $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); $i = 0; while (!feof($fp)) { $line = fgets($fp, 1024); @@ -357,7 +357,7 @@ class DedeModule else { $dap = new DedeAttParse(); $modulefile = $this->modulesPath.'/'.$this->GetHashFile($hashcode); - $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); + $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); $i = 0; $dirs = array(); while (!feof($fp)) { @@ -400,7 +400,7 @@ class DedeModule global $AdminBaseDir; $dap = new DedeAttParse(); $modulefile = $this->modulesPath.'/'.$this->GetHashFile($hashcode); - $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); + $fp = fopen($modulefile, 'r') or die("文件{$modulefile}不存在或不可读"); $i = 0; while (!feof($fp)) { $line = fgets($fp, 1024); @@ -427,7 +427,7 @@ class DedeModule } } if (!empty($filename)) { - $fw = fopen($filename, 'w') or die("写入文件{$filename}失败,请检查相关目录的权限"); + $fw = fopen($filename, 'w') or die("写入文件{$filename}失败,请检查相关目录的权限"); $ct = ''; while (!feof($fp)) { $l = fgets($fp, 1024); @@ -526,7 +526,7 @@ class DedeModule else if (preg_match("/Thumbs\.db/i", $f)) return; else $this->fileListNames[$f] = 1; if (!file_exists($filename)) { - ShowMsg("文件或文件夹{$filename}不存在,无法进行编译", "-1"); + ShowMsg("文件或文件夹{$filename}不存在,无法进行编译", "-1"); exit(); } if (is_dir($filename)) { diff --git a/src/system/helpers/upload.helper.php b/src/system/helpers/upload.helper.php index 5bf14d89..4050eb1e 100755 --- a/src/system/helpers/upload.helper.php +++ b/src/system/helpers/upload.helper.php @@ -154,7 +154,7 @@ if (!function_exists('MemberUploads')) { ShowMsg("仅支持媒体文件及应用程序上传", -1); exit; } - move_uploaded_file($GLOBALS[$upname], $cfg_basedir.$filename) or die("上传文件到{$filename}失败"); + move_uploaded_file($GLOBALS[$upname], $cfg_basedir.$filename) or die("上传文件到{$filename}失败"); @unlink($GLOBALS[$upname]); if (@filesize($cfg_basedir.$filename) > $GLOBALS['cfg_mb_upload_size'] * 1024) { @unlink($cfg_basedir.$filename); diff --git a/src/system/inc/inc_fun_funAdmin.php b/src/system/inc/inc_fun_funAdmin.php index 58e7222b..85aa3f17 100755 --- a/src/system/inc/inc_fun_funAdmin.php +++ b/src/system/inc/inc_fun_funAdmin.php @@ -104,7 +104,7 @@ function SpCreateDir($spath) $isok = ChmodAll($truepath, $cfg_dir_purview); } if (!$isok) { - echo "创建或修改目录".$truepath."失败"; + echo "创建或修改目录".$truepath."失败"; return false; } } diff --git a/src/system/memberlogin.class.php b/src/system/memberlogin.class.php index 8e178bbd..ee31be8b 100755 --- a/src/system/memberlogin.class.php +++ b/src/system/memberlogin.class.php @@ -539,11 +539,11 @@ class MemberLogin $sta .= "您目前等级是:".$row['membername']; $rs = $this->dsql->GetOne("SELECT id FROM `#@__admin` WHERE userid='".$this->M_LoginID."'"); if (!is_array($rs)) { - if ($this->M_Rank > 10 && $this->M_HasDay > 0) $sta .= ",剩余".$this->M_HasDay."天"; + if ($this->M_Rank > 10 && $this->M_HasDay > 0) $sta .= ",剩余".$this->M_HasDay."天"; elseif ($this->M_Rank > 10) $sta .= ",会员已到期"; } } - $sta .= ",积分{$this->M_Scores}分,金币{$this->M_Money}个,余额{$this->M_UserMoney}元"; + $sta .= ",积分{$this->M_Scores}分,金币{$this->M_Money}个,余额{$this->M_UserMoney}元"; return $sta; } //获取能够发布文档的栏目 diff --git a/src/user/album_add.php b/src/user/album_add.php index 4c7ff05e..42c3ea85 100755 --- a/src/user/album_add.php +++ b/src/user/album_add.php @@ -40,11 +40,11 @@ if (empty($dopost)) { //检查会员等级和类型限制 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("SELECT membername FROM `#@__arcrank` WHERE `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); exit(); } include(DEDEMEMBER."/templets/album_add.htm"); @@ -126,7 +126,7 @@ if (empty($dopost)) { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } else { $body = HtmlReplace($body, -1); diff --git a/src/user/archives_add.php b/src/user/archives_add.php index f1b730f2..e86a5d5b 100755 --- a/src/user/archives_add.php +++ b/src/user/archives_add.php @@ -32,11 +32,11 @@ if (empty($dopost)) { //检查会员等级和类型限制 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("Select membername From `#@__arcrank` where `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); exit(); } include(DEDEMEMBER."/templets/archives_add.htm"); @@ -98,7 +98,7 @@ if (empty($dopost)) { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } else { $inquery = "INSERT INTO `{$addtable}` (aid,typeid,userip,redirecturl,templet{$inadd_f}) VALUES ('$arcID','$typeid','$userip','',''{$inadd_v})"; diff --git a/src/user/archives_sg_add.php b/src/user/archives_sg_add.php index f778c7d2..27d6a55e 100755 --- a/src/user/archives_sg_add.php +++ b/src/user/archives_sg_add.php @@ -32,11 +32,11 @@ if (empty($dopost)) { //检查会员等级和类型限制 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("SELECT membername FROM `#@__arcrank` WHERE `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); exit(); } include(DEDEMEMBER."/templets/archives_sg_add.htm"); @@ -72,11 +72,11 @@ if (empty($dopost)) { //检查栏目设定的投稿许可权限 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("Select membername From #@__arcrank where `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } //文档的默认状态 @@ -133,7 +133,7 @@ if (empty($dopost)) { $addtable = trim($cInfos['addtable']); if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } else { $litpic = isset($litpic)? HtmlReplace($litpic, 1) : ''; diff --git a/src/user/article_add.php b/src/user/article_add.php index ab41d09d..9936b0ec 100755 --- a/src/user/article_add.php +++ b/src/user/article_add.php @@ -28,11 +28,11 @@ if (empty($dopost)) { //检查会员等级和类型限制 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("SELECT membername FROM `#@__arcrank` WHERE `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); exit(); } include(DEDEMEMBER."/templets/article_add.htm"); @@ -89,7 +89,7 @@ if (empty($dopost)) { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } else { $inquery = "INSERT INTO `{$addtable}` (aid,typeid,userip,redirecturl,templet,body{$inadd_f}) VALUES ('$arcID','$typeid','$userip','','','$body'{$inadd_v})"; diff --git a/src/user/config.php b/src/user/config.php index ce0082d9..962ba0b2 100755 --- a/src/user/config.php +++ b/src/user/config.php @@ -198,10 +198,10 @@ function CheckRank($rank = 0, $money = 0) $myname = "注册会员"; } } - ShowMsg("需要$needname才能浏览本页面,您目前等级是$myname", "-1", 0, 5000); + ShowMsg("需要$needname才能浏览本页面,您目前等级是$myname", "-1", 0, 5000); exit(); } else if ($cfg_ml->M_Money < $money) { - ShowMsg("需要$money金币才能浏览本页面,您目前金币".$cfg_ml->M_Money."个", "-1", 0, 5000); + ShowMsg("需要$money金币才能浏览本页面,您目前金币".$cfg_ml->M_Money."个", "-1", 0, 5000); exit(); } } diff --git a/src/user/inc/archives_check.php b/src/user/inc/archives_check.php index 16e8cfa1..643660b4 100755 --- a/src/user/inc/archives_check.php +++ b/src/user/inc/archives_check.php @@ -34,11 +34,11 @@ if ($cInfos['issend'] != 1 || $cInfos['ispart'] != 0 || $cInfos['channeltype'] //检查栏目设定的投稿许可权限 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("SELECT membername FROM `#@__arcrank` WHERE `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } //文档的默认状态 diff --git a/src/user/index_do.php b/src/user/index_do.php index 52ecd176..3c0d7b69 100755 --- a/src/user/index_do.php +++ b/src/user/index_do.php @@ -154,7 +154,7 @@ if ($fmdo == 'sendMail') { } if (CheckUserID($userid, '', false) != 'ok') { ResetVdValue(); - ShowMsg("您输入的账号{$userid}已禁止", "index.php"); + ShowMsg("您输入的账号{$userid}已禁止", "index.php"); exit(); } if ($pwd == '') { diff --git a/src/user/reg_new.php b/src/user/reg_new.php index bce2af67..fa6c69ee 100755 --- a/src/user/reg_new.php +++ b/src/user/reg_new.php @@ -56,7 +56,7 @@ if ($step == 1) { //检测账号是否存在 $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE userid LIKE '$userid' "); if (is_array($row)) { - ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); + ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1"); exit(); } //会员的默认金币 diff --git a/src/user/resetpassword.php b/src/user/resetpassword.php index fa7d5025..c5c8acaa 100755 --- a/src/user/resetpassword.php +++ b/src/user/resetpassword.php @@ -33,7 +33,7 @@ if ($dopost == "") { showmsg('请输入正确的邮箱格式', '-1'); exit; } else if (CheckUserID($userid, '', false) != 'ok') { - ShowMsg("您输入的账号{$userid}不合法", "-1"); + ShowMsg("您输入的账号{$userid}不合法", "-1"); exit(); } $member = member($mail, $userid); diff --git a/src/user/soft_add.php b/src/user/soft_add.php index 6fa0dde7..74e3527f 100755 --- a/src/user/soft_add.php +++ b/src/user/soft_add.php @@ -35,11 +35,11 @@ if (empty($dopost)) { //检查会员等级和类型限制 if ($cInfos['sendrank'] > $cfg_ml->M_Rank) { $row = $dsql->GetOne("SELECT membername FROM `#@__arcrank` where `rank`='".$cInfos['sendrank']."' "); - ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$row['membername']."才能在这个栏目发布文档", "-1", "0", 5000); exit(); } if ($cInfos['usertype'] != '' && $cInfos['usertype'] != $cfg_ml->M_MbType) { - ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); + ShowMsg("需要".$cInfos['usertype']."帐号才能在这个栏目发布文档", "-1", "0", 5000); exit(); } include(DEDEMEMBER."/templets/soft_add.htm"); @@ -139,7 +139,7 @@ if (empty($dopost)) { if (empty($addtable)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); - ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); + ShowMsg("没找到模型{$channelid}主表信息,无法完成操作", "javascript:;"); exit(); } $inQuery = "INSERT INTO `$addtable` (aid,typeid,filetype,language,softtype,accredit,os,softrank,officialUrl,officialDemo,softsize,softlinks,introduce,userip,templet,redirecturl,daccess,needmoney{$inadd_f}) VALUES ('$arcID','$typeid','$filetype','$language','$softtype','$accredit','$os','$softrank','$officialUrl','$officialDemo','$softsize','$urls','$body','$userip','','','0','$needmoney'{$inadd_v});"; From 544033f3151691c01e41e4e06701d85a39749d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 11:35:13 +0800 Subject: [PATCH 23/53] Update vote_main.htm --- src/admin/templets/vote_main.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/templets/vote_main.htm b/src/admin/templets/vote_main.htm index 38509e8a..933cd7b6 100644 --- a/src/admin/templets/vote_main.htm +++ b/src/admin/templets/vote_main.htm @@ -30,7 +30,7 @@
    - + - + "); -$winform = $win->GetWindow('ok'); -$win->Display(); -?> \ No newline at end of file diff --git a/src/admin/css/codemirror.css b/src/admin/css/codemirror.css index e356527c..a621931f 100644 --- a/src/admin/css/codemirror.css +++ b/src/admin/css/codemirror.css @@ -3,7 +3,7 @@ .CodeMirror { /* Set height, width, borders, and global font properties here */ font-family: monospace; - height: 400px; + height: 350px; color: black; direction: ltr; } diff --git a/src/admin/css/login.min.css b/src/admin/css/login.min.css index e4c2f91f..9f60796a 100644 --- a/src/admin/css/login.min.css +++ b/src/admin/css/login.min.css @@ -1 +1 @@ -body{line-height:1.6;letter-spacing:.6px;font-size:14px;font-family:Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif;color:#545b62;background:#f5f5f5}a{color:#545b62}a:hover{color:#ff8400;text-decoration:none}h2{line-height:1.2;font-size:24px;color:#393d49;font-weight:600}.btn,input,select{font-size:14px!important}.admin-head{padding:1rem 0;background:#fff}.admin-nav{height:36px;line-height:36px}.admin-nav-a{padding-right:30px}.dropdown-menu{min-width:8rem;font-size:14px}.dropdown-item{padding:0 1rem;height:30px;line-height:30px;font-size:14px;color:#545b62!important}.logo,.form-control{height:36px}.login-from{margin:5rem auto;width:500px}.login-box{padding:1.25rem;background:#fff}.login-box,.form-control,.btn-md,.alert,.rounded{border-radius:.5rem!important}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0!important;border-bottom-right-radius:0!important}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0!important;border-bottom-left-radius:0!important}#validateimg{border-radius:0 .5rem .5rem 0;cursor:pointer}#browsehappy{padding:1rem 30px;font-size:14px;color:#856404;background:#fff3cd}.browsehappy-close{float:right;font-size:14px;cursor:pointer}@media (max-width:760px){.admin-head{padding:1rem 15px}.admin-nav-a{display:none!important}.login-from{width:100%}} \ No newline at end of file +body{line-height:1.6;letter-spacing:0.6px;font-size:14px;font-family:Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif;color:#545b62;background:#f5f5f5}a{color:#545b62}a:hover{color:#ff8400;text-decoration:none}h2{line-height:1.2;font-size:24px;color:#393d49;font-weight:600}.btn,input,select{font-size:14px!important}.admin-head{padding:1rem 0;background:#fff}.admin-nav{height:36px;line-height:36px}.admin-nav-a{padding-right:30px}.dropdown-menu{min-width:8rem;font-size:14px}.dropdown-item{padding:0 1rem;height:30px;line-height:30px;font-size:14px;color:#545b62!important}.logo,.form-control{height:36px}.login-from{margin:5rem auto;width:500px}.login-box{padding:1.25rem;background:#fff}.login-box,.form-control,.btn-md,.alert,.rounded{border-radius:.5rem!important}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0!important;border-bottom-right-radius:0!important}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0!important;border-bottom-left-radius:0!important}#validateimg{border-radius:0 .5rem .5rem 0;cursor:pointer}#browsehappy{padding:1rem 30px;font-size:14px;color:#856404;background:#fff3cd}.browsehappy-close{float:right;font-size:14px;cursor:pointer}@media (max-width:760px){.admin-head{padding:1rem 15px}.admin-nav-a{display:none!important}.login-from{width:100%}} \ No newline at end of file diff --git a/src/admin/inc/inc_action_info.php b/src/admin/inc/inc_action_info.php index b62abeaf..fd83ec79 100644 --- a/src/admin/inc/inc_action_info.php +++ b/src/admin/inc/inc_action_info.php @@ -13,41 +13,34 @@ $cuserLogin = new userLogin(); //后台功能操作配置项 $actionSearch[0] = array( 'title' => '常用操作', - 'description' => '后台常用操作', 'soniterm' => array( 0 => array( 'title' => '网站栏目管理', - 'description' => '网站所有栏目管理', 'purview' => 't_List,t_AccList', 'linkurl' => 'catalog_main.php' ), 1 => array( 'title' => '待审核的文档', - 'description' => '所有文档模型发表未审核列表', 'purview' => 'a_Check,a_AccCheck', 'linkurl' => 'content_list.php?arcrank=-1' ), 2 => array( 'title' => '我发布的文档', - 'description' => '后台管理登录所发表的文档', 'purview' => 'a_List,a_AccList,a_MyList', 'linkurl' => 'content_list.php?mid=$cuserLogin->userID' ), 3 => array( 'title' => '标签管理', - 'description' => '网站所有标签管理', 'purview' => 'sys_Keyword', 'linkurl' => 'tags_main.php' ), 4 => array( 'title' => '评论管理', - 'description' => '网站所有评论管理', 'purview' => 'sys_Feedback', 'linkurl' => 'feedback_main.php' ), 5 => array( 'title' => '专题管理', - 'description' => '网站所有专题管理', 'purview' => 'spec_New', 'linkurl' => 'content_s_list.php' ), @@ -61,23 +54,14 @@ $actionSearch[0] = array( ); $actionSearch[2] = array( 'title' => '附件管理', - 'description' => '网站所有附件管理', 'soniterm' => array( 0 => array( - 'title' => '上传新文件', - 'description' => '上传图片、FLASH、视频音频、附件等其它附件', - 'purview' => '', - 'linkurl' => 'media_add.php' - ), - 1 => array( 'title' => '附件管理', - 'description' => '网站所有附件管理', 'purview' => 'sys_Upload,sys_MyUpload', 'linkurl' => 'media_main.php' ), - 2 => array( + 1 => array( 'title' => '文件管理器', - 'description' => '文件浏览式附件管理', 'purview' => 'plus_文件管理器', 'linkurl' => 'media_main.php?dopost=filemanager' ), @@ -85,41 +69,34 @@ $actionSearch[2] = array( ); $actionSearch[3] = array( 'title' => '文档模型', - 'description' => '所有文档模型管理', 'soniterm' => array( 0 => DEDEBIZ_SAFE_MODE? null : array( 'title' => '文档模型管理', - 'description' => '网站文档、图片、软件、专题、分类等模型管理', 'purview' => 'c_List', 'linkurl' => 'mychannel_main.php' ), 1 => array( 'title' => '文档单页管理', - 'description' => '创建和管理单页面', 'purview' => 'temp_One', 'linkurl' => 'templets_one.php' ), 2 => array( 'title' => '联动类型管理', - 'description' => '创建和管理所有联动类型', 'purview' => 'c_Stepseclect', 'linkurl' => 'stepselect_main.php?dopost=filemanager' ), 3 => array( 'title' => '自由列表管理', - 'description' => '创建不同的列表形式', 'purview' => 'c_List', 'linkurl' => 'freelist_main.php' ), 3 => array( 'title' => '自定义文档属性', - 'description' => '自定义文档属性管理', 'purview' => 'sys_Att', 'linkurl' => 'content_att.php' ), 4 => array( 'title' => '自定义表单管理', - 'description' => '创建和管理自定义表单', 'purview' => 'c_List', 'linkurl' => 'diy_main.php' ), @@ -127,41 +104,34 @@ $actionSearch[3] = array( ); $actionSearch[4] = array( 'title' => '批量维护', - 'description' => '网站数据维护', 'soniterm' => array( 0 => array( 'title' => '文档批量维护', - 'description' => '某个栏目或者全部栏目的文档进行批量审核文档、更新网页、移动文档、删除文档', 'purview' => 'sys_ArcBatch', 'linkurl' => 'content_batch_up.php' ), 1 => array( 'title' => '文档重复检测', - 'description' => '网站重复标题文档处理', 'purview' => 'sys_ArcBatch', 'linkurl' => 'article_test_same.php' ), 3 => array( 'title' => '文档关键词维护', - 'description' => '所有文档关键词批量维护', 'purview' => 'sys_Keyword', 'linkurl' => 'article_keywords_main.php' ), 4 => array( 'title' => '搜索关键词维护', - 'description' => '所有搜索关键词管理', 'purview' => 'sys_Keyword', 'linkurl' => 'search_keywords_main.php?dopost=filemanager' ), 5 => array( 'title' => '自动摘要分页', - 'description' => '没有填写描述的文档或没分页的文档的自动分页标识自动更新', 'purview' => 'sys_Keyword', 'linkurl' => 'article_description_main.php' ), 6 => DEDEBIZ_SAFE_MODE? null : array( 'title' => '数据库字段替换', - 'description' => '网站数据库字段批量替换', 'purview' => 'sys_ArcBatch', 'linkurl' => 'sys_data_replace.php' ), @@ -169,29 +139,24 @@ $actionSearch[4] = array( ); $actionSearch[5] = array( 'title' => '会员管理', - 'description' => '网站所有会员管理', 'soniterm' => array( 0 => array( 'title' => '所有会员列表', - 'description' => '所有会员修改删除,查看会员文档以及提升管理员', 'purview' => 'member_List', 'linkurl' => 'member_main.php' ), 1 => array( 'title' => '会员短信管理', - 'description' => '会员发送的短消息,其中包含群发短消息和对单个会员发送短消息两种', 'purview' => 'member_Type', 'linkurl' => 'member_pm.php' ), 2 => array( 'title' => '会员级别设置', - 'description' => '会员级别设置,通过不同会员的浏览权限来对会员级别进行一个扩展', 'purview' => 'member_Type', 'linkurl' => 'member_rank.php' ), 3 => array( 'title' => '积分头衔设置', - 'description' => '会员积分等级设置,根据活动积分对会员进行头衔管理', 'purview' => 'member_Type', 'linkurl' => 'member_scores.php' ), @@ -199,35 +164,29 @@ $actionSearch[5] = array( ); $actionSearch[6] = array( 'title' => '支付工具', - 'description' => '配置支付方式', 'soniterm' => array( 0 => array( 'title' => '积分产品管理', - 'description' => '网站积分产品管理,生成积分以及查看积分使用状态', 'purview' => 'sys_Data', 'linkurl' => 'cards_manage.php' ), 1 => array( 'title' => '积分产品分类', - 'description' => '网站积分产品分类,添加不同点数的积分产品类型', 'purview' => 'sys_Data', 'linkurl' => 'cards_type.php' ), 2 => array( 'title' => '会员消费记录', - 'description' => '会员消费记录,查看消费充值订单的付款情况', 'purview' => 'sys_Data', 'linkurl' => 'member_operations.php' ), 3 => array( 'title' => '会员等级分类', - 'description' => '会员等级分类划分,设置网站会员等级', 'purview' => 'sys_Data', 'linkurl' => 'member_type.php' ), 4 => array( 'title' => '支付接口设置', - 'description' => '网站支付接口配置', 'purview' => 'sys_Data', 'linkurl' => 'sys_payment.php' ), @@ -235,41 +194,34 @@ $actionSearch[6] = array( ); $actionSearch[7] = array( 'title' => '更新任务', - 'description' => '一键生成静态管理', 'soniterm' => array( 0 => array( 'title' => '更新网站', - 'description' => '生成所有静态页面', 'purview' => 'sys_MakeHtml', 'linkurl' => 'makehtml_all.php' ), 1 => array( 'title' => '更新首页', - 'description' => '生成网站首页面', 'purview' => 'sys_MakeHtml', 'linkurl' => 'makehtml_homepage.php' ), 2 => array( 'title' => '更新栏目', - 'description' => '生成栏目页面', 'purview' => 'sys_MakeHtml', 'linkurl' => 'makehtml_list.php' ), 3 => array( 'title' => '更新文档', - 'description' => '生成文档页面', 'purview' => 'sys_MakeHtml', 'linkurl' => 'makehtml_archives.php' ), 4 => array( 'title' => '更新专题', - 'description' => '生成专题页面', 'purview' => 'sys_MakeHtml', 'linkurl' => 'makehtml_spec.php' ), 5 => array( 'title' => '更新缓存', - 'description' => '更新栏目缓存、更新枚举缓存、清理文档调用缓存、清理过期会员浏览历史、删除过期会员短信', 'purview' => 'sys_ArcBatch', 'linkurl' => 'sys_cache_up.php' ), @@ -277,35 +229,29 @@ $actionSearch[7] = array( ); $actionSearch[8] = DEDEBIZ_SAFE_MODE? null : array( 'title' => '模板管理', - 'description' => '网站主题模板管理', 'soniterm' => array( 0 => array( 'title' => '默认模板管理', - 'description' => '网站主题模板文件管理', 'purview' => 'temp_All', 'linkurl' => 'templets_main.php' ), 1 => array( 'title' => '标签源码管理', - 'description' => '系统标签文件修改', 'purview' => 'temp_All', 'linkurl' => 'templets_tagsource.php' ), 2 => array( 'title' => '自定义宏标记', - 'description' => '所有自定义标记管理', 'purview' => 'temp_MyTag', 'linkurl' => 'mytag_main.php' ), 3 => array( 'title' => '智能标记向导', - 'description' => '根据需要生成相应的调用标签', 'purview' => 'temp_Other', 'linkurl' => 'mytag_tag_guide.php' ), 4 => array( 'title' => '全局标记测试', - 'description' => '全局标签调用测试', 'purview' => 'temp_Test', 'linkurl' => 'tag_test.php' ), @@ -313,77 +259,54 @@ $actionSearch[8] = DEDEBIZ_SAFE_MODE? null : array( ); $actionSearch[9] = array( 'title' => '系统设置', - 'description' => '后台系统设置', 'soniterm' => array( 0 => array( 'title' => '系统设置', - 'description' => '站点设置、核心设置、附件设置、会员设置、互动设置、性能选项、其它选项、添加新变量等功能设置', 'purview' => 'sys_Edit', 'linkurl' => 'sys_info.php' ), 1 => array( 'title' => '管理员管理', - 'description' => '网站管理员管理', 'purview' => 'sys_User', 'linkurl' => 'sys_admin_user.php' ), 2 => array( 'title' => '会员组管理', - 'description' => '网站管理员组权限管理', 'purview' => 'sys_Group', 'linkurl' => 'sys_group.php' ), 3 => array( 'title' => '日志管理', - 'description' => '登录后台管理员操作进行记录', 'purview' => 'sys_Log', 'linkurl' => 'log_list.php' ), 5 => array( 'title' => '图片水印设置', - 'description' => '上传图片添加水印设置', 'purview' => 'sys_Edit', 'linkurl' => 'sys_info_mark.php' ), - /*5 => array( - 'title' => '云服务设置', - 'description' => '主流云服务平台支持', - 'purview' => 'sys_Edit', - 'linkurl' => 'sys_cloud.php' - ),*/ 6 => array( 'title' => '软件下载设置', - 'description' => '软件下载连接显示方式,下载方式等配置', 'purview' => 'sys_SoftConfig', 'linkurl' => 'soft_config.php' ), - 7 => array( - 'title' => '防采集工具', - 'description' => '网站防采集工具', - 'purview' => 'sys_StringMix', - 'linkurl' => 'article_string_mix.php' - ), - 8 => DEDEBIZ_SAFE_MODE? null : array( + 7 => DEDEBIZ_SAFE_MODE? null : array( 'title' => '数据库备份还原', - 'description' => '数据库备份和还原数据备份', 'purview' => 'sys_data', 'linkurl' => 'sys_data.php' ), - 9 => DEDEBIZ_SAFE_MODE? null : array( + 8 => DEDEBIZ_SAFE_MODE? null : array( 'title' => 'SQL命令工具', - 'description' => '数据表执行单行或者多行的SQL语句', 'purview' => 'sys_data', 'linkurl' => 'sys_sql_query.php' ), - 10 => array( + 9 => array( 'title' => '文件扫描工具', - 'description' => '以DedeBIZ开发模式为标准对现有的文件进行扫描判断', 'purview' => 'sys_verifies', 'linkurl' => 'sys_safetest.php' ), - 11 => array( + 10 => array( 'title' => '系统修复工具', - 'description' => '手动和自动升级错误处理', 'purview' => 'sys_verifies', 'linkurl' => 'sys_repair.php' ), diff --git a/src/admin/inc/inc_menu.php b/src/admin/inc/inc_menu.php index 7d9c20c1..4bdb3aa7 100644 --- a/src/admin/inc/inc_menu.php +++ b/src/admin/inc/inc_menu.php @@ -64,7 +64,6 @@ if ($cuserLogin->getUserType() >= 10) { - ".(DEDEBIZ_SAFE_MODE? "" : "")." ".(DEDEBIZ_SAFE_MODE? "" : "")." diff --git a/src/admin/index_body.php b/src/admin/index_body.php index ef5407ec..c9915e31 100644 --- a/src/admin/index_body.php +++ b/src/admin/index_body.php @@ -50,10 +50,10 @@ if (empty($dopost)) { if (count($arcArr) > 0) { foreach($arcArr as $row) { - if (trim($row['editcon'])=='') { + if (trim($row['editcon']) == '') { $row['editcon'] = 'archives_edit.php'; } - $rowarcrank = $row['arcrank']==-1? "未审核":""; + $rowarcrank = $row['arcrank'] == -1? " 未审核" : ""; $pubdate = GetDateMk($row['pubdate']); echo ""; } diff --git a/src/admin/index_testenv.php b/src/admin/index_testenv.php index d2071584..84579964 100644 --- a/src/admin/index_testenv.php +++ b/src/admin/index_testenv.php @@ -123,7 +123,7 @@ if (!function_exists('IsWritable')) { $safeMsg = array(); $dirname = str_replace('index_body.php', '', strtolower($_SERVER['PHP_SELF'])); if (!DEDEBIZ_SAFE_MODE) { - $safeMsg[] = '系统运行环境为开发模式,建议您启用安全模式详情'; + $safeMsg[] = '系统运行环境为开发模式,建议您启用安全模式 详情'; } if (!IsSSL()) { $safeMsg[] = '检测到网址非安全链接,建议您部署https'; @@ -139,7 +139,7 @@ if (preg_match("#[\\|/]admin[\\|/]#", $dirname)) { } $rs = TestAdminPWD(); if ($rs < 0) { - $linkurl = '修改'; + $linkurl = ' 修改'; switch ($rs) { case -1: $msg = "检测到默认账号没有修改,建议您修改{$linkurl}"; diff --git a/src/admin/templets/adtype_main.htm b/src/admin/templets/adtype_main.htm index bfdef888..35e109dc 100644 --- a/src/admin/templets/adtype_main.htm +++ b/src/admin/templets/adtype_main.htm @@ -12,7 +12,7 @@
    您确定要删除$filename目录吗
    您确定要删除$filename目录吗
    您确定要删除$filename文件吗
    您确定要删除$filename文件吗
    验证安全码:(安全码:$safecode
    验证安全码:(安全码:$safecode)
    验证安全码: (安全码:$safecode)
    验证安全码: (安全码:$safecode)
    已经存在相同的{$fields['nid']}模型已经存在相同的{$fields['nid']}模型
    @@ -332,7 +332,7 @@ if ($dopost == "show") { $win->AddHidden("job", "yes"); $win->AddHidden("dopost", $dopost); $win->AddHidden("id", $id); - $win->AddTitle("您确定要删除".$row['typename']."模型吗"); + $win->AddTitle("您确定要删除".$row['typename']."模型吗"); $winform = $win->GetWindow("ok"); $win->Display(); exit(); diff --git a/src/admin/mychannel_field_add.php b/src/admin/mychannel_field_add.php index 8b5a2540..7e0ed88f 100644 --- a/src/admin/mychannel_field_add.php +++ b/src/admin/mychannel_field_add.php @@ -24,7 +24,7 @@ if ($action == 'save') { $mxlen = $maxlength; if (preg_match("#^(select|radio|checkbox)$#i", $dtype)) { if (!preg_match("#,#", $dfvalue)) { - ShowMsg("您设定了字段为{$dtype}类型,必须在默认值中指定元素列表,如:'a,b,c' ", "-1"); + ShowMsg("您设定了字段为{$dtype}类型,必须在默认值中指定元素列表,如:'a,b,c' ", "-1"); exit(); } } diff --git a/src/admin/mychannel_field_edit.php b/src/admin/mychannel_field_edit.php index d49acba7..dd999ef2 100644 --- a/src/admin/mychannel_field_edit.php +++ b/src/admin/mychannel_field_edit.php @@ -50,7 +50,7 @@ if ($action == 'save') { $dfvalue = $vdefault; if (preg_match("#^(select|radio|checkbox)#", $dtype)) { if (!preg_match("#,#", $dfvalue)) { - ShowMsg("您设定了字段为{$dtype}类型,必须在默认值中指定元素列表,如:'a,b,c' ", "-1"); + ShowMsg("您设定了字段为{$dtype}类型,必须在默认值中指定元素列表,如:'a,b,c' ", "-1"); exit(); } } diff --git a/src/admin/plus_edit.php b/src/admin/plus_edit.php index 89843740..96859298 100644 --- a/src/admin/plus_edit.php +++ b/src/admin/plus_edit.php @@ -31,7 +31,7 @@ if ($dopost == "show") { $win->AddHidden("job", "yes"); $win->AddHidden("dopost", $dopost); $win->AddHidden("aid", $aid); - $win->AddTitle("您确定要删除".$title."插件吗"); + $win->AddTitle("您确定要删除".$title."插件吗"); $win->AddMsgItem("
    提示:仅删除插件导航,前往模块管理卸载删除
    您确定要删除id$userid管理员吗
    验证安全码:(安全码:$safecode
    您确定要删除id$userid管理员吗
    验证安全码:(安全码:$safecode)
    输入标签: 重新选择 + + 重新选择 +
    验证安全码: - (安全码:) + + (安全码:
    开发者id: 如何获取开发者id + + 如何获取开发者id +
    语言编码: ".$v['lang'].""; + if ($cfg_soft_lang != $v['lang']) echo "".$v['lang'].""; else echo $v['lang']; ?>
    开发者id: 如何获取开发者id + + 如何获取开发者id +
    发布时间: 验证安全码: - (安全码:) + + (安全码:
    验证安全码: - (安全码:) + + (安全码:
    级别值: - (系统已占用的级别值:SetQuery("Select `rank` From `#@__admintype`");$dsql->Execute();while($row = $dsql->GetObject()) echo ''.$row->rank.'';?>,级别值必须小于10,超过或等于10所有权限设置无效) + (系统已占用的级别值:SetQuery("Select `rank` From `#@__admintype`");$dsql->Execute();while($row = $dsql->GetObject()) echo ''.$row->rank.'';?>,级别值必须小于10,超过或等于10所有权限设置无效)
    {dede:field.starttime function="GetDateMk(@me)"/} {dede:field.endtime function="GetDateMk(@me)"/} {dede:field.totalcount/}未启用";} else {echo "启用";} ?>未启用";} else {echo "启用";} ?> 修改 代码 From e9a6e5d8fbcfed9344fc68e1e2eef44aa061f5c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 11:40:35 +0800 Subject: [PATCH 24/53] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=8D=E8=A6=81=E5=8A=9F=E8=83=BD=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/templets/makehtml_taglist.htm | 4 ---- src/static/web/css/select2.min.css | 1 - src/static/web/js/i18n/zh-CN.js | 3 --- src/static/web/js/select2.min.js | 2 -- 4 files changed, 10 deletions(-) delete mode 100644 src/static/web/css/select2.min.css delete mode 100644 src/static/web/js/i18n/zh-CN.js delete mode 100644 src/static/web/js/select2.min.js diff --git a/src/admin/templets/makehtml_taglist.htm b/src/admin/templets/makehtml_taglist.htm index 2247905e..9d4e4e9f 100644 --- a/src/admin/templets/makehtml_taglist.htm +++ b/src/admin/templets/makehtml_taglist.htm @@ -5,12 +5,8 @@ 更新标签 - - - - diff --git a/src/static/web/css/select2.min.css b/src/static/web/css/select2.min.css deleted file mode 100644 index b740eec4..00000000 --- a/src/static/web/css/select2.min.css +++ /dev/null @@ -1 +0,0 @@ -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:6px}.select2-search--dropdown .select2-search__field{padding:6px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,#fff 50%,#eee 100%);background-image:-o-linear-gradient(top,#fff 50%,#eee 100%);background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#FFCCCCCC',GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:0;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,#fff 0%,#eee 50%);background-image:-o-linear-gradient(top,#fff 0%,#eee 50%);background-image:linear-gradient(to bottom,#fff 0%,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,#fff 100%);background-image:-o-linear-gradient(top,#eee 50%,#fff 100%);background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#ffffffFF',GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:0}.select2-container--classic .select2-dropdown--below{border-top:0}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} \ No newline at end of file diff --git a/src/static/web/js/i18n/zh-CN.js b/src/static/web/js/i18n/zh-CN.js deleted file mode 100644 index 2c5649d3..00000000 --- a/src/static/web/js/i18n/zh-CN.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/src/static/web/js/select2.min.js b/src/static/web/js/select2.min.js deleted file mode 100644 index 1183256c..00000000 --- a/src/static/web/js/select2.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ -!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute("data-select2-id")},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('
      ');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h(''),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):ithis.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html(''),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr("title",i):n.removeAttr("title")}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('
        '),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('
      • ×
      • ')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n×');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),t.on("open",function(){r.$search.attr("aria-controls",i),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0=r.maximumSelectionLength?r.trigger("results:message",{message:"maximumSelected",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-controls",i),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('
      • '),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f(""),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=ai.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1 Date: Tue, 12 Sep 2023 11:42:45 +0800 Subject: [PATCH 25/53] Update index_body.php --- src/admin/index_body.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/admin/index_body.php b/src/admin/index_body.php index e423f53f..ef5407ec 100644 --- a/src/admin/index_body.php +++ b/src/admin/index_body.php @@ -90,10 +90,10 @@ if (empty($dopost)) { $hasPowered = true; } } - $poweredStr = $hasPowered? "" : "请保留正确的底部版权信息,"; + $poweredStr = $hasPowered? "" : "请保留正确的底部版权信息,"; echo json_encode(array( "code" => -1002, - "msg" => "当前站点已授权社区版,{$poweredStr}获取更多官方技术支持,请选择商业版", + "msg" => "当前站点已授权社区版,{$poweredStr}获取更多官方技术支持,请选择商业版", "result" => null, )); exit; From e0b22072ba6c0fed459f4205949246bcb2cf909e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 11:47:18 +0800 Subject: [PATCH 26/53] =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/inc/inc_list_functions.php | 6 +++--- src/admin/templets/vote_main.htm | 2 +- src/theme/dedebiz/list_infos.htm | 4 ++-- src/user/inc/inc_list_functions.php | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/admin/inc/inc_list_functions.php b/src/admin/inc/inc_list_functions.php index 460f45af..b606edc9 100644 --- a/src/admin/inc/inc_list_functions.php +++ b/src/admin/inc/inc_list_functions.php @@ -77,11 +77,11 @@ function CheckPic($picname) function IsHtmlArchives($ismake) { if ($ismake == 1) { - return ' 已生成'; + return '已生成'; } else if ($ismake == -1) { - return ' 仅动态'; + return '仅动态'; } else { - return ' 未生成'; + return '未生成'; } } //获得文档的限定级别名称 diff --git a/src/admin/templets/vote_main.htm b/src/admin/templets/vote_main.htm index 933cd7b6..9cd0af31 100644 --- a/src/admin/templets/vote_main.htm +++ b/src/admin/templets/vote_main.htm @@ -30,7 +30,7 @@
        {dede:field.starttime function="GetDateMk(@me)"/} {dede:field.endtime function="GetDateMk(@me)"/} {dede:field.totalcount/}未启用";} else {echo "启用";} ?> 修改 代码 diff --git a/src/theme/dedebiz/list_infos.htm b/src/theme/dedebiz/list_infos.htm index 854cd4ca..8960a90d 100644 --- a/src/theme/dedebiz/list_infos.htm +++ b/src/theme/dedebiz/list_infos.htm @@ -71,8 +71,8 @@ - - + + {/dede:infoguide} diff --git a/src/user/inc/inc_list_functions.php b/src/user/inc/inc_list_functions.php index 08474fb5..902b3b25 100755 --- a/src/user/inc/inc_list_functions.php +++ b/src/user/inc/inc_list_functions.php @@ -83,11 +83,11 @@ function CheckPic($picname) function IsHtmlArchives($ismake) { if ($ismake == 1) { - return ' 已生成'; + return '已生成'; } else if ($ismake == -1) { - return ' 仅动态'; + return '仅动态'; } else { - return ' 未生成'; + return '未生成'; } } /** @@ -120,7 +120,7 @@ function GetRankName($arcrank) */ function IsPicArchives($flag) { - if (strtolower($flag)== "p") { + if (strtolower($flag) == "p") { return ' 图片'; } else { return ''; From 08526ab1fc277fa8defba523a2d919d8bdd9f25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 11:52:38 +0800 Subject: [PATCH 27/53] Update changelog.md --- docs/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.md b/docs/changelog.md index 6dea1f31..8f09876f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,7 @@ # V6.2.12 - 优化后台部分代码面向对象,提高性能正确引导,致力于打造高效简单轻型CMS; - 增强图片选择器,鼠标移动小图标预览; +- 调整前后台提示,在实际开发网站中diy; - 调整后台和默认模板及会员中心的JQ文件引用问题; - 修正谷歌浏览器ID重复部分提示问题; - 修正资源选择器上传回调问题; From 3d7cefd6e02c53e95f098c89a2d7d7f5b38e270c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 12:27:14 +0800 Subject: [PATCH 28/53] =?UTF-8?q?HTML5=E9=BB=98=E8=AE=A4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/templets/search_keywords_main.htm | 2 +- src/theme/dedebiz/article_article.htm | 8 ++--- src/theme/dedebiz/article_default.htm | 8 ++--- src/theme/dedebiz/article_default_sg.htm | 8 ++--- src/theme/dedebiz/article_image.htm | 8 ++--- src/theme/dedebiz/article_infos.htm | 8 ++--- src/theme/dedebiz/article_soft.htm | 8 ++--- src/theme/dedebiz/article_spec.htm | 8 ++--- src/theme/dedebiz/index.htm | 36 ++++++++++----------- src/theme/dedebiz/index_article.htm | 8 ++--- src/theme/dedebiz/index_default.htm | 8 ++--- src/theme/dedebiz/index_default_sg.htm | 8 ++--- src/theme/dedebiz/index_image.htm | 4 +-- src/theme/dedebiz/index_infos.htm | 8 ++--- src/theme/dedebiz/index_soft.htm | 4 +-- src/theme/dedebiz/list_article.htm | 8 ++--- src/theme/dedebiz/list_default.htm | 8 ++--- src/theme/dedebiz/list_default_sg.htm | 8 ++--- src/theme/dedebiz/list_free.htm | 4 +-- src/theme/dedebiz/list_image.htm | 8 ++--- src/theme/dedebiz/list_infos.htm | 8 ++--- src/theme/dedebiz/list_soft.htm | 8 ++--- src/theme/dedebiz/list_spec.htm | 8 ++--- src/theme/dedebiz/search.htm | 4 +-- src/theme/dedebiz/taglist.htm | 8 ++--- src/theme/dedebiz/top.htm | 4 +-- 26 files changed, 105 insertions(+), 105 deletions(-) diff --git a/src/admin/templets/search_keywords_main.htm b/src/admin/templets/search_keywords_main.htm index 0bc21e15..a93bd591 100644 --- a/src/admin/templets/search_keywords_main.htm +++ b/src/admin/templets/search_keywords_main.htm @@ -9,8 +9,8 @@ - + diff --git a/src/theme/dedebiz/article_default.htm b/src/theme/dedebiz/article_default.htm index 4eb8a733..9c45b2f8 100644 --- a/src/theme/dedebiz/article_default.htm +++ b/src/theme/dedebiz/article_default.htm @@ -30,7 +30,7 @@
        -
        +

        {dede:field.title/}

        {dede:include filename='widget_article_likes.htm'/} {dede:include filename='widget_article_feedback.htm'/} -
        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/article_default_sg.htm b/src/theme/dedebiz/article_default_sg.htm index 1b323ea8..62b86af3 100644 --- a/src/theme/dedebiz/article_default_sg.htm +++ b/src/theme/dedebiz/article_default_sg.htm @@ -31,7 +31,7 @@
        -
        +

        {dede:field.title/}

        {dede:include filename='widget_article_likes.htm'/} {dede:include filename='widget_article_feedback.htm'/} -
        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/article_image.htm b/src/theme/dedebiz/article_image.htm index c348781d..865c8f8f 100644 --- a/src/theme/dedebiz/article_image.htm +++ b/src/theme/dedebiz/article_image.htm @@ -78,7 +78,7 @@
        -
        +

        {dede:field.title/}

        {dede:include filename='widget_article_likes.htm'/} {dede:include filename='widget_article_feedback.htm'/} -
        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/article_infos.htm b/src/theme/dedebiz/article_infos.htm index bbcd950a..f2594603 100644 --- a/src/theme/dedebiz/article_infos.htm +++ b/src/theme/dedebiz/article_infos.htm @@ -30,7 +30,7 @@
        -
        +

        {dede:field.title/}

        {dede:include filename='widget_article_likes.htm'/} {dede:include filename='widget_article_feedback.htm'/} -
        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/article_soft.htm b/src/theme/dedebiz/article_soft.htm index c13100b2..60f2ee7b 100644 --- a/src/theme/dedebiz/article_soft.htm +++ b/src/theme/dedebiz/article_soft.htm @@ -30,7 +30,7 @@
        -
        +

        {dede:field.title/}

        {dede:include filename='widget_article_likes.htm'/} {dede:include filename='widget_article_feedback.htm'/} -
        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/article_spec.htm b/src/theme/dedebiz/article_spec.htm index f84ff7c5..b0fd2e13 100644 --- a/src/theme/dedebiz/article_spec.htm +++ b/src/theme/dedebiz/article_spec.htm @@ -30,7 +30,7 @@
        -
        +

        {dede:field.title/}

        +
        -
        +
        +
        diff --git a/src/theme/dedebiz/index.htm b/src/theme/dedebiz/index.htm index 422316c3..0b3d101b 100644 --- a/src/theme/dedebiz/index.htm +++ b/src/theme/dedebiz/index.htm @@ -15,7 +15,7 @@ {dede:include filename='top.htm'/} {dede:include filename='head.htm'/} -
        +
        {dede:include comment='栏目列表' filename='widget_menu.htm'/}
        @@ -46,8 +46,8 @@
        {dede:include comment='推荐文档' filename='widget_recommend.htm'/}
        -
        -
        + +
        {dede:channelartlist typeid='1,1'}
        @@ -55,7 +55,7 @@
        {dede:arclist row='3' orderby='rand'}
        -
        +
        -
        +
        {/dede:arclist}{/dede:channelartlist} - -
        + +
        {dede:channelartlist typeid='2,2'}
        @@ -82,7 +82,7 @@
        {dede:arclist row='3' orderby='rand'}
        -
        +
        [field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"{@me[");[/field:array]

        [field:title/]

        @@ -92,38 +92,38 @@ [field:pubdate function="MyDate('Y-m-d',@me)"/]

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:arclist}{/dede:channelartlist}
        -
        -
        + +
        {dede:channelartlist typeid='3,3'}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}{dede:channelartlist typeid='4,4'}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}{dede:channelartlist typeid='5,5'}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}
        -
        + {dede:include filename='foot.htm'/} \ No newline at end of file diff --git a/src/theme/dedebiz/index_article.htm b/src/theme/dedebiz/index_article.htm index e46428cf..af2482c6 100644 --- a/src/theme/dedebiz/index_article.htm +++ b/src/theme/dedebiz/index_article.htm @@ -33,20 +33,20 @@
        {dede:channelartlist}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/index_default.htm b/src/theme/dedebiz/index_default.htm index e46428cf..af2482c6 100644 --- a/src/theme/dedebiz/index_default.htm +++ b/src/theme/dedebiz/index_default.htm @@ -33,20 +33,20 @@
        {dede:channelartlist}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/index_default_sg.htm b/src/theme/dedebiz/index_default_sg.htm index e46428cf..af2482c6 100644 --- a/src/theme/dedebiz/index_default_sg.htm +++ b/src/theme/dedebiz/index_default_sg.htm @@ -33,20 +33,20 @@
        {dede:channelartlist}
        -
        +

        {dede:field.typename/}

          {dede:arclist row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclist}
        -
        +
        {/dede:channelartlist}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/index_image.htm b/src/theme/dedebiz/index_image.htm index 2d8946ea..45feb79f 100644 --- a/src/theme/dedebiz/index_image.htm +++ b/src/theme/dedebiz/index_image.htm @@ -35,7 +35,7 @@ {dede:arclist row='3' orderby='rand'}
        -
        +
        [field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"{@me[");[/field:array]

        [field:title/]

        @@ -45,7 +45,7 @@ [field:pubdate function="MyDate('Y-m-d',@me)"/]

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:arclist}{/dede:channelartlist} diff --git a/src/theme/dedebiz/index_infos.htm b/src/theme/dedebiz/index_infos.htm index 20946b2d..8fdabd26 100644 --- a/src/theme/dedebiz/index_infos.htm +++ b/src/theme/dedebiz/index_infos.htm @@ -33,20 +33,20 @@
        {dede:channelartlist}
        -
        +

        {dede:field.typename/}

          {dede:arclistsg row='10' titlelen='120' orderby='rand'}
        • [field:global.autoindex/].[field:title/]
        • {/dede:arclistsg}
        -
        +
        {/dede:channelartlist}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/index_soft.htm b/src/theme/dedebiz/index_soft.htm index 1f464863..7d04d370 100644 --- a/src/theme/dedebiz/index_soft.htm +++ b/src/theme/dedebiz/index_soft.htm @@ -35,7 +35,7 @@ {dede:arclist row='3' orderby='rand'}
        -
        +
        [field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"{@me[");[/field:array]

        [field:title/]

        @@ -48,7 +48,7 @@
        下载次数:
        -
        +
        {/dede:arclist}{/dede:channelartlist}
        diff --git a/src/theme/dedebiz/list_article.htm b/src/theme/dedebiz/list_article.htm index fbc1dc29..e477172c 100644 --- a/src/theme/dedebiz/list_article.htm +++ b/src/theme/dedebiz/list_article.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -41,16 +41,16 @@

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_default.htm b/src/theme/dedebiz/list_default.htm index fbc1dc29..e477172c 100644 --- a/src/theme/dedebiz/list_default.htm +++ b/src/theme/dedebiz/list_default.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -41,16 +41,16 @@

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_default_sg.htm b/src/theme/dedebiz/list_default_sg.htm index 5cba8930..29188605 100644 --- a/src/theme/dedebiz/list_default_sg.htm +++ b/src/theme/dedebiz/list_default_sg.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -41,16 +41,16 @@

        [field:description function="cn_substr(@me,120)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_free.htm b/src/theme/dedebiz/list_free.htm index bcc3348f..7d3ac211 100644 --- a/src/theme/dedebiz/list_free.htm +++ b/src/theme/dedebiz/list_free.htm @@ -37,11 +37,11 @@
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_image.htm b/src/theme/dedebiz/list_image.htm index 6a27e524..7f40218d 100644 --- a/src/theme/dedebiz/list_image.htm +++ b/src/theme/dedebiz/list_image.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +
        [field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"{@me[");[/field:array]

        [field:title/]

        @@ -42,16 +42,16 @@

        [field:description function="cn_substr(@me,120)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_infos.htm b/src/theme/dedebiz/list_infos.htm index 8960a90d..e1ec41bc 100644 --- a/src/theme/dedebiz/list_infos.htm +++ b/src/theme/dedebiz/list_infos.htm @@ -42,7 +42,7 @@ {/dede:infolink} {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -51,12 +51,12 @@

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_soft.htm b/src/theme/dedebiz/list_soft.htm index 15ab4c40..27434da6 100644 --- a/src/theme/dedebiz/list_soft.htm +++ b/src/theme/dedebiz/list_soft.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +
        [field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"{@me[");[/field:array]

        [field:title/]

        @@ -45,16 +45,16 @@ 下载次数:
        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/list_spec.htm b/src/theme/dedebiz/list_spec.htm index 51b23c1d..1933075d 100644 --- a/src/theme/dedebiz/list_spec.htm +++ b/src/theme/dedebiz/list_spec.htm @@ -32,7 +32,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -41,16 +41,16 @@

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        + {dede:include filename='foot.htm'/} diff --git a/src/theme/dedebiz/search.htm b/src/theme/dedebiz/search.htm index c23d3411..67183ae7 100644 --- a/src/theme/dedebiz/search.htm +++ b/src/theme/dedebiz/search.htm @@ -27,7 +27,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -36,7 +36,7 @@

        [field:description function='cn_substr(Html2text("@me"),180)'/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        diff --git a/src/theme/dedebiz/taglist.htm b/src/theme/dedebiz/taglist.htm index 4a579172..72740f02 100644 --- a/src/theme/dedebiz/taglist.htm +++ b/src/theme/dedebiz/taglist.htm @@ -33,7 +33,7 @@
        {dede:list pagesize='10'}
        -
        +

        [field:title/]

        @@ -42,12 +42,12 @@

        [field:description function="cn_substr(@me,180)"/]...

        -
        +
        {/dede:list}
          {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='1'/}
        -
        +
        diff --git a/src/theme/dedebiz/top.htm b/src/theme/dedebiz/top.htm index 7335a08d..eb8e06b5 100644 --- a/src/theme/dedebiz/top.htm +++ b/src/theme/dedebiz/top.htm @@ -1,4 +1,4 @@ - -
        \ No newline at end of file + \ No newline at end of file From af48dc71753e2a184a3f182c3d3ca676b6bdd0a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 12:28:19 +0800 Subject: [PATCH 29/53] Update changelog.md --- docs/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.md b/docs/changelog.md index 8f09876f..2c694268 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,7 @@ - 优化后台部分代码面向对象,提高性能正确引导,致力于打造高效简单轻型CMS; - 增强图片选择器,鼠标移动小图标预览; - 调整前后台提示,在实际开发网站中diy; +- 调整前台默认模板采用标准HTML5元素利于SEO优化; - 调整后台和默认模板及会员中心的JQ文件引用问题; - 修正谷歌浏览器ID重复部分提示问题; - 修正资源选择器上传回调问题; From 72619594ebeb874f3b499d027635076bbfd411cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 14:49:22 +0800 Subject: [PATCH 30/53] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/actionsearch_class.php | 12 +-- src/admin/article_string_mix.php | 43 --------- src/admin/css/codemirror.css | 2 +- src/admin/css/login.min.css | 2 +- src/admin/inc/inc_action_info.php | 87 +----------------- src/admin/inc/inc_menu.php | 1 - src/admin/index_body.php | 4 +- src/admin/index_testenv.php | 4 +- src/admin/templets/adtype_main.htm | 4 +- src/admin/templets/album_add.htm | 2 +- src/admin/templets/album_edit.htm | 2 +- src/admin/templets/archives_add.htm | 2 +- src/admin/templets/archives_edit.htm | 2 +- src/admin/templets/archives_sg_add.htm | 2 +- src/admin/templets/archives_sg_edit.htm | 2 +- src/admin/templets/article_add.htm | 6 +- src/admin/templets/article_edit.htm | 2 +- src/admin/templets/catalog_add.htm | 12 +-- src/admin/templets/catalog_edit.htm | 8 +- src/admin/templets/diy_list.htm | 4 +- src/admin/templets/diy_main.htm | 2 +- src/admin/templets/freelist_add.htm | 12 +-- src/admin/templets/freelist_edit.htm | 10 +- src/admin/templets/makehtml_homepage.htm | 4 +- src/admin/templets/mychannel_field_add.htm | 2 +- src/admin/templets/mychannel_field_edit.htm | 2 +- src/admin/templets/soft_add.htm | 2 +- src/admin/templets/soft_edit.htm | 2 +- src/admin/templets/spec_add.htm | 2 +- src/admin/templets/spec_edit.htm | 2 +- src/admin/templets/stepselect_main.htm | 19 ++-- src/admin/templets/tag_test.htm | 2 +- src/static/web/css/admin.css | 3 - src/static/web/css/style.css | 3 - src/system/archive/archives.class.php | 1 - src/system/downmix.inc.php | 14 --- src/system/helpers/downmix.helper.php | 96 -------------------- src/system/typelink/typeunit.class.admin.php | 12 +-- src/theme/apps/list_diyform.htm | 2 +- src/theme/dedebiz/index.htm | 2 +- 40 files changed, 75 insertions(+), 322 deletions(-) delete mode 100644 src/admin/article_string_mix.php delete mode 100755 src/system/downmix.inc.php delete mode 100755 src/system/helpers/downmix.helper.php diff --git a/src/admin/actionsearch_class.php b/src/admin/actionsearch_class.php index f311b631..837d041a 100644 --- a/src/admin/actionsearch_class.php +++ b/src/admin/actionsearch_class.php @@ -49,11 +49,10 @@ class ActionSearch //进行权限判断 if (TestPurview($val['purview'])) { //如果有操作权限 - if ($this->_strpos($val['title'], $this->keyword) !== false || $this->_strpos($val['description'], $this->keyword) !== false) { + if ($this->_strpos($val['title'], $this->keyword) !== false) { //一级项目匹配 $this->result[$i]['toptitle'] = $this->redColorKeyword($this->asarray[$key]['toptitle']); $this->result[$i]['title'] = $this->redColorKeyword($this->asarray[$key]['title']); - $this->result[$i]['description'] = $this->redColorKeyword($this->asarray[$key]['description']); //二级项目匹配 $this->result[$i]['soniterm'][] = $this->redColorKeyword($val); } @@ -74,13 +73,8 @@ class ActionSearch { if (is_array($text)) { foreach ($text as $key => $value) { - if ($key == 'title' || $key == 'description') { - //仅对title,description进行数组替换 - if ($key == 'description') { - $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); - } else { - $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); - } + if ($key == 'title') { + $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); } } } else { diff --git a/src/admin/article_string_mix.php b/src/admin/article_string_mix.php deleted file mode 100644 index b5c78be8..00000000 --- a/src/admin/article_string_mix.php +++ /dev/null @@ -1,43 +0,0 @@ -alert('成功保存字符串混淆');"; -} -//读出 -if (empty($allsource) && filesize($m_file) > 0) { - $fp = fopen($m_file, 'r'); - $allsource = fread($fp, filesize($m_file)); - fclose($fp); -} -make_hash(); -$wecome_info = "防采集工具"; -$win = new OxWindow(); -$win->Init('article_string_mix.php', 'js/blank.js', 'POST'); -$win->AddHidden('dopost', 'save'); -$win->AddHidden('token', $_SESSION['token']); -$win->AddTitle("
        启用字符串混淆来防采集功能,文档模板需要的字段加上function='RndString(@me)'属性,如:{dede:field name='body' function='RndString(@me)'/}
        "); -$win->AddMsgItem("
        {$row['title']}{$rowarcrank}{$pubdate}
        - + @@ -28,7 +28,7 @@ $k++; ?> - + diff --git a/src/admin/templets/album_add.htm b/src/admin/templets/album_add.htm index e65254bb..0b5185f5 100644 --- a/src/admin/templets/album_add.htm +++ b/src/admin/templets/album_add.htm @@ -95,7 +95,7 @@ diff --git a/src/admin/templets/article_edit.htm b/src/admin/templets/article_edit.htm index 5a6cd554..178b18ca 100644 --- a/src/admin/templets/article_edit.htm +++ b/src/admin/templets/article_edit.htm @@ -96,7 +96,7 @@ diff --git a/src/admin/templets/catalog_edit.htm b/src/admin/templets/catalog_edit.htm index a6c51677..516e5bf7 100644 --- a/src/admin/templets/catalog_edit.htm +++ b/src/admin/templets/catalog_edit.htm @@ -152,9 +152,9 @@ diff --git a/src/admin/templets/diy_list.htm b/src/admin/templets/diy_list.htm index f0fd18d3..f2fda35d 100644 --- a/src/admin/templets/diy_list.htm +++ b/src/admin/templets/diy_list.htm @@ -38,8 +38,8 @@ diff --git a/src/admin/templets/diy_main.htm b/src/admin/templets/diy_main.htm index 12763fa9..50f4bba5 100644 --- a/src/admin/templets/diy_main.htm +++ b/src/admin/templets/diy_main.htm @@ -34,7 +34,7 @@ {/dede:datalist} - + diff --git a/src/admin/templets/freelist_add.htm b/src/admin/templets/freelist_add.htm index 011df644..d5be6846 100644 --- a/src/admin/templets/freelist_add.htm +++ b/src/admin/templets/freelist_add.htm @@ -65,7 +65,7 @@ @@ -144,9 +144,9 @@ @@ -162,8 +162,8 @@ - - + + diff --git a/src/admin/templets/freelist_edit.htm b/src/admin/templets/freelist_edit.htm index 60eb9009..a89599d3 100644 --- a/src/admin/templets/freelist_edit.htm +++ b/src/admin/templets/freelist_edit.htm @@ -137,9 +137,9 @@ if ($setype=='') $setype = 'X'; ?> 高级筛选: - - - + + + @@ -167,8 +167,8 @@ - - + + diff --git a/src/admin/templets/makehtml_homepage.htm b/src/admin/templets/makehtml_homepage.htm index 4240352d..d83f3ec2 100644 --- a/src/admin/templets/makehtml_homepage.htm +++ b/src/admin/templets/makehtml_homepage.htm @@ -54,7 +54,7 @@ if ($data->code == -1) { ?> - + - + diff --git a/src/admin/templets/mychannel_field_add.htm b/src/admin/templets/mychannel_field_add.htm index 8b66346c..c863d17d 100644 --- a/src/admin/templets/mychannel_field_add.htm +++ b/src/admin/templets/mychannel_field_add.htm @@ -105,7 +105,7 @@ } ?> - + diff --git a/src/admin/templets/mychannel_field_edit.htm b/src/admin/templets/mychannel_field_edit.htm index f4409ab5..d8712163 100644 --- a/src/admin/templets/mychannel_field_edit.htm +++ b/src/admin/templets/mychannel_field_edit.htm @@ -117,7 +117,7 @@ } ?> - + diff --git a/src/admin/templets/soft_add.htm b/src/admin/templets/soft_add.htm index 5979a3c8..2f20e61a 100644 --- a/src/admin/templets/soft_add.htm +++ b/src/admin/templets/soft_add.htm @@ -106,7 +106,7 @@
        广告分类管理广告管理广告分类管理
        id
        id;?>id;?>
        缩略图: - + 上传图片 diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index 0795bfba..e4582aa5 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -96,7 +96,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/archives_add.htm b/src/admin/templets/archives_add.htm index 3de7add6..c6122ec2 100644 --- a/src/admin/templets/archives_add.htm +++ b/src/admin/templets/archives_add.htm @@ -90,7 +90,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/archives_edit.htm b/src/admin/templets/archives_edit.htm index 1cd34393..5f2fd3f2 100644 --- a/src/admin/templets/archives_edit.htm +++ b/src/admin/templets/archives_edit.htm @@ -92,7 +92,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/archives_sg_add.htm b/src/admin/templets/archives_sg_add.htm index 836a6bba..5a28f73e 100644 --- a/src/admin/templets/archives_sg_add.htm +++ b/src/admin/templets/archives_sg_add.htm @@ -63,7 +63,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/archives_sg_edit.htm b/src/admin/templets/archives_sg_edit.htm index ffe60d1a..134138a7 100644 --- a/src/admin/templets/archives_sg_edit.htm +++ b/src/admin/templets/archives_sg_edit.htm @@ -67,7 +67,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/article_add.htm b/src/admin/templets/article_add.htm index 54f007ca..50804018 100644 --- a/src/admin/templets/article_add.htm +++ b/src/admin/templets/article_add.htm @@ -89,7 +89,7 @@ 缩略图: - + 上传图片 @@ -207,8 +207,8 @@
        分页方式: - - + +
        缩略图: - + 上传图片 diff --git a/src/admin/templets/catalog_add.htm b/src/admin/templets/catalog_add.htm index dc9aaa6c..00c88517 100644 --- a/src/admin/templets/catalog_add.htm +++ b/src/admin/templets/catalog_add.htm @@ -167,9 +167,9 @@ 栏目交叉: - - - + + +
        @@ -266,9 +266,9 @@
        是否支持跨站调用: - - - + + +
        栏目交叉: - - - + + +
        @@ -251,7 +251,7 @@ - +
        - - + + 预览
        添加自定义表单添加自定义表单
        {dede:pagelist listsize='6'/}目录默认页名称: - +
        - - - + + +
        启动商业组件失败,如何启动组件启动商业组件失败 如何启动组件
        启动商业组件失败启动组件启动商业组件失败 启动组件
        缩略图: - + 上传图片 diff --git a/src/admin/templets/soft_edit.htm b/src/admin/templets/soft_edit.htm index d41abc0e..8095c59e 100644 --- a/src/admin/templets/soft_edit.htm +++ b/src/admin/templets/soft_edit.htm @@ -108,7 +108,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/spec_add.htm b/src/admin/templets/spec_add.htm index 09f6f758..278e688d 100644 --- a/src/admin/templets/spec_add.htm +++ b/src/admin/templets/spec_add.htm @@ -110,7 +110,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/spec_edit.htm b/src/admin/templets/spec_edit.htm index b771547f..3593b8e0 100644 --- a/src/admin/templets/spec_edit.htm +++ b/src/admin/templets/spec_edit.htm @@ -110,7 +110,7 @@ 缩略图: - + 上传图片 diff --git a/src/admin/templets/stepselect_main.htm b/src/admin/templets/stepselect_main.htm index 2c5788b8..10c66dfd 100644 --- a/src/admin/templets/stepselect_main.htm +++ b/src/admin/templets/stepselect_main.htm @@ -189,9 +189,6 @@ if ($topvalue % 500 != 0) $arr['issign'] = 2; ?> - - - diff --git a/src/admin/templets/tag_test.htm b/src/admin/templets/tag_test.htm index b9cafa7a..4c353c85 100644 --- a/src/admin/templets/tag_test.htm +++ b/src/admin/templets/tag_test.htm @@ -29,7 +29,7 @@ if (empty($cid)) $cid="0"; $tl = new TypeLink($cid); $typeOptions = $tl->GetOptionArray($cid,$admin_catalogs,0); - echo ""; if ($cid=="0") echo ""; echo $typeOptions; echo ""; diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index f1f243ef..a00da5f6 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -531,9 +531,6 @@ body.hidemenu .body-right { color:inherit; cursor:pointer } -.l-height-30 { - line-height:30px -} .list-group-item { padding:0.5rem 0 } diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index e4226cf7..689332d5 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -374,9 +374,6 @@ input[type=file] { .btn+.btn { margin-left:10px } -.l-height-30 { - line-height:30px -} .input-text { height:36px; line-height:36px diff --git a/src/system/archive/archives.class.php b/src/system/archive/archives.class.php index 8ead2e2b..2ab22fed 100755 --- a/src/system/archive/archives.class.php +++ b/src/system/archive/archives.class.php @@ -11,7 +11,6 @@ if (!defined('DEDEINC')) exit ('dedebiz'); */ require_once(DEDEINC."/typelink/typelink.class.php"); require_once(DEDEINC."/channelunit.class.php"); -require_once(DEDEINC."/downmix.inc.php"); @set_time_limit(0); class Archives { diff --git a/src/system/downmix.inc.php b/src/system/downmix.inc.php deleted file mode 100755 index be2fac2d..00000000 --- a/src/system/downmix.inc.php +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/src/system/helpers/downmix.helper.php b/src/system/helpers/downmix.helper.php deleted file mode 100755 index 5565036d..00000000 --- a/src/system/helpers/downmix.helper.php +++ /dev/null @@ -1,96 +0,0 @@ - $rndstyleValue \r\n"; - //附机标记 - $rndem[1] = 'font'; - $rndem[2] = 'div'; - $rndem[3] = 'span'; - $rndem[4] = 'p'; - //读取字符串数据 - $fp = fopen(DEDEDATA.'/downmix.data.inc', 'r'); - $start = 0; - $totalitem = 0; - while (!feof($fp)) { - $v = trim(fgets($fp, 128)); - if ($start == 1) { - if (preg_match("/#end#/i", $v)) { - break; - } - if ($v != '') { - $totalitem++; - $rndstring[$totalitem] = preg_replace("/#,/", "", $v); - } - } - if (preg_match("/#start#/i", $v)) { - $start = 1; - } - } - fclose($fp); - //处理要防采集的字段 - $bodylen = strlen($body) - 1; - $prepos = 0; - for ($i = 0; $i <= $bodylen; $i++) { - if ($i + 2 >= $bodylen || $i < 50) { - $reString .= $body[$i]; - } else { - $ntag = @strtolower($body[$i].$body[$i + 1].$body[$i + 2]); - if ($ntag == ' $maxpos)) { - $dd = mt_rand(1, 4); - $emname = $rndem[$dd]; - $dd = mt_rand(1, $totalitem); - $rnstr = $rndstring[$dd]; - if ($emname != 'font') { - $rnstr = " <$emname class='$rndstyleName'>$rnstr "; - } else { - $rnstr = " $rnstr"; - } - $reString .= $rnstr.$body[$i]; - $prepos = $i; - } else { - $reString .= $body[$i]; - } - } - } - return $reString; - } //函数结束 -} -?> \ No newline at end of file diff --git a/src/system/typelink/typeunit.class.admin.php b/src/system/typelink/typeunit.class.admin.php index e4c61eab..cd5d911c 100755 --- a/src/system/typelink/typeunit.class.admin.php +++ b/src/system/typelink/typeunit.class.admin.php @@ -110,7 +110,7 @@ class TypeUnit if ($ispart == 0) { //列表栏目 echo ""; - echo "
        联动枚举组管理
        - 子分类管理 @@ -210,14 +207,14 @@ - 隶属分类: - - - 分类名称: - + 隶属分类: + + 分类名称: + +
        列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; + echo ""; echo ""; - echo " diff --git a/src/admin/templets/diy_field_add.htm b/src/admin/templets/diy_field_add.htm index c59f55ab..50fdacc4 100644 --- a/src/admin/templets/diy_field_add.htm +++ b/src/admin/templets/diy_field_add.htm @@ -23,7 +23,7 @@ diff --git a/src/admin/templets/makehtml_homepage.htm b/src/admin/templets/makehtml_homepage.htm index d83f3ec2..dac20645 100644 --- a/src/admin/templets/makehtml_homepage.htm +++ b/src/admin/templets/makehtml_homepage.htm @@ -19,7 +19,7 @@ diff --git a/src/admin/templets/mychannel_field_add.htm b/src/admin/templets/mychannel_field_add.htm index 8db81362..50bd66cc 100644 --- a/src/admin/templets/mychannel_field_add.htm +++ b/src/admin/templets/mychannel_field_add.htm @@ -23,7 +23,7 @@ diff --git a/src/admin/templets/mytag_add.htm b/src/admin/templets/mytag_add.htm index 3ee9cdf8..6d900d2e 100644 --- a/src/admin/templets/mytag_add.htm +++ b/src/admin/templets/mytag_add.htm @@ -24,7 +24,7 @@ From 1b529cf04709d040a167bd42d1feba1618c16fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 21 Sep 2023 14:56:11 +0800 Subject: [PATCH 52/53] Update style.css --- src/static/web/css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index ca343b89..644907f9 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -44,10 +44,10 @@ h1,h2,h3,h4,h5,h6 { color:#393d49 } h1 { - font-size:30px + font-size:36px } h2 { - font-size:22px + font-size:24px } h3,h4 { font-size:18px From 26b2883cf9e36ac78545e0052722fd24fe580fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 21 Sep 2023 16:08:33 +0800 Subject: [PATCH 53/53] Update makehtml_homepage.htm --- src/admin/templets/makehtml_homepage.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/templets/makehtml_homepage.htm b/src/admin/templets/makehtml_homepage.htm index dac20645..557e2674 100644 --- a/src/admin/templets/makehtml_homepage.htm +++ b/src/admin/templets/makehtml_homepage.htm @@ -19,7 +19,7 @@
        列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; echo ""; echo ""; @@ -122,7 +122,7 @@ class TypeUnit } else if ($ispart == 1) { //封面栏目 echo "
        @@ -44,7 +44,7 @@ @@ -79,7 +79,7 @@ } } function showdiv(id) { - hideobj = GETNAMES("help111"); + hideobj = GETNAMES("helpinfo"); for (i = 0; i < hideobj.length; i++) { hideobj[i].style.display = "none"; } @@ -88,10 +88,10 @@ } } function GETNAMES(name) { - var returns = document.getElementsByName(name); + var returns = document.getElementsByClassName(name); if (returns.length > 0) return returns; returns = new Array(); - var e = document.getElementsByTagName('div'); + var e = document.getElementsByTagName("div"); for (i = 0; i < e.length; i++) { if (e[i].getAttribute("name") == name) { returns[returns.length] = e[i]; @@ -99,7 +99,7 @@ } return returns; } - var editor = CodeMirror.fromTextArea(document.getElementById('content'), { + var editor = CodeMirror.fromTextArea(document.getElementById("content"), { lineNumbers: true, lineWrapping: true, mode: 'text/html' diff --git a/src/admin/templets/tpl_edit_tag.htm b/src/admin/templets/tpl_edit_tag.htm index 027527ee..e324b320 100644 --- a/src/admin/templets/tpl_edit_tag.htm +++ b/src/admin/templets/tpl_edit_tag.htm @@ -41,7 +41,7 @@ - +
        封面{$nss}".$typeName."[id:".$id."]"; + echo ""; echo ""; - echo "
        封面{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -134,7 +134,7 @@ class TypeUnit } else if ($ispart == 2) { //外部栏目 echo "
        外部{$nss}".$typeName."[id:".$id."]"; + echo ""; echo ""; echo "
        外部{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -194,7 +194,7 @@ class TypeUnit //列表栏目 echo "
        "; echo ""; echo "
        "; - echo "$step列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; + echo "$step列表{$nss}".$typeName."[id:".$id."](文档数:".$this->GetTotalArc($id).")"; echo ""; echo ""; @@ -207,7 +207,7 @@ class TypeUnit //封面栏目 echo "
        "; echo ""; echo " - + - + diff --git a/src/admin/templets/mytag_main.htm b/src/admin/templets/mytag_main.htm index 7733acaf..dad7d479 100644 --- a/src/admin/templets/mytag_main.htm +++ b/src/admin/templets/mytag_main.htm @@ -38,7 +38,7 @@ {/dede:datalist} diff --git a/src/admin/templets/search_keywords_main.htm b/src/admin/templets/search_keywords_main.htm index a93bd591..bfbdaf61 100644 --- a/src/admin/templets/search_keywords_main.htm +++ b/src/admin/templets/search_keywords_main.htm @@ -21,7 +21,7 @@ function ReloadPage(ordertype) { orderby = ordertype; var listArea = $Obj('rslist'); - var errMsg = "网络通信出错,重新加载列表"; + var errMsg = "重新加载列表"; fetch("search_keywords_main.php?dopost=getlist&pageno=" + pageno + "&orderby=" + ordertype).then(resp=>{ if (resp.ok) { return resp.text() @@ -45,7 +45,7 @@ var kw = $Obj('keyword' + nid).value; var kws = $Obj('spwords' + nid).value; var ct = $Obj('count' + nid).value; - var errMsg = "网络通信出错,重新加载列表"; + var errMsg = "重新加载列表"; diff --git a/src/admin/templets/sys_admin_user_tj.htm b/src/admin/templets/sys_admin_user_tj.htm index 811c088d..053c9473 100644 --- a/src/admin/templets/sys_admin_user_tj.htm +++ b/src/admin/templets/sys_admin_user_tj.htm @@ -9,8 +9,7 @@ \ No newline at end of file diff --git a/src/admin/templets/sys_payment.htm b/src/admin/templets/sys_payment.htm index 44ba71e5..2c9f1e9c 100644 --- a/src/admin/templets/sys_payment.htm +++ b/src/admin/templets/sys_payment.htm @@ -135,7 +135,7 @@
        "; - echo "$step封面{$nss}".$typeName."[id:".$id."]"; + echo "$step封面{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; @@ -220,7 +220,7 @@ class TypeUnit //外部栏目 echo "
        "; echo "'; + echo ''; foreach($fieldlist as $field=>$fielddata) { if ($fields[$field]=='') continue; diff --git a/src/theme/dedebiz/index.htm b/src/theme/dedebiz/index.htm index 0b3d101b..f6a4a7ac 100644 --- a/src/theme/dedebiz/index.htm +++ b/src/theme/dedebiz/index.htm @@ -60,7 +60,7 @@

        [field:flag runphp='yes']if (stristr(@me,"h")) @me="头条";else if(stristr(@me,"c")) @me="推荐";else @me="";[/field:flag][field:title/]

        -
        +
        From 61587671bb14bc31896a5631424c0225f18790c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 14:50:54 +0800 Subject: [PATCH 31/53] Update action_search.htm --- src/admin/templets/action_search.htm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/admin/templets/action_search.htm b/src/admin/templets/action_search.htm index 51962b3b..dc562384 100644 --- a/src/admin/templets/action_search.htm +++ b/src/admin/templets/action_search.htm @@ -19,8 +19,7 @@
        - + From 74af573e8424e5a7466a3a0c893b9caffc50e695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 15:00:06 +0800 Subject: [PATCH 32/53] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=90=8E=E8=BF=94=E5=9B=9E=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/user/buy_action.php | 36 ++++++++++++++++++------------------ src/user/index_do.php | 12 ++++++------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/user/buy_action.php b/src/user/buy_action.php index 8f8a3567..a0068e07 100755 --- a/src/user/buy_action.php +++ b/src/user/buy_action.php @@ -25,11 +25,11 @@ $buyid = isset($buyid)? HtmlReplace($buyid, 1) : ''; if ($dopost === "bank_ok") { $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE buyid='$buyid' AND mid={$mid}"); if (empty($moRow)) { - ShowMsg("订单查询错误,请确保是您自己发起的订单", "javascript:;"); + ShowMsg("订单查询错误,请确保是您自己发起的订单", "operation.php"); exit; } if ($moRow['sta'] == 2) { - ShowMsg("已完成支付,无需重复付款", "javascript:;"); + ShowMsg("已完成支付,无需重复付款", "buy.php"); exit; } $query = "UPDATE `#@__member_operation` SET sta = '1' WHERE buyid = '{$moRow['buyid']}'"; @@ -39,7 +39,7 @@ if ($dopost === "bank_ok") { } else if ($dopost === "wechat_ok") { $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE buyid='$buyid' AND mid={$mid}"); if (empty($moRow)) { - ShowMsg("订单查询错误,请确保是您自己发起的订单", "javascript:;"); + ShowMsg("订单查询错误,请确保是您自己发起的订单", "operation.php"); exit; } $pInfo = $dsql->GetOne("SELECT * FROM `#@__sys_payment` WHERE id = 1"); @@ -56,7 +56,7 @@ if ($dopost === "bank_ok") { ); $result = $wechat->queryOrder($options); } catch (Exception $e) { - ShowMsg("生成微信支付信息失败,请联系网站管理员", "javascript:;"); + ShowMsg("生成微信支付信息失败,请联系网站管理员", "buy.php"); exit; } if ($result['return_code'] === "SUCCESS" && $result['trade_state'] === "SUCCESS") { @@ -81,14 +81,14 @@ if ($dopost === "bank_ok") { $sqlm = "UPDATE `#@__member` SET `rank`='$rank',`money`=`money`+'{$memrank['money']}',scores=scores+'{$memrank['scores']}',exptime='$exptime'+'$mhasDay',uptime='".time()."' WHERE mid='".$moRow['mid']."'"; $sqlmo = "UPDATE `#@__member_operation` SET sta='2',oldinfo='会员升级成功' WHERE buyid='{$buyid}' "; if (!($dsql->ExecuteNoneQuery($sqlm) && $dsql->ExecuteNoneQuery($sqlmo))) { - ShowMsg("升级会员失败", "javascript:;"); + ShowMsg("升级会员失败", "buy.php"); exit; } } - ShowMsg("已经完成付款", "index.php"); + ShowMsg("已经完成付款", "operation.php"); exit; } else { - ShowMsg("尚未完成付款操作", "index.php"); + ShowMsg("尚未完成付款操作", "buy.php"); exit; } } @@ -98,11 +98,11 @@ if (isset($pd_encode) && isset($pd_verify) && md5("payment".$pd_encode.$cfg_cook $pid = preg_replace("#[^0-9a-z]#i", "", $result->pid); $row = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE mid='$mid' AND sta=0 AND product='$product'"); if (!isset($row['buyid'])) { - ShowMsg("请不要重复提交表单", 'javascript:;'); + ShowMsg("请不要重复提交表单", "buy.php"); exit(); } if ($paytype === 0) { - ShowMsg("请选择支付方式", 'javascript:;'); + ShowMsg("请选择支付方式", "buy.php"); exit(); } $buyid = $row['buyid']; @@ -114,7 +114,7 @@ if (isset($pd_encode) && isset($pd_verify) && md5("payment".$pd_encode.$cfg_cook } } if (empty($product)) { - ShowMsg("请选择一个产品", 'javascript:;'); + ShowMsg("请选择一个产品", "buy.php"); exit(); } $pid = isset($pid) && is_numeric($pid) ? $pid : 0; @@ -122,7 +122,7 @@ if ($product == 'member') { $ptype = "会员升级"; $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$pid}'"); if (!is_array($row)) { - ShowMsg("无法识别您的订单", 'javascript:;'); + ShowMsg("无法识别您的订单", "operation.php"); exit(); } $pname = $row['pname']; @@ -131,7 +131,7 @@ if ($product == 'member') { $ptype = "积分购买"; $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$pid}'"); if (!is_array($row)) { - ShowMsg("无法识别您的订单", 'javascript:;'); + ShowMsg("无法识别您的订单", "operation.php"); exit(); } $pname = $row['pname']; @@ -173,7 +173,7 @@ if ($paytype === 0) { } else { $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE buyid='$buyid'"); if ($moRow['sta'] == 2) { - ShowMsg("已完成支付,无需重复付款", "javascript:;"); + ShowMsg("已完成支付,无需重复付款", "buy.php"); exit; } if ($paytype === 1) { @@ -212,7 +212,7 @@ if ($paytype === 0) { $winform = $win->GetWindow("hand", false); $win->Display(DEDEMEMBER."/templets/win_templet.htm"); } catch (Exception $e) { - ShowMsg("生成微信支付信息失败,请联系网站管理员", "javascript:;"); + ShowMsg("生成微信支付信息失败,请联系网站管理员", "buy.php"); exit; } } elseif ($paytype === 2) { @@ -239,7 +239,7 @@ if ($paytype === 0) { )); echo $result; } catch (Exception $e) { - ShowMsg("生成微信支付信息失败,请联系网站管理员", "javascript:;"); + ShowMsg("生成微信支付信息失败,请联系网站管理员", "buy.php"); exit; } } elseif ($paytype === 3) { @@ -257,7 +257,7 @@ if ($paytype === 0) { } elseif ($paytype === 4) { //余额付款 if ($cfg_ml->M_UserMoney < $row['money']) { - ShowMsg("余额不足,请确保当前账户有足够金币支付", "javascript:;"); + ShowMsg("余额不足,请确保当前账户有足够金币支付", "buy.php"); exit; } $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE buyid = '$buyid'"; @@ -285,11 +285,11 @@ if ($paytype === 0) { exit; } } - ShowMsg("成功使用余额付款", "javascript:;"); + ShowMsg("成功使用余额付款", "buy.php"); exit; } elseif ($paytype === 5) { //货到付款 - ShowMsg("虚拟物品,不支持货到付款", "javascript:;"); + ShowMsg("虚拟物品,不支持货到付款", "buy.php"); exit; } } diff --git a/src/user/index_do.php b/src/user/index_do.php index 3c0d7b69..bba9f2ac 100755 --- a/src/user/index_do.php +++ b/src/user/index_do.php @@ -84,9 +84,9 @@ if ($fmdo == 'sendMail') { $msg = CheckUserID($uid, $msgtitle, false); } if ($msg == 'ok') { - $msg = " {$msgtitle}可以使用"; + $msg = "{$msgtitle}可以使用"; } else { - $msg = " {$msg}"; + $msg = "{$msg}"; } echo $msg; exit(); @@ -95,16 +95,16 @@ if ($fmdo == 'sendMail') { else if ($dopost == "checkmail") { AjaxHead(); if ($cfg_md_mailtest == 'N') { - $msg = " 可以使用"; + $msg = "可以使用"; } else { if (!CheckEmail($email)) { - $msg = " 邮箱格式有误"; + $msg = "邮箱格式有误"; } else { $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE email LIKE '$email' LIMIT 1"); if (!is_array($row)) { - $msg = " 可以使用"; + $msg = "可以使用"; } else { - $msg = " 邮箱已经被另一个账户占用"; + $msg = "邮箱已经被另一个账号占用"; } } } From fa29e2791d20db135ee6119dba223a8e41a1615d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 16:02:52 +0800 Subject: [PATCH 33/53] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/catalog_do.php | 4 ++-- src/admin/sys_sql_query.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/admin/catalog_do.php b/src/admin/catalog_do.php index 8f9f5718..16bbfa7b 100644 --- a/src/admin/catalog_do.php +++ b/src/admin/catalog_do.php @@ -188,7 +188,7 @@ else if ($dopost == 'unitCatalog') { $win->AddHidden('channelid', $channelid); $win->AddHidden('nextjob', 'unitok'); $win->AddTitle("合并目录时不会删除原来的栏目目录,合并后需手动更新目标栏目的文档网页和列表网页,栏目不能有下级子栏目,只允许子级到更高级或同级或不同父级的情况"); - $win->AddItem('您选择的栏目是:', "$typename"); + $win->AddItem('您选择的栏目是:', "$typename"); $win->AddItem('您希望合并到那个栏目', ""); $winform = $win->GetWindow('ok'); $win->Display(); @@ -237,7 +237,7 @@ else if ($dopost == 'moveCatalog') { $win->AddHidden('channelid', $channelid); $win->AddHidden('nextjob', 'unitok'); $win->AddTitle("移动目录时不会删除原来已创建的列表,移动后需重新对栏目创建网页,不允许从父级移动到子级目录,只允许子级到更高级或同级或不同父级的情况"); - $win->AddItem('您选择的栏目是:', "$typename($typeid)"); + $win->AddItem('您选择的栏目是:', "$typename"); $win->AddItem('您希望移动到那个栏目', ""); $winform = $win->GetWindow('ok'); $win->Display(); diff --git a/src/admin/sys_sql_query.php b/src/admin/sys_sql_query.php index 97e4ae13..6400df96 100644 --- a/src/admin/sys_sql_query.php +++ b/src/admin/sys_sql_query.php @@ -110,7 +110,7 @@ else if ($dopost == "query") { echo "记录:$j"; echo "
        "; foreach ($row as $k => $v) { - echo "{$k}:{$v}
        \r\n"; + echo "{$k}:{$v}
        \r\n"; } } exit(); From dd722e28fd6d30393831095d84080cf47b86bbf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 16:16:33 +0800 Subject: [PATCH 34/53] Update admin.css --- src/static/web/css/admin.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index a00da5f6..869c735c 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -562,6 +562,7 @@ body.hidemenu .body-right { } .admin-main-sort { margin-left:1rem; + padding:0; width:30px; text-align:center } From 75b846726c488a46453b6f883a80015a5324e608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 12 Sep 2023 16:40:01 +0800 Subject: [PATCH 35/53] =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=9D=A1=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/static/web/css/admin.css | 11 +++++------ src/static/web/css/style.css | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 869c735c..8875e608 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -1,16 +1,15 @@ ::-webkit-scrollbar { - width:6px; - height:6px -} -::-webkit-scrollbar-thumb { - background:#dee2e6 + width:8px; + height:10px } ::-webkit-scrollbar-track { background:#f5f5f5 } +::-webkit-scrollbar-thumb { + background:#dee2e6 +} * { font-size:14px; - scrollbar-color:#dee2e6 #f5f5f5; scrollbar-width:thin } body { diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index 689332d5..01a4106b 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -1,15 +1,14 @@ ::-webkit-scrollbar { - width:6px; - height:6px -} -::-webkit-scrollbar-thumb { - background:#dee2e6 + width:8px; + height:10px } ::-webkit-scrollbar-track { background:#f5f5f5 } +::-webkit-scrollbar-thumb { + background:#dee2e6 +} * { - scrollbar-color:#dee2e6 #f5f5f5; scrollbar-width:thin } body { From 9dd0f1b6b3a23bed89842a403cb5c5b9622bdba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 11:30:19 +0800 Subject: [PATCH 36/53] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/actionsearch_class.php | 4 ++-- src/admin/archives_do.php | 18 +++++++++--------- src/admin/article_keywords_select.php | 4 ++-- src/admin/catalog_do.php | 2 +- src/admin/content_batchup_action.php | 8 ++++---- src/admin/dialog/select_images_post.php | 2 +- src/admin/dialog/select_soft_post.php | 2 +- src/admin/dialog/select_templets_post.php | 2 +- src/admin/erraddsave.php | 2 +- src/admin/feedback_main.php | 2 +- src/admin/file_class.php | 2 +- src/admin/file_manage_control.php | 2 +- src/admin/file_manage_view.php | 4 ++-- src/admin/friendlink_edit.php | 2 +- src/admin/makehtml_archives_action.php | 8 ++++---- src/admin/makehtml_homepage.php | 8 ++++---- src/admin/module_main.php | 8 ++++---- src/admin/mychannel_edit.php | 2 +- src/admin/sys_admin_user_edit.php | 2 +- src/admin/sys_data.php | 10 +++++----- src/admin/sys_data_replace.php | 2 +- src/admin/sys_info.php | 9 ++++----- src/admin/sys_info_mark.php | 2 +- src/admin/sys_sql_query.php | 18 +++++++++--------- src/admin/templets/album_edit.htm | 2 +- src/admin/templets/archives_edit.htm | 2 +- src/admin/templets/article_edit.htm | 2 +- src/admin/templets/diy_field_add.htm | 2 +- src/admin/templets/module_main.htm | 4 ++-- src/admin/templets/mychannel_edit.htm | 2 +- src/admin/templets/mychannel_field_add.htm | 2 +- src/admin/templets/mychannel_field_edit.htm | 2 +- src/admin/templets/soft_edit.htm | 2 +- src/admin/templets/spec_edit.htm | 2 +- src/admin/templets/sys_data_replace.htm | 4 ++-- src/admin/templets/sys_group_add.htm | 4 ++-- src/admin/templets/templets_tagsource.htm | 2 +- src/admin/templets/tpl_edit_tag.htm | 2 +- src/admin/templets_one_edit.php | 2 +- src/apps/search.php | 2 +- src/user/config.php | 4 ++-- 41 files changed, 83 insertions(+), 84 deletions(-) diff --git a/src/admin/actionsearch_class.php b/src/admin/actionsearch_class.php index 837d041a..c008d0d4 100644 --- a/src/admin/actionsearch_class.php +++ b/src/admin/actionsearch_class.php @@ -74,11 +74,11 @@ class ActionSearch if (is_array($text)) { foreach ($text as $key => $value) { if ($key == 'title') { - $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); + $text[$key] = str_replace($this->keyword, ''.$this->keyword.'', $text[$key]); } } } else { - $text = str_replace($this->keyword, ''.$this->keyword.'', $text); + $text = str_replace($this->keyword, ''.$this->keyword.'', $text); } return $text; } diff --git a/src/admin/archives_do.php b/src/admin/archives_do.php index aa2d4115..bc3b0d2e 100644 --- a/src/admin/archives_do.php +++ b/src/admin/archives_do.php @@ -190,7 +190,7 @@ else if ($dopost == "commendArchives") { $dsql->ExecuteNoneQuery("UPDATE `{$maintable}` SET `flag`='$flag' WHERE aid='{$aid}' "); } } - ShowMsg("成功把所选文档设为推荐", $ENV_GOBACK_URL); + ShowMsg("成功把文档设为推荐", $ENV_GOBACK_URL); exit(); } //生成网页 @@ -208,7 +208,7 @@ else if ($dopost == "makeArchives") { $i++; $pageurl = MakeArt($aid, false); } - ShowMsg("成功更新指定$i个文件", $ENV_GOBACK_URL); + ShowMsg("成功更新指定".$i."个文档", $ENV_GOBACK_URL); exit(); } //审核文档 @@ -317,7 +317,7 @@ else if ($dopost == "checkArchives") { $arc = new Archives($aid); $arc->MakeHtml(); } - ShowMsg("成功移动$j个文档", $ENV_GOBACK_URL); + ShowMsg("成功移动".$j."个文档", $ENV_GOBACK_URL); exit(); } } @@ -373,7 +373,7 @@ else if ($dopost == "delArchives") { $win->AddHidden("dopost", $dopost); $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); - $win->AddTitle("您确定删除,序号$qstr文档吗"); + $win->AddTitle("您确定删除,序号".$qstr."文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -424,7 +424,7 @@ else if ($dopost == 'clear') { $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); $win->AddHidden("recycle", $recycle); - $win->AddTitle("清空回收站$num篇文档
        您确定删除,序号$qstr文档吗"); + $win->AddTitle("清空回收站".$num."篇文档
        您确定删除,序号".$qstr."文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -462,7 +462,7 @@ else if ($dopost == 'del') { $win->AddHidden("qstr", $qstr); $win->AddHidden("aid", $aid); $win->AddHidden("recycle", $recycle); - $win->AddTitle("您确要删除,序号$qstr文档吗"); + $win->AddTitle("您确要删除,序号".$qstr."文档吗"); $winform = $win->GetWindow("ok"); $win->Display(); } @@ -584,7 +584,7 @@ else if ($dopost == 'quickEditSave') { //更新网页 $artUrl = MakeArt($aid, TRUE, TRUE); $backurl = !empty($_COOKIE['ENV_GOBACK_URL']) ? $_COOKIE['ENV_GOBACK_URL'] : '-1'; - ShowMsg('成功更新一篇文档指定属性', $backurl); + ShowMsg('成功更新一篇文档属性', $backurl); exit(); } //分析并自动获取文档关键词 @@ -700,7 +700,7 @@ else if ($dopost == 'attsAdd') { $dsql->ExecuteNoneQuery("UPDATE `{$maintable}` SET `flag`='$flag' WHERE aid='{$aid}' "); } } - ShowMsg("成功对选中文档添加指定属性", $ENV_GOBACK_URL); + ShowMsg("成功添加文档指定属性", $ENV_GOBACK_URL); exit(); } //批量删除属性 @@ -743,7 +743,7 @@ else if ($dopost == 'attsDel') { $flag = trim(join(',', $okflags)); $dsql->ExecuteNoneQuery("UPDATE `{$maintable}` SET `flag`='$flag' WHERE {$idname}='{$aid}' "); } - ShowMsg("成功对选中文档删除指定属性", $ENV_GOBACK_URL); + ShowMsg("成功删除文档指定属性", $ENV_GOBACK_URL); exit(); } //获得批量属性处理Ajax窗体 diff --git a/src/admin/article_keywords_select.php b/src/admin/article_keywords_select.php index b2ca6dbb..83c59bd4 100644 --- a/src/admin/article_keywords_select.php +++ b/src/admin/article_keywords_select.php @@ -23,11 +23,11 @@ $dlist->Display(); function GetSta($sta) { if ($sta == 1) return " 已启用"; - else return " 禁用"; + else return " 禁用"; } function GetMan($sta) { - if ($sta == 1) return " 已禁用"; + if ($sta == 1) return " 已禁用"; else return " 启用"; } ?> \ No newline at end of file diff --git a/src/admin/catalog_do.php b/src/admin/catalog_do.php index 16bbfa7b..a5c98346 100644 --- a/src/admin/catalog_do.php +++ b/src/admin/catalog_do.php @@ -175,7 +175,7 @@ else if ($dopost == 'unitCatalog') { $reid = $tl->TypeInfos['reid']; $channelid = $tl->TypeInfos['channeltype']; if (!empty($row['dd'])) { - ShowMsg("栏目$typename有子栏目,不能进行合并操作", '-1'); + ShowMsg("栏目".$typename."有子栏目,不能进行合并操作", '-1'); exit(); } $typeOptions = $tl->GetOptionArray(0, 0, $channelid); diff --git a/src/admin/content_batchup_action.php b/src/admin/content_batchup_action.php index 1499deff..04f4bc73 100644 --- a/src/admin/content_batchup_action.php +++ b/src/admin/content_batchup_action.php @@ -80,7 +80,7 @@ else if ($action == 'del') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除".$tdd."条记录", "javascript:;"); exit(); } //删除空标题文档 @@ -91,7 +91,7 @@ else if ($action == 'delnulltitle') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除".$tdd."条记录", "javascript:;"); exit(); } //删除空文档 @@ -102,7 +102,7 @@ else if ($action == 'delnullbody') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->aid)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除".$tdd."条记录", "javascript:;"); exit(); } //修正缩略图错误 @@ -165,7 +165,7 @@ else if ($action == 'delnulltitle') { while ($row = $dsql->GetObject('x')) { if (DelArc($row->id)) $tdd++; } - ShowMsg("成功删除$tdd条记录", "javascript:;"); + ShowMsg("成功删除".$tdd."条记录", "javascript:;"); exit(); } //修正缩略图错误 diff --git a/src/admin/dialog/select_images_post.php b/src/admin/dialog/select_images_post.php index dcb716d8..8a26a813 100644 --- a/src/admin/dialog/select_images_post.php +++ b/src/admin/dialog/select_images_post.php @@ -59,7 +59,7 @@ if (!preg_match("#^(image|video|audio|application)#i", $mime)) { ShowMsg("仅支持媒体文件及应用程序上传", -1); exit; } -move_uploaded_file($imgfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($imgfile, $fullfilename) or die("上传文件到".$fullfilename."失败"); @unlink($imgfile); if (empty($resize)) { $resize = 0; diff --git a/src/admin/dialog/select_soft_post.php b/src/admin/dialog/select_soft_post.php index a9884e8b..b6f87426 100644 --- a/src/admin/dialog/select_soft_post.php +++ b/src/admin/dialog/select_soft_post.php @@ -73,7 +73,7 @@ if (!preg_match("#^(image|video|audio|application)#i", $mime)) { ShowMsg("仅支持媒体文件及应用程序上传", -1); exit; } -move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到".$fullfilename."失败"); @unlink($uploadfile); if ($uploadfile_type == 'application/x-shockwave-flash') { $mediatype = 2; diff --git a/src/admin/dialog/select_templets_post.php b/src/admin/dialog/select_templets_post.php index e2759240..5905f554 100644 --- a/src/admin/dialog/select_templets_post.php +++ b/src/admin/dialog/select_templets_post.php @@ -34,7 +34,7 @@ if ($filename == '' || !preg_match("#\.(".$cfg_txttype.")#i", $filename)) { exit(); } $fullfilename = $cfg_basedir.$activepath."/".$filename; -move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到$fullfilename失败"); +move_uploaded_file($uploadfile, $fullfilename) or die("上传文件到".$fullfilename."失败"); @unlink($uploadfile); ShowMsg("成功上传文件", "select_templets.php?comeback=".urlencode($filename)."&f=$f&activepath=".urlencode($activepath)."&d=".time()); exit(); diff --git a/src/admin/erraddsave.php b/src/admin/erraddsave.php index d0f20a46..3002af79 100644 --- a/src/admin/erraddsave.php +++ b/src/admin/erraddsave.php @@ -78,7 +78,7 @@ if ($dopost == "delete") { $win->AddHidden("fmdo", "yes"); $win->AddHidden("dopost", $dopost); $win->AddHidden("id", $id); - $win->AddTitle("您确定要删除$id错误提示吗"); + $win->AddTitle("您确定要删除".$id."错误提示吗"); $winform = $win->GetWindow("ok"); $win->Display(); exit(); diff --git a/src/admin/feedback_main.php b/src/admin/feedback_main.php index 23b396ee..1d6bdf4b 100644 --- a/src/admin/feedback_main.php +++ b/src/admin/feedback_main.php @@ -16,7 +16,7 @@ require_once(DEDEINC."/typelink/typelink.class.php"); setcookie("ENV_GOBACK_URL", $dedeNowurl, time() + 3600, "/"); function IsCheck($st) { - return $st == 1 ? '已审核' : '未审核'; + return $st == 1 ? '已审核' : '未审核'; } function jsTrimjajx($str, $len) { diff --git a/src/admin/file_class.php b/src/admin/file_class.php index de563616..ea594fea 100644 --- a/src/admin/file_class.php +++ b/src/admin/file_class.php @@ -84,7 +84,7 @@ class FileManagement ShowMsg("成功移动文件", "file_manage_main.php?activepath=$mpath", 0, 1000); return 1; } else { - ShowMsg("移动文件$oldfile - $truepath/$mfile失败,某个位置权限不足", "file_manage_main.php?activepath=$mpath", 0, 1000); + ShowMsg("移动文件".$oldfile." - ".$truepath."/".$mfile."失败", "file_manage_main.php?activepath=$mpath", 0, 1000); return 0; } } else { diff --git a/src/admin/file_manage_control.php b/src/admin/file_manage_control.php index 5075af16..2d5ee263 100644 --- a/src/admin/file_manage_control.php +++ b/src/admin/file_manage_control.php @@ -91,7 +91,7 @@ else if ($fmdo == "upload") { $j++; } } - ShowMsg("成功上传$j个文件到$activepath", "file_manage_main.php?activepath=$activepath"); + ShowMsg("成功上传".$j."个文件到".$activepath."", "file_manage_main.php?activepath=$activepath"); exit(); } //空间检查 diff --git a/src/admin/file_manage_view.php b/src/admin/file_manage_view.php index 3ced4ee7..f8df6086 100644 --- a/src/admin/file_manage_view.php +++ b/src/admin/file_manage_view.php @@ -75,9 +75,9 @@ else if ($fmdo == "del") { $win->AddHidden("activepath", $activepath); $win->AddHidden("filename", $filename); if (@is_dir($cfg_basedir.$activepath."/$filename")) { - $msg = ""; + $msg = ""; } else { - $msg = ""; + $msg = ""; } $win->AddTitle("删除文件确认"); $win->AddMsgItem($msg); diff --git a/src/admin/friendlink_edit.php b/src/admin/friendlink_edit.php index ae17e451..818c12c8 100644 --- a/src/admin/friendlink_edit.php +++ b/src/admin/friendlink_edit.php @@ -58,7 +58,7 @@ if ($dopost == "delete") { } $logoimg_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $logoimg_name)); $fullfilename = DEDEROOT.'static/flink/'.$logoimg_name; - move_uploaded_file($logoimg, $fullfilename) or die("上传文件到$fullfilename失败"); + move_uploaded_file($logoimg, $fullfilename) or die("上传文件到".$fullfilename."失败"); @unlink($logoimg); $logo = $cfg_cmspath.'/static/flink/'.$logoimg_name; } diff --git a/src/admin/makehtml_archives_action.php b/src/admin/makehtml_archives_action.php index 3aad7f30..c801b20d 100644 --- a/src/admin/makehtml_archives_action.php +++ b/src/admin/makehtml_archives_action.php @@ -79,8 +79,8 @@ $ttime = time() - $sstime; $ttime = number_format(($ttime / 60), 2); //返回提示信息 $tjlen = $totalnum > 0 ? ceil(($tjnum / $totalnum) * 100) : 100; -$tjsta = "
        $tjlen%
        "; -$tjsta .= "更新文档[id:".($startdd + $pagesize)."],用时{$ttime}分钟,完成更新文档总数$tjlen%"; +$tjsta = "
        ".$tjlen."%
        "; +$tjsta .= "更新文档[id:".($startdd + $pagesize)."],用时{$ttime}分钟,完成更新文档总数".$tjlen."%"; //速度测试 if ($tjnum < $totalnum) { $nurl = "makehtml_archives_action.php?endid=$endid&startid=$startid&typeid=$typeid"; @@ -90,10 +90,10 @@ if ($tjnum < $totalnum) { exit(); } else { if ($typeid != '') { - ShowMsg("更新文档$totalnum,用时{$ttime}分钟,开始更新栏目", "makehtml_list_action.php?typeid=$typeid&uptype=all&maxpagesize=50&upnext=1"); + ShowMsg("更新文档".$totalnum.",用时{$ttime}分钟,开始更新栏目", "makehtml_list_action.php?typeid=$typeid&uptype=all&maxpagesize=50&upnext=1"); } else { if ($uptype == '') { - ShowMsg("更新文档$totalnum,用时{$ttime}分钟,完成所有文档更新", "javascript:;"); + ShowMsg("更新文档".$totalnum.",用时{$ttime}分钟,完成所有文档更新", "javascript:;"); } else { ShowMsg("完成所有文档更新,开始更新首页", "makehtml_all.php?action=make&step=3&uptype=$uptype&mkvalue=$mkvalue"); } diff --git a/src/admin/makehtml_homepage.php b/src/admin/makehtml_homepage.php index d047db16..495150c6 100644 --- a/src/admin/makehtml_homepage.php +++ b/src/admin/makehtml_homepage.php @@ -29,28 +29,28 @@ if ($dopost == "view") { //设定dedebiz admin密码 if ($dedebiz_admin == "" || $dedebiz_admin !== $re_dedebiz_admin) { echo ""; - echo "
        DedeBIZ操作密码为空或两次指定的密码不符

        "; + echo "
        DedeBIZ操作密码为空或两次指定的密码不符

        "; $client->Close(); exit; } $data = $client->AdminPWDCreate($dedebiz_admin); if ($data->data != "ok") { echo ""; - echo "
        DedeBIZ设定操作密码失败:${$data}

        "; + echo "
        DedeBIZ设定操作密码失败:${$data}

        "; $client->Close(); exit; } } else { if ($dedebiz_admin == "") { echo ""; - echo "
        DedeBIZ操作密码为空

        "; + echo "
        DedeBIZ操作密码为空

        "; $client->Close(); exit; } $data = $client->AdminSetIndexLockState($dedebiz_admin, $lockindex); if ($data->data != "ok") { echo ""; - echo "
        DedeBIZ操作密码失败,填写正确的操作密码

        "; + echo "
        DedeBIZ操作密码失败,填写正确的操作密码

        "; $client->Close(); exit; } diff --git a/src/admin/module_main.php b/src/admin/module_main.php index b34cbe58..76efd866 100644 --- a/src/admin/module_main.php +++ b/src/admin/module_main.php @@ -86,7 +86,7 @@ if ($action == '') { } $authAt = date("Y-m-d", $devInfo['auth_at']); if (!isset($info['dev_id'])) { - $devInfo['dev_name'] = $info['team']."未认证"; + $devInfo['dev_name'] = $info['team']."未认证"; $authAt = "未知"; } ShowMsg("开发者名称:{$devInfo['dev_name']}
        开发者id:{$devInfo['dev_id']}
        认证于:{$authAt}", "-1"); @@ -153,7 +153,7 @@ if ($action == '') { $win->AddHidden("action", 'setupstart'); $msg = " @@ -262,7 +262,7 @@ if ($action == '') { $dm = new DedeModule($mdir); $infos = $dm->GetModuleInfo($hash); $alertMsg = ($infos['lang'] == $cfg_soft_lang ? '' : '
        该模块的语言编码与您系统的编码不一致,请向开发者确认它的兼容性'); - $dev_id = empty($infos['dev_id'])? "未认证" : "{$infos['dev_id']} 已认证"; + $dev_id = empty($infos['dev_id'])? "未认证" : "{$infos['dev_id']} 已认证"; $win = new OxWindow(); $win->Init("module_main.php", "js/blank.js", "post"); $wecome_info = "模块管理 - 删除{$infos['name']}"; @@ -319,7 +319,7 @@ if ($action == '') { else $v['type'] = '文件'; $filelist .= "{$v['type']}|{$v['name']}\r\n"; } - $dev_id = empty($infos['dev_id'])? "未认证" : "{$infos['dev_id']} 已认证"; + $dev_id = empty($infos['dev_id'])? "未认证" : "{$infos['dev_id']} 已认证"; $win = new OxWindow(); $win->Init("module_main.php", "js/blank.js", "post"); $wecome_info = "模块管理 - 卸载{$infos['name']}"; diff --git a/src/admin/mychannel_edit.php b/src/admin/mychannel_edit.php index de5be784..4bcbb79e 100644 --- a/src/admin/mychannel_edit.php +++ b/src/admin/mychannel_edit.php @@ -277,7 +277,7 @@ if ($dopost == "show") { } $trueTable = str_replace("#@__", $cfg_dbprefix, $addtable); if (!$dsql->IsTable($trueTable)) { - ShowMsg("系统找不到您所指定的$trueTable表", "-1"); + ShowMsg("系统找不到您所指定的".$trueTable."表", "-1"); exit(); } $dsql->ExecuteNoneQuery($query); diff --git a/src/admin/sys_admin_user_edit.php b/src/admin/sys_admin_user_edit.php index 75f69d03..3db3c5bd 100644 --- a/src/admin/sys_admin_user_edit.php +++ b/src/admin/sys_admin_user_edit.php @@ -86,7 +86,7 @@ if ($dopost == 'saveedit') { $win->AddHidden("randcode", $randcode); $win->AddHidden("safecode", $safecode); $win->AddHidden("id", $id); - $win->AddMsgItem(""); + $win->AddMsgItem(""); $win->AddMsgItem(""); $winform = $win->GetWindow("ok"); $win->Display(); diff --git a/src/admin/sys_data.php b/src/admin/sys_data.php index c843d8a8..b3fdf7c0 100644 --- a/src/admin/sys_data.php +++ b/src/admin/sys_data.php @@ -15,7 +15,7 @@ if (DEDEBIZ_SAFE_MODE) { CheckPurview('sys_Data'); if (empty($dopost)) $dopost = ''; if ($cfg_dbtype == 'sqlite') { - showMsg('备份系统根目录下/data/'.$cfg_dbname.'.db文件即可', 'javascript:;'); + showMsg("备份系统根目录下/data/".$cfg_dbname.".db文件即可", "javascript:;"); exit(); } //查看表结构 @@ -41,9 +41,9 @@ else if ($dopost == "opimize") { } else { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); if ($rs) { - echo "执行优化表$tablename完成"; + echo "执行优化表".$tablename."完成
        "; } else { - echo "
        执行优化表$tablename失败,原因是:".$dsql->GetError(); + echo "执行优化表".$tablename."失败,原因是:".$dsql->GetError(); } } echo ''; @@ -57,9 +57,9 @@ else if ($dopost == "repair") { } else { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`"); if ($rs) { - echo "修复表$tablename完成"; + echo "修复表".$tablename."完成
        "; } else { - echo "
        修复表$tablename失败,原因是:".$dsql->GetError(); + echo "修复表".$tablename."失败,原因是:".$dsql->GetError(); } } echo ''; diff --git a/src/admin/sys_data_replace.php b/src/admin/sys_data_replace.php index 13459adf..929bd925 100644 --- a/src/admin/sys_data_replace.php +++ b/src/admin/sys_data_replace.php @@ -79,7 +79,7 @@ else if ($action == 'apply') { } } $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`"); - ShowMsg("共找到$tt条记录,成功替换了$oo条", "javascript:;"); + ShowMsg("共找到".$tt."条记录,成功替换了".$oo."条", "javascript:;"); exit(); } } diff --git a/src/admin/sys_info.php b/src/admin/sys_info.php index 9f3b0ec5..98d7aa3c 100644 --- a/src/admin/sys_info.php +++ b/src/admin/sys_info.php @@ -86,7 +86,7 @@ else if ($dopost == 'add') { exit(); } if (!is_writeable($configfile)) { - ShowMsg("成功保存变量,但由于$configfile无法写入,因此不能更新配置文件", "sys_info.php?gp=$vargroup"); + ShowMsg("成功保存变量,但由于".$configfile."无法写入,因此不能更新配置文件", "sys_info.php?gp=$vargroup"); exit(); } else { ReWriteConfig(); @@ -114,11 +114,10 @@ EOT; $dsql->SetQuery("SELECT * FROM `#@__sysconfig` WHERE info LIKE '%$keywords%' OR varname LIKE '%$keywords%' ORDER BY aid ASC"); $dsql->Execute(); while ($row = $dsql->GetArray()) { - $bgcolor = ($i++ % 2 == 0) ? "#f5f5f5" : "#ffffff"; - $row['info'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['info']); - $row['varname'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['varname']); + $row['info'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['info']); + $row['varname'] = preg_replace("#{$keywords}#", ''.$keywords.'', $row['varname']); ?> - + diff --git a/src/admin/templets/module_main.htm b/src/admin/templets/module_main.htm index 738691bc..273055c8 100644 --- a/src/admin/templets/module_main.htm +++ b/src/admin/templets/module_main.htm @@ -58,7 +58,7 @@ @@ -70,7 +70,7 @@ if (file_exists(DEDEDATA."/module/{$v['hash']}-readme.php")){ echo "已安装卸载"; } else { - echo "未安装安装"; + echo "未安装安装"; } } else { echo ""; diff --git a/src/admin/templets/mychannel_edit.htm b/src/admin/templets/mychannel_edit.htm index 88c3229e..96272b7e 100644 --- a/src/admin/templets/mychannel_edit.htm +++ b/src/admin/templets/mychannel_edit.htm @@ -26,7 +26,7 @@ diff --git a/src/admin/templets/mychannel_field_add.htm b/src/admin/templets/mychannel_field_add.htm index c863d17d..1a353c13 100644 --- a/src/admin/templets/mychannel_field_add.htm +++ b/src/admin/templets/mychannel_field_add.htm @@ -23,7 +23,7 @@ diff --git a/src/admin/templets/mychannel_field_edit.htm b/src/admin/templets/mychannel_field_edit.htm index d8712163..a03fe1bc 100644 --- a/src/admin/templets/mychannel_field_edit.htm +++ b/src/admin/templets/mychannel_field_edit.htm @@ -26,7 +26,7 @@ diff --git a/src/admin/templets/soft_edit.htm b/src/admin/templets/soft_edit.htm index 8095c59e..0ec36961 100644 --- a/src/admin/templets/soft_edit.htm +++ b/src/admin/templets/soft_edit.htm @@ -382,7 +382,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/spec_edit.htm b/src/admin/templets/spec_edit.htm index 3593b8e0..00567610 100644 --- a/src/admin/templets/spec_edit.htm +++ b/src/admin/templets/spec_edit.htm @@ -313,7 +313,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/sys_data_replace.htm b/src/admin/templets/sys_data_replace.htm index 5e03fb7f..124ebb69 100644 --- a/src/admin/templets/sys_data_replace.htm +++ b/src/admin/templets/sys_data_replace.htm @@ -21,7 +21,7 @@ @@ -34,7 +34,7 @@ $dsql->SetQuery("Show Tables"); $dsql->Execute('t'); if ($dsql->GetError()!=''){ - echo "找不到您所指定的数据库$dbname"; + echo "找不到您所指定的数据库".$dbname.""; echo $qbutton; } echo "0) echo ""; $start++; - $lhead = " diff --git a/src/admin/templets/tpl_edit_tag.htm b/src/admin/templets/tpl_edit_tag.htm index 9a60b2a0..027527ee 100644 --- a/src/admin/templets/tpl_edit_tag.htm +++ b/src/admin/templets/tpl_edit_tag.htm @@ -30,7 +30,7 @@ diff --git a/src/admin/templets_one_edit.php b/src/admin/templets_one_edit.php index 814207e6..95e2ec2c 100644 --- a/src/admin/templets_one_edit.php +++ b/src/admin/templets_one_edit.php @@ -67,7 +67,7 @@ if ($dopost == "saveedit") { $sg->SaveToHtml(); $i++; } - ShowMsg("成功更新$i个页面", '-1'); + ShowMsg("成功更新".$i."个页面", '-1'); exit(); } else if ($dopost == "mksel") { if (empty($ids)) { diff --git a/src/apps/search.php b/src/apps/search.php index 92d11ffe..9b058cff 100755 --- a/src/apps/search.php +++ b/src/apps/search.php @@ -70,7 +70,7 @@ $now = time(); $row = $dsql->GetOne("SELECT * FROM `#@__search_limits` WHERE ip='{$ip}'"); if (is_array($row)) { if (($now - $row['searchtime']) < $cfg_search_time) { - ShowMsg("搜索间隔为$cfg_search_time秒,请稍后重试", "-1"); + ShowMsg("搜索间隔为".$cfg_search_time."秒,请稍后重试", "-1"); exit; } $dsql->ExecuteNoneQuery("UPDATE `#@__search_limits` SET `searchtime`='{$now}' WHERE `ip`='{$ip}';"); diff --git a/src/user/config.php b/src/user/config.php index 962ba0b2..1168ba68 100755 --- a/src/user/config.php +++ b/src/user/config.php @@ -198,10 +198,10 @@ function CheckRank($rank = 0, $money = 0) $myname = "注册会员"; } } - ShowMsg("需要$needname才能浏览本页面,您目前等级是$myname", "-1", 0, 5000); + ShowMsg("需要".$needname."才能浏览本页面,您目前等级是".$myname."", "-1", 0, 5000); exit(); } else if ($cfg_ml->M_Money < $money) { - ShowMsg("需要$money金币才能浏览本页面,您目前金币".$cfg_ml->M_Money."个", "-1", 0, 5000); + ShowMsg("需要".$money."金币才能浏览本页面,您目前金币".$cfg_ml->M_Money."个", "-1", 0, 5000); exit(); } } From ac7329cdbaaff147464e1f8924ed996f4f8806c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 11:47:05 +0800 Subject: [PATCH 37/53] Update module_main.php --- src/admin/module_main.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/module_main.php b/src/admin/module_main.php index 76efd866..1601d3d5 100644 --- a/src/admin/module_main.php +++ b/src/admin/module_main.php @@ -87,7 +87,7 @@ if ($action == '') { $authAt = date("Y-m-d", $devInfo['auth_at']); if (!isset($info['dev_id'])) { $devInfo['dev_name'] = $info['team']."未认证"; - $authAt = "未知"; + $authAt = "未知"; } ShowMsg("开发者名称:{$devInfo['dev_name']}
        开发者id:{$devInfo['dev_id']}
        认证于:{$authAt}", "-1"); exit; From eb8774479561140ee906e0121f10c2986303e89d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 15:36:37 +0800 Subject: [PATCH 38/53] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=95=88=E6=9E=9C=E5=9B=BE=E6=A0=87=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/inc/inc_menu.php | 2 +- src/admin/templets/index_body.htm | 10 +++---- src/static/web/css/admin.css | 42 ++++++++++++--------------- src/static/web/css/style.css | 47 +++++++++++++++---------------- 4 files changed, 46 insertions(+), 55 deletions(-) diff --git a/src/admin/inc/inc_menu.php b/src/admin/inc/inc_menu.php index 4bdb3aa7..7827fccb 100644 --- a/src/admin/inc/inc_menu.php +++ b/src/admin/inc/inc_menu.php @@ -114,7 +114,7 @@ $adminMenu1 $adminMenu2 - + "; diff --git a/src/admin/templets/index_body.htm b/src/admin/templets/index_body.htm index 106068f8..af15d435 100644 --- a/src/admin/templets/index_body.htm +++ b/src/admin/templets/index_body.htm @@ -24,7 +24,7 @@
        - 流量统计表 + 流量统计表
        "; - echo "$step外部{$nss}".$typeName."[id:".$id."]"; + echo "$step外部{$nss}".$typeName."[id:".$id."]"; echo ""; echo ""; diff --git a/src/theme/apps/list_diyform.htm b/src/theme/apps/list_diyform.htm index 0588aca2..85c806b6 100644 --- a/src/theme/apps/list_diyform.htm +++ b/src/theme/apps/list_diyform.htm @@ -25,7 +25,7 @@ "; - echo '
        表单'.$fields['id'].'详细
        表单'.$fields['id'].' 详细
        -

        您确定要删除$filename目录吗
        您确定要删除".$filename."目录吗
        您确定要删除$filename文件吗
        您确定要删除".$filename."文件吗
        -
        文件列表中涉及的目录权限可写入,后台管理目录和主题目录也权限可写入
        +
        文件列表中涉及的目录权限可写入,后台管理目录和主题目录也权限可写入
        您确定要删除id$userid管理员吗
        您确定要删除id".$userid."管理员吗
        验证安全码:(安全码:$safecode)
        \r\n"; - $fp = fopen($ImageWaterConfigFile, "w") or die("写入文件$ImageWaterConfigFile失败,请检查权限"); + $fp = fopen($ImageWaterConfigFile, "w") or die("写入文件".$ImageWaterConfigFile."失败,请检查权限"); fwrite($fp, $configstr); fclose($fp); echo "\r\n"; diff --git a/src/admin/sys_sql_query.php b/src/admin/sys_sql_query.php index 6400df96..e299f0d6 100644 --- a/src/admin/sys_sql_query.php +++ b/src/admin/sys_sql_query.php @@ -35,8 +35,8 @@ else if ($dopost == "opimize") { echo "没有指定表名"; } else { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); - if ($rs) echo "执行优化表$tablename完成"; - else echo "
        执行优化表$tablename失败,原因是:".$dsql->GetError(); + if ($rs) echo "执行优化表".$tablename."完成
        "; + else echo "执行优化表".$tablename."失败,原因是:".$dsql->GetError(); } exit(); } @@ -48,9 +48,9 @@ else if ($dopost == "opimizeAll") { while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `{$row[0]}`"); if ($rs) { - echo "优化表{$row[0]}完成"; + echo "优化表{$row[0]}完成
        "; } else { - echo "
        优化表{$row[0]}失败,原因是: ".$dsql->GetError(); + echo "优化表{$row[0]}失败,原因是: ".$dsql->GetError(); } } exit(); @@ -62,8 +62,8 @@ else if ($dopost == "repair") { echo "没有指定表名"; } else { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`"); - if ($rs) echo "修复表$tablename完成"; - else echo "
        修复表$tablename失败,原因是:".$dsql->GetError(); + if ($rs) echo "修复表".$tablename."完成
        "; + else echo "修复表".$tablename."失败,原因是:".$dsql->GetError(); } exit(); } @@ -75,9 +75,9 @@ else if ($dopost == "repairAll") { while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `{$row[0]}`"); if ($rs) { - echo "修复表{$row[0]}完成"; + echo "修复表{$row[0]}完成
        "; } else { - echo "
        修复表{$row[0]}失败,原因是: ".$dsql->GetError(); + echo "修复表{$row[0]}失败,原因是: ".$dsql->GetError(); } } exit(); @@ -131,7 +131,7 @@ else if ($dopost == "query") { if ($errCode == "") { $i++; } else { - $nerrCode .= "执行$q出错,错误提示:".$errCode.""; + $nerrCode .= "执行".$q."出错,错误提示:".$errCode.""; } } echo "成功执行{$i}个SQL语句"; diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index e4582aa5..9d3a99c2 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -340,7 +340,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/archives_edit.htm b/src/admin/templets/archives_edit.htm index 5f2fd3f2..b13f156f 100644 --- a/src/admin/templets/archives_edit.htm +++ b/src/admin/templets/archives_edit.htm @@ -227,7 +227,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/article_edit.htm b/src/admin/templets/article_edit.htm index 178b18ca..a478f10a 100644 --- a/src/admin/templets/article_edit.htm +++ b/src/admin/templets/article_edit.htm @@ -226,7 +226,7 @@ 正常排序"; - if ($subday>0) echo ""; + if ($subday>0) echo ""; ?> diff --git a/src/admin/templets/diy_field_add.htm b/src/admin/templets/diy_field_add.htm index e91948a1..832085ed 100644 --- a/src/admin/templets/diy_field_add.htm +++ b/src/admin/templets/diy_field_add.htm @@ -23,7 +23,7 @@
        -
        修改文档模型字段时禁止输入双引号"
        +
        修改文档模型字段时禁止输入双引号"
        ".$v['lang'].""; + if ($cfg_soft_lang != $v['lang']) echo $v['lang']; else echo $v['lang']; ?>
        -
        系统模型字段参数配置,修改不当会导致模型出错
        +
        系统模型字段参数配置,修改不当会导致模型出错
        -
        修改文档模型字段时禁止输入双引号"
        +
        修改文档模型字段时禁止输入双引号"
        -
        系统模型字段参数配置,修改不当会导致模型出错
        +
        系统模型字段参数配置,修改不当会导致模型出错
        -
        数据库字段批量替换数据,操作不当会导致数据出错
        +
        数据库字段批量替换数据,操作不当会导致数据出错
        级别值: - (系统已占用的级别值:SetQuery("Select `rank` From `#@__admintype`");$dsql->Execute();while($row = $dsql->GetObject()) echo ''.$row->rank.'';?>,级别值必须小于10,超过或等于10所有权限设置无效) + (系统已占用的级别值:SetQuery("SELECT `rank` FROM `#@__admintype`");$dsql->Execute();while($row = $dsql->GetObject()) echo $row->rank;?>,级别值必须小于10,超过或等于10所有权限设置无效)
        {$start}、".str_replace('>>','',$line)."
        "; + $lhead = "
        {$start}、".str_replace('>>','',$line)."
        "; echo $lhead; } else if (preg_match("#^>#", $line)) diff --git a/src/admin/templets/templets_tagsource.htm b/src/admin/templets/templets_tagsource.htm index eef296d5..87cd3322 100644 --- a/src/admin/templets/templets_tagsource.htm +++ b/src/admin/templets/templets_tagsource.htm @@ -15,7 +15,7 @@
        -
        系统标签源码文件,修改不当会导致标签错误
        +
        系统标签源码文件,修改不当会导致标签错误
        -
        系统标签源码文件,修改不当会导致标签错误
        +
        系统标签源码文件,修改不当会导致标签错误
        @@ -63,7 +63,7 @@
        - 软件信息 + 软件信息
        @@ -112,7 +112,7 @@
        - 版本授权 + 版本授权 软件更新
        正在加载
        @@ -121,7 +121,7 @@
        - 流量统计图 + 流量统计图
        @@ -131,7 +131,7 @@
        - 最新文档 + 最新文档
        正在加载
        diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 8875e608..1570bd4b 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -26,7 +26,7 @@ a { text-decoration:none } a:hover { - color:#ff8400; + color:#007bff; text-decoration:none } img { @@ -78,8 +78,7 @@ input { color:#545b62; background:#fff; border:1px solid #dee2e6; - vertical-align:middle; - transition:all 0.5s + vertical-align:middle } input[type=file] { padding:0; @@ -94,8 +93,7 @@ input[type=button],input[type=submit],input[type=reset] { font-size:12px; color:#fff; background:#1eb867; - border:0; - transition:all 0.5s + border:0 } input[type=radio],input[type=checkbox],input[type=radio]:focus,input[type=checkbox]:focus { width:14px; @@ -110,8 +108,7 @@ select { color:#545b62; background:#fff; border:1px solid #dee2e6; - vertical-align:middle; - transition:all 0.5s + vertical-align:middle } select[multiple=yes] { height:180px @@ -127,8 +124,7 @@ textarea { color:#545b62; background:#fff; border:1px solid #dee2e6; - vertical-align:middle; - transition:all 0.5s + vertical-align:middle } input:focus,select:focus,textarea:focus { color:#495057; @@ -197,8 +193,7 @@ body.hidemenu .body-right { display:block; height:42px; line-height:42px; - cursor:pointer; - transition:all 0.5s + cursor:pointer } .item-menu li:last-child .link { border-bottom:0 @@ -310,11 +305,11 @@ body.hidemenu .body-right { } .submenu li { height:40px; - line-height:40px; - transition:all 0.5s + line-height:40px } .submenu li:hover { - background:#009688 + background:#009688; + transition:all 0.5s } .submenu a { float:left; @@ -527,8 +522,7 @@ body.hidemenu .body-right { } .fa { font-size:14px!important; - color:inherit; - cursor:pointer + color:inherit } .list-group-item { padding:0.5rem 0 @@ -676,14 +670,6 @@ table,input,select,textarea,.search,.menu-body,.coolbg,.mysource,.mywriter,.pubd float:right; cursor:pointer } -@media (max-width:768px) { - .tips { - padding:0 15px - } - .tips-box { - width:100% - } -} @media (min-width:1200px) { .web-info { text-overflow:ellipsis; @@ -692,4 +678,12 @@ table,input,select,textarea,.search,.menu-body,.coolbg,.mysource,.mywriter,.pubd .modal-dialog { max-width:500px } +} +@media (max-width:768px) { + .tips { + padding:0 15px + } + .tips-box { + width:100% + } } \ No newline at end of file diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index 01a4106b..ad89bf63 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -21,15 +21,16 @@ body { background:#fff } a { - color:#545b62 + color:#545b62; + text-decoration:none } a:hover { - color:#ff8400; + color:#007bff; text-decoration:none } img { max-width:100%; - border-radius:.5rem + border-radius:0.5rem } ul,ol,li { margin:0; @@ -89,8 +90,7 @@ input[type=file] { margin-bottom:0 } .item-theme { - margin-bottom:2rem; - transition:all .5s + margin-bottom:2rem } .item-theme-box { padding:1.5rem @@ -110,15 +110,15 @@ input[type=file] { } .item-news { margin-bottom:2rem; - padding:1.5rem; - transition:all .5s + padding:1.5rem } .item-theme:hover,.item-news:hover { box-shadow:0 14px 30px -16px rgba(0,36,100,.25); - transform:translateY(-6px) + transform:translateY(-6px); + transition:all 0.5s } .item-news h4 { - margin:20px 0 16px; + margin:20px 0 15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap @@ -356,7 +356,7 @@ input[type=file] { color:#545b62 } .table td,.table th { - padding:.65rem; + padding:0.5rem; vertical-align:middle } .form-control { @@ -364,11 +364,8 @@ input[type=file] { height:36px } .form-control,.fa { - font-size:14px!important -} -.fa { - color:inherit; - cursor:pointer + font-size:14px!important; + color:inherit } .btn+.btn { margin-left:10px @@ -394,30 +391,30 @@ input[type=file] { width:60px } .navbar-toggler,.dropdown-menu,.breadcrumb,.cke_chrome,.cke_inner,.pagination,.form-control,.btn-md,.btn-sm,.alert,.rounded { - border-radius:.5rem!important + border-radius:0.5rem!important } .btn-xs { - border-radius:.35rem!important + border-radius:0.35rem!important } .cke_top,.item-theme-img img,.list-article-img img,.article-hot-img img { - border-radius:.5rem .5rem 0 0!important + border-radius:0.5rem 0.5rem 0 0!important } .cke_bottom,.list-article-radius { - border-radius:0 0 .5rem .5rem!important + border-radius:0 0 0.5rem 0.5rem!important } #validateimg,.btn-send { - border-radius:0 .5rem .5rem 0!important + border-radius:0 0.5rem 0.5rem 0!important } .rounded-circle { border-radius:50%!important } .page-item:first-child .page-link { - border-top-left-radius:.5rem!important; - border-bottom-left-radius:.5rem!important + border-top-left-radius:0.5rem!important; + border-bottom-left-radius:0.5rem!important } .page-item:last-child .page-link { - border-top-right-radius:.5rem!important; - border-bottom-right-radius:.5rem!important + border-top-right-radius:0.5rem!important; + border-bottom-right-radius:0.5rem!important } .input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child) { border-top-right-radius:0!important; @@ -436,7 +433,7 @@ input[type=file] { color:#fff; cursor:pointer; background:#ec982c; - border-radius:.5rem; + border-radius:0.5rem; border:0; z-index:9998 } From 911cbdb34ba48533b32b79b6bdc22af7ca3c6ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 15:45:34 +0800 Subject: [PATCH 39/53] Update admin.css --- src/static/web/css/admin.css | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 1570bd4b..15d12b60 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -591,22 +591,13 @@ body.hidemenu .body-right { max-width:80px; max-height:80px } -.icon img { - width:20px; - height:20px -} .upload-bg { margin:10px; background:#fff } -.napisdiv { - position:absolute; - left:10; - top:10; - display:none; - width:150px; - height:100px; - z-index:9998 +.icon img { + width:20px; + height:20px } .fileinput-button { display:inline-block; From f000eda6796624be8aede52c36a4c9d5db7c9412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 16:50:15 +0800 Subject: [PATCH 40/53] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/templets/ad_add.htm | 11 +++--- src/admin/templets/ad_edit.htm | 11 +++--- src/admin/templets/album_add.htm | 2 +- src/admin/templets/album_edit.htm | 4 +- .../templets/article_keywords_select.htm | 12 ++---- src/admin/templets/catalog_add_quick.htm | 37 ++++++++----------- src/admin/templets/content_batch_up.htm | 6 +-- src/admin/templets/content_i_list.htm | 2 +- src/admin/templets/content_list.htm | 2 +- src/admin/templets/content_s_list.htm | 2 +- src/admin/templets/content_sg_list.htm | 2 +- src/admin/templets/diy_field_add.htm | 3 +- src/admin/templets/diy_field_edit.htm | 3 +- src/admin/templets/file_upload.htm | 8 ++-- src/admin/templets/freelist_main.htm | 4 +- src/admin/templets/friendlink_add.htm | 3 +- src/admin/templets/makehtml_all.htm | 4 +- src/admin/templets/member_edit.htm | 7 ++-- src/admin/templets/module_edit.htm | 6 +-- src/admin/templets/mychannel_field_add.htm | 5 +-- src/admin/templets/mychannel_field_edit.htm | 4 +- src/admin/templets/mytag_add.htm | 15 ++++---- src/admin/templets/mytag_edit.htm | 4 +- src/admin/templets/mytag_main.htm | 2 +- src/admin/templets/search_keywords_main.htm | 4 +- src/admin/templets/sys_admin_user_tj.htm | 3 +- src/admin/templets/sys_cloud.htm | 4 +- src/admin/templets/sys_payment.htm | 14 +++---- src/admin/templets/tags_main.htm | 2 +- src/admin/templets/templets_one_edit.htm | 3 +- src/admin/templets/vote_add.htm | 7 ++-- src/admin/templets/vote_edit.htm | 7 ++-- 32 files changed, 88 insertions(+), 115 deletions(-) diff --git a/src/admin/templets/ad_add.htm b/src/admin/templets/ad_add.htm index 282aaaa8..2c9dfb8d 100644 --- a/src/admin/templets/ad_add.htm +++ b/src/admin/templets/ad_add.htm @@ -71,8 +71,8 @@
        @@ -177,7 +177,7 @@ return false; } } - $(document).ready(function () { + $(document).ready(function() { $('.datepicker').daterangepicker({ "singleDatePicker": true, "autoApply": true, @@ -185,7 +185,6 @@ "linkedCalendars": false, "timePicker": true, "timePicker24Hour": true, - //"timePickerSeconds": true, "showCustomRangeLabel": false, ranges: { '今日': [moment(), moment()], @@ -201,13 +200,13 @@ monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], firstDay: 1 } - }, function (start) { + }, function(start) { $(this).val(start.format("YYYY-MM-DD HH:mm")); }); }) \ No newline at end of file diff --git a/src/admin/templets/album_add.htm b/src/admin/templets/album_add.htm index 0b5185f5..56a07b87 100644 --- a/src/admin/templets/album_add.htm +++ b/src/admin/templets/album_add.htm @@ -412,7 +412,7 @@ } }); } - }) + }); diff --git a/src/admin/templets/album_edit.htm b/src/admin/templets/album_edit.htm index 9d3a99c2..40e300f9 100644 --- a/src/admin/templets/album_edit.htm +++ b/src/admin/templets/album_edit.htm @@ -446,7 +446,7 @@ ShowMsg(error); //处理上传失败后的回调 } }); - }) + }); $("#iptAlbumImages").change(function(val) { for (let i = 0; i < val.target.files.length; i++) { const f = val.target.files[i]; @@ -473,7 +473,7 @@ } }); } - }) + }); diff --git a/src/admin/templets/article_keywords_select.htm b/src/admin/templets/article_keywords_select.htm index 768c427a..0b6219ef 100644 --- a/src/admin/templets/article_keywords_select.htm +++ b/src/admin/templets/article_keywords_select.htm @@ -46,16 +46,14 @@ diff --git a/src/admin/templets/catalog_add_quick.htm b/src/admin/templets/catalog_add_quick.htm index 612ab522..b02321c2 100644 --- a/src/admin/templets/catalog_add_quick.htm +++ b/src/admin/templets/catalog_add_quick.htm @@ -171,40 +171,33 @@ \ No newline at end of file diff --git a/src/admin/templets/content_i_list.htm b/src/admin/templets/content_i_list.htm index b5b69d00..bf43c146 100644 --- a/src/admin/templets/content_i_list.htm +++ b/src/admin/templets/content_i_list.htm @@ -137,7 +137,7 @@ $('#timerange').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); }); - }) + }); \ No newline at end of file diff --git a/src/admin/templets/content_list.htm b/src/admin/templets/content_list.htm index 3ddabbd4..f577cc04 100644 --- a/src/admin/templets/content_list.htm +++ b/src/admin/templets/content_list.htm @@ -136,7 +136,7 @@ $('#timerange').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); }); - }) + }); \ No newline at end of file diff --git a/src/admin/templets/content_s_list.htm b/src/admin/templets/content_s_list.htm index c3b5cab3..9228a786 100644 --- a/src/admin/templets/content_s_list.htm +++ b/src/admin/templets/content_s_list.htm @@ -108,7 +108,7 @@ $('#timerange').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); }); - }) + }); \ No newline at end of file diff --git a/src/admin/templets/content_sg_list.htm b/src/admin/templets/content_sg_list.htm index 31654d58..7ab40826 100644 --- a/src/admin/templets/content_sg_list.htm +++ b/src/admin/templets/content_sg_list.htm @@ -122,7 +122,7 @@ $('#timerange').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); }); - }) + }); \ No newline at end of file diff --git a/src/admin/templets/diy_field_add.htm b/src/admin/templets/diy_field_add.htm index 832085ed..c59f55ab 100644 --- a/src/admin/templets/diy_field_add.htm +++ b/src/admin/templets/diy_field_add.htm @@ -97,8 +97,7 @@ \ No newline at end of file diff --git a/src/admin/templets/member_edit.htm b/src/admin/templets/member_edit.htm index a41c075f..7b2ad38d 100644 --- a/src/admin/templets/member_edit.htm +++ b/src/admin/templets/member_edit.htm @@ -173,14 +173,13 @@
        投放时间: - - + +
        \ No newline at end of file diff --git a/src/admin/templets/mytag_edit.htm b/src/admin/templets/mytag_edit.htm index d4acca3e..35e32f11 100644 --- a/src/admin/templets/mytag_edit.htm +++ b/src/admin/templets/mytag_edit.htm @@ -43,11 +43,11 @@
        开始时间:
        结束时间:
        正常显示文档:
        - 添加标记 + 添加自定义宏标记 智能标记向导
        \ No newline at end of file diff --git a/src/admin/templets/tags_main.htm b/src/admin/templets/tags_main.htm index df483c8c..97f1fd10 100644 --- a/src/admin/templets/tags_main.htm +++ b/src/admin/templets/tags_main.htm @@ -126,7 +126,7 @@ location.reload(); } - }) + }); } diff --git a/src/admin/templets/templets_one_edit.htm b/src/admin/templets/templets_one_edit.htm index af04b069..bb231e06 100644 --- a/src/admin/templets/templets_one_edit.htm +++ b/src/admin/templets/templets_one_edit.htm @@ -83,8 +83,7 @@
        \ No newline at end of file diff --git a/src/admin/templets/vote_edit.htm b/src/admin/templets/vote_edit.htm index 0a82f9f6..9286fb98 100644 --- a/src/admin/templets/vote_edit.htm +++ b/src/admin/templets/vote_edit.htm @@ -87,7 +87,7 @@
        \ No newline at end of file From 27634648d8f0ce8c7f407f51c3eee65b4b18b052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Wed, 13 Sep 2023 16:52:05 +0800 Subject: [PATCH 41/53] Update content_batch_up.htm --- src/admin/templets/content_batch_up.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/admin/templets/content_batch_up.htm b/src/admin/templets/content_batch_up.htm index 206e27f4..47d93372 100644 --- a/src/admin/templets/content_batch_up.htm +++ b/src/admin/templets/content_batch_up.htm @@ -87,13 +87,13 @@ function ShowHideTime() { var selBox = document.getElementById('seltime'); var obj = document.getElementById('seltimeField'); - if (selBox.checked) obj.style.display = "block"; + if (selBox.checked) obj.style.display = "inline-block"; else obj.style.display = "none"; } function ShowHideMove() { var selBox = document.getElementById('moveradio'); - var obj = document.querySelectorAll('.moveField').forEach(v=>{ - if (selBox.checked) v.style.display = "block"; + var obj = document.querySelectorAll('.moveField').forEach(v => { + if (selBox.checked) v.style.display = "inline-block"; else v.style.display = "none"; }) } From a4aa4c59241f69ed11b2f3baab4b0cb1fca0b9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 19 Sep 2023 10:19:33 +0800 Subject: [PATCH 42/53] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/sys_admin_user_tj.php | 109 ----------------------- src/admin/templets/sys_admin_user.htm | 1 - src/admin/templets/sys_admin_user_tj.htm | 46 ---------- 3 files changed, 156 deletions(-) delete mode 100644 src/admin/sys_admin_user_tj.php delete mode 100644 src/admin/templets/sys_admin_user_tj.htm diff --git a/src/admin/sys_admin_user_tj.php b/src/admin/sys_admin_user_tj.php deleted file mode 100644 index 7176eb44..00000000 --- a/src/admin/sys_admin_user_tj.php +++ /dev/null @@ -1,109 +0,0 @@ -GetOne("SELECT userid FROM `#@__admin` WHERE id='$uid';"); - $userid = $row['userid']; - $y = intval(MyDate('Y', time())); - $m = intval(MyDate('m', time())); - $d = intval(MyDate('d', time())); - //全部 - $sql = "SELECT addtable FROM `#@__channeltype` WHERE issystem='-1'"; - $dsql->Execute('me', $sql); - while ($frow = $dsql->GetArray('me')) { - $dd = empty($dd) ? "0" : $dd; - $cc = empty($cc) ? "0" : $cc; - $row = $dsql->GetOne("SELECT COUNT(aid) AS dd,SUM(click) AS cc FROM `{$frow['addtable']}` WHERE mid='$uid';"); - $dd += $row['dd']; - $cc += $row['cc']; - } - $row = $dsql->GetOne("SELECT COUNT(id) AS dd,SUM(click) AS cc FROM `#@__archives` WHERE mid='$uid';"); - $dd = $row['dd'] + $dd; - $cc = $row['cc'] + $cc; - //季度 - $starttime = 0; - if (preg_match("#[123]#", $m) && $m < 10) $starttime = $y."-01-01 00:00:00"; - else if (preg_match("#[456]#", $m)) $starttime = $y."-04-01 00:00:00"; - else if (preg_match("#[789]#", $m)) $starttime = $y."-07-01 00:00:00"; - else $starttime = $y."-10-01 00:00:00"; - $istarttime = GetMkTime($starttime); - $sql = "SELECT addtable FROM `#@__channeltype` WHERE issystem='-1'"; - $dsql->Execute('me', $sql); - while ($frow = $dsql->GetArray('me')) { - $dds = empty($dds) ? "0" : $dds; - $ccs = empty($ccs) ? "0" : $ccs; - $row = $dsql->GetOne("SELECT COUNT(aid) AS dd,SUM(click) AS cc FROM `{$frow['addtable']}` WHERE senddate>$istarttime AND mid='$uid';"); - $dds += $row['dd']; - $ccs += $row['cc']; - } - $row = $dsql->GetOne("SELECT COUNT(id) AS dd,SUM(click) AS cc FROM `#@__archives` WHERE senddate>$istarttime AND mid='$uid';"); - $dds = $row['dd'] + $dds; - $ccs = $row['cc'] + $ccs; - //当月 - $starttime = $y."-{$m}-01 00:00:00"; - $istarttime = GetMkTime($starttime); - $sql = "SELECT addtable FROM `#@__channeltype` WHERE issystem='-1'"; - $dsql->Execute('me', $sql); - while ($frow = $dsql->GetArray('me')) { - $ddm = empty($ddm) ? "0" : $ddm; - $ccm = empty($ccm) ? "0" : $ccm; - $row = $dsql->GetOne("SELECT COUNT(aid) AS dd,SUM(click) AS cc FROM `{$frow['addtable']}` WHERE senddate>$istarttime AND mid='$uid';"); - $ddm += $row['dd']; - $ccm += $row['cc']; - } - $row = $dsql->GetOne("SELECT COUNT(id) AS dd,SUM(click) AS cc FROM `#@__archives` WHERE senddate>$istarttime AND mid='$uid';"); - $ddm = $row['dd'] + $ddm; - $ccm = $row['cc'] + $ccm; - //七天 - $starttime = $y."-{$m}-{$d} 00:00:00"; - $istarttime = GetMkTime($starttime) - (7 * 24 * 3600); - $sql = "SELECT addtable FROM `#@__channeltype` WHERE issystem='-1'"; - $dsql->Execute('me', $sql); - while ($frow = $dsql->GetArray('me')) { - $ddw = empty($ddw) ? "0" : $ddw; - $ccw = empty($ccw) ? "0" : $ccw; - $row = $dsql->GetOne("SELECT COUNT(aid) AS dd,SUM(click) AS cc FROM `{$frow['addtable']}` WHERE senddate>$istarttime AND mid='$uid';"); - $ddw += $row['dd']; - $ccw += $row['cc']; - } - $row = $dsql->GetOne("SELECT COUNT(id) AS dd,SUM(click) AS cc FROM `#@__archives` WHERE senddate>$istarttime AND mid='$uid';"); - $ddw = $row['dd'] + $ddw; - $ccw = $row['cc'] + $ccw; - //当天 - $starttime = $y."-{$m}-{$d} 00:00:00"; - $istarttime = GetMkTime($starttime); - $sql = "SELECT addtable FROM `#@__channeltype` WHERE issystem='-1'"; - $dsql->Execute('me', $sql); - while ($frow = $dsql->GetArray('me')) { - $ddd = empty($ddd) ? "0" : $ddd; - $ccd = empty($ccd) ? "0" : $ccd; - $row = $dsql->GetOne("SELECT COUNT(aid) AS dd,SUM(click) AS cc FROM `{$frow['addtable']}` WHERE senddate>$istarttime AND mid='$uid';"); - $ddd += $row['dd']; - $ccd += $row['cc']; - } - $row = $dsql->GetOne("SELECT COUNT(id) AS dd,SUM(click) AS cc FROM `#@__archives` WHERE senddate>$istarttime AND mid='$uid';"); - $ddd = $row['dd'] + $ddd; - $ccd = $row['cc'] + $ccd; - $msg = "
        -
        管理员:{$userid}
        -
        文档/点击:{$dd}/{$cc}
        -
        季度:{$dds}/{$ccs}
        -
        当月:{$ddm}/{$ccm}
        -
        七天:{$ddw}/{$ccw}
        -
        当天:{$ddd}/{$ccd}
        -
        "; - AjaxHead(); - echo $msg; - exit(); -} -include DedeInclude('templets/sys_admin_user_tj.htm'); -?> \ No newline at end of file diff --git a/src/admin/templets/sys_admin_user.htm b/src/admin/templets/sys_admin_user.htm index 8ba7af7b..74604824 100644 --- a/src/admin/templets/sys_admin_user.htm +++ b/src/admin/templets/sys_admin_user.htm @@ -15,7 +15,6 @@
        添加管理员 会员组管理 - 管理员绩效统计
        diff --git a/src/admin/templets/sys_admin_user_tj.htm b/src/admin/templets/sys_admin_user_tj.htm deleted file mode 100644 index 053c9473..00000000 --- a/src/admin/templets/sys_admin_user_tj.htm +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - 管理员绩效统计 - - - - - - - - - - - - - - -
        管理员帐号 - 管理员绩效统计
        - - Execute('me', 'SELECT * FROM `#@__admin` ORDER BY id ASC'); - while ($arr = $dsql->GetArray('me')) { - echo "
        "; - } - ?> -
        - - \ No newline at end of file From d3b167c6ae5c426f0cf0aed860ba0ec7be075fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 19 Sep 2023 10:50:04 +0800 Subject: [PATCH 43/53] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E9=87=87=E7=94=A8icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/dialog/select_mimages.php | 380 +++++++++++++------------ src/admin/js/album.js | 1 - src/admin/js/main.js | 2 - src/admin/sys_safetest.php | 2 +- src/admin/templets/module_main.htm | 1 - src/admin/templets/stepselect_main.htm | 25 +- src/admin/templets/sys_safetest.htm | 8 +- src/static/web/img/loadinglit.gif | Bin 11215 -> 0 bytes 8 files changed, 201 insertions(+), 218 deletions(-) delete mode 100644 src/static/web/img/loadinglit.gif diff --git a/src/admin/dialog/select_mimages.php b/src/admin/dialog/select_mimages.php index cc3937bf..8a4af581 100644 --- a/src/admin/dialog/select_mimages.php +++ b/src/admin/dialog/select_mimages.php @@ -5,209 +5,211 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); - - - - - - - 插入多图 - - + + + + + + + 插入多图 + + + + -
        -
        - - - - +
        +
        + + + + +
        +
          -
            -
            - + e.target.innerText='上传中'; + upAllFiles(0); + } + }); + var observ_flist = new MutationObserver( (muList,observe) => { + if (muList[0].addedNodes.length > 0) { + muList[0].addedNodes.forEach((el) => { + el.querySelector('.remove').addEventListener('click',(e) => { + var li = e.target.parentNode.parentNode; + var n = li.getAttribute('data-num'); + var el = document.querySelectorAll('#file_list li')[n]; + el.parentNode.removeChild(el); + axupimgs.res.splice(n,1); + }); + }); + } + reSort(); + }); + observ_flist.observe(document.querySelector('#file_list'),{childList:true}); + \ No newline at end of file diff --git a/src/admin/js/album.js b/src/admin/js/album.js index 744a42ff..468b3ee6 100644 --- a/src/admin/js/album.js +++ b/src/admin/js/album.js @@ -61,7 +61,6 @@ function seePicNewAlb(f, imgdid, frname, hpos, acname) { newobj.style.top = hpos; newobj.style.left = 100; document.body.appendChild(newobj); - newobj.innerHTML = ''; } newobj.style.display = "block"; nForm.action = acname; diff --git a/src/admin/js/main.js b/src/admin/js/main.js index 720777d9..651ebd55 100644 --- a/src/admin/js/main.js +++ b/src/admin/js/main.js @@ -38,7 +38,6 @@ function SeePicNew(f, imgdid, frname, hpos, acname) { newobj.style.left = 100; newobj.style.display = "block"; document.body.appendChild(newobj); - newobj.innerHTML = ''; } newobj.style.display = "block"; nForm.action = acname; @@ -252,7 +251,6 @@ function LoadQuickDiv(e, surl, oname, w, h) { newobj.style.left = "50%"; newobj.style.display = "block"; newobj.style.transform = "translate(-50%, -201px)"; - newobj.innerHTML = ''; fetch(surl).then(resp => resp.text()).then((d) => { newobj.innerHTML = d; }); diff --git a/src/admin/sys_safetest.php b/src/admin/sys_safetest.php index ac7b63ab..14e3fd1c 100644 --- a/src/admin/sys_safetest.php +++ b/src/admin/sys_safetest.php @@ -46,7 +46,7 @@ function TestOneFile($f) if ($localFilehash === $remoteFilehash) { return 0; } - $message .= "
            发现可疑文件:{$trfile} 查看 修改 删除
            \r\n"; + $message .= "

            发现可疑文件:{$trfile} 查看 修改 删除

            \r\n"; return 1; } return 0; diff --git a/src/admin/templets/module_main.htm b/src/admin/templets/module_main.htm index 273055c8..55ab6b12 100644 --- a/src/admin/templets/module_main.htm +++ b/src/admin/templets/module_main.htm @@ -12,7 +12,6 @@ -
            - +
            diff --git a/src/admin/templets/sys_safetest.htm b/src/admin/templets/sys_safetest.htm index 364ee5b5..0c5eeea1 100644 --- a/src/admin/templets/sys_safetest.htm +++ b/src/admin/templets/sys_safetest.htm @@ -40,16 +40,13 @@
            - -
            diff --git a/src/admin/templets/tag_test.htm b/src/admin/templets/tag_test.htm index 4c353c85..91a57dd9 100644 --- a/src/admin/templets/tag_test.htm +++ b/src/admin/templets/tag_test.htm @@ -50,7 +50,7 @@
            - +
            @@ -35,7 +35,7 @@
            $help) { - echo ''.""; + echo ''.$key.''.""; } ?> $help) { - echo '
            关闭

            标签名称:'.$key.'

            标签说明:'.trim($help[0]).'

            '.""; + echo '
            关闭

            标签名称:'.$key.'

            标签说明:'.trim($help[0]).'

            '.""; $parameters = explode("\n", $help[2]); foreach($parameters as $parameter) { @@ -59,7 +59,7 @@
            - +
            @@ -59,7 +59,7 @@ return false; } } - var editor = CodeMirror.fromTextArea(document.getElementById('content'), { + var editor = CodeMirror.fromTextArea(document.getElementById("content"), { lineNumbers: true, lineWrapping: true, mode: 'text/x-php' From 59548e8d51c300d8a9428aab67bb95955610d59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 19 Sep 2023 17:46:54 +0800 Subject: [PATCH 47/53] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/mychannel_edit.php | 2 +- src/admin/templets/file_edit.htm | 3 +-- src/admin/templets/freelist_add.htm | 2 +- src/admin/templets/freelist_edit.htm | 2 +- src/admin/templets/mychannel_edit.htm | 2 +- src/admin/templets/mytag_tag_guide.htm | 2 +- src/admin/templets/tag_test.htm | 2 +- src/admin/templets/tpl_edit.htm | 2 +- src/admin/templets/tpl_edit_tag.htm | 2 +- 9 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/admin/mychannel_edit.php b/src/admin/mychannel_edit.php index 4bcbb79e..b7e44f76 100644 --- a/src/admin/mychannel_edit.php +++ b/src/admin/mychannel_edit.php @@ -572,7 +572,7 @@ if ($dopost == "show") { echo ""; echo $forms; } diff --git a/src/admin/templets/file_edit.htm b/src/admin/templets/file_edit.htm index 2396aa22..d35f67d0 100644 --- a/src/admin/templets/file_edit.htm +++ b/src/admin/templets/file_edit.htm @@ -64,8 +64,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("str"), { lineNumbers: true, lineWrapping: true, - mode: '{dede:global name=' - extension '/}' + mode: '{dede:global name='extension'/}', }); diff --git a/src/admin/templets/freelist_add.htm b/src/admin/templets/freelist_add.htm index 2fb1fec6..748e9a0a 100644 --- a/src/admin/templets/freelist_add.htm +++ b/src/admin/templets/freelist_add.htm @@ -214,7 +214,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("myinnertext"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/freelist_edit.htm b/src/admin/templets/freelist_edit.htm index 770821aa..a5315bf1 100644 --- a/src/admin/templets/freelist_edit.htm +++ b/src/admin/templets/freelist_edit.htm @@ -214,7 +214,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("myinnertext"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/mychannel_edit.htm b/src/admin/templets/mychannel_edit.htm index 714cf2a9..5949cea6 100644 --- a/src/admin/templets/mychannel_edit.htm +++ b/src/admin/templets/mychannel_edit.htm @@ -287,7 +287,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("fieldset"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/mytag_tag_guide.htm b/src/admin/templets/mytag_tag_guide.htm index 77a18c59..ec75f989 100644 --- a/src/admin/templets/mytag_tag_guide.htm +++ b/src/admin/templets/mytag_tag_guide.htm @@ -172,7 +172,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("myinnertext"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/tag_test.htm b/src/admin/templets/tag_test.htm index 91a57dd9..4a3096c7 100644 --- a/src/admin/templets/tag_test.htm +++ b/src/admin/templets/tag_test.htm @@ -53,7 +53,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("partcode"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/tpl_edit.htm b/src/admin/templets/tpl_edit.htm index 9cad528f..973cdacc 100644 --- a/src/admin/templets/tpl_edit.htm +++ b/src/admin/templets/tpl_edit.htm @@ -102,7 +102,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("content"), { lineNumbers: true, lineWrapping: true, - mode: 'text/html' + mode: 'text/html', }); diff --git a/src/admin/templets/tpl_edit_tag.htm b/src/admin/templets/tpl_edit_tag.htm index e324b320..9ec9917b 100644 --- a/src/admin/templets/tpl_edit_tag.htm +++ b/src/admin/templets/tpl_edit_tag.htm @@ -62,7 +62,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("content"), { lineNumbers: true, lineWrapping: true, - mode: 'text/x-php' + mode: 'text/x-php', }); From 77324def959c5952513621079b1790544d8153b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 19 Sep 2023 18:06:35 +0800 Subject: [PATCH 48/53] Update style.js --- src/static/web/js/style.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/static/web/js/style.js b/src/static/web/js/style.js index a68579ad..c51710c5 100644 --- a/src/static/web/js/style.js +++ b/src/static/web/js/style.js @@ -134,7 +134,7 @@ function ErrAddSaveDo(modalID) { }; $("#btnsubmit").attr("disabled", "disabled"); if (typeof PHPURL === "undefined") { - const PHPURL = "/plus"; + const PHPURL = "/apps"; } $.post(PHPURL + "/erraddsave.php", parms, function (data) { let result = JSON.parse(data); From 9f311b6111f96e3fcd03cf0c10e387aedee7bed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Tue, 19 Sep 2023 18:14:05 +0800 Subject: [PATCH 49/53] Update sql-dfdata.txt --- src/install/sql-dfdata.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/install/sql-dfdata.txt b/src/install/sql-dfdata.txt index 6bcb9697..3bb1ef41 100755 --- a/src/install/sql-dfdata.txt +++ b/src/install/sql-dfdata.txt @@ -3950,7 +3950,7 @@ INSERT INTO `#@__sysconfig` VALUES ('1','cfg_basehost','站点网址','1','strin ('20','cfg_notallowstr','禁用关键词,用|分开,但不要在结尾加|','5','bstring','乡巴佬|傻子'), ('21','cfg_feedbackcheck','是否需审核评论及留言','5','bool','Y'), ('22','cfg_keyword_replace','是否使用关键词替换功能,开启影响文档生成速度','2','bool','Y'), -('23','cfg_rewrite','是否使用伪静态,参考栏目修改中提示默认规则','1','bool','N'), +('23','cfg_rewrite','是否启用伪静态,参考栏目修改提示里默认规则','1','bool','N'), ('24','cfg_df_style','默认主题模板风格','1','string','dedebiz'), ('25','cfg_multi_site','是否支持多站点,开启此项后附件栏目连接arclist文档启用绝对网址','2','bool','N'), ('26','cfg_rm_remote','下载远程图片和资源','7','bool','Y'), From 9ed63c59ac86f7d2e4b5825f244b4ba2fab28b7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 21 Sep 2023 11:27:45 +0800 Subject: [PATCH 50/53] =?UTF-8?q?=E9=A2=9C=E8=89=B2=E6=8B=BE=E5=8F=96?= =?UTF-8?q?=E5=99=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/static/web/css/admin.css | 5 ++--- src/static/web/css/style.css | 2 +- src/static/web/img/colornew.htm | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/static/web/css/admin.css b/src/static/web/css/admin.css index 15d12b60..f3a8ab28 100644 --- a/src/static/web/css/admin.css +++ b/src/static/web/css/admin.css @@ -386,7 +386,6 @@ body.hidemenu .body-right { } .colordlg { padding:0.5rem; - width:120px; background:#fff; border:1px solid #dee2e6; z-index:10005 @@ -638,8 +637,8 @@ table,input,select,textarea,.search,.menu-body,.coolbg,.mysource,.mywriter,.pubd border-bottom-right-radius:0.5rem!important } #selColor { - padding:0; - width:40px + padding:5px; + width:35px } #edsta { display:none; diff --git a/src/static/web/css/style.css b/src/static/web/css/style.css index ad89bf63..ca343b89 100644 --- a/src/static/web/css/style.css +++ b/src/static/web/css/style.css @@ -440,7 +440,7 @@ input[type=file] { #returntop:hover { background:#e77817 } -@media (max-width:480px) { +@media (max-width:768px) { .m-pb-1 { padding-bottom:1rem } diff --git a/src/static/web/img/colornew.htm b/src/static/web/img/colornew.htm index 0040b91a..a752a53a 100644 --- a/src/static/web/img/colornew.htm +++ b/src/static/web/img/colornew.htm @@ -28,5 +28,5 @@  
            -自定义: - \ No newline at end of file +

            自定义:

            + \ No newline at end of file From f4956de2aa16a0629292056ccf0913da82f9fa69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=99=E8=BF=B0=E3=80=81=E5=88=AB=E7=A6=BB?= <2449271624@qq.com> Date: Thu, 21 Sep 2023 14:48:29 +0800 Subject: [PATCH 51/53] =?UTF-8?q?=E6=89=B9=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/login.php | 2 +- src/admin/templets/content_att.htm | 2 +- src/admin/templets/diy_field_add.htm | 2 +- src/admin/templets/makehtml_homepage.htm | 2 +- src/admin/templets/mychannel_field_add.htm | 2 +- src/admin/templets/mytag_add.htm | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/admin/login.php b/src/admin/login.php index a63bcd38..702d8771 100644 --- a/src/admin/login.php +++ b/src/admin/login.php @@ -30,7 +30,7 @@ if (is_dir(dirname(__FILE__).'/../install')) { //检测后台目录是否更名 $cururl = GetCurUrl(); if (preg_match('/admin/', $cururl)) { - $redmsg = '
            后台管理目录名称中包含名称admin,建议把后台管理目录修改为其它名称
            '; + $redmsg = '
            后台管理目录名称中包含admin,强烈建议后台管理目录修改为其它名称
            '; } else { $redmsg = ''; } diff --git a/src/admin/templets/content_att.htm b/src/admin/templets/content_att.htm index 80a336cc..f11d5070 100644 --- a/src/admin/templets/content_att.htm +++ b/src/admin/templets/content_att.htm @@ -17,7 +17,7 @@
            -
            自定义属性说明:文档发布时选择属性后arclist标签加上flag='自定义属性',例:{dede:arclist flag='h,c'},h,c表示组合属性头条和推荐
            +
            自定义属性说明:文档发布时选择属性后arclist标签加上flag='自定义属性',例:{dede:arclist flag='h,c'}h,c表示组合属性头条和推荐
            -
            修改文档模型字段时禁止输入双引号"
            +
            修改文档模型字段时禁止输入单引号和双引号
            -
            默认更新首页文件存放在根目录,不是根目录安装的网站,首页需要更新到网站根目录,请使用相对路径,则安装在:http://www.abc.com/DedeBIZ/目录,更新首页:http://www.abc.com/index.html,填写:../index.html
            +
            更新首页文件默认存放在根目录,不是根目录安装的网站,首页需要更新到网站根目录,请使用相对路径,则安装在:http://www.abc.com/DedeBIZ/目录,更新首页:http://www.abc.com/index.html,填写`../index.html`
            -
            修改文档模型字段时禁止输入双引号"
            +
            修改文档模型字段时禁止输入单引号和双引号
            -
            自定义标记调用方法:{dede:mytag name='标记名称' ismake='是否含板块代码yes或no' typeid='栏目id'/} 1、name标记名称,该项是必须的属性;2、ismake默认是no表示设定的纯网页代码,yes表示含板块标记的代码;3、typeid表示所属栏目的id,默认为0,表示所有栏目通用的显示文档,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目id
            +
            自定义标记调用方法:{dede:mytag name='标记名称' ismake='是否含板块代码yes或no' typeid='栏目id'/}name标记名称,该项是必须的属性;ismake默认是no表示设定的纯网页代码,yes表示含板块标记的代码;typeid表示所属栏目的id,默认为0,表示所有栏目通用的显示文档,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目id
            -
            更新首页文件默认存放在根目录,不是根目录安装的网站,首页需要更新到网站根目录,请使用相对路径,则安装在:http://www.abc.com/DedeBIZ/目录,更新首页:http://www.abc.com/index.html,填写`../index.html`
            +
            更新首页文件默认存放在根目录,不是根目录安装的网站,首页需要更新到网站根目录,请使用相对路径,则安装在:http://www.abc.com/DedeBIZ/目录,更新首页:http://www.abc.com/index.html,填写:../index.html