From 4d8e05b869ed93cb4116af6be55544f59040609d Mon Sep 17 00:00:00 2001 From: vdigital Date: Mon, 13 Oct 2008 19:55:44 +0000 Subject: [PATCH] Remove of Swift Theme Creator from the branch (kept in trunk currently). All functions were not available. git-svn-id: http://piwigo.org/svn/branches/2.0@2732 68402e56-0260-453c-a942-63ccdbb3a9ee --- .../farbtastic/CHANGELOG.html | 26 - .../SwiftThemeCreator/farbtastic/LICENSE.txt | 341 ----------- .../SwiftThemeCreator/farbtastic/README.html | 71 --- .../SwiftThemeCreator/farbtastic/demo1.html | 28 - .../SwiftThemeCreator/farbtastic/demo2.html | 57 -- .../farbtastic/farbtastic.css | 33 -- .../farbtastic/farbtastic.js | 329 ----------- .../SwiftThemeCreator/farbtastic/marker.png | Bin 652 -> 0 bytes plugins/SwiftThemeCreator/farbtastic/mask.png | Bin 2020 -> 0 bytes .../SwiftThemeCreator/farbtastic/wheel.png | Bin 11733 -> 0 bytes plugins/SwiftThemeCreator/index.php | 30 - plugins/SwiftThemeCreator/mail-css.tpl2 | 18 - plugins/SwiftThemeCreator/main.inc.php | 33 -- plugins/SwiftThemeCreator/sample.jpg | Bin 47132 -> 0 bytes plugins/SwiftThemeCreator/simul/index.php | 30 - .../swift_theme_creator.inc.php | 88 --- plugins/SwiftThemeCreator/theme.tpl | 36 -- plugins/SwiftThemeCreator/theme_creator.php | 538 ------------------ plugins/SwiftThemeCreator/theme_creator.tpl | 216 ------- plugins/SwiftThemeCreator/themeconf.inc.tpl | 39 -- plugins/SwiftThemeCreator/titrePage-bg.png | Bin 179 -> 0 bytes 21 files changed, 1913 deletions(-) delete mode 100644 plugins/SwiftThemeCreator/farbtastic/CHANGELOG.html delete mode 100644 plugins/SwiftThemeCreator/farbtastic/LICENSE.txt delete mode 100644 plugins/SwiftThemeCreator/farbtastic/README.html delete mode 100644 plugins/SwiftThemeCreator/farbtastic/demo1.html delete mode 100644 plugins/SwiftThemeCreator/farbtastic/demo2.html delete mode 100644 plugins/SwiftThemeCreator/farbtastic/farbtastic.css delete mode 100644 plugins/SwiftThemeCreator/farbtastic/farbtastic.js delete mode 100644 plugins/SwiftThemeCreator/farbtastic/marker.png delete mode 100644 plugins/SwiftThemeCreator/farbtastic/mask.png delete mode 100644 plugins/SwiftThemeCreator/farbtastic/wheel.png delete mode 100644 plugins/SwiftThemeCreator/index.php delete mode 100644 plugins/SwiftThemeCreator/mail-css.tpl2 delete mode 100644 plugins/SwiftThemeCreator/main.inc.php delete mode 100644 plugins/SwiftThemeCreator/sample.jpg delete mode 100644 plugins/SwiftThemeCreator/simul/index.php delete mode 100644 plugins/SwiftThemeCreator/swift_theme_creator.inc.php delete mode 100644 plugins/SwiftThemeCreator/theme.tpl delete mode 100644 plugins/SwiftThemeCreator/theme_creator.php delete mode 100644 plugins/SwiftThemeCreator/theme_creator.tpl delete mode 100644 plugins/SwiftThemeCreator/themeconf.inc.tpl delete mode 100644 plugins/SwiftThemeCreator/titrePage-bg.png diff --git a/plugins/SwiftThemeCreator/farbtastic/CHANGELOG.html b/plugins/SwiftThemeCreator/farbtastic/CHANGELOG.html deleted file mode 100644 index 23e7f5b84..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/CHANGELOG.html +++ /dev/null @@ -1,26 +0,0 @@ - - -Farbtastic: Changelog - -

Farbtastic: Changelog

- -

1.2 - 2007/01/08

- -

1.1 - 2006/10/27

- -

1.0 - 2006/07/14

- - -

More info on Acko.net.

-

Created by Steven Wittens.

- - - \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/farbtastic/LICENSE.txt b/plugins/SwiftThemeCreator/farbtastic/LICENSE.txt deleted file mode 100644 index 5a3cc209a..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/LICENSE.txt +++ /dev/null @@ -1,341 +0,0 @@ - - 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 - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/plugins/SwiftThemeCreator/farbtastic/README.html b/plugins/SwiftThemeCreator/farbtastic/README.html deleted file mode 100644 index e52747239..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/README.html +++ /dev/null @@ -1,71 +0,0 @@ - - -Farbtastic: jQuery color picker plug-in - -

Farbtastic: jQuery color picker plug-in

-

Farbtastic is a jQuery plug-in that can add one or more color picker widgets into a page. Each widget is then linked to an existing element (e.g. a text field) and will update the element's value when a color is selected.

- -

Farbtastic uses layered transparent PNGs to render a saturation/luminance gradient inside of a hue circle. No Flash or pixel-sized divs are used.

- -

Farbtastic was written by Steven Wittens and is licensed under the GPL.

- -

Basic Usage

-
    -
  1. Include farbtastic.js and farbtastic.css in your HTML:
    -
    <script type="text/javascript" src="farbtastic.js"></script>
    <link rel="stylesheet" href="farbtastic.css" type="text/css" />
    -
  2. -
  3. Add a placeholder div and a text field to your HTML, and give each an ID:
    -
    <form><input type="text" id="color" name="color" value="#123456" /></form>
    <div id="colorpicker"></div>
    -
  4. -
  5. Add a ready() handler to the document which initializes the color picker and link it to the text field with the following syntax:
    -
    <script type="text/javascript">
      $(document).ready(function() {
        $('#colorpicker').farbtastic('#color');
      });
    </script>
    -
  6. -
-

See demo1.html and demo2.html for an example (jquery.js is not included!).

-

Styling

-

The color picker is a block-level element and is 195x195 pixels large. You can control the position by styling your placeholder (e.g. floating it).

-

Note that the black/white gradients inside wheel.png and mask.png were generated programmatically and cannot be recreated easily in an image editing program.

-

Advanced Usage

-

jQuery Method

-
-
$(...).farbtastic()
-$(...).farbtastic(callback)
-
This creates color pickers in the selected objects. callback is optional and can be a:

-
    -
  • DOM Node, jQuery object or jQuery selector: the color picker will be linked to the selected element(s) by syncing the value (for form elements) and color (all elements).
  • -
  • Function: this function will be called whenever the user chooses a different color.
-
-

Object

-
-
$.farbtastic(placeholder)
-$.farbtastic(placeholder, callback)
-
-
Invoking $.farbtastic(placeholder) is the same as using $(placeholder).farbtastic() except that the Farbtastic object is returned instead of the jQuery object. This allows you to use the Farbtastic methods and properties below.

-

Note that there is only one Farbtastic object per placeholder. If you call $.farbtastic(placeholder) twice with the same placeholder, you will get the same object back each time.

-

The optional callback argument behaves exactly as for the jQuery method.
-

-
- - -

Methods

-
-
.linkTo(callback)
-
Allows you to set a new callback. Any existing callbacks are removed. See above for the meaning of callback.
-
.setColor(string)
-
Sets the picker color to the given color in hex representation.
-
.setColor([h, s, l])
-
Sets the picker color to the given color in normalized HSL (0..1 scale).
-
-

Properties

-
-
.linked
-
The elements (jQuery object) or callback function this picker is linked to.
-
.color
-
Current color in hex representation.
-
.hsl
-
Current color in normalized HSL.
-
-
- - \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/farbtastic/demo1.html b/plugins/SwiftThemeCreator/farbtastic/demo1.html deleted file mode 100644 index 876d9cfef..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/demo1.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - Farbtastic - - - - - - -

jQuery Color Picker: Farbtastic

- -
jQuery.js is not present. You must install jQuery in this folder for the demo to work.
- -
-
-
- -

More info on Acko.net.

-

Created by Steven Wittens.

- - diff --git a/plugins/SwiftThemeCreator/farbtastic/demo2.html b/plugins/SwiftThemeCreator/farbtastic/demo2.html deleted file mode 100644 index 59a93257a..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/demo2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - Farbtastic - - - - - - - - -

jQuery Color Picker: Farbtastic

- -
jQuery.js is not present. You must install jQuery in this folder for the demo to work.
- -
-
-
-
-
- -
- -

More info on Acko.net.

-

Created by Steven Wittens.

- - diff --git a/plugins/SwiftThemeCreator/farbtastic/farbtastic.css b/plugins/SwiftThemeCreator/farbtastic/farbtastic.css deleted file mode 100644 index 07d953f2d..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/farbtastic.css +++ /dev/null @@ -1,33 +0,0 @@ -.farbtastic { - position: relative; -} -.farbtastic * { - position: absolute; - cursor: crosshair; -} -.farbtastic, .farbtastic .wheel { - width: 195px; - height: 195px; -} -.farbtastic .color, .farbtastic .overlay { - top: 47px; - left: 47px; - width: 101px; - height: 101px; -} -.farbtastic .wheel { - background: url(wheel.png) no-repeat; - width: 195px; - height: 195px; -} -.farbtastic .overlay { - background: url(mask.png) no-repeat; -} -.farbtastic .marker { - width: 17px; - height: 17px; - margin: -8px 0 0 -8px; - overflow: hidden; - background: url(marker.png) no-repeat; -} - diff --git a/plugins/SwiftThemeCreator/farbtastic/farbtastic.js b/plugins/SwiftThemeCreator/farbtastic/farbtastic.js deleted file mode 100644 index f37df7d72..000000000 --- a/plugins/SwiftThemeCreator/farbtastic/farbtastic.js +++ /dev/null @@ -1,329 +0,0 @@ -// $Id$ -// Farbtastic 1.2 - -jQuery.fn.farbtastic = function (callback) { - $.farbtastic(this, callback); - return this; -}; - -jQuery.farbtastic = function (container, callback) { - var container = $(container).get(0); - return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback)); -} - -jQuery._farbtastic = function (container, callback) { - // Store farbtastic object - var fb = this; - - // Insert markup - $(container).html('
'); - var e = $('.farbtastic', container); - fb.wheel = $('.wheel', container).get(0); - // Dimensions - fb.radius = 84; - fb.square = 100; - fb.width = 194; - - // Fix background PNGs in IE6 - if (navigator.appVersion.match(/MSIE [0-6]\./)) { - $('*', e).each(function () { - if (this.currentStyle.backgroundImage != 'none') { - var image = this.currentStyle.backgroundImage; - image = this.currentStyle.backgroundImage.substring(5, image.length - 2); - $(this).css({ - 'backgroundImage': 'none', - 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')" - }); - } - }); - } - - /** - * Link to the given element(s) or callback. - */ - fb.linkTo = function (callback) { - // Unbind previous nodes - if (typeof fb.callback == 'object') { - $(fb.callback).unbind('keyup', fb.updateValue); - } - - // Reset color - fb.color = null; - - // Bind callback or elements - if (typeof callback == 'function') { - fb.callback = callback; - } - else if (typeof callback == 'object' || typeof callback == 'string') { - fb.callback = $(callback); - fb.callback.bind('keyup', fb.updateValue); - if (fb.callback.get(0).value) { - fb.setColor(fb.callback.get(0).value); - } - } - return this; - } - fb.updateValue = function (event) { - if (this.value && this.value != fb.color) { - fb.setColor(this.value); - } - } - - /** - * Change color with HTML syntax #123456 - */ - fb.setColor = function (color) { - var unpack = fb.unpack(color); - if (fb.color != color && unpack) { - fb.color = color; - fb.rgb = unpack; - fb.hsl = fb.RGBToHSL(fb.rgb); - fb.updateDisplay(); - } - return this; - } - - /** - * Change color with HSL triplet [0..1, 0..1, 0..1] - */ - fb.setHSL = function (hsl) { - fb.hsl = hsl; - fb.rgb = fb.HSLToRGB(hsl); - fb.color = fb.pack(fb.rgb); - fb.updateDisplay(); - return this; - } - - ///////////////////////////////////////////////////// - - /** - * Retrieve the coordinates of the given event relative to the center - * of the widget. - */ - fb.widgetCoords = function (event) { - var x, y; - var el = event.target || event.srcElement; - var reference = fb.wheel; - - if (typeof event.offsetX != 'undefined') { - // Use offset coordinates and find common offsetParent - var pos = { x: event.offsetX, y: event.offsetY }; - - // Send the coordinates upwards through the offsetParent chain. - var e = el; - while (e) { - e.mouseX = pos.x; - e.mouseY = pos.y; - pos.x += e.offsetLeft; - pos.y += e.offsetTop; - e = e.offsetParent; - } - - // Look for the coordinates starting from the wheel widget. - var e = reference; - var offset = { x: 0, y: 0 } - while (e) { - if (typeof e.mouseX != 'undefined') { - x = e.mouseX - offset.x; - y = e.mouseY - offset.y; - break; - } - offset.x += e.offsetLeft; - offset.y += e.offsetTop; - e = e.offsetParent; - } - - // Reset stored coordinates - e = el; - while (e) { - e.mouseX = undefined; - e.mouseY = undefined; - e = e.offsetParent; - } - } - else { - // Use absolute coordinates - var pos = fb.absolutePosition(reference); - x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x; - y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y; - } - // Subtract distance to middle - return { x: x - fb.width / 2, y: y - fb.width / 2 }; - } - - /** - * Mousedown handler - */ - fb.mousedown = function (event) { - // Capture mouse - if (!document.dragging) { - $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup); - document.dragging = true; - } - - // Check which area is being dragged - var pos = fb.widgetCoords(event); - fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square; - - // Process - fb.mousemove(event); - return false; - } - - /** - * Mousemove handler - */ - fb.mousemove = function (event) { - // Get coordinates relative to color picker center - var pos = fb.widgetCoords(event); - - // Set new HSL parameters - if (fb.circleDrag) { - var hue = Math.atan2(pos.x, -pos.y) / 6.28; - if (hue < 0) hue += 1; - fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]); - } - else { - var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5)); - var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5)); - fb.setHSL([fb.hsl[0], sat, lum]); - } - return false; - } - - /** - * Mouseup handler - */ - fb.mouseup = function () { - // Uncapture mouse - $(document).unbind('mousemove', fb.mousemove); - $(document).unbind('mouseup', fb.mouseup); - document.dragging = false; - } - - /** - * Update the markers and styles - */ - fb.updateDisplay = function () { - // Markers - var angle = fb.hsl[0] * 6.28; - $('.h-marker', e).css({ - left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px', - top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px' - }); - - $('.sl-marker', e).css({ - left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px', - top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px' - }); - - // Saturation/Luminance gradient - $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5]))); - - // Linked elements or callback - if (typeof fb.callback == 'object') { - // Set background/foreground color - $(fb.callback).css({ - backgroundColor: fb.color, - color: fb.hsl[2] > 0.5 ? '#000' : '#fff' - }); - - // Change linked value - $(fb.callback).each(function() { - if (this.value && this.value != fb.color) { - this.value = fb.color; - } - }); - } - else if (typeof fb.callback == 'function') { - fb.callback.call(fb, fb.color); - } - } - - /** - * Get absolute position of element - */ - fb.absolutePosition = function (el) { - var r = { x: el.offsetLeft, y: el.offsetTop }; - // Resolve relative to offsetParent - if (el.offsetParent) { - var tmp = fb.absolutePosition(el.offsetParent); - r.x += tmp.x; - r.y += tmp.y; - } - return r; - }; - - /* Various color utility functions */ - fb.pack = function (rgb) { - var r = Math.round(rgb[0] * 255); - var g = Math.round(rgb[1] * 255); - var b = Math.round(rgb[2] * 255); - return '#' + (r < 16 ? '0' : '') + r.toString(16) + - (g < 16 ? '0' : '') + g.toString(16) + - (b < 16 ? '0' : '') + b.toString(16); - } - - fb.unpack = function (color) { - if (color.length == 7) { - return [parseInt('0x' + color.substring(1, 3)) / 255, - parseInt('0x' + color.substring(3, 5)) / 255, - parseInt('0x' + color.substring(5, 7)) / 255]; - } - else if (color.length == 4) { - return [parseInt('0x' + color.substring(1, 2)) / 15, - parseInt('0x' + color.substring(2, 3)) / 15, - parseInt('0x' + color.substring(3, 4)) / 15]; - } - } - - fb.HSLToRGB = function (hsl) { - var m1, m2, r, g, b; - var h = hsl[0], s = hsl[1], l = hsl[2]; - m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s; - m1 = l * 2 - m2; - return [this.hueToRGB(m1, m2, h+0.33333), - this.hueToRGB(m1, m2, h), - this.hueToRGB(m1, m2, h-0.33333)]; - } - - fb.hueToRGB = function (m1, m2, h) { - h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h); - if (h * 6 < 1) return m1 + (m2 - m1) * h * 6; - if (h * 2 < 1) return m2; - if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6; - return m1; - } - - fb.RGBToHSL = function (rgb) { - var min, max, delta, h, s, l; - var r = rgb[0], g = rgb[1], b = rgb[2]; - min = Math.min(r, Math.min(g, b)); - max = Math.max(r, Math.max(g, b)); - delta = max - min; - l = (min + max) / 2; - s = 0; - if (l > 0 && l < 1) { - s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l)); - } - h = 0; - if (delta > 0) { - if (max == r && max != g) h += (g - b) / delta; - if (max == g && max != b) h += (2 + (b - r) / delta); - if (max == b && max != r) h += (4 + (r - g) / delta); - h /= 6; - } - return [h, s, l]; - } - - // Install mousedown handler (the others are set on the document on-demand) - $('*', e).mousedown(fb.mousedown); - - // Init color - fb.setColor('#000000'); - - // Set linked elements/callback - if (callback) { - fb.linkTo(callback); - } -} \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/farbtastic/marker.png b/plugins/SwiftThemeCreator/farbtastic/marker.png deleted file mode 100644 index 3929bbb51dd950802bb9bf12a397d1ac1e140610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 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 diff --git a/plugins/SwiftThemeCreator/index.php b/plugins/SwiftThemeCreator/index.php deleted file mode 100644 index c15b15795..000000000 --- a/plugins/SwiftThemeCreator/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/SwiftThemeCreator/mail-css.tpl2 b/plugins/SwiftThemeCreator/mail-css.tpl2 deleted file mode 100644 index ee9d1a836..000000000 --- a/plugins/SwiftThemeCreator/mail-css.tpl2 +++ /dev/null @@ -1,18 +0,0 @@ -/* Theme {$main.newtheme} mail css */ - -body {$main.ldelim} background-color:{$main.color1}; color:{$main.color2};} -#the_page {$main.ldelim} background: {$main.color1} url({ldelim}$ROOT_URL}template/{ldelim}$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} -#content {$main.ldelim} background: transparent url({ldelim}$ROOT_URL}template/{ldelim}$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} -#copyright {$main.ldelim} background: transparent url({ldelim}$ROOT_URL}template/{ldelim}$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; -color: {$main.color2};} -h2 {$main.ldelim} background-color: {$main.color7};color:#eee;background-image: url({ldelim}$ROOT_URL}template/{ldelim}$themeconf.template}/theme/{ldelim}$themeconf.theme}/images/tableh1_bg.png);} -img {$main.ldelim} margin: 16px; padding:15px;border:1px solid #eee; -moz-border-radius: 4px; border-radius: 4px 4px; } -img:hover {$main.ldelim} border:1px solid {$main.color2}; -moz-border-radius: 4px; border-radius: 4px 4px; } -a {$main.ldelim} color: {$main.color2}; background: transparent; } -a:hover {$main.ldelim} color: {$main.color3}; } -a.PWG {$main.ldelim} border: 0px; } -a.PWG .P {$main.ldelim} color : {$main.color3}; } -a.PWG .W {$main.ldelim} color : {$main.color5}; } -a.PWG .G {$main.ldelim} color : {$main.color2}; } -a.PWG:hover .P {$main.ldelim} color : {$main.color2}; } -a.PWG:hover .G {$main.ldelim} color : {$main.color3}; } \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/main.inc.php b/plugins/SwiftThemeCreator/main.inc.php deleted file mode 100644 index 50b708f24..000000000 --- a/plugins/SwiftThemeCreator/main.inc.php +++ /dev/null @@ -1,33 +0,0 @@ - \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/sample.jpg b/plugins/SwiftThemeCreator/sample.jpg deleted file mode 100644 index e5686d9b724de5e5085097d3d02c248e75fe07a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47132 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

ltf}8{-*aWX~(d`$|-#)?1_o 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 AaR2}S diff --git a/plugins/SwiftThemeCreator/simul/index.php b/plugins/SwiftThemeCreator/simul/index.php deleted file mode 100644 index c15b15795..000000000 --- a/plugins/SwiftThemeCreator/simul/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/SwiftThemeCreator/swift_theme_creator.inc.php b/plugins/SwiftThemeCreator/swift_theme_creator.inc.php deleted file mode 100644 index c74e82504..000000000 --- a/plugins/SwiftThemeCreator/swift_theme_creator.inc.php +++ /dev/null @@ -1,88 +0,0 @@ -theme_config = array(); - } - function get_config_file_dir() - { - global $conf; - return $conf['local_data_dir'].'/plugins/'; - } - function get_config_file_name() - { - return basename(dirname(__FILE__)).'.dat'; - } - function reload() - { - $x = @file_get_contents( $this->get_config_file_dir().$this->get_config_file_name() ); - if ($x!==false) - { - $y = unserialize($x); - $this->theme_config = $y; - } - } - function save_theme_config() - { - $dir = $this->get_config_file_dir(); - @mkdir($dir); - $file = fopen( $dir.$this->get_config_file_name(), 'w' ); - fwrite($file, serialize($this->theme_config) ); - fclose( $file ); - } - function plugin_admin_menu($menu) - { - array_push($menu, - array( - 'NAME' => 'Swift Theme Creator', - 'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/theme_creator.php') - ) - ); - return $menu; - } - /** - * returns available template/theme - */ - function get_pwg_templates() - { - $templates = array(); - $template_dir = PHPWG_ROOT_PATH.'template'; - foreach (get_dirs($template_dir) as $template) - { - array_push($templates, $template); - } - return $templates; - } -} -$swift_theme_creator = new ThemeCreator(); -$swift_theme_creator->reload(); -add_event_handler('get_admin_plugin_menu_links', - array(&$swift_theme_creator, 'plugin_admin_menu') ); -set_plugin_data($plugin['id'], $swift_theme_creator); -?> \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/theme.tpl b/plugins/SwiftThemeCreator/theme.tpl deleted file mode 100644 index 09511ba38..000000000 --- a/plugins/SwiftThemeCreator/theme.tpl +++ /dev/null @@ -1,36 +0,0 @@ -BODY, H3, #imageHeaderBar, #imageToolBar A:hover, -.row1, UL.tabsheet LI.normal_tab {ldelim} background-color: {$main.color1}; } - -BODY, H1, H3, DT, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ {ldelim} - color:{$main.color2}; } -#theImage IMG {ldelim} border: 3px ridge {$main.color2}; } - -H2, #menubar DT, .throw, -A, INPUT.rateButton {ldelim} color: {$main.color3}; } - -UL.tabsheet LI.normal_tab:hover {ldelim} border: 1px solid {$main.color3}; } -A:hover {ldelim} color: {$main.color4}; } - -.content UL.thumbnails SPAN.wrap2:hover, -.content UL.thumbnailCategories DIV.thumbnailCategory:hover, -.content UL.thumbnailCategories DIV.thumbnailCategory:hover A {ldelim} - color: {$main.color4}; border: 1px solid {$main.color4}; background-color: {$main.color6}; } - -#menubar DL, .content, #comments DIV.comment BLOCKQUOTE, -#imageHeaderBar, H2, #menubar DT, #imageToolBar {ldelim} border: 1px solid {$main.color4}; } - -#menubar DL, .content, #imageToolBar, .header_notes, UL.tabsheet LI.selected_tab {ldelim} - background-color: {$main.color6}; } - -FIELDSET, INPUT, SELECT, TEXTAREA, .content DIV.comment A.illustration IMG, -.content DIV.thumbnailCategory, .content UL.thumbnails SPAN.wrap2 {ldelim} - border: 1px solid {$main.color6}; } - -#comments DIV.comment BLOCKQUOTE {ldelim} border-left: 1px solid {$main.color7}; } - -H2, #menubar DT, .throw {ldelim} background-image: url(stc.png); } -#imageHeaderBar H2 {ldelim} background-image: none; background-color: transparent; border: none; } - -#imageHeaderBar {ldelim} - background: transparent url(stc.png) scroll repeat-x center top; } \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/theme_creator.php b/plugins/SwiftThemeCreator/theme_creator.php deleted file mode 100644 index 9d7028640..000000000 --- a/plugins/SwiftThemeCreator/theme_creator.php +++ /dev/null @@ -1,538 +0,0 @@ - true, /* $main version */ - 'template_sel' => 0, - 'newtpl' => 'yoga', - 'newtheme' => '', - 'simulate' => true, - 'colorize' => false, - 'brightness' => false, - 'contrast' => false, - 'new_theme' => '', - 'color1' => '#111111', - 'color' => array('#111111', '#EEEEEE', '#FF7700', '#FF3333', '#FF3363', ), - 'templatedir' => PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul', - 'color1' => '#111111', - 'color2' => '#EEEEEE', - 'color3' => '#FF7700', - 'color4' => '#FF3333', - 'color5' => '#FF3363', - 'background' => 'fixed', - 'picture_url' => PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/sample.jpg', - 'picture_width' => 2048, - 'picture_height' => 100, - 'background_mode' => 'as', - 'src_category' => 0, - 'category' => 'header', - 'phase' => 'Kernel init', - 'subphase' => 'New version', - ); -} - -$errors = array(); -$infos = array(); - -// +-----------------------------------------------------------------------+ -// | Kernel init | -// +-----------------------------------------------------------------------+ -if (!isset($swift_theme_creator)) $swift_theme_creator = new ThemeCreator(); -$swift_theme_creator->reload(); -$main = $swift_theme_creator->theme_config; - -/* - * Find templates - */ -$available_templates = array(); -$template_dir = PHPWG_ROOT_PATH.'template'; -foreach (get_dirs($template_dir) as $dir) -{ array_push($available_templates, $dir); -} -/* - * $main is reloaded but does template still exist? - * Does the fixed background still exist? Category? ... - */ -if (!isset($main[STC_INTERNAL_VERSION])) init_main($main); -$flip = array_flip($available_templates); -$main['template_sel'] = (isset($flip[$main['newtpl']])) ? - $flip[$main['newtpl']] : 0; /* Deleted ? First available */ -$main['subphase'] = 'Find category'; -$query = 'SELECT id,name,uppercats,global_rank - FROM ' . CATEGORIES_TABLE . ';'; -display_select_cat_wrapper($query,array(),'src_category'); -$available_cat = $template->get_template_vars('src_category'); -$flip = array_flip($available_cat); -$main['src_category'] = (isset($flip[$main['category']])) ? - $flip[$main['category']] : max($flip); /* Deleted ? Most recent */ - - -// +-----------------------------------------------------------------------+ -// | $_POST controls | -// +-----------------------------------------------------------------------+ -$main['phase'] = 'POST controls'; -if (!isset($_POST['reset'])) -{ - $main['simulate'] = isset($_POST['simulate']); - if (!isset($_POST['submit'])) $main['simulate'] = true; - /* - * Template controls - */ - $main['subphase'] = 'template controls'; - if (isset($_POST['template'])) $main['template_sel'] = $_POST['template']; - $main['newtpl'] = $available_templates[$main['template_sel']]; - if ($main['newtpl'] != 'yoga') - array_push($infos, l10n('Unpredictable results could be observed with ' - . 'this template. Preview is based on yoga template only.')); - - /* - * Theme controls - */ - $main['subphase'] = 'theme controls'; - if (isset($_POST['new_theme'])) $main['newtheme'] = strip_tags($_POST['new_theme']); - if ($main['newtheme'] == '') $main['simulate'] = true; /* Empty = Simulate */ - $cleaning = true; /* Delete files on failure */ - if ( !$main['simulate'] and !preg_match('/^[a-z0-9-_]{1,8}$/', $main['newtheme']) ) - array_push($errors, l10n('Invalid theme name: 1 to 8 lowercase' - . ' alphanumeric characters including "-" and "_".')); - if ($main['simulate']) { /* $main['templatedir'] != $template_dir (Smarty) */ - $main['templatedir'] = PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul'; - $themedir = $main['templatedir']; - $cleaning = false; /* No delete with simulate */ - } else { - $main['templatedir'] = PHPWG_ROOT_PATH . 'template/' . $main['newtpl']; - $themedir = $main['templatedir'] . '/theme/' . $main['newtheme']; - } - - /* - * Directories controls - */ - $main['subphase'] = 'directories controls'; - if (is_dir( $themedir ) and !$main['simulate']) { - array_push($errors, '['.$themedir.'] : '.l10n('Invalid theme: This' - . ' theme exists already (no override available).')); - $cleaning = false; /* No delete on existing theme */ - } elseif ( !is_writable($main['templatedir']) ) - array_push($errors, '['.$main['templatedir'].'] : '.l10n('no_write_access')); - - /* - * Colors controls - */ - $main['subphase'] = 'colors controls'; - if (isset($_POST['color1'])) - $main['color'] = array( - $_POST['color1'], $_POST['color2'], $_POST['color3'], $_POST['color4'], - $_POST['color5']); - $main['color1'] = $main['color'][0]; - $main['color2'] = $main['color'][1]; - $main['color3'] = $main['color'][2]; - $main['color4'] = $main['color'][3]; - $main['color5'] = $main['color'][4]; - $colors = $main['color1'] . $main['color2'] - . $main['color3'] . $main['color4'] . $main['color5']; - if ( !preg_match('/^(#?([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})){5}$/', $colors) ) - array_push($errors, l10n('Invalid color code: 3 or 6 hexadecimal characters,' - . ' preceded or not by "#"')); - - /* - * Background and text difference control - */ - $main['subphase'] = 'text difference controls'; - list($r,$g,$b) = stc_hex2rgb($main['color'][0]); - list($r2,$g2,$b2) = stc_hex2rgb($main['color'][1]); - $dif = abs( ( (($r*299)+($g*587)+($b*114)) / 1000 ) - - ( (( $r2*299)+($g2*587)+($b2*114)) / 1000 ) ); - if ( $dif < 65 ) - array_push($errors, l10n('Insufficient brightness difference between ' - . 'text and background. dif=') . $dif); - $dif = (max($r, $r2) - min($r, $r2)) - + (max($g, $g2) - min($g, $g2)) + (max($b, $b2) - min($b, $b2)); - if ( $dif < 200 ) - array_push($errors, l10n('Insufficient colour difference between ' - . 'text and background. dif=') . $dif); - - /* - * Background and Internal links difference control - */ - $main['subphase'] = 'links difference controls'; - if (false) - { - list($r,$g,$b) = stc_hex2rgb($main['color'][0]); - list($r2,$g2,$b2) = stc_hex2rgb($main['color'][2]); - $dif = abs( ( (($r*299)+($g*587)+($b*114)) / 1000 ) - - ( (($r2*299)+($g2*587)+($b2*114)) / 1000 )); - if ( $dif < 65 ) - array_push($errors, l10n('Insufficient brightness difference between ' - . 'Internal links and background. dif=') . $dif); - $dif = (max($r, $r2) - min($r, $r2)) - + (max($g, $g2) - min($g, $g2)) + (max($b, $b2) - min($b, $b2)); - if ( $dif < 200 ) - array_push($errors, l10n('Insufficient colour difference between ' - . 'Internal links and background. dif=') . $dif); - } - - /* - * Header background controls - */ - $main['subphase'] = 'fixed background controls'; - if (isset($_POST['picture_url'])) $main['picture_url'] = $_POST['picture_url']; - if (isset($_POST['background_mode'])) - $main['background_mode'] = $_POST['background_mode']; - if (isset($_POST['background'])) $main['background'] = $_POST['background']; - // Fixed - if ( $main['background'] == 'fixed') { - if ( is_dir($main['picture_url']) - or !is_file($main['picture_url']) ) - array_push($errors, l10n('Header picture is not found, check its path and name.')); - $extension = substr($main['picture_url'],strrpos($main['picture_url'],'.')+1); - if (!in_array($extension, array('jpg','jpeg','png'))) - array_push($errors, l10n('Compliant extensions are .jpg, .jpeg or .png.')); - } - $main['subphase'] = 'random background controls'; - if (isset($_POST['src_category'])) - $main['src_category'] = (int) $_POST['src_category']; - $main['category'] = $available_cat[$main['src_category']]; - - /* - * Width and Height limits control - */ - $main['subphase'] = 'width and height controls'; - if ($main['background'] != 'off' - and isset($_POST['picture_width']) - and isset($_POST['picture_height'])) - { - if( !(ctype_digit($_POST['picture_width']) - and $_POST['picture_width'] > 11 - and $_POST['picture_width'] < 4097 ) ) - array_push($errors, '['.$_POST['picture_width'].'] : ' - . l10n('incorrect width value [12-4096].')); - else $main['picture_width'] = $_POST['picture_width']; - if ( !(ctype_digit($_POST['picture_height']) - and $_POST['picture_height'] > 11 - and $_POST['picture_height'] < 201 ) ) - array_push($errors, '['.$_POST['picture_height'].'] : ' - . l10n('incorrect width value [12-200].')); - else $main['picture_height'] = $_POST['picture_height']; - } - - /* - * Generate missing colors values - */ - $main['subphase'] = 'complementary colors'; - list($r,$g,$b) = stc_hex2rgb($main['color'][0]); - if ((( (($r+1)/256)*(($g+1)/256)*(($b+1)/256) ) * 1000 ) < 125 ) - $main['color6'] = lighten( $r, $g, $b, 10); - else $main['color6'] = darken( $r, $g, $b, 10); - list($r,$g,$b) = stc_hex2rgb($main['color'][4]); - if ((( (($r+1)/256)*(($g+1)/256)*(($b+1)/256) ) * 1000 ) < 125 ) - $main['color7'] = lighten( $r, $g, $b, 10); - else $main['color7'] = darken( $r, $g, $b, 10); - $main['colorize'] = isset($_POST['colorize']) ? true : false; - $main['brightness'] = isset($_POST['brightness']) ? true : false; - $main['contrast'] = isset($_POST['contrast']) ? true : false; -} - -// +-----------------------------------------------------------------------+ -// | Build files | -// +-----------------------------------------------------------------------+ -$main['phase'] = 'Files building'; -if (!function_exists('imagecreatetruecolor') or !function_exists('imagefilter')) { - array_push($errors, l10n('Some Php Graphic resources are missing.' - . ' Sorry for the inconvenience, but Swift Theme Creator couldn\'t work in such case.')); - array_push($infos, l10n('This plugin requires PHP 5.2.5 or later' - . ' and compiled against graphic library GD 2.0.1 or later.')); - array_push($infos, l10n('On this server, PHP is:'). phpversion()); - if (function_exists('gd_info')) { - $GD = gd_info(); - array_push($infos, l10n('and graphic library is:').$GD['GD Version']); - } - else array_push($infos, l10n('graphic library version is not available.')); - $main['background'] = 'off'; -} -if ((isset($_POST['submit']) or $main['simulate'] ) and (!is_adviser())) -{ - /* - * Go ahead - */ - $main['subphase'] = 'Mkdir control'; - if (count($errors) == 0) { - umask(0000); - @mkdir($themedir, 0705); - if (!is_dir( $themedir )) - array_push($errors, - l10n('Theme directory creation failure: ' - . 'it can\'t be created (for now en attendant la suite 8-) ).')); - else { - $main['ldelim'] = '{ldelim}'; - /* - * Build themeconf.inc.php - **/ - $main['subphase'] = 'Build themeconf'; - $plugin_tpl = new Template(); - $plugin_tpl->set_filenames(array('themeconf'=> - STC_PATH . 'themeconf.inc.tpl')); - $plugin_tpl->assign('main',$main); - $main['themeconf_inc_php'] = $plugin_tpl->parse('themeconf', true); - $rfs = stc_newfile( $themedir . '/themeconf.inc.php', - $main['themeconf_inc_php'] ); - /* - * Build mail-css.tpl - **/ - $main['subphase'] = 'Build mail-css'; - $plugin_tpl->set_filenames(array('mailcss'=> - STC_PATH . 'mail-css.tpl2')); - $plugin_tpl->assign('main',$main); - $main['mail-css.tpl'] = $plugin_tpl->parse('mailcss', true); - $rfs = $rfs && stc_newfile( $themedir . '/mail-css.tpl', - $main['mail-css.tpl'] ); - /* - * Build theme.css - **/ - $main['subphase'] = 'Build theme'; - $plugin_tpl->set_filenames(array('theme'=> STC_PATH . 'theme.tpl')); - $plugin_tpl->assign('main',$main); - $main['theme.css'] = $plugin_tpl->parse('theme', true); - $rfs = $rfs && stc_newfile( $themedir . '/theme.css', $main['theme.css'] ); - $internal = stc_hex2rgb($main['color'][2]); - list($r,$g,$b) = $internal; - $background = stc_hex2rgb($main['color'][0]); - list($r2,$g2,$b2) = $background; - $delta = floor(((array_sum($internal)/3) - (array_sum($background)/3))/5.1); - /* Brightness is half of difference between colors of internal lnks and bkground */ - /* but if color range is 0-255, resulting brightness range is between -50 and 50 */ - if ($delta > 0) { /* Colorize need a darker color on a dark background */ - $r = floor($r / 5); - $g = floor($g / 5); - $b = floor($b / 5); - } - if (isset($_POST['background']) and $_POST['background'] == 'random') - { - $main['subphase'] = 'Pick random for a pic'; - $main['random'] = mt_rand(12, 4096); - $result = pwg_query(' - SELECT i.path - FROM '.CATEGORIES_TABLE.' c, - '.IMAGES_TABLE.' i, - '.IMAGE_CATEGORY_TABLE.' ic - WHERE c.status=\'public\' - AND c.id = ic.category_id - AND c.id = ' . $main['src_category'] . ' - AND ic.category_id = ' . $main['src_category'] . ' - AND ic.image_id = i.id - ORDER BY RAND(' . $main['random'] . ') - LIMIT 0,1'); - if($result) list($main['pic_path']) = mysql_fetch_array($result); - else $main['pic_path'] = - PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/header.jpg'; - $main['pic_ext'] = substr($main['pic_path'],strrpos($main['pic_path'],'.')+1); - if ($main['pic_ext']=='png') - $img = imagecreatefrompng($main['pic_path']); - elseif (in_array($main['pic_ext'],array('jpg','jpeg'))) - $img = imagecreatefromjpeg($main['pic_path']); - else $img = imagecreatefromjpeg(PHPWG_ROOT_PATH - . 'plugins/SwiftThemeCreator/simul/header.jpg'); - imagejpeg( $img, $themedir . '/header.jpg', 90 ); - imagedestroy ($img); - } - if (isset($_POST['background']) and $_POST['background'] == 'fixed') - { - $main['subphase'] = 'Fixed background'; - $hdr = imagecreatetruecolor ($main['picture_width'], $main['picture_height']); - imagecolorset ( $hdr, 0, $r2, $g2, $b2 ); - if ($extension == 'png') $img = imagecreatefrompng($main['picture_url']); - else $img = imagecreatefromjpeg($main['picture_url']); - imagecopymerge ( $hdr, $img, 0, 0, 0, 0, $main['picture_width'], $main['picture_height'], 60 ); - imagedestroy ($img); - if ($main['colorize']) imagefilter($hdr, IMG_FILTER_COLORIZE, $r, $g, $b); - if ($main['brightness']) imagefilter($hdr, IMG_FILTER_BRIGHTNESS, $delta); - if ($main['contrast']) imagefilter($hdr, IMG_FILTER_CONTRAST, 20); - imagejpeg( $hdr, $themedir . '/header.jpg', 90 ); - imagedestroy ($hdr); - } - /* - * Build background image for titrePage or definition list (in #menubar) - **/ - $main['subphase'] = 'Headbars background'; - $hdr = imagecreatetruecolor (1, 38); - imagecolorset ( $hdr, 0, $r2, $g2, $b2 ); - $img = imagecreatefrompng(STC_PATH . '/titrePage-bg.png'); - imagecopymerge ( $hdr, $img, 0, 0, 0, 0, 1, 38, 60 ); - imagedestroy ($img); - if ($main['colorize']) imagefilter($hdr, IMG_FILTER_COLORIZE, $r, $g, $b); - if ($main['brightness']) imagefilter($hdr, IMG_FILTER_BRIGHTNESS, $delta); - if ($main['contrast']) imagefilter($hdr, IMG_FILTER_CONTRAST, 20); - imagepng( $hdr, $themedir . '/stc.png', 9 ); - imagedestroy ($hdr); - - /* - * Errors and cleaning or Congratulations - **/ - $main['phase'] = 'Congratulation'; - $main['subphase'] = 'cleaning'; - if ($rfs == false) { - array_push($errors, - l10n('Theme files creation failure: theme should be deleted.')); - if ($cleaning) { - @unlink( $themedir . '/header.jpg' ); - @unlink( $themedir . '/stc.png' ); - @unlink( $themedir . '/themeconf.inc.php' ); - @unlink( $themedir . '/mail-css.tpl' ); - @unlink( $themedir . '/theme.css' ); - @rmdir( $themedir ); - } - } - elseif (!$main['simulate']) { - array_push($infos, - '['.$main['newtpl'] . '/' . $main['newtheme'].'] : ' - .l10n('Congratulation! You have got(/ten) a new available theme.')); - @copy( $themedir . '/header.jpg', PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/header.jpg'); - @copy( $themedir . '/stc.png', PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/stc.png'); - @copy( $themedir . '/themeconf.inc.php', PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/themeconf.inc.php'); - @copy( $themedir . '/mail-css.tpl', PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/mail-css.tpl'); - @copy( $themedir . '/theme.css', PHPWG_ROOT_PATH . 'plugins/SwiftThemeCreator/simul/theme.css'); - } - } - } - - // TODO ******** theSwiftHeader itself ********* - - $swift_theme_creator->save_theme_config(); -} - -// +-----------------------------------------------------------------------+ -// | reset values -// +-----------------------------------------------------------------------+ -if (isset($_POST['reset']) and (!is_adviser())) { - $main = array(); - init_main($main); - $swift_theme_creator->theme_config = $main; - $swift_theme_creator->save_theme_config(); - redirect( get_admin_plugin_menu_link(dirname(__FILE__).'/theme_creator.php')); -} - -// Don't forget to re-read because some statements are superfluous - -// +-----------------------------------------------------------------------+ -// | template initialization -// +-----------------------------------------------------------------------+ -$template->set_filenames(array( - 'plugin_admin_content' => dirname(__FILE__) . '/theme_creator.tpl')); -$template->append('head_elements', - ' - -' - ); -$template->assign('radio_options', - array( - 'true' => l10n('Yes'), - 'false' => l10n('No'))); -$template->assign('template_options', $available_templates); -$template->assign('background_options', - array( - 'off' => l10n('No'), - 'random' => l10n('24H Random'), - 'fixed' => l10n('Fixed URL'), - )); -$template->assign('background_mode_options', - array( - 'as' => l10n('As is'), - 'crop' => l10n('Truncated'), - 'sized' => l10n('Resized'), - )); -if (count($errors) != 0) $template->assign('errors', $errors); -if (count($infos) != 0) $template->assign('infos', $infos); -/* Restore Main values */ -$template->assign('main', $main); -$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); -$swift_theme_creator->theme_config = $main; -$swift_theme_creator->save_theme_config(); -?> \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/theme_creator.tpl b/plugins/SwiftThemeCreator/theme_creator.tpl deleted file mode 100644 index 14bbd26ec..000000000 --- a/plugins/SwiftThemeCreator/theme_creator.tpl +++ /dev/null @@ -1,216 +0,0 @@ -{* $Id$ *} -

-

{'Swift Theme Creator'|@translate}

-
- -

-{'The Swift Theme Creator is powerful webmaster tool to create a new theme in few seconds. -You can update later the result as you need.'|@translate} -

-
- -
- {'Template selection '|@translate} - - -
- {'Template'|@translate} - - {html_options name=template options=$template_options selected=$main.template_sel} -
- {'New theme to be created'|@translate} - - -
-
- - - -
- {'Colours selection '|@translate} - - - -
- {'Main background'|@translate} - - - -
-
- {'Default text'|@translate} - - -
- {'Internal links'|@translate} - - -
- {'Hover links'|@translate} - - -
- {'External links'|@translate} - - -
-
- -
- {'Header background selection '|@translate} - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {* No / 24H Random public picture / Fixed URL *} -
- - - {html_options style="margin: 0 0 0 10px;" name=src_category options=$src_category selected=$main.src_category} -
- - - -
-   - - - - -
- {'Width limit in pixels'|@translate} - - - x - - {'(Height limit in pixels)'|@translate} -
- {'Display mode'|@translate} {* As is / truncated / resized *} - - {html_radios name='background_mode' class="radio" options=$background_mode_options selected=$main.background_mode} -
-
- -

-   -   - -

-
-
- {'Just a yoga preview... '|@translate} -
- {* Preview header *}
- {if ($main.background=='fixed')} - -

{'"Fixed header" preview'|@translate}

- {/if} - {if ($main.background=='random')} - -

{'"Random header" preview'|@translate}

- {/if} - {if ($main.background=='off')} -

{'"No header" preview'|@translate}

- {/if} -
- {* Preview menubar *}
-
-
{'Preview'|@translate}
-
- -

{'Preview'|@translate}

-
-
-
- {* Preview content *}
-

{'home'|@translate}

- -
-
- -{'...to get an idea of the expected result. Preview is based on yoga-like template only.'|@translate} -
\ No newline at end of file diff --git a/plugins/SwiftThemeCreator/themeconf.inc.tpl b/plugins/SwiftThemeCreator/themeconf.inc.tpl deleted file mode 100644 index 138516ef7..000000000 --- a/plugins/SwiftThemeCreator/themeconf.inc.tpl +++ /dev/null @@ -1,39 +0,0 @@ - '{$main.newtpl}', - 'theme' => '{$main.newtheme}', - 'template_dir' => 'template/{$main.newtpl}', - 'icon_dir' => 'template/{$main.newtpl}/icon', - 'admin_icon_dir' => 'template/{$main.newtpl}/icon/admin', - 'mime_icon_dir' => 'template/{$main.newtpl}/icon/mimetypes/', - 'local_head' => '', - /* Swift Theme Creator parameters */ - 'stc_category' => {$main.src_category}, - 'stc_background' => '{$main.background}', - 'stc_background_mode' => '{$main.background_mode}', - 'stc_width' => '{$main.picture_width}', - 'stc_height' => '{$main.picture_height}', -); -if ( !isset($lang['Theme: {$main.newtheme}']) ) - - /* LocalFiles Editor can help you for translation in local.lang.php - After next "=", following text could be translated. - 4 lines below could copied in local.lang.php for local translation */ - {* - Not these ones but those produced by "Swift Theme Creator" - *} - - $lang['Theme: {$main.newtheme}'] = - 'Current page are displayed via {$main.newtheme} theme based on ' . - '{$main.newtpl} template, a theme generated by the ' . - '"Swift Theme Creator" plugin.'; - -{* END of themeconf.inc.tpl.php *} -?> \ No newline at end of file diff --git a/plugins/SwiftThemeCreator/titrePage-bg.png b/plugins/SwiftThemeCreator/titrePage-bg.png deleted file mode 100644 index 65a71802473088bf7ca1aa1a52b42cb609aa77e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf$0VEg{uCKcdq&N#aB8wRq^pruEv0|xx8BoyF z)5S5QVvg?dje-Xh1Xv8+Qg>*-D)`TN$DZ#)&LUa;HnFu+%8mryN{%=crnK$E|LfbA z9{I!2m!Pn5&PUE~Km(MkLLy3>^K%Ol^C}q_D&`dHc=4U{*ABdJ!sCqh`co(Lud*=M YCbD&G5S7>lRLgTe~DWQo005Iu0TL1t6