From: Vincent Vanwaelscappel
Date: Thu, 2 Nov 2023 11:34:36 +0000 (+0100)
Subject: wip #6447
X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=3abcc0896aec2fe8da7201ce3ffff78c82c10c67;p=michelcastel.git
wip #6447
---
diff --git a/.htaccess b/.htaccess
deleted file mode 100644
index d25d354..0000000
--- a/.htaccess
+++ /dev/null
@@ -1,2 +0,0 @@
-
-AddType x-mapp-php5 .php
\ No newline at end of file
diff --git a/v2/dotclear/CHANGELOG b/v2/dotclear/CHANGELOG
deleted file mode 100644
index 4c0e362..0000000
--- a/v2/dotclear/CHANGELOG
+++ /dev/null
@@ -1,385 +0,0 @@
-Dotclear 2.4.4 - 2012-08-13
-===========================================================
-* Bugfix: Programmed entries works again.
-* Compatibility fix: widgets are now fully php >=5.3 compliant
-* Security fix: potential CSRF in user management
-* has_tag now part of dotclear core, moved from tag plugin.
-* empty title fixed on rss reader widget
-
-
-Dotclear 2.4.3 - 2012-05-18
-===========================================================
-* Admin: My favorites menu can be hidden
-* Admin: Fix wordpress importer
-* Admin: about:config and user:pref tables are now more readable
-* Ductile theme: Blog logo can be changed
-* New lithuanian language (thanks to Paulius Äernakauskas)
-* Various bug fixes
-
-Dotclear 2.4.2 - 2012-02-11
-===========================================================
-* Security fix release
-* 4 XSS vulnerabilities fixed, discovered by High-Tech Bridge
-
-Dotclear 2.4.1.2 - 2011-12-24
-===========================================================
-* Happy Christmas!
-* Security: fixed one SQL injection vulnerability in Clearbricks, thanks to Adjaya
-* New behaviour: publicGetURLFor
-* New behaviour: publicRegisterURL
-* New behaviour: templatePrepareParams
-* Changed the way to get artefacts URLs, through $core->url->getURLFor calls, instead of $core->url->getBase()
-* new/updated parameter sql_only in $core->blog->getPosts and $core->blog->getComments
-
-Dotclear 2.4.0 - 2011-11-13
-===========================================================
-* Admin: new iconset from Thomas Daveluy
-* Admin: Accessibility enhancements
-* Added a custom widget sidebar
-* Added a new theme (Ductile)
-* Added a new plugin (simpleMenu)
-* handling of postgres non default schemas (db_prefix = 'schema.prefix')
-* New iconset mechanism
-* New behaviour: coreBlogBeforeGetPosts
-* Security fix: Spam comments feed now checks for blog permission. Thanks to Romuald Brunet.
-* Various bug fixes
-
-Dotclear 2.3.1 - 2011-06-14
-===========================================================
-* Updated makefile for cleaner distrib.
-* Better localization handling for prefs and shortcuts.
-* Misc JS & CSS cleaning.
-* Import/Export preferences-related bugfix.
-* Administrative mail address is now configurable.
-* Security: one minor fix and changes for two potential problems. Thanks to Jeremie Boutoille
-
-Dotclear 2.3.0 - 2011-05-16
-===========================================================
-* Admin: Major backend redesign
-* Admin: Customizable Dashboard
-* Admin: New Favourites admin submenu
-* Admin: New user preferences backend
-* Admin: Accessibility enhancements
-* Admin: Inline help extended
-* Templates: Default theme templates moved to inc/public/default-templates
-* Clearbricks: External libraries relocated to inc/libs
-* Clearbricks: fixed utf-8 and mysql strict mode problems
-* Added a safe mode connection, disabling all plugins
-* Mysqli support (config.php may need to be updated manually)
-* Fixed dcLog bug with pgsql
-* Fixed comment/trackbacks counters reset.
-* Several other bug fixes
-
-
-Dotclear 2.2.3 - 2011-04-01
-===========================================================
-* Security fix in media manager. Thx to Raphaël
-* Bugfix : 2.2.2 was preventing manual thumbnail regeneration.
-* Database handling bugfixes
-
-Dotclear 2.2.2 - 2011-01-17
-===========================================================
-* Bugfix: 2.2.1 was blocking new installations
-* Autoupdate procedure should now be "bad ftp client configuration"-proof.
-* Several other small bugfixes
-
-Dotclear 2.2.1 - 2011-01-15
-===========================================================
-* ExternalMedia is not part of the core distribution anymore
-* New attribute to tpl:SysIf: blog_id
-* New behaviour: adminMediaItemForm
-* Several bugfixes
-* Several code optimizations
-* Several typos corrected
-* Security fix in Clearbricks. Thx to François Pierre-Doray for pointing it out.
-
-Dotclear 2.2 - 2010-07-01
-===========================================================
-* New installation wizard.
-* Several new behaviours:
- - adminCommentHeaders
- - adminCommentsActionsCombo
- - adminCommentsActions
- - adminCommentsActionsContent
- - adminBeforeCommentDelete
- - adminPostsActionsHeaders
- - adminUsersActionsCombo
- - coreBeforeCategoryCreate & coreAfterCategoryCreate
- - coreBeforeCategoryUpdate & coreAfterCategoryUpdate
- - coreBeforeLogCreate & coreAfterLogCreate
- - coreBeforePostCreate & coreAfterPostCreate
- - coreBeforePostUpdate & coreAfterPostUpdate
- - coreMediaConstruct
- - templateCustomSortByAlias
- - urlHandlerGetArgsDocument
-* New methods for several core classes.
-* Metadata integration to the core.
-* Error handlers can now be extended.
-* Templates: blocks can now be recursive.
-* Templates: Entries & Comments tags can now be sorted.
-* Templates: The template subsystem is quicker, linier, and ready to be extended.
-* Complete reworking of the settings system
-* Correct handling of postgresql non default schemas.
-* Admin: Autocompletion and further enhancing to tags handling.
-* Admin: Accessibility & ergonomic tweaks.
-* Admin: Administrator tag in users list.
-* Comment cookies are now specific to the blog rather than to the domain.
-* Password changes can now be mandatory.
-* jQuery updated to 1.4.2.
-* And way too many bugfixes and typos squashes to be listed.
-
-
-Dotclear 2.1.7 - 2010-05-25
-===========================================================
-* Auto-update procedure fix
-
-Dotclear 2.1.6 - 2009-10-01
-===========================================================
-* Install procedure fixes
-* Admin: Page managers can now create pages
-* Admin: several typos corrected.
-* Admin: Widgets now work in IE8.
-* Admin: Password protected posts can now be previewed.
-* Templates: tpl:Meta* are now tpl:Tags*.
-* Templates: now display all posts.
-* new behavior: adminPageHTMLHead
-* DB schema: new blog_id field in log table
-* Media manager: Pubic folder can now be set on a different host.
-* WordPress import fixes
-* Dailymotion insertion fix
-* Upgrade procedure: CRLF removed in files that were bugging the upgrade.
-* JQuery updated to 1.3
-* IE7-js update
-* security: Full Path Disclosure protection. Thx to Karim Ayad for pointing it out.
-* and way too many bugfixes to be listed.
-
-Dotclear 2.1.5 - 2009-02-05
-===========================================================
-* Security release
-* Youtube insertion update
-
-Dotclear 2.1.4 - 2008-12-21
-===========================================================
-* Security flaw fix
-* WordPress import refining
-* XML-RPC improvements
-
-Dotclear 2.1.3 - 2008-11-19
-===========================================================
-* Admin: New upgrade procedure
-* Admin: Fixed video insertion bug
-* Template: New attributes
- * url on EntryIf
- * only_category on Blogroll
- * no_context on Pagination
-* Template: New tag
- * BlogID
-* Admin: escaped blog_id on authentication page
-
-Dotclear 2.1.1 - 2008-11-07
-===========================================================
-* Admin: Automatic Update bug fixes
-* Admin: Disable Automatic Update if no digests file
-* Admin: Javascript fixes in authentication page
-* Admin: Fixed errors with categories select boxes
-* Template: Added level attribute in tpl:Categories
-* Media: Added H.264/MPEG-4 AVC for mp4 files
-
-Dotclear 2.1 - 2008-11-01
-===========================================================
-* Subcategories
-* Admin: Automatic Update
-* Admin: Flash 10 support for uploader
-* Admin: mailto link in comment details
-* Admin: Embedded video size selection
-* Admin: Restrict session cookie path to admin
-* Media: H.264/MPEG-4 AVC (HD) support with m4v files
-* Inherited themes
-* WordPress XML-RPC methods support
-* True unicode URLs
-* Plugin: Widgets as template tags
-* Plugin: Filters in entries widgets and Blogroll
-* Plugin: Added vimeo.com in external media
-* Template: New tags
- * LoopPosition
- * CommentAuthorDomain
- * CommentAuthorMD5
- * EntryFirstImage
- * EntryCategoryShortURL
- * CategoryIf
- * CategoryFirstChildren
- * CategoryParents
- * EntryCategoriesBreadcrum
- * MediaURL
-
-Dotclear 2.0.2 - 2008-09-05
-===========================================================
-* New installation procedure
-* Plugin: WordPress import fixes
-* Plugin: Plain text export as downloadable files
-* Plugin: Message about URLs in Dotclear 1.2 import
-* Public: Display a message if search returns no result
-* Admin: Fixed some CSS bugs
-* Admin: Batch select/unselect entries
-* Admin: In a media item, find entries containing it
-
-Dotclear 2.0.1 - 2008-08-16
-===========================================================
-* Plugin: Fixed a bug with Dotclear 1.2 URLs import.
-* Plugin: Fixed a l10n bug in Pages
-* Admin: Enhanced plugins resources loading and cache
-
-Dotclear 2.0 - 2008-08-01
-===========================================================
-* Public: Atom becomes the default feed format. RSS 2 is always available.
-* Admin: design enhancements and new Dotclear logo
-* Admin: entries preview in blog context
-* L10N: New language manager with zip files support
-* Plugin: Import/Export plugin version 2.0 with import from Dotclear 1.2 and WordPress
-* Plugin: Pages enhancements (preview, sorting)
-* Plugin: support for jamendo and deezer in External Media
-* JSMin on JavaScript files instead of JS packing
-* SQLite 3 only support (PDO based)
-* Many bug fixes and major performances improvements
-
-Dotclear 2.0 RC2 - 2008-06-21
-===========================================================
-* FairTrackback spam filter
-* Language pack infrastructure
-* Bug fix on comment search with author "0"
-* Javascript fixes
-* dcAuth::sessionExists and dcAuth::checkSession new methods
-* Right management in dcAuth::sudo
-* Media File sorting options in media manager
-* CandyUpload, new uploader tool based on SWFUpload
-* New search engine robots options
-* New image options
-* L10N: Japanese and Portugues (Brazil) language packs
-* Many bug fixes and enhancements
-
-Dotclear 2.0 RC1 - 2008-05-01
-===========================================================
-* New: Pages plugin
-* New: Theme editor plugin
-* Entries: Text and WYSIWYG enhancements
-* Entries: Markup validator
-* Entries: Insertion of links to other entries from toolbar
-* Entries: External media insertion (dailymotion, youtube, google video)
-* Tags: Same list for new and existing entries
-* Tags: Tags can be removed on all associated entries
-* Tags: Tags can be removed on a post selection
-* Admin: Ask password for user management tasks, theme upload and plugin upload
-* Admin: New contextual help viewer
-* Media manager: Recreate thumbnails option
-* Media manager: Custom medium thumbnail size (per blog)
-* Media manager: Zip files extract support
-* Media manager: Zip file download of directory
-* Media manager: File exclusion pattern option
-* Themes and plugins: Zip as new package format
-* Themes and plugins: Upload
-* Themes and plugins: Upgrade within administration interface
-* Themes and plugins: Deletion
-* Public: New default theme: Blowup (fully customizable)
-* Public: Changed the way commenter cookie is handled
-* Themes: Template files moved to tpl/ directory
-* L10N: Polish, Catalan and Spanish translations
-* Misc: jQuery upgraded to 1.2.3
-* Misc: Crushed png files
-* Fixed many bugs
-
-Dotclear 2.0 beta 7 - 2007-07-12
-===========================================================
-* New way to display comments and trackbacks on entries in backend
-* Dashboard visual improvements
-* Default cache dir created by installation process
-* Option to limit posts and comments in feeds
-* Introduced UDBS for installation and upgrade
-* Changed handling of XML-RPC URLs
-* New option to force HTTPS redirect if wanted
-* Enforced cookies security (directory and ssl support)
-* Added Plugin auto-install and auto-upgrade support
-* Added trackbacks ttl and moderation preferences
-* Added an Internal search engine
-* FLV support in backend with Neolao player
-* Added nice messages if database is broken or Dotclear not installed
-* upgrade jQuery to 1.1.3
-* Fixed many bugs
-* Fixed security issues in backend
-
-Dotclear 2.0 beta 6 - 2007-02-19
-===========================================================
-* New antispam plugin, with a set of filters (rbl, ipblacklist, spamwords, akismet)
-* New admin dashboard page
-* Fixed unwanted logout bug
-* Added settings to disable template caching and allow PHP code
-* Blog preferences panel bug fix
-* New XML-RPC Client and Server
-* Comment posting permissions bug fix
-
-Dotclear 2.0 beta 5.4 - 2007-01-19
-===========================================================
-* Minor change on spam display in comments.php
-* Command line upgrade script and fix in load_plugin_file.php
-* Make akismet configurable only by superadmin with DC_AKISMET_SUPER
-* SQL optimisations
-* New comments view in post
-
-Dotclear 2.0 beta 5.2 - 2007-01-11
-===========================================================
-* Fixed a bug with imageMeta::getMeta
-* Enhanced dynamic file uploader
-* Move clearbricks files to their own repository
-* Fixed a bug with auto_br in wikiSimpleComment
-* Support for language restriction in feeds
-* Default theme structure changes
-* Fixed a PHP 5.0 compatibility issue
-* Installation Wizard
-
-Dotclear 2.0 beta 4 - 2006-12-26
-===========================================================
-* Performances enhancements.
-* Administration UI enhancements.
-* More user-friendly Widgets (version 1.5).
-* Switch to jQuery .
-* Added jQuery in default theme.
-* Major changes in HTTP client and Feed Parser based on a
- generic socket handler.
-* PHP 5.2 compatibility.
-* Code documentation (all core and most of clearbricks).
-* Many bug fixes.
-
-Dotclear 2.0 beta 3 - 2006-11-05
-===========================================================
-* Disallow special wrappers for fopen like functions.
-* XML/RPC improvements.
-* Read IPTC and EXIF metadata in uploaded pictures.
-* MySQL 4.1 support only.
-* Metadata import from Dotclear 1.2.x.
-* Akismet plugin.
-* Pings plugin.
-* Added a priority setting for plugins.
-* Many bug fixes.
-
-Dotclear 2.0 beta 2 - 2006-08-09
-===========================================================
-* DC_PLUGIN_ROOT can handle more than one path.
-* OPML/XBEL import in blogroll plugin.
-* Fixed a security issue in html::absoluteURLs().
-* Fixed issues with timezone on scheduled entries.
-* Multiple categories selection in tpl:Entries.
-* Improved dbLayer.
-* Changed category feed URL.
-* Feeds for tags (entries and comments).
-* Added attachments count on backend and frontend.
-* New settings code design. Can now handle wide system settings.
-* Memory usage improvements with autoloader.
-* Some code cleanup.
-* Feed parser improvements.
-* Themes can be configured if needed.
-* XMP support on JPEG files.
-* Media manager improvements.
-* Spamplemousse now uses DNSBL (and the guy who left the bug was fired).
-* Javascript editor and toolbar improvements.
-* RDS support (XML/RPC API discovery).
-* Added a theme with user stylesheet.
-* Plugins manager
diff --git a/v2/dotclear/CREDITS b/v2/dotclear/CREDITS
deleted file mode 100644
index 76b9172..0000000
--- a/v2/dotclear/CREDITS
+++ /dev/null
@@ -1,46 +0,0 @@
-This is a credits file of people that have contributed to the Dotclear project.
-
-Dotclear Team
--------------
-
-Thomas Bouron
-Anne Cavalier
-Noé Cendrier
-Benoit Clerc
-Grégory Corvisier
-Florent Cotton
-Philippe Hénaff
-Bruno Hondelatte
-Olivier Meunier
-Franck Paul
-Michel Pelletier
-Xavier Plantefève
-Jean-Michel Royer
-Anne Sophie Tranchet
-Alain Vagner
-
-Dotclear Translators
---------------------
-
-Benjamin Bank
-Alain Béarez
-Claire Cambier
-Luis Correia
-Andreas Diller
-Alain Fagot
-Sabrina Favier
-Charles Hebert
-Guillaume Jonquiere
-Dennis S. L. Jørgensen
-Miguel A. Muñoz
-Sebestyén Muráncsik
-NnidÅ·u
-Polo
-Aina Chabert Ramon
-Adnan Shameem
-Enrique Matias Sanchez
-Jan Skrasek
-Takafumi
-Regina Timbó
-
-... and all contributors.
\ No newline at end of file
diff --git a/v2/dotclear/LICENSE b/v2/dotclear/LICENSE
deleted file mode 100644
index d511905..0000000
--- a/v2/dotclear/LICENSE
+++ /dev/null
@@ -1,339 +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/v2/dotclear/README b/v2/dotclear/README
deleted file mode 100644
index ed0c4c4..0000000
--- a/v2/dotclear/README
+++ /dev/null
@@ -1,22 +0,0 @@
-Welcome to Dotclear
-
-WHAT YOU NEED TO RUN DOTCLEAR
------------------------------
-In order to run Dotclear you need:
-
- * A web server (Apache, Cheerokee, lightHttpd, etc.)
- * PHP 5.2 with the following modules:
- * mbstring
- * iconv
- * simplexml
- * mysql, postgresql or sqlite
- * A database server (MySQL or PostgreSQL) or SQLite.
-
-
-INSTALLATION
-------------
-Copy inc/config.php.in to inc/config.php and fill in the fields with appropriate
-values.
-
-If you intend to use MySQL or PostgreSQL, you'll have to create a database
-first. With SQLite, db/ folder will have to be writable by your web server.
\ No newline at end of file
diff --git a/v2/dotclear/admin/auth.php b/v2/dotclear/admin/auth.php
deleted file mode 100644
index 414914c..0000000
--- a/v2/dotclear/admin/auth.php
+++ /dev/null
@@ -1,431 +0,0 @@
-auth->allowPassChange() && isset($_POST['new_pwd']) && isset($_POST['new_pwd_c']) && isset($_POST['login_data']);
-$login_data = !empty($_POST['login_data']) ? html::escapeHTML($_POST['login_data']) : null;
-$recover = $core->auth->allowPassChange() && !empty($_REQUEST['recover']);
-$safe_mode = !empty($_REQUEST['safe_mode']);
-$akey = $core->auth->allowPassChange() && !empty($_GET['akey']) ? $_GET['akey'] : null;
-$user_id = $user_pwd = $user_key = $user_email = null;
-$err = $msg = null;
-
-# Auto upgrade
-if (empty($_GET) && empty($_POST)) {
- require dirname(__FILE__).'/../inc/dbschema/upgrade.php';
- try {
- if (($changes = dotclearUpgrade($core)) !== false) {
- $msg = __('Dotclear has been upgraded.').'';
- }
- } catch (Exception $e) {
- $err = $e->getMessage();
- }
-}
-
-# If we have POST login informations, go throug auth process
-if (!empty($_POST['user_id']) && !empty($_POST['user_pwd']))
-{
- $user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : null;
- $user_pwd = !empty($_POST['user_pwd']) ? $_POST['user_pwd'] : null;
-}
-# If we have COOKIE login informations, go throug auth process
-elseif (isset($_COOKIE['dc_admin']) && strlen($_COOKIE['dc_admin']) == 104)
-{
- # If we have a remember cookie, go through auth process with user_key
- $user_id = substr($_COOKIE['dc_admin'],40);
- $user_id = @unpack('a32',@pack('H*',$user_id));
- if (is_array($user_id))
- {
- $user_id = $user_id[1];
- $user_key = substr($_COOKIE['dc_admin'],0,40);
- $user_pwd = null;
- }
- else
- {
- $user_id = null;
- }
-}
-
-# Recover password
-if ($recover && !empty($_POST['user_id']) && !empty($_POST['user_email']))
-{
- $user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : null;
- $user_email = !empty($_POST['user_email']) ? $_POST['user_email'] : '';
- try
- {
- $recover_key = $core->auth->setRecoverKey($user_id,$user_email);
-
- $subject = mail::B64Header('DotClear '.__('Password reset'));
- $message =
- __('Someone has requested to reset the password for the following site and username.')."\n\n".
- $page_url."\n".__('Username:').' '.$user_id."\n\n".
- __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.')."\n".
- $page_url.'?akey='.$recover_key;
-
- $headers[] = 'From: '.(defined('DC_ADMIN_MAILFROM') && DC_ADMIN_MAILFROM ? DC_ADMIN_MAILFROM : 'dotclear@local');
- $headers[] = 'Content-Type: text/plain; charset=UTF-8;';
-
- mail::sendMail($user_email,$subject,$message,$headers);
- $msg = sprintf(__('The e-mail was sent successfully to %s.'),$user_email);
- }
- catch (Exception $e)
- {
- $err = $e->getMessage();
- }
-}
-# Send new password
-elseif ($akey)
-{
- try
- {
- $recover_res = $core->auth->recoverUserPassword($akey);
-
- $subject = mb_encode_mimeheader('DotClear '.__('Your new password'),'UTF-8','B');
- $message =
- __('Username:').' '.$recover_res['user_id']."\n".
- __('Password:').' '.$recover_res['new_pass']."\n\n".
- preg_replace('/\?(.*)$/','',$page_url);
-
- $headers[] = 'From: dotclear@'.$_SERVER['HTTP_HOST'];
- $headers[] = 'Content-Type: text/plain; charset=UTF-8;';
-
- mail::sendMail($recover_res['user_email'],$subject,$message,$headers);
- $msg = __('Your new password is in your mailbox.');
- }
- catch (Exception $e)
- {
- $err = $e->getMessage();
- }
-}
-# Change password and retry to log
-elseif ($change_pwd)
-{
- try
- {
- $tmp_data = explode('/',$_POST['login_data']);
- if (count($tmp_data) != 3) {
- throw new Exception();
- }
- $data = array(
- 'user_id'=>base64_decode($tmp_data[0]),
- 'cookie_admin'=>$tmp_data[1],
- 'user_remember'=>$tmp_data[2]=='1'
- );
- if ($data['user_id'] === false) {
- throw new Exception();
- }
-
- # Check login informations
- $check_user = false;
- if (isset($data['cookie_admin']) && strlen($data['cookie_admin']) == 104)
- {
- $user_id = substr($data['cookie_admin'],40);
- $user_id = @unpack('a32',@pack('H*',$user_id));
- if (is_array($user_id))
- {
- $user_id = $user_id[1];
- $user_key = substr($data['cookie_admin'],0,40);
- $check_user = $core->auth->checkUser($user_id,null,$user_key) === true;
- }
- }
-
- if (!$core->auth->allowPassChange() || !$check_user) {
- $change_pwd = false;
- throw new Exception();
- }
-
- if ($_POST['new_pwd'] != $_POST['new_pwd_c']) {
- throw new Exception(__("Passwords don't match"));
- }
-
- if ($core->auth->checkUser($user_id,$_POST['new_pwd']) === true) {
- throw new Exception(__("You didn't change your password."));
- }
-
- $cur = $core->con->openCursor($core->prefix.'user');
- $cur->user_change_pwd = 0;
- $cur->user_pwd = $_POST['new_pwd'];
- $core->updUser($core->auth->userID(),$cur);
-
- $core->session->start();
- $_SESSION['sess_user_id'] = $user_id;
- $_SESSION['sess_browser_uid'] = http::browserUID(DC_MASTER_KEY);
-
- if ($data['user_remember'])
- {
- setcookie('dc_admin',$data['cookie_admin'],strtotime('+15 days'),'','',DC_ADMIN_SSL);
- }
-
- http::redirect('index.php');
- }
- catch (Exception $e)
- {
- $err = $e->getMessage();
- }
-}
-# Try to log
-elseif ($user_id !== null && ($user_pwd !== null || $user_key !== null))
-{
- # We check the user
- $check_user = $core->auth->checkUser($user_id,$user_pwd,$user_key) === true;
-
- $cookie_admin = http::browserUID(DC_MASTER_KEY.$user_id.
- crypt::hmac(DC_MASTER_KEY,$user_pwd)).bin2hex(pack('a32',$user_id));
-
- if ($check_user && $core->auth->mustChangePassword())
- {
- $login_data = join('/',array(
- base64_encode($user_id),
- $cookie_admin,
- empty($_POST['user_remember'])?'0':'1'
- ));
-
- if (!$core->auth->allowPassChange()) {
- $err = __('You have to change your password before you can login.');
- } else {
- $err = __('In order to login, you have to change your password now.');
- $change_pwd = true;
- }
- }
- elseif ($check_user && !empty($_POST['safe_mode']) && !$core->auth->isSuperAdmin())
- {
- $err = __('Safe Mode can only be used for super administrators.');
- }
- elseif ($check_user)
- {
- $core->session->start();
- $_SESSION['sess_user_id'] = $user_id;
- $_SESSION['sess_browser_uid'] = http::browserUID(DC_MASTER_KEY);
-
- if (!empty($_POST['blog'])) {
- $_SESSION['sess_blog_id'] = $_POST['blog'];
- }
-
- if (!empty($_POST['safe_mode']) && $core->auth->isSuperAdmin()) {
- $_SESSION['sess_safe_mode'] = true;
- }
-
- if (!empty($_POST['user_remember'])) {
- setcookie('dc_admin',$cookie_admin,strtotime('+15 days'),'','',DC_ADMIN_SSL);
- }
-
- http::redirect('index.php');
- }
- else
- {
- if (isset($_COOKIE['dc_admin'])) {
- unset($_COOKIE['dc_admin']);
- setcookie('dc_admin',false,-600,'','',DC_ADMIN_SSL);
- }
- $err = __('Wrong username or password');
- }
-}
-
-if (isset($_GET['user'])) {
- $user_id = $_GET['user'];
-}
-
-header('Content-Type: text/html; charset=UTF-8');
-?>
-
-" lang="">
-
-
-
-
-
-
-
-
-
-
-
-
-
- callBehavior('loginPageHTMLHead');
- ?>
-
-
-
-
-
-
-
-
-
diff --git a/v2/dotclear/admin/blog.php b/v2/dotclear/admin/blog.php
deleted file mode 100644
index fc01915..0000000
--- a/v2/dotclear/admin/blog.php
+++ /dev/null
@@ -1,96 +0,0 @@
-con->openCursor($core->prefix.'blog');
- $blog_id = $cur->blog_id = $_POST['blog_id'];
- $blog_url = $cur->blog_url = $_POST['blog_url'];
- $blog_name = $cur->blog_name = $_POST['blog_name'];
- $blog_desc = $cur->blog_desc = $_POST['blog_desc'];
-
- try
- {
- # --BEHAVIOR-- adminBeforeBlogCreate
- $core->callBehavior('adminBeforeBlogCreate',$cur,$blog_id);
-
- $core->addBlog($cur);
-
- # Default settings and override some
- $core->blogDefaults($cur->blog_id);
- $blog_settings = new dcSettings($core,$cur->blog_id);
- $blog_settings->addNamespace('system');
- $blog_settings->system->put('lang',$core->auth->getInfo('user_lang'));
- $blog_settings->system->put('blog_timezone',$core->auth->getInfo('user_tz'));
-
- if (substr($blog_url,-1) == '?') {
- $blog_settings->system->put('url_scan','query_string');
- } else {
- $blog_settings->system->put('url_scan','path_info');
- }
-
- # --BEHAVIOR-- adminAfterBlogCreate
- $core->callBehavior('adminAfterBlogCreate',$cur,$blog_id,$blog_settings);
-
- http::redirect('blog.php?id='.$cur->blog_id.'&add=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-if (!empty($_REQUEST['id']))
-{
- $edit_blog_mode = true;
- include dirname(__FILE__).'/blog_pref.php';
-}
-else
-{
- dcPage::open(__('New blog'),dcPage::jsConfirmClose('blog-form'));
-
- echo
- ''.
-
- '';
-
- dcPage::close();
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/blog_del.php b/v2/dotclear/admin/blog_del.php
deleted file mode 100644
index e0d31fe..0000000
--- a/v2/dotclear/admin/blog_del.php
+++ /dev/null
@@ -1,73 +0,0 @@
-getBlog($_POST['blog_id']);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-
- if ($rs->isEmpty()) {
- $core->error->add(__('No such blog ID'));
- } else {
- $blog_id = $rs->blog_id;
- $blog_name = $rs->blog_name;
- }
-}
-
-# Delete the blog
-if (!$core->error->flag() && $blog_id && !empty($_POST['del']))
-{
- if (!$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['pwd']))) {
- $core->error->add(__('Password verification failed'));
- } else {
- try {
- $core->delBlog($blog_id);
- http::redirect('blogs.php?del=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-}
-
-dcPage::open('Delete a blog');
-
-if (!$core->error->flag())
-{
- echo
- ''.__('Delete a blog').' '.
- ''.__('Warning').'
'.
- ''.sprintf(__('You are about to delete the blog %s. Every entry, comment and category will be deleted.'),
- ''.$blog_id.' ('.$blog_name.') ').'
'.
- ''.__('Please give your password to confirm the blog deletion.').'
';
-
- echo
- '';
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/blog_pref.php b/v2/dotclear/admin/blog_pref.php
deleted file mode 100644
index e8e900a..0000000
--- a/v2/dotclear/admin/blog_pref.php
+++ /dev/null
@@ -1,553 +0,0 @@
-blog->id;
- $blog_status = $core->blog->status;
- $blog_name = $core->blog->name;
- $blog_desc = $core->blog->desc;
- $blog_settings = $core->blog->settings;
- $blog_url = $core->blog->url;
-
- $action = 'blog_pref.php';
- $redir = 'blog_pref.php?upd=1';
-}
-else
-{
- dcPage::checkSuper();
- try
- {
- if (empty($_REQUEST['id'])) {
- throw new Exception(__('No given blog id.'));
- }
- $rs = $core->getBlog($_REQUEST['id']);
-
- if (!$rs) {
- throw new Exception(__('No such blog.'));
- }
-
- $blog_id = $rs->blog_id;
- $blog_status = $rs->blog_status;
- $blog_name = $rs->blog_name;
- $blog_desc = $rs->blog_desc;
- $blog_settings = new dcSettings($core,$blog_id);
- $blog_url = $rs->blog_url ;
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-
- $action = 'blog.php';
- $redir = 'blog.php?id=%s&upd=1';
-}
-
-# Language codes
-$langs = l10n::getISOcodes(1,1);
-foreach ($langs as $k => $v) {
- $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v);
- $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : '');
-}
-
-# Status combo
-foreach ($core->getAllBlogStatus() as $k => $v) {
- $status_combo[$v] = (string) $k;
-}
-
-# URL scan modes
-$url_scan_combo = array(
- 'PATH_INFO' => 'path_info',
- 'QUERY_STRING' => 'query_string'
-);
-
-# Post URL combo
-$post_url_combo = array(
- __('year/month/day/title') => '{y}/{m}/{d}/{t}',
- __('year/month/title') => '{y}/{m}/{t}',
- __('year/title') => '{y}/{t}',
- __('title') => '{t}'
-);
-if (!in_array($blog_settings->system->post_url_format,$post_url_combo)) {
- $post_url_combo[html::escapeHTML($blog_settings->system->post_url_format)] = html::escapeHTML($blog_settings->system->post_url_format);
-}
-
-# Image title combo
-$img_title_combo = array(
- __('Title') => 'Title ;; separator(, )',
- __('Title, Date') => 'Title ;; Date(%b %Y) ;; separator(, )',
- __('Title, Country, Date') => 'Title ;; Country ;; Date(%b %Y) ;; separator(, )',
- __('Title, City, Country, Date') => 'Title ;; City ;; Country ;; Date(%b %Y) ;; separator(, )',
-);
-if (!in_array($blog_settings->system->media_img_title_pattern,$img_title_combo)) {
- $img_title_combo[html::escapeHTML($blog_settings->system->media_img_title_pattern)] = html::escapeHTML($blog_settings->system->media_img_title_pattern);
-}
-
-# Robots policy options
-$robots_policy_options = array(
- 'INDEX,FOLLOW' => __("I would like search engines and archivers to index and archive my blog's content."),
- 'INDEX,FOLLOW,NOARCHIVE' => __("I would like search engines and archivers to index but not archive my blog's content."),
- 'NOINDEX,NOFOLLOW,NOARCHIVE' => __("I would like to prevent search engines and archivers from indexing or archiving my blog's content."),
-);
-
-# Update a blog
-if ($blog_id && !empty($_POST) && $core->auth->check('admin',$blog_id))
-{
- $cur = $core->con->openCursor($core->prefix.'blog');
- if ($core->auth->isSuperAdmin()) {
- $cur->blog_id = $_POST['blog_id'];
- $cur->blog_url = preg_replace('/\?+$/','?',$_POST['blog_url']);
- if (in_array($_POST['blog_status'],$status_combo)) {
- $cur->blog_status = (integer) $_POST['blog_status'];
- }
- }
- $cur->blog_name = $_POST['blog_name'];
- $cur->blog_desc = $_POST['blog_desc'];
-
- $media_img_t_size = abs((integer) $_POST['media_img_t_size']);
- if ($media_img_t_size < 0) { $media_img_t_size = 100; }
-
- $media_img_s_size = abs((integer) $_POST['media_img_s_size']);
- if ($media_img_s_size < 0) { $media_img_s_size = 240; }
-
- $media_img_m_size = abs((integer) $_POST['media_img_m_size']);
- if ($media_img_m_size < 0) { $media_img_m_size = 448; }
-
- $nb_post_per_page = abs((integer) $_POST['nb_post_per_page']);
- if ($nb_post_per_page <= 1) { $nb_post_per_page = 1; }
-
- $nb_post_per_feed = abs((integer) $_POST['nb_post_per_feed']);
- if ($nb_post_per_feed <= 1) { $nb_post_per_feed = 1; }
-
- $nb_comment_per_feed = abs((integer) $_POST['nb_comment_per_feed']);
- if ($nb_comment_per_feed <= 1) { $nb_comment_per_feed = 1; }
-
- try
- {
- if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
- $rs = $core->getBlog($cur->blog_id);
-
- if ($rs) {
- throw new Exception(__('That blog Id is already in use.'));
- }
- }
-
- # --BEHAVIOR-- adminBeforeBlogUpdate
- $core->callBehavior('adminBeforeBlogUpdate',$cur,$blog_id);
-
- if (!preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$_POST['lang'])) {
- throw new Exception(__('Invalid language code'));
- }
-
- $core->updBlog($blog_id,$cur);
-
- # --BEHAVIOR-- adminAfterBlogUpdate
- $core->callBehavior('adminAfterBlogUpdate',$cur,$blog_id);
-
- if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
- if ($blog_id == $core->blog->id) {
- $core->setBlog($cur->blog_id);
- $_SESSION['sess_blog_id'] = $cur->blog_id;
- $blog_settings = $core->blog->settings;
- } else {
- $blog_settings = new dcSettings($core,$cur->blog_id);
- }
-
- $blog_id = $cur->blog_id;
- }
-
-
- $blog_settings->addNameSpace('system');
-
- $blog_settings->system->put('editor',$_POST['editor']);
- $blog_settings->system->put('copyright_notice',$_POST['copyright_notice']);
- $blog_settings->system->put('post_url_format',$_POST['post_url_format']);
- $blog_settings->system->put('lang',$_POST['lang']);
- $blog_settings->system->put('blog_timezone',$_POST['blog_timezone']);
- $blog_settings->system->put('date_format',$_POST['date_format']);
- $blog_settings->system->put('time_format',$_POST['time_format']);
- $blog_settings->system->put('comments_ttl',abs((integer) $_POST['comments_ttl']));
- $blog_settings->system->put('trackbacks_ttl',abs((integer) $_POST['trackbacks_ttl']));
- $blog_settings->system->put('allow_comments',!empty($_POST['allow_comments']));
- $blog_settings->system->put('allow_trackbacks',!empty($_POST['allow_trackbacks']));
- $blog_settings->system->put('comments_pub',empty($_POST['comments_pub']));
- $blog_settings->system->put('trackbacks_pub',empty($_POST['trackbacks_pub']));
- $blog_settings->system->put('comments_nofollow',!empty($_POST['comments_nofollow']));
- $blog_settings->system->put('wiki_comments',!empty($_POST['wiki_comments']));
- $blog_settings->system->put('enable_xmlrpc',!empty($_POST['enable_xmlrpc']));
-
- $blog_settings->system->put('nb_post_per_page',$nb_post_per_page);
- $blog_settings->system->put('use_smilies',!empty($_POST['use_smilies']));
- $blog_settings->system->put('media_img_t_size',$media_img_t_size);
- $blog_settings->system->put('media_img_s_size',$media_img_s_size);
- $blog_settings->system->put('media_img_m_size',$media_img_m_size);
- $blog_settings->system->put('media_img_title_pattern',$_POST['media_img_title_pattern']);
- $blog_settings->system->put('nb_post_per_feed',$nb_post_per_feed);
- $blog_settings->system->put('nb_comment_per_feed',$nb_comment_per_feed);
- $blog_settings->system->put('short_feed_items',!empty($_POST['short_feed_items']));
-
- if (isset($_POST['robots_policy'])) {
- $blog_settings->system->put('robots_policy',$_POST['robots_policy']);
- }
-
- # --BEHAVIOR-- adminBeforeBlogSettingsUpdate
- $core->callBehavior('adminBeforeBlogSettingsUpdate',$blog_settings);
-
- if ($core->auth->isSuperAdmin() && in_array($_POST['url_scan'],$url_scan_combo)) {
- $blog_settings->system->put('url_scan',$_POST['url_scan']);
- }
-
- http::redirect(sprintf($redir,$blog_id));
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-dcPage::open(__('Blog settings'),
- '".
- dcPage::jsConfirmClose('blog-form').
- dcPage::jsLoad('js/_blog_pref.js').
-
-
- # --BEHAVIOR-- adminBlogPreferencesHeaders
- $core->callBehavior('adminBlogPreferencesHeaders').
-
- dcPage::jsPageTabs()
-);
-
-if ($blog_id)
-{
- echo ''.(!$standalone ? ''.__('Blogs').' › ' : '').
- html::escapeHTML($blog_name).' › '.
- __('Blog settings').' ';
-
- if (!empty($_GET['add'])) {
- echo ''.__('Blog has been successfully created.').'
';
- }
-
- if (!empty($_GET['upd'])) {
- echo ''.__('Blog has been successfully updated.').'
';
- }
-
- echo
- ''.
- '
'.__('Parameters').' '.
- '
';
-
- if ($core->auth->isSuperAdmin() && $blog_id != $core->blog->id)
- {
- echo
- '
';
- }
-
- # XML/RPC information
- echo '
'.__('XML/RPC interface').' ';
-
- echo '
'.__('XML/RPC interface allows you to edit your blog with an external client.').'
';
-
- if (!$blog_settings->system->enable_xmlrpc)
- {
- echo '
'.__('XML/RPC interface is not active. Change settings to enable it.').'
';
- }
- else
- {
- echo
- '
'.__('XML/RPC interface is active. You should set the following parameters on your XML/RPC client:').'
'.
- '
'.
- ''.__('Server URL:').' '.
- sprintf(DC_XMLRPC_URL,$core->blog->url,$core->blog->id).
- ' '.
- ''.__('Blogging system:').' Movable Type '.
- ''.__('User name:').' '.$core->auth->userID().' '.
- ''.__('Password:').' '.__('your password').' '.
- ''.__('Blog ID:').' 1 '.
- ' ';
- }
-
- echo '
';
-
- #
- # Users on the blog (with permissions)
-
- $blog_users = $core->getBlogPermissions($blog_id,$core->auth->isSuperAdmin());
- $perm_types = $core->auth->getPermissionsTypes();
-
- echo
- ''.
- '
'.__('Users on this blog').' ';
-
- if (empty($blog_users))
- {
- echo '
'.__('No users').'
';
- }
- else
- {
- if ($core->auth->isSuperAdmin()) {
- $user_url_p = '
%1$s ';
- } else {
- $user_url_p = '%1$s';
- }
-
- foreach ($blog_users as $k => $v)
- {
- if (count($v['p']) > 0)
- {
- echo
- '
'.sprintf($user_url_p,html::escapeHTML($k)).
- ' ('.html::escapeHTML(dcUtils::getUserCN(
- $k, $v['name'], $v['firstname'], $v['displayname']
- )).')';
-
- if (!$v['super'] && $core->auth->isSuperAdmin()) {
- echo
- ' - '
- .__('Change permissions').' ';
- }
-
- echo ' ';
-
- echo '
';
- if ($v['super']) {
- echo ''.__('Super administrator').' ';
- } else {
- foreach ($v['p'] as $p => $V) {
- echo ''.__($perm_types[$p]).' ';
- }
- }
- echo ' ';
- }
- }
- }
-
- echo '
';
-}
-
-dcPage::helpBlock('core_blog_pref');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/blog_theme.php b/v2/dotclear/admin/blog_theme.php
deleted file mode 100644
index d463379..0000000
--- a/v2/dotclear/admin/blog_theme.php
+++ /dev/null
@@ -1,363 +0,0 @@
-themes = new dcThemes($core);
-$core->themes->loadModules($core->blog->themes_path,null);
-
-# Theme screenshot
-if (!empty($_GET['shot']) && $core->themes->moduleExists($_GET['shot']))
-{
- if (empty($_GET['src'])) {
- $f = $core->blog->themes_path.'/'.$_GET['shot'].'/screenshot.jpg';
- } else {
- $f = $core->blog->themes_path.'/'.$_GET['shot'].'/'.path::clean($_GET['src']);
- }
-
- $f = path::real($f);
-
- if (!file_exists($f)) {
- $f = dirname(__FILE__).'/images/noscreenshot.png';
- }
-
- http::cache(array_merge(array($f),get_included_files()));
-
- header('Content-Type: '.files::getMimeType($f));
- header('Content-Length: '.filesize($f));
- readfile($f);
-
- exit;
-}
-
-$can_install = $core->auth->isSuperAdmin();
-$is_writable = is_dir($core->blog->themes_path) && is_writable($core->blog->themes_path);
-$default_tab = 'themes-list';
-
-# Selecting theme
-if (!empty($_POST['theme']) && !empty($_POST['select']) && empty($_REQUEST['conf']))
-{
- $core->blog->settings->addNamespace('system');
- $core->blog->settings->system->put('theme',$_POST['theme']);
- $core->blog->triggerBlog();
- http::redirect('blog_theme.php?upd=1');
-}
-
-if ($can_install && !empty($_POST['theme']) && !empty($_POST['remove']) && empty($_REQUEST['conf']))
-{
- try
- {
- if ($_POST['theme'] == 'default') {
- throw new Exception(__('You can\'t remove default theme.'));
- }
-
- if (!$core->themes->moduleExists($_POST['theme'])) {
- throw new Exception(__('Theme does not exist.'));
- }
-
- $theme = $core->themes->getModules($_POST['theme']);
-
- # --BEHAVIOR-- themeBeforeDelete
- $core->callBehavior('themeBeforeDelete',$theme);
-
- $core->themes->deleteModule($_POST['theme']);
-
- # --BEHAVIOR-- themeAfterDelete
- $core->callBehavior('themeAfterDelete',$theme);
-
- http::redirect('blog_theme.php?del=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-# Theme upload
-if ($can_install && $is_writable && ((!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file'])) ||
- (!empty($_POST['fetch_pkg']) && !empty($_POST['pkg_url']))))
-{
- try
- {
- if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
- throw new Exception(__('Password verification failed'));
- }
-
- if (!empty($_POST['upload_pkg']))
- {
- files::uploadStatus($_FILES['pkg_file']);
-
- $dest = $core->blog->themes_path.'/'.$_FILES['pkg_file']['name'];
- if (!move_uploaded_file($_FILES['pkg_file']['tmp_name'],$dest)) {
- throw new Exception(__('Unable to move uploaded file.'));
- }
- }
- else
- {
- $url = urldecode($_POST['pkg_url']);
- $dest = $core->blog->themes_path.'/'.basename($url);
-
- try
- {
- $client = netHttp::initClient($url,$path);
- $client->setUserAgent('Dotclear - http://www.dotclear.org/');
- $client->useGzip(false);
- $client->setPersistReferers(false);
- $client->setOutput($dest);
- $client->get($path);
- }
- catch( Exception $e)
- {
- throw new Exception(__('An error occurred while downloading the file.'));
- }
-
- unset($client);
- }
-
- $ret_code = dcModules::installPackage($dest,$core->themes);
- http::redirect('blog_theme.php?added='.$ret_code);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- $default_tab = 'add-theme';
- }
-}
-
-$theme_conf_mode = false;
-if (!empty($_REQUEST['conf']))
-{
- $theme_conf_file = path::real($core->blog->themes_path.'/'.$core->blog->settings->system->theme).'/_config.php';
- if (file_exists($theme_conf_file)) {
- $theme_conf_mode = true;
- }
-}
-
-function display_theme_details($id,$details,$current)
-{
- global $core;
-
- $screenshot = 'images/noscreenshot.png';
- if (file_exists($core->blog->themes_path.'/'.$id.'/screenshot.jpg')) {
- $screenshot = 'blog_theme.php?shot='.rawurlencode($id);
- }
-
- $radio_id = 'theme_'.html::escapeHTML($id);
- if (preg_match('#^http(s)?://#',$core->blog->settings->system->themes_url)) {
- $theme_url = http::concatURL($core->blog->settings->system->themes_url,'/'.$id);
- } else {
- $theme_url = http::concatURL($core->blog->url,$core->blog->settings->system->themes_url.'/'.$id);
- }
- $has_conf = file_exists(path::real($core->blog->themes_path.'/'.$id).'/_config.php');
- $has_css = file_exists(path::real($core->blog->themes_path.'/'.$id).'/style.css');
- $parent = $core->themes->moduleInfo($id,'parent');
- $has_parent = (boolean)$parent;
- if ($has_parent) {
- $is_parent_present = $core->themes->moduleExists($parent);
- }
-
- $res =
- ''.
- '
'.
- '
'.
- '
'.form::radio(array('theme',$radio_id),html::escapeHTML($id),$current,'','',($has_parent && !$is_parent_present)).' '.
- ''.
- html::escapeHTML($details['name']).' '.
- '
'.html::escapeHTML($details['desc']).' '.
- ''.sprintf(__('by %s'),html::escapeHTML($details['author'])).' '.
- ''.sprintf(__('version %s'),html::escapeHTML($details['version'])).' ';
- if ($has_parent) {
- if ($is_parent_present) {
- $res .= ''.sprintf(__('(built on "%s")'),html::escapeHTML($parent)).' ';
- } else {
- $res .= ''.sprintf(__('(requires "%s")'),html::escapeHTML($parent)).' ';
- }
- }
- if ($has_css) {
- $res .= ''.__('Stylesheet').' ';
- }
- $res .= '
';
- $res .=
- '
'.
- '
';
- if ($current && $has_conf) {
- $res .= '
'.__('Configure theme').'
';
- }
- if ($current) {
- # --BEHAVIOR-- adminCurrentThemeDetails
- $res .= $core->callBehavior('adminCurrentThemeDetails',$core,$id,$details);
- }
- $res .=
- '
'.
- '
';
-
- return $res;
-}
-
-dcPage::open(__('Blog appearance'),
- (!$theme_conf_mode ? dcPage::jsLoad('js/_blog_theme.js') : '').
- dcPage::jsPageTabs($default_tab).
- dcPage::jsColorPicker()
-);
-
-if (!$theme_conf_mode)
-{
- echo
- ''.html::escapeHTML($core->blog->name).' › '.__('Blog appearance').' ';
-
- if (!empty($_GET['upd'])) {
- echo ''.__('Theme has been successfully changed.').'
';
- }
-
- if (!empty($_GET['added'])) {
- echo ''.
- ($_GET['added'] == 2 ? __('Theme has been successfully upgraded') : __('Theme has been successfully installed.')).
- '
';
- }
-
- if (!empty($_GET['del'])) {
- echo ''.__('Theme has been successfully deleted.').'
';
- }
-
- if ($can_install) {
- echo
- ''.sprintf(__('You can find additional themes for your blog on %s.'),
- 'Dotaddict ').' '.
- __('To install or upgrade a theme you generally just need to upload it '.
- 'in "Install or upgrade a theme" section.').'
';
- }
-
- # Themes list
- echo '';
-
- $themes = $core->themes->getModules();
- if (isset($themes[$core->blog->settings->system->theme])) {
- echo '
'.sprintf(__('You are currently using "%s"'),$themes[$core->blog->settings->system->theme]['name']).' ';
- }
-
- echo
- '
'.
- '
';
-
- # Add a new theme
- if ($can_install)
- {
- echo
- '';
-
- if ($is_writable)
- {
- echo '
'.__('You can install themes by uploading or downloading zip files.').'
';
-
- # 'Upload theme' form
- echo
- '
';
-
- # 'Fetch theme' form
- echo
- '
';
- }
- else
- {
- echo
- '
'.
- __('To enable this function, please give write access to your themes directory.').
- '
';
- }
- echo '
';
- }
-}
-else
-{
- $theme_name = $core->themes->moduleInfo($core->blog->settings->system->theme,'name');
- $core->themes->loadModuleL10Nresources($core->blog->settings->system->theme,$_lang);
- echo
- ''.html::escapeHTML($core->blog->name).
- ' › '.__('Blog appearance').' › '.__('Theme configuration').' '.
- ''.__('back').'
';
-
- try
- {
- # Let theme configuration set their own form(s) if required
- $standalone_config = (boolean) $core->themes->moduleInfo($core->blog->settings->system->theme,'standalone_config');
-
- if (!$standalone_config)
- echo '';
-
- }
- catch (Exception $e)
- {
- echo '';
- }
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/blogs.php b/v2/dotclear/admin/blogs.php
deleted file mode 100644
index ce572d6..0000000
--- a/v2/dotclear/admin/blogs.php
+++ /dev/null
@@ -1,185 +0,0 @@
- 'blog_upddt',
-__('Blog name') => 'UPPER(blog_name)',
-__('Blog ID') => 'B.blog_id'
-);
-
-$order_combo = array(
-__('Descending') => 'desc',
-__('Ascending') => 'asc'
-);
-
-$q = !empty($_GET['q']) ? $_GET['q'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'blog_upddt';
-$order = !empty($_GET['order']) ? $_GET['order'] : 'desc';
-
-$page = !empty($_GET['page']) ? $_GET['page'] : 1;
-$nb_per_page = 30;
-
-if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
- $nb_per_page = (integer) $_GET['nb'];
-}
-
-$show_filters = false;
-
-# - Search filter
-if ($q) {
- $params['q'] = $q;
- $show_filters = true;
-}
-
-# - Sortby and order filter
-if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
- if ($order !== '' && in_array($order,$order_combo)) {
- $params['order'] = $sortby.' '.$order;
- }
-
- if ($sortby != 'blog_upddt' || $order != 'desc') {
- $show_filters = true;
- }
-}
-
-$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
-
-try {
- $counter = $core->getBlogs($params,1);
- $rs = $core->getBlogs($params);
- $nb_blog = $counter->f(0);
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-$starting_script = '';
-if (!$show_filters) {
- $starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
-dcPage::open(__('List of blogs'),$starting_script);
-
-if (!empty($_GET['del'])) {
- echo ''.__('Blog has been successfully deleted.').'
';
-}
-
-echo ''.__('List of blogs').' ';
-
-if (!$core->error->flag())
-{
- if ($core->auth->isSuperAdmin()) {
- echo ''.__('Create a new blog').'
';
- }
-
- if (!$show_filters) {
- echo ''.__('Filters').'
';
- }
-
- echo
- '';
-
- # Show blogs
- if ($nb_blog == 0)
- {
- echo ''.__('No blog').'
';
- }
- else
- {
- $pager = new pager($page,$nb_blog,$nb_per_page,10);
- $pager->var_page = 'page';
-
- echo ''.__('Page(s)').' : '.$pager->getLinks().'
';
-
- echo
- ''.
- ''.__('Blog name').' '.
- ''.__('Last update').' '.
- ''.__('Entries').' '.
- ''.__('Blog ID').' '.
- ' '.
- ''.__('Status').' '.
- ' ';
-
- while ($rs->fetch()) {
- echo blogLine($rs);
- }
-
- echo '
';
-
- echo ''.__('Page(s)').' : '.$pager->getLinks().'
';
- }
-}
-
-dcPage::close();
-
-function blogLine($rs)
-{
- global $core;
-
- $blog_id = html::escapeHTML($rs->blog_id);
- $edit_link = '';
-
- if ($GLOBALS['core']->auth->isSuperAdmin()) {
- $edit_link =
- ''.
- __('edit').' ';
- }
-
- $img_status = $rs->blog_status == 1 ? 'check-on' : 'check-off';
- $txt_status = $GLOBALS['core']->getBlogStatus($rs->blog_status);
- $img_status = sprintf(' ',$img_status,$txt_status);
- $offset = dt::getTimeOffset($core->auth->getInfo('user_tz'));
- $blog_upddt = dt::str(__('%Y-%m-%d %H:%M'),strtotime($rs->blog_upddt) + $offset);
-
- return
- ''.
- 'blog_id).'">'.
- html::escapeHTML($rs->blog_name).' '.
- ''.$blog_upddt.' '.
- ''.$core->countBlogPosts($rs->blog_id).' '.
- ''.$blog_id.' '.
- ''.$edit_link.' '.
- ''.$img_status.' '.
- ' ';
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/categories.php b/v2/dotclear/admin/categories.php
deleted file mode 100644
index 15f0301..0000000
--- a/v2/dotclear/admin/categories.php
+++ /dev/null
@@ -1,190 +0,0 @@
-blog->getCategory((integer) $_POST['del_cat']);
- if ($c->isEmpty()) {
- throw new Exception(__('This category does not exist.'));
- }
- unset($c);
- $core->blog->delCategory($_POST['del_cat']);
- http::redirect('categories.php?del=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-# Reset order
-if (!empty($_POST['reset']))
-{
- try
- {
- $core->blog->resetCategoriesOrder();
- http::redirect('categories.php?reord=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-/* Display
--------------------------------------------------------- */
-dcPage::open(__('Categories'),
- dcPage::jsToolMan()."\n".
- dcPage::jsLoad('js/_categories.js')
-);
-
-if (!empty($_GET['add'])) {
- echo ''.__('The category has been successfully created.').'
';
-}
-if (!empty($_GET['del'])) {
- echo ''.__('The category has been successfully removed.').'
';
-}
-if (!empty($_GET['reord'])) {
- echo ''.__('Categories have been successfully reordered.').'
';
-}
-if (!empty($_GET['moved'])) {
- echo ''.__('The category has been successfully moved.').'
';
-}
-
-echo ''.html::escapeHTML($core->blog->name).' › '.__('Categories').' ';
-
-$rs = $core->blog->getCategories(array('post_type'=>'post'));
-
-echo
-''.
-'
';
-if ($rs->isEmpty())
-{
- echo '
'.__('No category yet.').'
';
-}
-else
-{
- echo
- '
'.__('Categories list').' '.
- '
';
-
- $ref_level = $level = $rs->level-1;
- while ($rs->fetch())
- {
- $attr = 'id="cat'.$rs->cat_id.'"';
- if ($rs->nb_total == 0) {
- $attr .= ' class="deletable"';
- }
-
- if ($rs->level > $level) {
- echo str_repeat('
',$rs->level - $level);
- } elseif ($rs->level < $level) {
- echo str_repeat(' ',-($rs->level - $level));
- }
-
- if ($rs->level <= $level) {
- echo '
';
- }
-
- echo
- ''.html::escapeHTML($rs->cat_title).' '.
- ' ('.
- sprintf(($rs->nb_post > 1 ? __('%d entries') : __('%d entry') ),$rs->nb_post).' '.
- ', '.__('total:').' '.$rs->nb_total.')
'.
- ''.__('URL:').' '.html::escapeHTML($rs->cat_url).'
';
-
- $level = $rs->level;
- }
-
- if ($ref_level - $level < 0) {
- echo str_repeat(' ',-($ref_level - $level));
- }
- echo '
';
-}
-echo '
';
-
-echo '
'.
-
-'
';
-
-if (!$rs->isEmpty())
-{
- $deletable = array();
- $l = $rs->level;
- $full_name = array($rs->cat_title);
- while ($rs->fetch())
- {
- if ($rs->level < $l) {
- $full_name = array();
- } elseif ($rs->level == $l) {
- array_pop($full_name);
- }
- $full_name[] = html::escapeHTML($rs->cat_title);
- if ($rs->nb_post == 0) {
- $deletable[implode(' / ',$full_name)] = $rs->cat_id;
- }
- $l = $rs->level;
- }
-
- if (count($deletable) > 0)
- {
- echo
- '
';
- }
-
- echo
- '
';
-}
-echo '
';
-echo '
';
-
-dcPage::helpBlock('core_categories');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/category.php b/v2/dotclear/admin/category.php
deleted file mode 100644
index d91895a..0000000
--- a/v2/dotclear/admin/category.php
+++ /dev/null
@@ -1,260 +0,0 @@
-blog->getCategory($_REQUEST['id']);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-
- if (!$core->error->flag() && !$rs->isEmpty())
- {
- $cat_id = (integer) $rs->cat_id;
- $cat_title = $rs->cat_title;
- $cat_url = $rs->cat_url;
- $cat_desc = $rs->cat_desc;
- }
- unset($rs);
-
- # Getting hierarchy information
- $parents = $core->blog->getCategoryParents($cat_id);
- $rs = $core->blog->getCategoryParent($cat_id);
- $cat_parent = $rs->isEmpty() ? 0 : (integer) $rs->cat_id;
- unset($rs);
-
- # Allowed parents list
- $children = $core->blog->getCategories(array('post_type'=>'post','start'=>$cat_id));
- $allowed_parents = array(__('Top level')=>0);
-
- $p = array();
- while ($children->fetch()) {
- $p[$children->cat_id] = 1;
- }
-
- $rs = $core->blog->getCategories(array('post_type'=>'post'));
- while ($rs->fetch()) {
- if (!isset($p[$rs->cat_id])) {
- $allowed_parents[] = new formSelectOption(
- str_repeat(' ',$rs->level-1).($rs->level-1 == 0 ? '' : '• ').html::escapeHTML($rs->cat_title),
- $rs->cat_id
- );
- }
- }
- unset($rs);
-
- # Allowed siblings list
- $siblings = array();
- $rs = $core->blog->getCategoryFirstChildren($cat_parent);
- while ($rs->fetch()) {
- if ($rs->cat_id != $cat_id) {
- $siblings[html::escapeHTML($rs->cat_title)] = $rs->cat_id;
- }
- }
- unset($rs);
-}
-
-# Changing parent
-if ($cat_id && isset($_POST['cat_parent']))
-{
- $new_parent = (integer) $_POST['cat_parent'];
- if ($cat_parent != $new_parent)
- {
- try {
- $core->blog->setCategoryParent($cat_id,$new_parent);
- http::redirect('categories.php?moved=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-}
-
-# Changing sibling
-if ($cat_id && isset($_POST['cat_sibling']))
-{
- try {
- $core->blog->setCategoryPosition($cat_id,(integer) $_POST['cat_sibling'],$_POST['cat_move']);
- http::redirect('categories.php?moved=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Create or update a category
-if (isset($_POST['cat_title']))
-{
- $cur = $core->con->openCursor($core->prefix.'category');
-
- $cur->cat_title = $cat_title = $_POST['cat_title'];
-
- if (isset($_POST['cat_desc'])) {
- $cur->cat_desc = $cat_desc = $_POST['cat_desc'];
- }
-
- if (isset($_POST['cat_url'])) {
- $cur->cat_url = $cat_url = $_POST['cat_url'];
- } else {
- $cur->cat_url = $cat_url;
- }
-
- try
- {
- # Update category
- if ($cat_id)
- {
- # --BEHAVIOR-- adminBeforeCategoryUpdate
- $core->callBehavior('adminBeforeCategoryUpdate',$cur,$cat_id);
-
- $core->blog->updCategory($_POST['id'],$cur);
-
- # --BEHAVIOR-- adminAfterCategoryUpdate
- $core->callBehavior('adminAfterCategoryUpdate',$cur,$cat_id);
-
- http::redirect('category.php?id='.$_POST['id'].'&upd=1');
- }
- # Create category
- else
- {
- # --BEHAVIOR-- adminBeforeCategoryCreate
- $core->callBehavior('adminBeforeCategoryCreate',$cur);
-
- $id = $core->blog->addCategory($cur,(integer) $_POST['new_cat_parent']);
-
- # --BEHAVIOR-- adminAfterCategoryCreate
- $core->callBehavior('adminAfterCategoryCreate',$cur,$id);
-
- http::redirect('categories.php?add=1');
- }
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-
-$title = $cat_id ? html::escapeHTML($cat_title) : __('New category');
-
-dcPage::open($title,
- dcPage::jsConfirmClose('category-form').
- dcPage::jsToolBar().
- dcPage::jsLoad('js/_category.js')
-);
-
-if (!empty($_GET['upd'])) {
- echo ''.__('Category has been successfully updated.').'
';
-}
-
-echo
-''.html::escapeHTML($core->blog->name).' › '.
-__('Categories').' › ';
-
-if ($cat_id)
-{
- while($parents->fetch()) {
- echo ''.html::escapeHTML($parents->cat_title).' ';
- echo " › ";
- }
-}
-
-echo ''.$title.' ';
-
-echo
-'';
-
-if ($cat_id)
-{
- echo
- ''.__('Move this category').' '.
- ''.
- '
';
-
- if (count($siblings) > 0) {
- echo
- '
';
- }
-
- echo '
';
-}
-
-dcPage::helpBlock('core_categories');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/comment.php b/v2/dotclear/admin/comment.php
deleted file mode 100644
index 0ef8cec..0000000
--- a/v2/dotclear/admin/comment.php
+++ /dev/null
@@ -1,236 +0,0 @@
-blog->getAllCommentStatus() as $k => $v) {
- $status_combo[$v] = (string) $k;
-}
-
-# Adding comment
-if (!empty($_POST['add']) && !empty($_POST['post_id']))
-{
- try
- {
- $rs = $core->blog->getPosts(array('post_id' => $_POST['post_id'], 'post_type' => ''));
-
- if ($rs->isEmpty()) {
- throw new Exception(__('Entry does not exist.'));
- }
-
- $cur = $core->con->openCursor($core->prefix.'comment');
-
- $cur->comment_author = $_POST['comment_author'];
- $cur->comment_email = html::clean($_POST['comment_email']);
- $cur->comment_site = html::clean($_POST['comment_site']);
- $cur->comment_content = $core->HTMLfilter($_POST['comment_content']);
- $cur->post_id = (integer) $_POST['post_id'];
-
- # --BEHAVIOR-- adminBeforeCommentCreate
- $core->callBehavior('adminBeforeCommentCreate',$cur);
-
- $comment_id = $core->blog->addComment($cur);
-
- # --BEHAVIOR-- adminAfterCommentCreate
- $core->callBehavior('adminAfterCommentCreate',$cur,$comment_id);
-
- http::redirect($core->getPostAdminURL($rs->post_type,$rs->post_id,false).'&co=1&creaco=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-if (!empty($_REQUEST['id']))
-{
- $params['comment_id'] = $_REQUEST['id'];
-
- try {
- $rs = $core->blog->getComments($params);
- if (!$rs->isEmpty()) {
- $comment_id = $rs->comment_id;
- $post_id = $rs->post_id;
- $post_type = $rs->post_type;
- $post_title = $rs->post_title;
- $comment_dt = $rs->comment_dt;
- $comment_author = $rs->comment_author;
- $comment_email = $rs->comment_email;
- $comment_site = $rs->comment_site;
- $comment_content = $rs->comment_content;
- $comment_ip = $rs->comment_ip;
- $comment_status = $rs->comment_status;
- $comment_trackback = (boolean) $rs->comment_trackback;
- $comment_spam_status = $rs->comment_spam_status;
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-if (!$comment_id && !$core->error->flag()) {
- $core->error->add(__('No comment'));
-}
-
-if (!$core->error->flag() && isset($rs))
-{
- $can_edit = $can_delete = $can_publish = $core->auth->check('contentadmin',$core->blog->id);
-
- if (!$core->auth->check('contentadmin',$core->blog->id) && $core->auth->userID() == $rs->user_id) {
- $can_edit = true;
- if ($core->auth->check('delete',$core->blog->id)) {
- $can_delete = true;
- }
- if ($core->auth->check('publish',$core->blog->id)) {
- $can_publish = true;
- }
- }
-
- # update comment
- if (!empty($_POST['update']) && $can_edit)
- {
- $cur = $core->con->openCursor($core->prefix.'comment');
-
- $cur->comment_author = $_POST['comment_author'];
- $cur->comment_email = html::clean($_POST['comment_email']);
- $cur->comment_site = html::clean($_POST['comment_site']);
- $cur->comment_content = $core->HTMLfilter($_POST['comment_content']);
-
- if (isset($_POST['comment_status'])) {
- $cur->comment_status = (integer) $_POST['comment_status'];
- }
-
- try
- {
- # --BEHAVIOR-- adminBeforeCommentUpdate
- $core->callBehavior('adminBeforeCommentUpdate',$cur,$comment_id);
-
- $core->blog->updComment($comment_id,$cur);
-
- # --BEHAVIOR-- adminAfterCommentUpdate
- $core->callBehavior('adminAfterCommentUpdate',$cur,$comment_id);
-
- http::redirect('comment.php?id='.$comment_id.'&upd=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
-
- if (!empty($_POST['delete']) && $can_delete)
- {
- try {
- # --BEHAVIOR-- adminBeforeCommentDelete
- $core->callBehavior('adminBeforeCommentDelete',$comment_id);
-
- $core->blog->delComment($comment_id);
- http::redirect($core->getPostAdminURL($rs->post_type,$rs->post_id).'&co=1#c'.$comment_id,false);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-
- if (!$can_edit) {
- $core->error->add(__("You can't edit this comment."));
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open(__('Edit comment'),
- dcPage::jsConfirmClose('comment-form').
- dcPage::jsToolBar().
- dcPage::jsLoad('js/_comment.js').
- # --BEHAVIOR-- adminCommentHeaders
- $core->callBehavior('adminCommentHeaders')
-);
-
-if ($comment_id)
-{
- if (!empty($_GET['upd'])) {
- echo ''.__('Comment has been successfully updated.').'
';
- }
-
- $comment_mailto = '';
- if ($comment_email)
- {
- $comment_mailto = 'getPostURL()))
- .'">'.__('Send an e-mail').' ';
- }
-
- echo ''.html::escapeHTML($core->blog->name).' › '.
- $post_title.' › '.__('Edit comment').' ';
-
- echo
- '';
-}
-
-dcPage::helpBlock('core_comments');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/comments.php b/v2/dotclear/admin/comments.php
deleted file mode 100644
index 1d1d303..0000000
--- a/v2/dotclear/admin/comments.php
+++ /dev/null
@@ -1,251 +0,0 @@
- ''
-);
-foreach ($core->blog->getAllCommentStatus() as $k => $v) {
- $status_combo[$v] = (string) $k;
-}
-
-$type_combo = array(
-'-' => '',
-__('comment') => 'co',
-__('trackback') => 'tb'
-);
-
-$sortby_combo = array(
-__('Date') => 'comment_dt',
-__('Entry title') => 'post_title',
-__('Author') => 'comment_author',
-__('Status') => 'comment_status'
-);
-
-$order_combo = array(
-__('Descending') => 'desc',
-__('Ascending') => 'asc'
-);
-
-
-/* Get comments
--------------------------------------------------------- */
-$author = isset($_GET['author']) ? $_GET['author'] : '';
-$status = isset($_GET['status']) ? $_GET['status'] : '';
-$type = !empty($_GET['type']) ? $_GET['type'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'comment_dt';
-$order = !empty($_GET['order']) ? $_GET['order'] : 'desc';
-$ip = !empty($_GET['ip']) ? $_GET['ip'] : '';
-
-$with_spam = $author || $status || $type || $sortby != 'comment_dt' || $order != 'desc' || $ip;
-
-$show_filters = false;
-
-$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
-$nb_per_page = 30;
-
-if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
- if ($nb_per_page != $_GET['nb']) {
- $show_filters = true;
- }
- $nb_per_page = (integer) $_GET['nb'];
-}
-
-$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
-$params['no_content'] = true;
-
-# Author filter
-if ($author !== '') {
- $params['q_author'] = $author;
- $show_filters = true;
-} else {
- $author='';
-}
-
-# - Type filter
-if ($type == 'tb' || $type == 'co') {
- $params['comment_trackback'] = ($type == 'tb');
- $show_filters = true;
-} else {
- $type='';
-}
-
-# - Status filter
-if ($status !== '' && in_array($status,$status_combo)) {
- $params['comment_status'] = $status;
- $show_filters = true;
-} elseif (!$with_spam) {
- $params['comment_status_not'] = -2;
- $status='';
-} else {
- $status='';
-}
-
-# - IP filter
-if ($ip) {
- $params['comment_ip'] = $ip;
- $show_filters = true;
-}
-
-# Sortby and order filter
-if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
- if ($order !== '' && in_array($order,$order_combo)) {
- $params['order'] = $sortby.' '.$order;
- } else {
- $order = 'desc';
- }
-
- if ($sortby != 'comment_dt' || $order != 'desc') {
- $show_filters = true;
- }
-} else {
- $sortby = 'comment_dt';
- $order = 'desc';
-}
-
-# Actions combo box
-$combo_action = array();
-$default = '';
-if ($core->auth->check('publish,contentadmin',$core->blog->id))
-{
- $combo_action[__('publish')] = 'publish';
- $combo_action[__('unpublish')] = 'unpublish';
- $combo_action[__('mark as pending')] = 'pending';
- $combo_action[__('mark as junk')] = 'junk';
-}
-if ($core->auth->check('delete,contentadmin',$core->blog->id))
-{
- $combo_action[__('Delete')] = 'delete';
- if ($status == -2) {
- $default = 'delete';
- }
-}
-
-# --BEHAVIOR-- adminCommentsActionsCombo
-$core->callBehavior('adminCommentsActionsCombo',array(&$combo_action));
-
-/* Get comments
--------------------------------------------------------- */
-try {
- $comments = $core->blog->getComments($params);
- $counter = $core->blog->getComments($params,true);
- $comment_list = new adminCommentList($core,$comments,$counter->f(0));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-$starting_script = dcPage::jsLoad('js/_comments.js');
-if (!$show_filters) {
- $starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
-# --BEHAVIOR-- adminCommentsHeaders
-$starting_script .= $core->callBehavior('adminCommentsHeaders');
-
-dcPage::open(__('Comments and trackbacks'),$starting_script);
-
-echo ''.html::escapeHTML($core->blog->name).' › '.__('Comments and trackbacks').' ';
-
-if (!$core->error->flag())
-{
- # Filters
- if (!$show_filters) {
- echo ''.
- __('Filters').'
';
- }
-
- echo
- '';
-
- if (!$with_spam) {
- $spam_count = $core->blog->getComments(array('comment_status'=>-2),true)->f(0);
- if ($spam_count == 1) {
- echo ''.sprintf(__('You have one spam comments.'),''.$spam_count.' ').' '.
- ''.__('Show it.').'
';
- } elseif ($spam_count > 1) {
- echo ''.sprintf(__('You have %s spam comments.'),''.$spam_count.' ').' '.
- ''.__('Show them.').'
';
- }
- }
-
- # Show comments
- $comment_list->display($page,$nb_per_page,
- ''
- );
-}
-
-dcPage::helpBlock('core_comments');
-dcPage::close();
-?>
diff --git a/v2/dotclear/admin/comments_actions.php b/v2/dotclear/admin/comments_actions.php
deleted file mode 100644
index c90edb3..0000000
--- a/v2/dotclear/admin/comments_actions.php
+++ /dev/null
@@ -1,136 +0,0 @@
- $v) {
- $comments[$k] = (integer) $v;
- }
-
- $params['sql'] = 'AND C.comment_id IN('.implode(',',$comments).') ';
-
- if (!isset($_POST['full_content']) || empty($_POST['full_content'])) {
- $params['no_content'] = true;
- }
-
- $co = $core->blog->getComments($params);
-
- # --BEHAVIOR-- adminCommentsActions
- $core->callBehavior('adminCommentsActions',$core,$co,$action,$redir);
-
- if (preg_match('/^(publish|unpublish|pending|junk)$/',$action))
- {
- switch ($action) {
- case 'unpublish' : $status = 0; break;
- case 'pending' : $status = -1; break;
- case 'junk' : $status = -2; break;
- default : $status = 1; break;
- }
-
- while ($co->fetch())
- {
- try {
- $core->blog->updCommentStatus($co->comment_id,$status);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-
- if (!$core->error->flag()) {
- http::redirect($redir);
- }
- }
- elseif ($action == 'delete')
- {
- while ($co->fetch())
- {
- try {
- # --BEHAVIOR-- adminBeforeCommentDelete
- $core->callBehavior('adminBeforeCommentDelete',$co->comment_id);
-
- $core->blog->delComment($co->comment_id);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-
- if (!$core->error->flag()) {
- http::redirect($redir);
- }
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open(__('Comments'));
-
-if (!isset($action)) {
- dcPage::close();
- exit;
-}
-
-$hidden_fields = '';
-while ($co->fetch()) {
- $hidden_fields .= form::hidden(array('comments[]'),$co->comment_id);
-}
-
-if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false)
-{
- $hidden_fields .= form::hidden(array('redir'),html::escapeURL($_POST['redir']));
-}
-else
-{
- $hidden_fields .=
- form::hidden(array('type'),$_POST['type']).
- form::hidden(array('author'),$_POST['author']).
- form::hidden(array('status'),$_POST['status']).
- form::hidden(array('sortby'),$_POST['sortby']).
- form::hidden(array('ip'),$_POST['ip']).
- form::hidden(array('order'),$_POST['order']).
- form::hidden(array('page'),$_POST['page']).
- form::hidden(array('nb'),$_POST['nb']);
-}
-
-# --BEHAVIOR-- adminCommentsActionsContent
-$core->callBehavior('adminCommentsActionsContent',$core,$action,$hidden_fields);
-
-echo ''.__('back').'
';
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/dispatcher.php b/v2/dotclear/admin/dispatcher.php
deleted file mode 100644
index 9c923ab..0000000
--- a/v2/dotclear/admin/dispatcher.php
+++ /dev/null
@@ -1,34 +0,0 @@
-What the hell are you doing here?
';
-exit;
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/images/add.png b/v2/dotclear/admin/images/add.png
deleted file mode 100644
index e892690..0000000
Binary files a/v2/dotclear/admin/images/add.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/admin.png b/v2/dotclear/admin/images/admin.png
deleted file mode 100644
index 074b406..0000000
Binary files a/v2/dotclear/admin/images/admin.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/attach.png b/v2/dotclear/admin/images/attach.png
deleted file mode 100644
index f87bc77..0000000
Binary files a/v2/dotclear/admin/images/attach.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/check-off.png b/v2/dotclear/admin/images/check-off.png
deleted file mode 100644
index fc5f661..0000000
Binary files a/v2/dotclear/admin/images/check-off.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/check-on.png b/v2/dotclear/admin/images/check-on.png
deleted file mode 100644
index 00a9a7a..0000000
Binary files a/v2/dotclear/admin/images/check-on.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/check-wrn.png b/v2/dotclear/admin/images/check-wrn.png
deleted file mode 100644
index fa327f0..0000000
Binary files a/v2/dotclear/admin/images/check-wrn.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/date-picker.png b/v2/dotclear/admin/images/date-picker.png
deleted file mode 100644
index e35e932..0000000
Binary files a/v2/dotclear/admin/images/date-picker.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/dotclear_pw.png b/v2/dotclear/admin/images/dotclear_pw.png
deleted file mode 100644
index 593a913..0000000
Binary files a/v2/dotclear/admin/images/dotclear_pw.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/edit-mini.png b/v2/dotclear/admin/images/edit-mini.png
deleted file mode 100644
index 890bae6..0000000
Binary files a/v2/dotclear/admin/images/edit-mini.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/favicon.png b/v2/dotclear/admin/images/favicon.png
deleted file mode 100644
index 01fa2e2..0000000
Binary files a/v2/dotclear/admin/images/favicon.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/help.png b/v2/dotclear/admin/images/help.png
deleted file mode 100644
index 57c87c2..0000000
Binary files a/v2/dotclear/admin/images/help.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/junk.png b/v2/dotclear/admin/images/junk.png
deleted file mode 100644
index 7f4b667..0000000
Binary files a/v2/dotclear/admin/images/junk.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/locker.png b/v2/dotclear/admin/images/locker.png
deleted file mode 100644
index cec3260..0000000
Binary files a/v2/dotclear/admin/images/locker.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/logout.png b/v2/dotclear/admin/images/logout.png
deleted file mode 100644
index ce75f91..0000000
Binary files a/v2/dotclear/admin/images/logout.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/audio.png b/v2/dotclear/admin/images/media/audio.png
deleted file mode 100644
index fec7e22..0000000
Binary files a/v2/dotclear/admin/images/media/audio.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/blank.png b/v2/dotclear/admin/images/media/blank.png
deleted file mode 100644
index 0f0c2b9..0000000
Binary files a/v2/dotclear/admin/images/media/blank.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/document.png b/v2/dotclear/admin/images/media/document.png
deleted file mode 100644
index 5af28a8..0000000
Binary files a/v2/dotclear/admin/images/media/document.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/executable.png b/v2/dotclear/admin/images/media/executable.png
deleted file mode 100644
index bb830b8..0000000
Binary files a/v2/dotclear/admin/images/media/executable.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/folder.png b/v2/dotclear/admin/images/media/folder.png
deleted file mode 100644
index 055a9bb..0000000
Binary files a/v2/dotclear/admin/images/media/folder.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/html.png b/v2/dotclear/admin/images/media/html.png
deleted file mode 100644
index eed6e04..0000000
Binary files a/v2/dotclear/admin/images/media/html.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/image.png b/v2/dotclear/admin/images/media/image.png
deleted file mode 100644
index 811e0ed..0000000
Binary files a/v2/dotclear/admin/images/media/image.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/package.png b/v2/dotclear/admin/images/media/package.png
deleted file mode 100644
index 82f5cdf..0000000
Binary files a/v2/dotclear/admin/images/media/package.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/presentation.png b/v2/dotclear/admin/images/media/presentation.png
deleted file mode 100644
index 282d350..0000000
Binary files a/v2/dotclear/admin/images/media/presentation.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/spreadsheet.png b/v2/dotclear/admin/images/media/spreadsheet.png
deleted file mode 100644
index 8427509..0000000
Binary files a/v2/dotclear/admin/images/media/spreadsheet.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/text.png b/v2/dotclear/admin/images/media/text.png
deleted file mode 100644
index 1e91806..0000000
Binary files a/v2/dotclear/admin/images/media/text.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/media/video.png b/v2/dotclear/admin/images/media/video.png
deleted file mode 100644
index a0ed12c..0000000
Binary files a/v2/dotclear/admin/images/media/video.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/add_to_favorites.png b/v2/dotclear/admin/images/menu/add_to_favorites.png
deleted file mode 100644
index 43c807e..0000000
Binary files a/v2/dotclear/admin/images/menu/add_to_favorites.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/blog-pref-b.png b/v2/dotclear/admin/images/menu/blog-pref-b.png
deleted file mode 100644
index 47ffc03..0000000
Binary files a/v2/dotclear/admin/images/menu/blog-pref-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/blog-pref.png b/v2/dotclear/admin/images/menu/blog-pref.png
deleted file mode 100644
index 6fa527f..0000000
Binary files a/v2/dotclear/admin/images/menu/blog-pref.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/blog-theme-b.png b/v2/dotclear/admin/images/menu/blog-theme-b.png
deleted file mode 100644
index ecbc7c4..0000000
Binary files a/v2/dotclear/admin/images/menu/blog-theme-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/blogs-b.png b/v2/dotclear/admin/images/menu/blogs-b.png
deleted file mode 100644
index 33904fc..0000000
Binary files a/v2/dotclear/admin/images/menu/blogs-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/blogs.png b/v2/dotclear/admin/images/menu/blogs.png
deleted file mode 100644
index ab89d06..0000000
Binary files a/v2/dotclear/admin/images/menu/blogs.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/categories-b.png b/v2/dotclear/admin/images/menu/categories-b.png
deleted file mode 100644
index d91c5dd..0000000
Binary files a/v2/dotclear/admin/images/menu/categories-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/categories.png b/v2/dotclear/admin/images/menu/categories.png
deleted file mode 100644
index 0587a86..0000000
Binary files a/v2/dotclear/admin/images/menu/categories.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/comments-b.png b/v2/dotclear/admin/images/menu/comments-b.png
deleted file mode 100644
index 2defa40..0000000
Binary files a/v2/dotclear/admin/images/menu/comments-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/comments.png b/v2/dotclear/admin/images/menu/comments.png
deleted file mode 100644
index 75b1835..0000000
Binary files a/v2/dotclear/admin/images/menu/comments.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/dashboard.png b/v2/dotclear/admin/images/menu/dashboard.png
deleted file mode 100644
index 95a9ac4..0000000
Binary files a/v2/dotclear/admin/images/menu/dashboard.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/edit-b.png b/v2/dotclear/admin/images/menu/edit-b.png
deleted file mode 100644
index c386f2a..0000000
Binary files a/v2/dotclear/admin/images/menu/edit-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/edit.png b/v2/dotclear/admin/images/menu/edit.png
deleted file mode 100644
index 516e8ba..0000000
Binary files a/v2/dotclear/admin/images/menu/edit.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/entries-b.png b/v2/dotclear/admin/images/menu/entries-b.png
deleted file mode 100644
index b87638b..0000000
Binary files a/v2/dotclear/admin/images/menu/entries-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/entries.png b/v2/dotclear/admin/images/menu/entries.png
deleted file mode 100644
index 2f00706..0000000
Binary files a/v2/dotclear/admin/images/menu/entries.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/favorite-b.png b/v2/dotclear/admin/images/menu/favorite-b.png
deleted file mode 100644
index a2dca4c..0000000
Binary files a/v2/dotclear/admin/images/menu/favorite-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/favorite.png b/v2/dotclear/admin/images/menu/favorite.png
deleted file mode 100644
index 0c98780..0000000
Binary files a/v2/dotclear/admin/images/menu/favorite.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/langs-b.png b/v2/dotclear/admin/images/menu/langs-b.png
deleted file mode 100644
index 6f476c6..0000000
Binary files a/v2/dotclear/admin/images/menu/langs-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/langs.png b/v2/dotclear/admin/images/menu/langs.png
deleted file mode 100644
index 67a4e99..0000000
Binary files a/v2/dotclear/admin/images/menu/langs.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/media-b.png b/v2/dotclear/admin/images/menu/media-b.png
deleted file mode 100644
index b96dbb5..0000000
Binary files a/v2/dotclear/admin/images/menu/media-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/media.png b/v2/dotclear/admin/images/menu/media.png
deleted file mode 100644
index f4de5e3..0000000
Binary files a/v2/dotclear/admin/images/menu/media.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/plugins-b.png b/v2/dotclear/admin/images/menu/plugins-b.png
deleted file mode 100644
index c3b5926..0000000
Binary files a/v2/dotclear/admin/images/menu/plugins-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/plugins.png b/v2/dotclear/admin/images/menu/plugins.png
deleted file mode 100644
index 39995bb..0000000
Binary files a/v2/dotclear/admin/images/menu/plugins.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/search-b.png b/v2/dotclear/admin/images/menu/search-b.png
deleted file mode 100644
index 6cd92c5..0000000
Binary files a/v2/dotclear/admin/images/menu/search-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/search.png b/v2/dotclear/admin/images/menu/search.png
deleted file mode 100644
index bd89177..0000000
Binary files a/v2/dotclear/admin/images/menu/search.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/themes.png b/v2/dotclear/admin/images/menu/themes.png
deleted file mode 100644
index 9af61c3..0000000
Binary files a/v2/dotclear/admin/images/menu/themes.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/update.png b/v2/dotclear/admin/images/menu/update.png
deleted file mode 100644
index 5ea2c56..0000000
Binary files a/v2/dotclear/admin/images/menu/update.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/user-pref-b.png b/v2/dotclear/admin/images/menu/user-pref-b.png
deleted file mode 100644
index b2facf9..0000000
Binary files a/v2/dotclear/admin/images/menu/user-pref-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/user-pref.png b/v2/dotclear/admin/images/menu/user-pref.png
deleted file mode 100644
index b62fb69..0000000
Binary files a/v2/dotclear/admin/images/menu/user-pref.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/users-b.png b/v2/dotclear/admin/images/menu/users-b.png
deleted file mode 100644
index e39152e..0000000
Binary files a/v2/dotclear/admin/images/menu/users-b.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu/users.png b/v2/dotclear/admin/images/menu/users.png
deleted file mode 100644
index 81531fd..0000000
Binary files a/v2/dotclear/admin/images/menu/users.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu_off.png b/v2/dotclear/admin/images/menu_off.png
deleted file mode 100644
index 7bb6523..0000000
Binary files a/v2/dotclear/admin/images/menu_off.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/menu_on.png b/v2/dotclear/admin/images/menu_on.png
deleted file mode 100644
index 9b3ccdf..0000000
Binary files a/v2/dotclear/admin/images/menu_on.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/minus.png b/v2/dotclear/admin/images/minus.png
deleted file mode 100644
index 5baa0f3..0000000
Binary files a/v2/dotclear/admin/images/minus.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/noscreenshot.png b/v2/dotclear/admin/images/noscreenshot.png
deleted file mode 100644
index e9ba66d..0000000
Binary files a/v2/dotclear/admin/images/noscreenshot.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/outgoing-blue.png b/v2/dotclear/admin/images/outgoing-blue.png
deleted file mode 100644
index d3a3c93..0000000
Binary files a/v2/dotclear/admin/images/outgoing-blue.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/outgoing.png b/v2/dotclear/admin/images/outgoing.png
deleted file mode 100644
index 8a36d2f..0000000
Binary files a/v2/dotclear/admin/images/outgoing.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/picker.png b/v2/dotclear/admin/images/picker.png
deleted file mode 100644
index d70e6b2..0000000
Binary files a/v2/dotclear/admin/images/picker.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/plus.png b/v2/dotclear/admin/images/plus.png
deleted file mode 100644
index 77229ad..0000000
Binary files a/v2/dotclear/admin/images/plus.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/scheduled.png b/v2/dotclear/admin/images/scheduled.png
deleted file mode 100644
index f6e2e9c..0000000
Binary files a/v2/dotclear/admin/images/scheduled.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/selected.png b/v2/dotclear/admin/images/selected.png
deleted file mode 100644
index 373a85c..0000000
Binary files a/v2/dotclear/admin/images/selected.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/superadmin.png b/v2/dotclear/admin/images/superadmin.png
deleted file mode 100644
index a0d9bbf..0000000
Binary files a/v2/dotclear/admin/images/superadmin.png and /dev/null differ
diff --git a/v2/dotclear/admin/images/trash.png b/v2/dotclear/admin/images/trash.png
deleted file mode 100644
index 3991899..0000000
Binary files a/v2/dotclear/admin/images/trash.png and /dev/null differ
diff --git a/v2/dotclear/admin/index.php b/v2/dotclear/admin/index.php
deleted file mode 100644
index 3693e9c..0000000
--- a/v2/dotclear/admin/index.php
+++ /dev/null
@@ -1,360 +0,0 @@
-setUserDefaultBlog($core->auth->userID(),$core->blog->id);
- http::redirect('index.php');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-dcPage::check('usage,contentadmin');
-
-# Logout
-if (!empty($_GET['logout'])) {
- $core->session->destroy();
- if (isset($_COOKIE['dc_admin'])) {
- unset($_COOKIE['dc_admin']);
- setcookie('dc_admin',false,-600,'','',DC_ADMIN_SSL);
- }
- http::redirect('auth.php');
- exit;
-}
-
-# Plugin install
-$plugins_install = $core->plugins->installModules();
-
-# Check dashboard module prefs
-$ws = $core->auth->user_prefs->addWorkspace('dashboard');
-if (!$core->auth->user_prefs->dashboard->prefExists('doclinks')) {
- if (!$core->auth->user_prefs->dashboard->prefExists('doclinks',true)) {
- $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean','',null,true);
- }
- $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean');
-}
-if (!$core->auth->user_prefs->dashboard->prefExists('dcnews')) {
- if (!$core->auth->user_prefs->dashboard->prefExists('dcnews',true)) {
- $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true);
- }
- $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean');
-}
-if (!$core->auth->user_prefs->dashboard->prefExists('quickentry')) {
- if (!$core->auth->user_prefs->dashboard->prefExists('quickentry',true)) {
- $core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
- }
- $core->auth->user_prefs->dashboard->put('quickentry',true,'boolean');
-}
-
-# Dashboard icons
-$__dashboard_icons = new ArrayObject();
-
-# Dashboard favorites
-$post_count = $core->blog->getPosts(array(),true)->f(0);
-$str_entries = ($post_count > 1) ? __('%d entries') : __('%d entry');
-
-$comment_count = $core->blog->getComments(array(),true)->f(0);
-$str_comments = ($comment_count > 1) ? __('%d comments') : __('%d comment');
-
-$ws = $core->auth->user_prefs->addWorkspace('favorites');
-$count = 0;
-foreach ($ws->dumpPrefs() as $k => $v) {
- // User favorites only
- if (!$v['global']) {
- $fav = unserialize($v['value']);
- if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
- $count++;
- $title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) :
- ($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
- $__dashboard_icons[$fav['name']] = new ArrayObject(array(__($title),$fav['url'],$fav['large-icon']));
-
- # Let plugins set their own title for favorite on dashboard
- $core->callBehavior('adminDashboardFavsIcon',$core,$fav['name'],$__dashboard_icons[$fav['name']]);
- }
- }
-}
-if (!$count) {
- // Global favorites if any
- foreach ($ws->dumpPrefs() as $k => $v) {
- $fav = unserialize($v['value']);
- if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
- $count++;
- $title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) :
- ($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
- $__dashboard_icons[$fav['name']] = new ArrayObject(array(__($title),$fav['url'],$fav['large-icon']));
-
- # Let plugins set their own title for favorite on dashboard
- $core->callBehavior('adminDashboardFavsIcon',$core,$fav['name'],$__dashboard_icons[$fav['name']]);
- }
- }
-}
-if (!$count) {
- // No user or global favorites, add "user pref" and "new entry" fav
- if ($core->auth->check('usage,contentadmin',$core->blog->id)) {
- $__dashboard_icons['new_post'] = new ArrayObject(array(__('New entry'),'post.php','images/menu/edit-b.png'));
- }
- $__dashboard_icons['prefs'] = new ArrayObject(array(__('My preferences'),'preferences.php','images/menu/user-pref-b.png'));
-}
-
-# Latest news for dashboard
-$__dashboard_items = new ArrayObject(array(new ArrayObject,new ArrayObject));
-
-# Documentation links
-$dashboardItem = 0;
-if ($core->auth->user_prefs->dashboard->doclinks) {
- if (!empty($__resources['doc']))
- {
- $doc_links = ''.__('Documentation and support').' ';
-
- foreach ($__resources['doc'] as $k => $v) {
- $doc_links .= ''.$k.' ';
- }
-
- $doc_links .= ' ';
- $__dashboard_items[$dashboardItem][] = $doc_links;
- $dashboardItem++;
- }
-}
-
-if ($core->auth->user_prefs->dashboard->dcnews) {
- try
- {
- if (empty($__resources['rss_news'])) {
- throw new Exception();
- }
-
- $feed_reader = new feedReader;
- $feed_reader->setCacheDir(DC_TPL_CACHE);
- $feed_reader->setTimeout(2);
- $feed_reader->setUserAgent('Dotclear - http://www.dotclear.org/');
- $feed = $feed_reader->parse($__resources['rss_news']);
- if ($feed)
- {
- $latest_news = ''.__('Latest news').' ';
- $i = 1;
- foreach ($feed->items as $item)
- {
- $dt = isset($item->link) ? ''.$item->title.' ' : $item->title;
-
- if ($i < 3) {
- $latest_news .=
- ''.$dt.' '.
- ''.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').' : '.
- ''.text::cutString(html::clean($item->content),120).'...
';
- } else {
- $latest_news .=
- ''.$dt.' '.
- ''.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').' ';
- }
- $i++;
- if ($i > 3) { break; }
- }
- $latest_news .= ' ';
- $__dashboard_items[$dashboardItem][] = $latest_news;
- $dashboardItem++;
- }
- }
- catch (Exception $e) {}
-}
-
-$core->callBehavior('adminDashboardItems', $core, $__dashboard_items);
-
-# Dashboard content
-$dashboardContents = '';
-$__dashboard_contents = new ArrayObject(array(new ArrayObject,new ArrayObject));
-$core->callBehavior('adminDashboardContents', $core, $__dashboard_contents);
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open(__('Dashboard'),
- dcPage::jsToolBar().
- dcPage::jsLoad('js/_index.js').
- # --BEHAVIOR-- adminDashboardHeaders
- $core->callBehavior('adminDashboardHeaders')
-);
-
-echo ''.html::escapeHTML($core->blog->name).' › '.__('Dashboard').' ';
-
-if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->blog_count > 1) {
- echo
- ''.__('Make this blog my default blog').'
';
-}
-
-if ($core->blog->status == 0) {
- echo ''.__('This blog is offline').'
';
-} elseif ($core->blog->status == -1) {
- echo ''.__('This blog is removed').'
';
-}
-
-if (!defined('DC_ADMIN_URL') || !DC_ADMIN_URL) {
- echo
- ''.
- 'DC_ADMIN_URL '.__('is not defined, you should edit your configuration file.').
- '
';
-}
-
-if (!defined('DC_ADMIN_MAILFROM') || !DC_ADMIN_MAILFROM) {
- echo
- ''.
- 'DC_ADMIN_MAILFROM '.__('is not defined, you should edit your configuration file.').
- '
';
-}
-
-# Plugins install messages
-if (!empty($plugins_install['success']))
-{
- echo ''.__('Following plugins have been installed:').'
';
- foreach ($plugins_install['success'] as $k => $v) {
- echo ''.$k.' ';
- }
- echo ' ';
-}
-if (!empty($plugins_install['failure']))
-{
- echo ''.__('Following plugins have not been installed:').'
';
- foreach ($plugins_install['failure'] as $k => $v) {
- echo ''.$k.' ('.$v.') ';
- }
- echo ' ';
-}
-
-# Dashboard columns (processed first, as we need to know the result before displaying the icons.)
-$dashboardItems = '';
-
-# Dotclear updates notifications
-if ($core->auth->isSuperAdmin() && is_readable(DC_DIGESTS))
-{
- $updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions');
- $new_v = $updater->check(DC_VERSION);
- $version_info = $new_v ? $updater->getInfoURL() : '';
-
- if ($updater->getNotify() && $new_v) {
- $dashboardItems .=
- ''.sprintf(__('Dotclear %s is available!'),$new_v).'
'.
- '
';
- }
-}
-
-# Errors modules notifications
-if ($core->auth->isSuperAdmin())
-{
- $list = array();
- foreach ($core->plugins->getErrors() as $k => $error) {
- $list[] = ''.$error.' ';
- }
-
- if (count($list) > 0) {
- $dashboardItems .=
- ''.__('Some plugins are installed twice:').'
'.
- '
';
- }
-
-}
-
-foreach ($__dashboard_items as $i)
-{
- if ($i->count() > 0)
- {
- $dashboardItems .= '';
- foreach ($i as $v) {
- $dashboardItems .= $v;
- }
- $dashboardItems .= '
';
- }
-}
-
-# Dashboard icons
-echo '';
-foreach ($__dashboard_icons as $i)
-{
- echo
- '
'.
- ''.$i[0].'
';
-}
-echo '
';
-
-if ($core->auth->user_prefs->dashboard->quickentry) {
- if ($core->auth->check('usage,contentadmin',$core->blog->id))
- {
- $categories_combo = array(' ' => '');
- try {
- $categories = $core->blog->getCategories(array('post_type'=>'post'));
- while ($categories->fetch()) {
- $categories_combo[] = new formSelectOption(
- str_repeat(' ',$categories->level-1).
- ($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title),
- $categories->cat_id
- );
- }
- } catch (Exception $e) { }
-
- echo
- '
'.
- '
'.__('Quick entry').' '.
- '
'.
- '
';
- }
-}
-
-foreach ($__dashboard_contents as $i)
-{
- if ($i->count() > 0)
- {
- $dashboardContents .= '
';
- foreach ($i as $v) {
- $dashboardContents .= $v;
- }
- $dashboardContents .= '
';
- }
-}
-echo ($dashboardContents ? '
'.$dashboardContents.'
' : '');
-
-echo '
';
-
-echo ($dashboardItems ? ''.$dashboardItems.'
' : '');
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/install/check.php b/v2/dotclear/admin/install/check.php
deleted file mode 100644
index 3d4ebc1..0000000
--- a/v2/dotclear/admin/install/check.php
+++ /dev/null
@@ -1,83 +0,0 @@
-driver() == 'mysql')
- {
- if (version_compare($con->version(),'4.1','<'))
- {
- $err[] = sprintf(__('MySQL version is %s (4.1 or earlier needed).'),$con->version());
- }
- else
- {
- $rs = $con->select('SHOW ENGINES');
- $innodb = false;
- while ($rs->fetch()) {
- if (strtolower($rs->f(0)) == 'innodb' && strtolower($rs->f(1)) != 'disabled' && strtolower($rs->f(1)) != 'no') {
- $innodb = true;
- break;
- }
- }
-
- if (!$innodb) {
- $err[] = __('MySQL InnoDB engine is not available.');
- }
- }
- }
- elseif ($con->driver() == 'pgsql')
- {
- if (version_compare($con->version(),'8.0','<'))
- {
- $err[] = sprintf(__('PostgreSQL version is %s (8.0 or earlier needed).'),$con->version());
- }
- }
-
- return count($err) == 0;
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/install/index.php b/v2/dotclear/admin/install/index.php
deleted file mode 100644
index 9705b59..0000000
--- a/v2/dotclear/admin/install/index.php
+++ /dev/null
@@ -1,401 +0,0 @@
-'.__('Please set a master key (DC_MASTER_KEY) in configuration file.').'';
-}
-
-# Check if dotclear is already installed
-$schema = dbSchema::init($core->con);
-if (in_array($core->prefix.'post',$schema->getTables())) {
- $can_install = false;
- $err = ''.__('Dotclear is already installed.').'
';
-}
-
-# Check system capabilites
-if (!dcSystemCheck($core->con,$_e)) {
- $can_install = false;
- $err = ''.__('Dotclear cannot be installed.').'
';
-}
-
-# Get information and perform install
-$u_email = $u_firstname = $u_name = $u_login = $u_pwd = '';
-$mail_sent = false;
-if ($can_install && !empty($_POST))
-{
- $u_email = !empty($_POST['u_email']) ? $_POST['u_email'] : null;
- $u_firstname = !empty($_POST['u_firstname']) ? $_POST['u_firstname'] : null;
- $u_name = !empty($_POST['u_name']) ? $_POST['u_name'] : null;
- $u_login = !empty($_POST['u_login']) ? $_POST['u_login'] : null;
- $u_pwd = !empty($_POST['u_pwd']) ? $_POST['u_pwd'] : null;
- $u_pwd2 = !empty($_POST['u_pwd2']) ? $_POST['u_pwd2'] : null;
-
- try
- {
- # Check user information
- if (empty($u_login)) {
- throw new Exception(__('No user ID given'));
- }
- if (!preg_match('/^[A-Za-z0-9@._-]{2,}$/',$u_login)) {
- throw new Exception(__('User ID must contain at least 2 characters using letters, numbers or symbols.'));
- }
- if ($u_email && !text::isEmail($u_email)) {
- throw new Exception(__('Invalid email address'));
- }
-
- if (empty($u_pwd)) {
- throw new Exception(__('No password given'));
- }
- if ($u_pwd != $u_pwd2) {
- throw new Exception(__("Passwords don't match"));
- }
- if (strlen($u_pwd) < 6) {
- throw new Exception(__('Password must contain at least 6 characters.'));
- }
-
- # Try to guess timezone
- $default_tz = 'Europe/London';
- if (!empty($_POST['u_date']) && function_exists('timezone_open'))
- {
- if (preg_match('/\((.+)\)$/',$_POST['u_date'],$_tz)) {
- $_tz = $_tz[1];
- $_tz = @timezone_open($_tz);
- if ($_tz instanceof DateTimeZone) {
- $_tz = @timezone_name_get($_tz);
- if ($_tz) {
- $default_tz = $_tz;
- }
- }
- unset($_tz);
- }
- }
-
- # Create schema
- $_s = new dbStruct($core->con,$core->prefix);
- require dirname(__FILE__).'/../../inc/dbschema/db-schema.php';
-
- $si = new dbStruct($core->con,$core->prefix);
- $changes = $si->synchronize($_s);
-
- # Create user
- $cur = $core->con->openCursor($core->prefix.'user');
- $cur->user_id = $u_login;
- $cur->user_super = 1;
- $cur->user_pwd = crypt::hmac(DC_MASTER_KEY,$u_pwd);
- $cur->user_name = (string) $u_name;
- $cur->user_firstname = (string) $u_firstname;
- $cur->user_email = (string) $u_email;
- $cur->user_lang = $dlang;
- $cur->user_tz = $default_tz;
- $cur->user_creadt = date('Y-m-d H:i:s');
- $cur->user_upddt = date('Y-m-d H:i:s');
- $cur->user_options = serialize($core->userDefaults());
- $cur->insert();
-
- $core->auth->checkUser($u_login);
-
- $admin_url = preg_replace('%install/index.php$%','',$_SERVER['REQUEST_URI']);
- $root_url = preg_replace('%/admin/install/index.php$%','',$_SERVER['REQUEST_URI']);
-
- # Create blog
- $cur = $core->con->openCursor($core->prefix.'blog');
- $cur->blog_id = 'default';
- $cur->blog_url = http::getHost().$root_url.'/index.php?';
- $cur->blog_name = __('My first blog');
- $core->addBlog($cur);
- $core->blogDefaults($cur->blog_id);
-
- $blog_settings = new dcSettings($core,'default');
- $blog_settings->addNamespace('system');
- $blog_settings->system->put('blog_timezone',$default_tz);
- $blog_settings->system->put('lang',$dlang);
- $blog_settings->system->put('public_url',$root_url.'/public');
- $blog_settings->system->put('themes_url',$root_url.'/themes');
- $blog_settings->system->put('date_format',__('%A, %B %e %Y'));
-
- # Add Dotclear version
- $cur = $core->con->openCursor($core->prefix.'version');
- $cur->module = 'core';
- $cur->version = (string) DC_VERSION;
- $cur->insert();
-
- # Create first post
- $core->setBlog('default');
-
- $cur = $core->con->openCursor($core->prefix.'post');
- $cur->user_id = $u_login;
- $cur->post_format = 'xhtml';
- $cur->post_lang = $dlang;
- $cur->post_title = __('Welcome to Dotclear!');
- $cur->post_content = ''.__('This is your first entry. When you\'re ready '.
- 'to blog, log in to edit or delete it.').'
';
- $cur->post_content_xhtml = $cur->post_content;
- $cur->post_status = 1;
- $cur->post_open_comment = 1;
- $cur->post_open_tb = 0;
- $post_id = $core->blog->addPost($cur);
-
- # Add a comment to it
- $cur = $core->con->openCursor($core->prefix.'comment');
- $cur->post_id = $post_id;
- $cur->comment_tz = $default_tz;
- $cur->comment_author = __('Dotclear Team');
- $cur->comment_email = 'contact@dotclear.net';
- $cur->comment_site = 'http://www.dotclear.org/';
- $cur->comment_content = __("This is a comment.
\nTo delete it, log in and ".
- "view your blog's comments. Then you might remove or edit it.
");
- $core->blog->addComment($cur);
-
- # Plugins initialization
- define('DC_CONTEXT_ADMIN',true);
- $core->plugins->loadModules(DC_PLUGINS_ROOT);
- $plugins_install = $core->plugins->installModules();
-
- # Add dashboard module options
- $core->auth->user_prefs->addWorkspace('dashboard');
- $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean','',null,true);
- $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true);
- $core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
-
- # Add accessibility options
- $core->auth->user_prefs->addWorkspace('accessibility');
- $core->auth->user_prefs->accessibility->put('nodragdrop',false,'boolean','',null,true);
-
- # Add user interface options
- $core->auth->user_prefs->addWorkspace('interface');
- $core->auth->user_prefs->interface->put('enhanceduploader',false,'boolean','',null,true);
-
- # Add default favorites
- $core->auth->user_prefs->addWorkspace('favorites');
-
- $init_fav = array();
-
- $init_fav['new_post'] = array('new_post','New entry','post.php',
- 'images/menu/edit.png','images/menu/edit-b.png',
- 'usage,contentadmin',null,'menu-new-post');
- $init_fav['posts'] = array('posts','Entries','posts.php',
- 'images/menu/entries.png','images/menu/entries-b.png',
- 'usage,contentadmin',null,null);
- $init_fav['comments'] = array('comments','Comments','comments.php',
- 'images/menu/comments.png','images/menu/comments-b.png',
- 'usage,contentadmin',null,null);
- $init_fav['prefs'] = array('prefs','My preferences','preferences.php',
- 'images/menu/user-pref.png','images/menu/user-pref-b.png',
- '*',null,null);
- $init_fav['blog_pref'] = array('blog_pref','Blog settings','blog_pref.php',
- 'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
- 'admin',null,null);
- $init_fav['blog_theme'] = array('blog_theme','Blog appearance','blog_theme.php',
- 'images/menu/themes.png','images/menu/blog-theme-b.png',
- 'admin',null,null);
-
- $init_fav['pages'] = array('pages','Pages','plugin.php?p=pages',
- 'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png',
- 'contentadmin,pages',null,null);
- $init_fav['blogroll'] = array('blogroll','Blogroll','plugin.php?p=blogroll',
- 'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png',
- 'usage,contentadmin',null,null);
-
- $count = 0;
- foreach ($init_fav as $k => $f) {
- $t = array('name' => $f[0],'title' => $f[1],'url' => $f[2], 'small-icon' => $f[3],
- 'large-icon' => $f[4],'permissions' => $f[5],'id' => $f[6],'class' => $f[7]);
- $core->auth->user_prefs->favorites->put(sprintf("g%03s",$count),serialize($t),'string',null,true,true);
- $count++;
- }
-
- $step = 1;
- }
- catch (Exception $e)
- {
- $err = $e->getMessage();
- }
-}
-
-if (!isset($step)) {
- $step = 0;
-}
-header('Content-Type: text/html; charset=UTF-8');
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-'.__('Dotclear installation').''.
-'
';
-
-if (!is_writable(DC_TPL_CACHE)) {
- echo '
'.sprintf(__('Cache directory %s is not writable.'),DC_TPL_CACHE).'
';
-}
-
-if ($can_install && !empty($err)) {
- echo '
'.__('Errors:').'
'.$err.'
';
-}
-
-if (!empty($_GET['wiz'])) {
- echo '
'.__('Configuration file has been successfully created.').'
';
-}
-
-if ($can_install && $step == 0)
-{
- echo
- '
'.__('User information').' '.
-
- '
'.__('Please provide the following information needed to create the first user.').'
'.
-
- '
';
-}
-elseif ($can_install && $step == 1)
-{
- # Plugins install messages
- $plugins_install_result = '';
- if (!empty($plugins_install['success']))
- {
- $plugins_install_result .= '
'.__('Following plugins have been installed:').'
';
- foreach ($plugins_install['success'] as $k => $v) {
- $plugins_install_result .= ''.$k.' ';
- }
- $plugins_install_result .= ' ';
- }
- if (!empty($plugins_install['failure']))
- {
- $plugins_install_result .= '
'.__('Following plugins have not been installed:').'
';
- foreach ($plugins_install['failure'] as $k => $v) {
- $plugins_install_result .= ''.$k.' ('.$v.') ';
- }
- $plugins_install_result .= ' ';
- }
-
- echo
- '
'.__('All done!').' '.
-
- $plugins_install_result.
-
- '
'.__('Dotclear has been successfully installed. Here is some useful information you should keep.').'
'.
-
- '
'.__('Your account').' '.
- '
'.
- ''.__('Username:').' '.html::escapeHTML($u_login).' '.
- ''.__('Password:').' '.html::escapeHTML($u_pwd).' '.
- ' '.
-
- '
'.__('Your blog').' '.
- '
'.
- ''.__('Blog address:').' '.html::escapeHTML(http::getHost().$root_url).'/index.php? '.
- ''.__('Administration interface:').' '.html::escapeHTML(http::getHost().$admin_url).' '.
- ' '.
-
- '
';
-}
-elseif (!$can_install)
-{
- echo '
'.__('Installation can not be completed').' '.
- '
'.__('Errors:').'
'.$err.'
'.
- '
'.__('For the said reasons, Dotclear can not be installed. '.
- 'Please refer to '.
- 'the documentation to learn how to correct the problem.').'
';
-}
-?>
-
-
-
-
\ No newline at end of file
diff --git a/v2/dotclear/admin/install/wizard.php b/v2/dotclear/admin/install/wizard.php
deleted file mode 100644
index 2f9120e..0000000
--- a/v2/dotclear/admin/install/wizard.php
+++ /dev/null
@@ -1,190 +0,0 @@
-' . __($e->getMessage()) . '');
- }
-
- # Checks system capabilites
- require dirname(__FILE__).'/check.php';
- if (!dcSystemCheck($con,$_e)) {
- $can_install = false;
- throw new Exception(''.__('Dotclear cannot be installed.').'
');
- }
-
- # Check if dotclear is already installed
- $schema = dbSchema::init($con);
- if (in_array($DBPREFIX.'version',$schema->getTables())) {
- throw new Exception(__('Dotclear is already installed.'));
- }
-
- # Does config.php.in exist?
- $config_in = dirname(__FILE__).'/../../inc/config.php.in';
- if (!is_file($config_in)) {
- throw new Exception(sprintf(__('File %s does not exist.'),$config_in));
- }
-
- # Can we write config.php
- if (!is_writable(dirname(DC_RC_PATH))) {
- throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH));
- }
-
- # Creates config.php file
- $full_conf = file_get_contents($config_in);
-
- writeConfigValue('DC_DBDRIVER',$DBDRIVER,$full_conf);
- writeConfigValue('DC_DBHOST',$DBHOST,$full_conf);
- writeConfigValue('DC_DBUSER',$DBUSER,$full_conf);
- writeConfigValue('DC_DBPASSWORD',$DBPASSWORD,$full_conf);
- writeConfigValue('DC_DBNAME',$DBNAME,$full_conf);
- writeConfigValue('DC_DBPREFIX',$DBPREFIX,$full_conf);
-
- $admin_url = preg_replace('%install/wizard.php$%','',$_SERVER['REQUEST_URI']);
- writeConfigValue('DC_ADMIN_URL',http::getHost().$admin_url,$full_conf);
- writeConfigValue('DC_ADMIN_MAILFROM','dotclear@'.$_SERVER['HTTP_HOST'],$full_conf);
- writeConfigValue('DC_MASTER_KEY',md5(uniqid()),$full_conf);
-
- $fp = @fopen(DC_RC_PATH,'wb');
- if ($fp === false) {
- throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH));
- }
- fwrite($fp,$full_conf);
- fclose($fp);
- chmod(DC_RC_PATH, 0666);
-
- $con->close();
- http::redirect('index.php?wiz=1');
- }
- catch (Exception $e)
- {
- $err = $e->getMessage();
- }
-}
-
-function writeConfigValue($name,$val,&$str)
-{
- $val = str_replace("'","\'",$val);
- $str = preg_replace('/(\''.$name.'\')(.*?)$/ms','$1,\''.$val.'\');',$str);
-}
-
-header('Content-Type: text/html; charset=UTF-8');
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-'.__('Dotclear installation wizard').''.
-'
';
-
-if (!empty($err)) {
- echo '
'.__('Errors:').'
'.$err.'
';
-} else {
- echo '
'.__('Welcome').' '.
- '
'.__('To complete your Dotclear installation and start writing on your blog, '.
- 'we just need to know how to access your database and who you are. '.
- 'Just fill this two steps wizard with this information and we will be done.').'
'.
- '
'.__('Attention:').' '.
- __('this wizard may not function on every host. If it does not work for you, '.
- 'please refer to '.
- 'the documentation to learn how to create the config.php '.
- 'file manually.').'
';
-}
-
-echo
-'
'.__('System information').' '.
-
-'
'.__('Please provide the following information needed to create your configuration file.').'
'.
-
-'
';
-?>
-
-
-
-
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_blog_pref.js b/v2/dotclear/admin/js/_blog_pref.js
deleted file mode 100644
index 8762ac5..0000000
--- a/v2/dotclear/admin/js/_blog_pref.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-function checkQueryString(){var blogUrl=$('#blog_url')[0].value;var urlScan=$('#url_scan')[0].value;errorMsg='';if(/.*[^\/]$/.exec(blogUrl)&&urlScan=='path_info'){errorMsg=dotclear.msg.warning_path_info;}else if(/.*[^\?]$/.exec(blogUrl)&&urlScan=='query_string'){errorMsg=dotclear.msg.warning_query_string;}
-$("p#urlwarning").remove();if(errorMsg!=''){$("#blog_url").parents('p').before(''+errorMsg+'
');}}
-$(function(){checkQueryString();$('#blog_url').focusout(checkQueryString);$('#url_scan').live("change",checkQueryString);});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_blog_theme.js b/v2/dotclear/admin/js/_blog_theme.js
deleted file mode 100644
index 77e42ec..0000000
--- a/v2/dotclear/admin/js/_blog_theme.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-$(function(){$('#themes-actions').hide();var submit_s=$('#themes-actions input[name=select]');var submit_r=$('#themes-actions input[name=remove]');var details=$('#themes div.theme-details');$('div.theme-actions',details).hide();$('input:radio',details).hide();$('div.theme-info span, div.theme-info a',details).hide();details.removeClass('theme-details').addClass('theme-details-js');var themes_wrapper=$('
');var theme_box=$('');$('#themes').wrap(themes_wrapper).before(theme_box);details.each(function(){var box=this;var a=$(document.createElement('a'));a.attr('href','#');a.attr('title',$('>div h3>label',this).text());$(box).wrap(a);$(box).parent().click(function(event){update_box(box);event.preventDefault();return false;});});function update_box(e){theme_box.empty();var img=$('div.theme-shot',e).clone();var info=$('div.theme-info',e).clone();if($(e).hasClass('current-theme')){var actions=$('div.theme-actions',e).clone();actions.show();}else{var actions=$('
');if(submit_s.length>0&&!$('input:radio',info).attr('disabled')){var select=$('
'+dotclear.msg.use_this_theme+' ');select.css('font-weight','bold').click(function(){submit_s.click();return false;});actions.append(select).append(' ');}
-if(submit_r.length>0&&$('input:radio',info).attr('id')!='theme_default'){var remove=$('
'+dotclear.msg.remove_this_theme+' ');remove.click(function(){var t_name=$(this).parents('#theme-box').find('div.theme-info h3:first').text();t_name=$.trim(t_name);if(window.confirm(dotclear.msg.confirm_delete_theme.replace('%s',t_name))){submit_r.click();}
-return false;});actions.append(remove);}}
-$('input:radio',info).remove();$('span, a',info).show();theme_box.append(img).append(info).append(actions);details.removeClass('theme-selected');$(e).addClass('theme-selected');$('input:radio',e).attr('checked','checked');}
-update_box(details[0]);});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_categories.js b/v2/dotclear/admin/js/_categories.js
deleted file mode 100644
index 8e6929e..0000000
--- a/v2/dotclear/admin/js/_categories.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-$(function(){$('form#delete-category').submit(function(){var c_id=$('#del_cat').val();var c_name=$('#del_cat option[value='+c_id+']').text();return window.confirm(dotclear.msg.confirm_delete_category.replace('%s',c_name));});});$(function(){$('form#reset-order').submit(function(){return window.confirm(dotclear.msg.confirm_reorder_categories);});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_category.js b/v2/dotclear/admin/js/_category.js
deleted file mode 100644
index 496a4c4..0000000
--- a/v2/dotclear/admin/js/_category.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-$(function(){dotclear.hideLockable();var tbCategory=new jsToolBar(document.getElementById('cat_desc'));tbCategory.draw('xhtml');});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_comment.js b/v2/dotclear/admin/js/_comment.js
deleted file mode 100644
index a46fa52..0000000
--- a/v2/dotclear/admin/js/_comment.js
+++ /dev/null
@@ -1,3 +0,0 @@
-
-$(function(){if(!document.getElementById){return;}
-var tbComment=new jsToolBar(document.getElementById('comment_content'));tbComment.draw('xhtml');$('#comment-form input[name="delete"]').click(function(){return window.confirm(dotclear.msg.confirm_delete_comment);});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_comments.js b/v2/dotclear/admin/js/_comments.js
deleted file mode 100644
index 55e0bf5..0000000
--- a/v2/dotclear/admin/js/_comments.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-dotclear.commentExpander=function(line){var td=line.firstChild;var img=document.createElement('img');img.src=dotclear.img_plus_src;img.alt=dotclear.img_plus_alt;img.className='expand';$(img).css('cursor','pointer');img.line=line;img.onclick=function(){dotclear.viewCommentContent(this,this.line);};td.insertBefore(img,td.firstChild);};dotclear.viewCommentContent=function(img,line){var commentId=line.id.substr(1);var tr=document.getElementById('ce'+commentId);if(!tr){tr=document.createElement('tr');tr.id='ce'+commentId;var td=document.createElement('td');td.colSpan=6;td.className='expand';tr.appendChild(td);img.src=dotclear.img_minus_src;img.alt=dotclear.img_minus_alt;$.get('services.php',{f:'getCommentById',id:commentId},function(data){var rsp=$(data).children('rsp')[0];if(rsp.attributes[0].value=='ok'){var comment=$(rsp).find('comment_display_content').text();if(comment){$(td).append(comment);var comment_email=$(rsp).find('comment_email').text();var comment_site=$(rsp).find('comment_site').text();var comment_ip=$(rsp).find('comment_ip').text();var comment_spam_disp=$(rsp).find('comment_spam_disp').text();$(td).append('
'+dotclear.msg.website+' '+comment_site+' '+''+dotclear.msg.email+' '+comment_email+' '+''+dotclear.msg.ip_address+' '+comment_ip+' '+' '+comment_spam_disp+'
');}}else{alert($(rsp).find('message').text());}});$(line).toggleClass('expand');line.parentNode.insertBefore(tr,line.nextSibling);}
-else if(tr.style.display=='none')
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_minus_src;img.alt=dotclear.img_minus_alt;}
-else
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_plus_src;img.alt=dotclear.img_plus_alt;}};$(function(){$('#form-comments tr.line').each(function(){dotclear.commentExpander(this);});$('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);});$('#form-comments td input[type=checkbox]').enableShiftClick();dotclear.commentsActionsHelper();});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_index.js b/v2/dotclear/admin/js/_index.js
deleted file mode 100644
index ac78b57..0000000
--- a/v2/dotclear/admin/js/_index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-$(function(){var f=$('#quick-entry');if(f.length>0){var contentTb=new jsToolBar($('#post_content',f)[0]);contentTb.switchMode($('#post_format',f).val());$('input[name=save]',f).click(function(){quickPost(f,-2);return false;});if($('input[name=save-publish]',f).length>0){var btn=$('
');$('input[name=save-publish]',f).remove();$('input[name=save]',f).after(btn).after(' ');btn.click(function(){quickPost(f,1);return false;});}
-function quickPost(f,status){if(contentTb.getMode()=='wysiwyg'){contentTb.syncContents('iframe');}
-var params={f:'quickPost',xd_check:dotclear.nonce,post_title:$('#post_title',f).val(),post_content:$('#post_content',f).val(),cat_id:$('#cat_id',f).val(),post_status:status,post_format:$('#post_format',f).val(),post_lang:$('#post_lang',f).val()}
-$('p.qinfo',f).remove();$.post('services.php',params,function(data){if($('rsp[status=failed]',data).length>0){var msg='
'+dotclear.msg.error+' '+$('rsp',data).text()+'
';}else{var msg='
'+dotclear.msg.entry_created+' - '+
-dotclear.msg.edit_entry+' ';if($('rsp>post',data).attr('post_status')==1){msg+=' - '+
-dotclear.msg.view_entry+' ';}
-msg+='
';$('#post_title',f).val('');$('#post_content',f).val('');if(contentTb.getMode()=='wysiwyg'){contentTb.syncContents('textarea');}}
-$('fieldset',f).prepend(msg);});}}
-$('#quick h3').toggleWithLegend($('#quick').children().not('h3'),{cookie:'dcx_quick_entry'},positionFooter);});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_langs.js b/v2/dotclear/admin/js/_langs.js
deleted file mode 100644
index 8824cff..0000000
--- a/v2/dotclear/admin/js/_langs.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-$(function(){$('table.plugins form input[type=submit][name=delete]').click(function(){var l_name=$(this).parents('tr.line').find('td:first').text();return window.confirm(dotclear.msg.confirm_delete_lang.replace('%s',l_name));});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_media.js b/v2/dotclear/admin/js/_media.js
deleted file mode 100644
index 19893c0..0000000
--- a/v2/dotclear/admin/js/_media.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-$(function(){fileRemoveAct();function fileRemoveAct(){$('a.media-remove').click(function(){var m_name=$(this).parents('ul').find('li:first>a').text();if(window.confirm(dotclear.msg.confirm_delete_media.replace('%s',m_name))){var f=$('#media-remove-hide').get(0);f.elements['remove'].value=this.href.replace(/^(.*)&remove=(.*?)(&|$)/,'$2');this.href='';f.submit();}
-return false;});}
-if(!$.browser.opera){if(dotclear.candyUpload_force_init=='1'){candyUploadInit();}}
-function candyUploadInit()
-{var candy_upload_success=false;var candy_upload_form_url=$('#media-upload').attr('action')+'&file_sort=date-desc&d='+$('#media-upload input[name=d]').val();var candy_upload_limit=$('#media-upload input[name=MAX_FILE_SIZE]').val();$('#media-upload').candyUpload({upload_url:dotclear.candyUpload.base_url+'/media.php',flash_movie:dotclear.candyUpload.movie_url,file_size_limit:candy_upload_limit+'b',params:'swfupload=1&'+dotclear.candyUpload.params,callbacks:{createControls:function(){var _this=this;this.ctrl.btn_browse.hide();this.ctrl.msg.html(dotclear.msg.load_enhanced_uploader);},flashReady:function(){var _this=this;this.ctrl.msg.fadeOut('fast',function(){$(this).text(_this.locales.no_file_in_queue).fadeIn('fast');_this.ctrl.btn_browse.fadeIn('fast',function(){_this.upldr.container.children().css({width:$('.cu-btn-browse').width(),height:$('.cu-btn-browse').height()});});});},uploadSuccess:function(o,data){if(data=='ok'){candy_upload_success=true;this.fileMsg(o.id,this.locales.file_uploaded);}else{this.fileErrorMsg(o.id,data);}
-if(candy_upload_success&&$('div.cu-file:has(span.cu-filecancel a)',this.ctrl.files).length==0){$.cookie('dc_candy_upl','1',{expires:30});$.get(candy_upload_form_url,function(data){var media=$('div.media-list');media.after($('div.media-list',data)).remove();fileRemoveAct();});}},fileQueued:function(){positionFooter();}}});}});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_media_item.js b/v2/dotclear/admin/js/_media_item.js
deleted file mode 100644
index c9a2eeb..0000000
--- a/v2/dotclear/admin/js/_media_item.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-$(function(){$('#media-details-tab').onetabload(function(){var media_dt=document.getElementById('media_dt');if(media_dt==undefined){return;}
-var post_dtPick=new datePicker(media_dt);post_dtPick.img_top='1.5em';post_dtPick.draw();});$('#file-unzip').each(function(){var a=document.createElement('a');var mediaId=$(this).find('input[name=id]').val();var self=$(this);a.href='#';$(a).text(dotclear.msg.zip_file_content);self.before(a);$(a).wrap('
');$(a).click(function(){$.get('services.php',{f:'getZipMediaContent',id:mediaId},function(data){var rsp=$(data).children('rsp')[0];if(rsp.attributes[0].value=='ok'){var div=document.createElement('div');var list=document.createElement('ul');var expanded=false;$(div).css({overflow:'auto',border:'1px solid #ccc',margin:'1em 0',padding:'1px 0.5em'});$(div).append(list);self.before(div);$(a).hide();$(div).before('
'+dotclear.msg.zip_file_content+' ');$(rsp).find('file').each(function(){$(list).append('
'+$(this).text()+' ');if($(div).height()>200&&!expanded){$(div).css({height:'200px'});expanded=true;}});}else{alert($(rsp).find('message').text());}});return false;});});$('#file-unzip').submit(function(){if($(this).find('#inflate_mode').val()=='current'){return window.confirm(dotclear.msg.confirm_extract_current);}
-return true;});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_permissions.js b/v2/dotclear/admin/js/_permissions.js
deleted file mode 100644
index 1547911..0000000
--- a/v2/dotclear/admin/js/_permissions.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-jQuery.fn.updatePermissionsForm=function(){return this.each(function(){var perms={};var re=/^perm\[(.+?)\]\[(.+?)\]$/;var e,prop;for(var i=0;i
'+dotclear.msg.website+' '+comment_site+' '+''+dotclear.msg.email+' '+
-comment_email+' '+comment_spam_disp+'');}}else{alert($(rsp).find('message').text());}});$(line).toggleClass('expand');line.parentNode.insertBefore(tr,line.nextSibling);}
-else if(tr.style.display=='none')
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_minus_src;img.alt=dotclear.img_minus_alt;}
-else
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_plus_src;img.alt=dotclear.img_plus_alt;}};$(function(){if(!document.getElementById){return;}
-if(document.getElementById('edit-entry'))
-{var formatField=$('#post_format').get(0);$(formatField).change(function(){excerptTb.switchMode(this.value);contentTb.switchMode(this.value);});var excerptTb=new jsToolBar(document.getElementById('post_excerpt'));var contentTb=new jsToolBar(document.getElementById('post_content'));excerptTb.context=contentTb.context='post';}
-if(document.getElementById('comment_content')){var commentTb=new jsToolBar(document.getElementById('comment_content'));}
-$('#post-preview').modalWeb($(window).width()-40,$(window).height()-40);$('#edit-entry').onetabload(function(){dotclear.hideLockable();var post_dtPick=new datePicker($('#post_dt').get(0));post_dtPick.img_top='1.5em';post_dtPick.draw();$('input[name="delete"]').click(function(){return window.confirm(dotclear.msg.confirm_delete_post);});$('#notes-area label').toggleWithLegend($('#notes-area').children().not('label'),{cookie:'dcx_post_notes',hide:$('#post_notes').val()==''});$('#post_lang').parent().toggleWithLegend($('#post_lang'),{cookie:'dcx_post_lang'});$('#post_password').parent().toggleWithLegend($('#post_password'),{cookie:'dcx_post_password',hide:$('#post_password').val()==''});$('#excerpt-area label').toggleWithLegend($('#excerpt-area').children().not('label'),{fn:function(){excerptTb.switchMode(formatField.value);},cookie:'dcx_post_excerpt',hide:$('#post_excerpt').val()==''});contentTb.switchMode(formatField.value);$('a.attachment-remove').click(function(){this.href='';var m_name=$(this).parents('ul').find('li:first>a').attr('title');if(window.confirm(dotclear.msg.confirm_remove_attachment.replace('%s',m_name))){var f=$('#attachment-remove-hide').get(0);f.elements['media_id'].value=this.id.substring(11);f.submit();}
-return false;});var h=document.createElement('h4');var a=document.createElement('a');a.href='#';$(a).click(function(){var params={xd_check:dotclear.nonce,f:'validatePostMarkup',excerpt:$('#post_excerpt').text(),content:$('#post_content').text(),format:$('#post_format').get(0).value,lang:$('#post_lang').get(0).value};$.post('services.php',params,function(data){if($(data).find('rsp').attr('status')!='ok'){alert($(data).find('rsp message').text());return false;}
-if($(data).find('valid').text()==1){var p=document.createElement('p');p.id='markup-validator';if($('#markup-validator').length>0){$('#markup-validator').remove();}
-$(p).addClass('message');$(p).text(dotclear.msg.xhtml_valid);$(p).insertAfter(h);$(p).backgroundFade({sColor:'#666666',eColor:'#ffcc00',steps:50},function(){$(this).backgroundFade({sColor:'#ffcc00',eColor:'#666666'});});}else{var div=document.createElement('div');div.id='markup-validator';if($('#markup-validator').length>0){$('#markup-validator').remove();}
-$(div).addClass('error');$(div).html(''+dotclear.msg.xhtml_not_valid+'
'+$(data).find('errors').text());$(div).insertAfter(h);$(div).backgroundFade({sColor:'#ffffff',eColor:'#ff9999',steps:50},function(){$(this).backgroundFade({sColor:'#ff9999',eColor:'#ffffff'});});}
-return false;});return false;});a.appendChild(document.createTextNode(dotclear.msg.xhtml_validator));h.appendChild(a);$(h).appendTo('#entry-content');var excerpt=$('#post_excerpt').val();var content=$('#post_content').val();$('#convert-xhtml').click(function(){if(excerpt!=$('#post_excerpt').val()||content!=$('#post_content').val()){return window.confirm(dotclear.msg.confirm_change_post_format);}});});$('#comments').onetabload(function(){$('.comments-list tr.line').each(function(){dotclear.commentExpander(this);});$('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);});dotclear.commentsActionsHelper();});$('#add-comment').onetabload(function(){commentTb.draw('xhtml');});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_posts_list.js b/v2/dotclear/admin/js/_posts_list.js
deleted file mode 100644
index 2719cca..0000000
--- a/v2/dotclear/admin/js/_posts_list.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-dotclear.postExpander=function(line){var td=line.firstChild;var img=document.createElement('img');img.src=dotclear.img_plus_src;img.alt=dotclear.img_plus_alt;img.className='expand';$(img).css('cursor','pointer');img.line=line;img.onclick=function(){dotclear.viewPostContent(this,this.line);positionFooter();};td.insertBefore(img,td.firstChild);};dotclear.viewPostContent=function(img,line){var postId=line.id.substr(1);var tr=document.getElementById('pe'+postId);if(!tr){tr=document.createElement('tr');tr.id='pe'+postId;var td=document.createElement('td');td.colSpan=8;td.className='expand';tr.appendChild(td);img.src=dotclear.img_minus_src;img.alt=dotclear.img_minus_alt;$.get('services.php',{f:'getPostById',id:postId,post_type:''},function(data){var rsp=$(data).children('rsp')[0];if(rsp.attributes[0].value=='ok'){var post=$(rsp).find('post_display_content').text();var post_excerpt=$(rsp).find('post_display_excerpt').text();var res='';if(post){if(post_excerpt){res+=post_excerpt+' ';}
-res+=post;$(td).append(res);}}else{alert($(rsp).find('message').text());}});$(line).toggleClass('expand');line.parentNode.insertBefore(tr,line.nextSibling);}
-else if(tr.style.display=='none')
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_minus_src;img.alt=dotclear.img_minus_alt;}
-else
-{$(tr).toggle();$(line).toggleClass('expand');img.src=dotclear.img_plus_src;img.alt=dotclear.img_plus_alt;}};$(function(){$('#form-entries tr.line').each(function(){dotclear.postExpander(this);});$('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);});$('#form-entries td input[type=checkbox]').enableShiftClick();dotclear.postsActionsHelper();});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_preferences-dragdrop.js b/v2/dotclear/admin/js/_preferences-dragdrop.js
deleted file mode 100644
index 3599f30..0000000
--- a/v2/dotclear/admin/js/_preferences-dragdrop.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-$(function(){$("#my-favs ul").sortable({'cursor':'move'});$("#my-favs ul").hover(function(){$(this).css({'cursor':'move'});},function(){$(this).css({'cursor':'auto'});});$('#favs-form').submit(function(){var order=[];$("#my-favs ul li input.position").each(function(){order.push(this.name.replace(/^order\[([^\]]+)\]$/,'$1'));});$("input[name=favs_order]")[0].value=order.join(',');return true;});$("#my-favs ul li input.position").hide();});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_preferences.js b/v2/dotclear/admin/js/_preferences.js
deleted file mode 100644
index d47d010..0000000
--- a/v2/dotclear/admin/js/_preferences.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-$(function(){if($('#new_pwd').length==0){return;}
-var user_email=$('#user_email').val();$('#user-form').submit(function(){var e=this.elements['cur_pwd'];if(e.value!=''){return true;}
-if($('#user_email').val()!=user_email||$('#new_pwd').val()!=''){e.focus();$(e).backgroundFade({sColor:'#ffffff',eColor:'#ff9999',steps:50},function(){$(this).backgroundFade({sColor:'#ff9999',eColor:'#ffffff'});});return false;}
-return true;});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_trackbacks.js b/v2/dotclear/admin/js/_trackbacks.js
deleted file mode 100644
index b3842d7..0000000
--- a/v2/dotclear/admin/js/_trackbacks.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-$(function(){$('#tb_excerpt').keypress(function(){if(this.value.length>255){this.value=this.value.substring(0,255);}});});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/_users.js b/v2/dotclear/admin/js/_users.js
deleted file mode 100644
index ae2756f..0000000
--- a/v2/dotclear/admin/js/_users.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-$(function(){$('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);});$('#form-users').submit(function(){var action=$(this).find('select[name="dispatch_action"]').val();var user_ids=new Array();var nb_posts=new Array();var i;var msg_cannot_delete=false;$(this).find('input[name="user_id[]"]').each(function(){user_ids.push(this);});$(this).find('input[name="nb_post[]"]').each(function(){nb_posts.push(this.value);});if(action=='deleteuser'){for(i=0;i0){if(user_ids[i].checked==true){msg_cannot_delete=true;user_ids[i].checked=false;}}}
-if(msg_cannot_delete==true){alert(dotclear.msg.cannot_delete_users);}}
-var selectfields=0;for(i=0;iThis.height()){This.css('height',$('body').height()+'px');}};var textToggler=function(o){var i=$(' ');o.css('cursor','pointer');var hide=true;o.prepend(' ').prepend(i);o.click(function(){$(this).nextAll().each(function(){if($(this).is('h3')){return false;}
-$(this).toggle();sizeBox();return true;});hide=!hide;var img=$(this).find('img');if(!hide){img.attr('src',p.img_off_src);}else{img.attr('src',p.img_on_src);}});};this.addClass('help-box');this.find('>hr').remove();this.find('h3').each(function(){textToggler($(this));});this.find('h3:first').nextAll('*:not(h3)').hide();sizeBox();var img=$(''+dotclear.msg.help+' ');var select=$();img.click(function(){return toggle();});$('#content').append(img);return this;};var dotclear={msg:{},hideLockable:function(){$('div.lockable').each(function(){var current_lockable_div=this;$(this).find('p.form-note').hide();$(this).find('input').each(function(){this.disabled=true;$(this).width(($(this).width()-14)+'px');var imgE=document.createElement('img');imgE.src='images/locker.png';imgE.style.position='absolute';imgE.style.top='1.7em';imgE.style.left=($(this).width()+4)+'px';$(imgE).css('cursor','pointer');$(imgE).click(function(){$(this).hide();$(this).prev('input').each(function(){this.disabled=false;$(this).width(($(this).width()+14)+'px');});$(current_lockable_div).find('p.form-note').show();});$(this).parent().css('position','relative');$(this).after(imgE);});});},checkboxesHelpers:function(e){var a=document.createElement('a');a.href='#';$(a).append(document.createTextNode(dotclear.msg.select_all));a.onclick=function(){$(this).parents('form').find('input[type="checkbox"]').check();return false;};$(e).append(a);$(e).append(document.createTextNode(' - '));a=document.createElement('a');a.href='#';$(a).append(document.createTextNode(dotclear.msg.no_selection));a.onclick=function(){$(this).parents('form').find('input[type="checkbox"]').unCheck();return false;};$(e).append(a);$(e).append(document.createTextNode(' - '));a=document.createElement('a');a.href='#';$(a).append(document.createTextNode(dotclear.msg.invert_sel));a.onclick=function(){$(this).parents('form').find('input[type="checkbox"]').toggleCheck();return false;};$(e).append(a);},postsActionsHelper:function(){$('#form-entries').submit(function(){var action=$(this).find('select[name="action"]').val();var checked=false;$(this).find('input[name="entries[]"]').each(function(){if(this.checked){checked=true;}});if(!checked){return false;}
-if(action=='delete'){return window.confirm(dotclear.msg.confirm_delete_posts.replace('%s',$('input[name="entries[]"]:checked').size()));}
-return true;});},commentsActionsHelper:function(){$('#form-comments').submit(function(){var action=$(this).find('select[name="action"]').val();var checked=false;$(this).find('input[name="comments[]"]').each(function(){if(this.checked){checked=true;}});if(!checked){return false;}
-if(action=='delete'){return window.confirm(dotclear.msg.confirm_delete_comments.replace('%s',$('input[name="comments[]"]:checked').size()));}
-return true;});}};function positionFooter(){$("#wrapper").css({overflow:"auto"});var page_height=$("#top").height()+$("#wrapper").height()-$("#footer").height();if(page_height<$(window).height()){var page_width=$(document).width()-30;$("#footer").css({position:"absolute",bottom:"10px",width:page_width+"px",padding:".75em 0",marginbottom:"0"});}else{$("#footer").css({position:"static",padding:".75em 0",width:"auto"});}}
-$(function(){$('#switchblog').change(function(){this.form.submit();});var menu_settings={img_on_src:dotclear.img_menu_off,img_off_src:dotclear.img_menu_on,legend_click:true,speed:100}
-$('#blog-menu h3:first').toggleWithLegend($('#blog-menu ul:first'),$.extend({cookie:'dc_blog_menu'},menu_settings));$('#system-menu h3:first').toggleWithLegend($('#system-menu ul:first'),$.extend({cookie:'dc_system_menu'},menu_settings));$('#plugins-menu h3:first').toggleWithLegend($('#plugins-menu ul:first'),$.extend({cookie:'dc_plugins_menu'},menu_settings));$('#favorites-menu h3:first').toggleWithLegend($('#favorites-menu ul:first'),$.extend({cookie:'dc_favorites_menu',hide:false,reverse_cookie:true},menu_settings));$('#help').helpViewer();$('.message').backgroundFade({sColor:'#cccccc',eColor:'#666666',steps:20});$('.error').backgroundFade({sColor:'#f5e5e5',eColor:'#e5bfbf',steps:20});$('form:has(input[type=password][name=your_pwd])').submit(function(){var e=this.elements['your_pwd'];if(e.value==''){e.focus();$(e).backgroundFade({sColor:'#ffffff',eColor:'#ff9999',steps:50},function(){$(this).backgroundFade({sColor:'#ff9999',eColor:'#ffffff'});});return false;}
-return true;});positionFooter();$(window).resize(positionFooter);});
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/confirm-close.js b/v2/dotclear/admin/js/confirm-close.js
deleted file mode 100644
index 41489c9..0000000
--- a/v2/dotclear/admin/js/confirm-close.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-function confirmClose(){if(arguments.length>0){for(var i=0;i0){var res=new Array();var f;for(var i=0;i23){h=0;}
-if(h<10){h='0'+h;}
-this.hour=h*1;this.oHour.value=h;},setMinute:function(m){if(m<0){m=59;}
-if(m>59){m=0;}
-if(m<10){m='0'+m;}
-this.minute=m*1;this.oMinute.value=m;},changeMonth:function(dir){var y=this.year;var m=this.month;m=m+dir;if(m>12){this.month=1;this.year++;}
-else if(m<1){this.month=12;this.year--;}
-else{this.month=m;}
-this.setDate();},changeYear:function(dir){this.year=this.year+dir;this.setDate();},changeHour:function(dir){this.setHour(this.hour*1+dir);},changeMinute:function(dir){this.setMinute(this.minute*1+dir);},sendDate:function(d){var m=this.month;var hour=this.oHour.value*1;var minute=this.oMinute.value*1;if(hour<0||hour>23||isNaN(hour)){hour=0;}
-if(minute<0||minute>59||isNaN(minute)){minute=0;}
-if(m<10){m='0'+m;}
-if(d<10){d='0'+d;}
-if(hour<10){hour='0'+hour;}
-if(minute<10){minute='0'+minute;}
-this.target.value=this.year+'-'+m+'-'+d+' '+hour+':'+minute;this.close();},sendNow:function(){var dt=new Date();var y=dt.getFullYear();var m=dt.getMonth()+1;var d=dt.getDate();var h=dt.getHours();var i=dt.getMinutes();if(m<10){m='0'+m;}
-if(d<10){d='0'+d;}
-if(h<10){h='0'+h;}
-if(i<10){i='0'+i;}
-this.target.value=y+'-'+m+'-'+d+' '+h+':'+i;this.close();},close:function(){document.body.removeChild(this.oTable);},numberOfDays:function(){var res=31;if(this.month==4||this.month==6||this.month==9||this.month==11){res=30;}else if(this.month==2){res=28;if(this.year%4==0&&(this.year%100!=0||this.year%400==0)){res=29;}}
-return res;},firstDay:function(){var dt=new Date(this.year,this.month-1,1);var res=dt.getDay();if(res==0){res=7;}
-return res;},show:function(){var re=/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})/;var match=re.exec(this.target.value);if(match){this.year=match[1]*1;this.month=match[2]*1;this.day=match[3]*1;this.hour=match[4]*1;this.minute=match[5]*1;}else{var dt=new Date();this.year=dt.getFullYear();this.month=dt.getMonth()+1;this.day=dt.getDate();this.hour=dt.getHours();this.minute=dt.getMinutes();}
-this.oTable.appendChild(this.oBody);this.setDate();this.setPosition();document.body.appendChild(this.oTable);this.oHour.focus();},setPosition:function(){var t_x=this.findPosX(this.target);var t_y=this.findPosY(this.target);var o_h=this.oTable.offsetHeight;var o_w=this.oTable.offsetWidth;this.oTable.style.position='absolute';this.oTable.style.zIndex='100';this.oTable.style.top=t_y+'px';this.oTable.style.left=t_x+'px';},findPosX:function(obj){var curleft=0;if(obj.offsetParent){while(1){curleft+=obj.offsetLeft;if(!obj.offsetParent){break;}
-obj=obj.offsetParent;}}else if(obj.x){curleft+=obj.x;}
-return curleft;},findPosY:function(obj){var curtop=0;if(obj.offsetParent){while(1){curtop+=obj.offsetTop;if(!obj.offsetParent){break;}
-obj=obj.offsetParent;}}else if(obj.y){curtop+=obj.y;}
-return curtop;},draw:function(){var imgE=document.createElement('img');imgE.src=this.img_src;imgE.style.position='absolute';imgE.style.top=this.img_top;imgE.style.left=(this.target.clientWidth+4)+'px';imgE.obj=this;imgE.fn=this.show;imgE.onclick=function(){this.fn.apply(this.obj);};this.target.parentNode.style.position='relative';this.target.parentNode.insertBefore(imgE,this.target.nextSibling);}};
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/dragsort-tablerows.js b/v2/dotclear/admin/js/dragsort-tablerows.js
deleted file mode 100644
index 164b5ec..0000000
--- a/v2/dotclear/admin/js/dragsort-tablerows.js
+++ /dev/null
@@ -1,2 +0,0 @@
-
-ToolMan._dragsortFactory.makeTableSortable=function(table){if(table==null)return;var helpers=ToolMan.helpers();var coordinates=ToolMan.coordinates();var items=table.getElementsByTagName("tr");helpers.map(items,function(item){var dragGroup=dragsort.makeSortable(item);dragGroup.setThreshold(4);var min,max;dragGroup.addTransform(function(coordinate,dragEvent){return coordinate.constrainTo(min,max);});dragGroup.register('dragstart',function(){var items=table.getElementsByTagName("tr");min=max=coordinates.topLeftOffset(items[0]);for(var i=1,n=items.length;i":"","\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/":"","@(namespace|import)[^;\\n]+[;\\n]":"","'(\\\\.|[^'\\\\])*'":encodeString,'"(\\\\.|[^"\\\\])*"':encodeString,"\\s+":" "});function encode(cssText){return encoder.exec(cssText);};function decode(cssText){return cssText.replace(ENCODED,function(match,index){return _strings[index-1];});};function encodeString(string){return"\x01"+_strings.push(string.replace(UNICODE,function(match,chr){return eval("'\\u"+"0000".slice(chr.length)+chr+"'");}).slice(1,-1).replace(QUOTES,"\\'"));};function getString(value){return STRING.test(value)?_strings[value.slice(1)-1]:value;};var rotater=new RegGrp({Width:"Height",width:"height",Left:"Top",left:"top",Right:"Bottom",right:"bottom",onX:"onY"});function rotate(fn){return rotater.exec(fn);};var eventHandlers=[];function addResize(handler){addRecalc(handler);addEventHandler(window,"onresize",handler);};function addEventHandler(element,type,handler){element.attachEvent(type,handler);eventHandlers.push(arguments);};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler);}catch(ignore){}};addEventHandler(window,"onunload",function(){var handler;while(handler=eventHandlers.pop()){removeEventHandler(handler[0],handler[1],handler[2]);}});function register(handler,element,condition){if(!handler.elements)handler.elements={};if(condition)handler.elements[element.uniqueID]=element;else delete handler.elements[element.uniqueID];return condition;};addEventHandler(window,"onbeforeprint",function(){if(!IE7.CSS.print)new StyleSheet("print");IE7.CSS.print.recalc();});var PIXEL=/^\d+(px)?$/i;var PERCENT=/^\d+%$/;var getPixelValue=function(element,value){if(PIXEL.test(value))return parseInt(value);var style=element.style.left;var runtimeStyle=element.runtimeStyle.left;element.runtimeStyle.left=element.currentStyle.left;element.style.left=value||0;value=element.style.pixelLeft;element.style.left=style;element.runtimeStyle.left=runtimeStyle;return value;};var $IE7="ie7-";var Fix=Base.extend({constructor:function(){this.fixes=[];this.recalcs=[];},init:Undefined});var recalcs=[];function addRecalc(recalc){recalcs.push(recalc);};IE7.recalc=function(){IE7.HTML.recalc();IE7.CSS.recalc();for(var i=0;i1?2:0;var block=cssParser.exec(selectors[i])||"if(0){";if(_wild){block+=format("if(e%1.nodeName!='!'){",_index);}
-var store=_duplicate>1?_TEST:"";block+=format(store+_STORE,_index);block+=Array(match(block,/\{/g).length+1).join("}");fn+=block;}
-eval(format(_FN,reg)+cssParser.unescape(fn)+"return s?null:r}");_cache[selector]=_selectorFunction;}
-return _cache[selector](context||document,single);};var _MSIE5=appVersion<6;var _EVALUATED=/^(href|src)$/;var _ATTRIBUTES={"class":"className","for":"htmlFor"};IE7._indexed=1;IE7._byId=function(document,id){var result=document.all[id]||null;if(!result||result.id==id)return result;for(var i=0;i+~,]|[^(]\+|^)([#.:\[])/g,IMPLIED_SPACE=/(^|,)([^\s>+~])/g,WHITESPACE=/\s*([\s>+~(),]|^|$)\s*/g,WILD_CARD=/\s\*\s/g;;var CSSParser=RegGrp.extend({constructor:function(items){this.base(items);this.sorter=new RegGrp;this.sorter.add(/:not\([^)]*\)/,RegGrp.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4");},ignoreCase:true,escape:function(selector){return this.optimise(this.format(selector));},format:function(selector){return selector.replace(WHITESPACE,"$1").replace(IMPLIED_SPACE,"$1 $2").replace(IMPLIED_ASTERISK,"$1*$2");},optimise:function(selector){return this.sorter.exec(selector.replace(WILD_CARD,">* "));},unescape:function(selector){return decode(selector);}});var _OPERATORS={"":"%1!=null","=":"%1=='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};var _PSEUDO_CLASSES={"first-child":"!IE7._getPreviousElementSibling(e%1)","link":"e%1.currentStyle['ie7-link']=='link'","visited":"e%1.currentStyle['ie7-link']=='visited'"};var _VAR="var p%2=0,i%2,e%2,n%2=e%1.";var _ID="e%1.sourceIndex";var _TEST="var g="+_ID+";if(!p[g]){p[g]=1;";var _STORE="r[r.length]=e%1;if(s)return e%1;";var _FN="var _selectorFunction=function(e0,s){IE7._indexed++;var r=[],p={},reg=[%1],d=document;";var reg;var _index;var _wild;var _list;var _duplicate;var _cache={};var cssParser=new CSSParser({" (\\*|[\\w-]+)#([\\w-]+)":function(match,tagName,id){_wild=false;var replacement="var e%2=IE7._byId(d,'%4');if(e%2&&";if(tagName!="*")replacement+="e%2.nodeName=='%3'&&";replacement+="(e%1==d||e%1.contains(e%2))){";if(_list)replacement+=format("i%1=n%1.length;",_list);return format(replacement,_index++,_index,tagName.toUpperCase(),id);}," (\\*|[\\w-]+)":function(match,tagName){_duplicate++;_wild=tagName=="*";var replacement=_VAR;replacement+=(_wild&&_MSIE5)?"all":"getElementsByTagName('%3')";replacement+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";return format(replacement,_index++,_list=_index,tagName.toUpperCase());},">(\\*|[\\w-]+)":function(match,tagName){var children=_list;_wild=tagName=="*";var replacement=_VAR;replacement+=children?"children":"childNodes";if(!_wild&&children)replacement+=".tags('%3')";replacement+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";if(_wild){replacement+="if(e%2.nodeType==1){";_wild=_MSIE5;}else{if(!children)replacement+="if(e%2.nodeName=='%3'){";}
-return format(replacement,_index++,_list=_index,tagName.toUpperCase());},"\\+(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild)replacement+="if(e%1.nodeName!='!'){";_wild=false;replacement+="e%1=IE7._getNextElementSibling(e%1);if(e%1";if(tagName!="*")replacement+="&&e%1.nodeName=='%2'";replacement+="){";return format(replacement,_index,tagName.toUpperCase());},"~(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild)replacement+="if(e%1.nodeName!='!'){";_wild=false;_duplicate=2;replacement+="while(e%1=e%1.nextSibling){if(e%1.ie7_adjacent==IE7._indexed)break;if(";if(tagName=="*"){replacement+="e%1.nodeType==1";if(_MSIE5)replacement+="&&e%1.nodeName!='!'";}else replacement+="e%1.nodeName=='%2'";replacement+="){e%1.ie7_adjacent=IE7._indexed;";return format(replacement,_index,tagName.toUpperCase());},"#([\\w-]+)":function(match,id){_wild=false;var replacement="if(e%1.id=='%2'){";if(_list)replacement+=format("i%1=n%1.length;",_list);return format(replacement,_index,id);},"\\.([\\w-]+)":function(match,className){_wild=false;reg.push(new RegExp("(^|\\s)"+rescape(className)+"(\\s|$)"));return format("if(e%1.className&®[%2].test(e%1.className)){",_index,reg.length-1);},"\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]":function(match,attr,operator,value){var alias=_ATTRIBUTES[attr]||attr;if(operator){var getAttribute="e%1.getAttribute('%2',2)";if(!_EVALUATED.test(attr)){getAttribute="e%1.%3||"+getAttribute;}
-attr=format("("+getAttribute+")",_index,attr,alias);}else{attr=format("IE7._getAttribute(e%1,'%2')",_index,attr);}
-var replacement=_OPERATORS[operator||""]||"0";if(replacement&&replacement.source){reg.push(new RegExp(format(replacement.source,rescape(cssParser.unescape(value)))));replacement="reg[%2].test(%1)";value=reg.length-1;}
-return"if("+format(replacement,attr,value)+"){";},":+([\\w-]+)(\\(([^)]+)\\))?":function(match,pseudoClass,$2,args){pseudoClass=_PSEUDO_CLASSES[pseudoClass];return"if("+(pseudoClass?format(pseudoClass,_index,args||""):"0")+"){";}});var HYPERLINK=/a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i;var BRACE1=/\s*\{\s*/,BRACE2=/\s*\}\s*/,COMMA=/\s*\,\s*/;var FIRST_LINE_LETTER=/(.*)(:first-(line|letter))/;var styleSheets=document.styleSheets;IE7.CSS=new(Fix.extend({parser:new Parser,screen:"",print:"",styles:[],rules:[],pseudoClasses:appVersion<7?"first\\-child":"",dynamicPseudoClasses:{toString:function(){var strings=[];for(var pseudoClass in this)strings.push(pseudoClass);return strings.join("|");}},init:function(){var NONE="^\x01$";var CLASS="\\[class=?[^\\]]*\\]";var pseudoClasses=[];if(this.pseudoClasses)pseudoClasses.push(this.pseudoClasses);var dynamicPseudoClasses=this.dynamicPseudoClasses.toString();if(dynamicPseudoClasses)pseudoClasses.push(dynamicPseudoClasses);pseudoClasses=pseudoClasses.join("|");var unknown=appVersion<7?["[>+~[(]|([:.])\\w+\\1"]:[CLASS];if(pseudoClasses)unknown.push(":("+pseudoClasses+")");this.UNKNOWN=new RegExp(unknown.join("|")||NONE,"i");var complex=appVersion<7?["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"]:[CLASS];var complexRule=complex.concat();if(pseudoClasses)complexRule.push(":("+pseudoClasses+")");Rule.COMPLEX=new RegExp(complexRule.join("|")||NONE,"ig");if(this.pseudoClasses)complex.push(":("+this.pseudoClasses+")");DynamicRule.COMPLEX=new RegExp(complex.join("|")||NONE,"i");DynamicRule.MATCH=new RegExp(dynamicPseudoClasses?"(.*):("+dynamicPseudoClasses+")(.*)":NONE,"i");this.createStyleSheet();this.refresh();},addEventHandler:function(){addEventHandler.apply(null,arguments);},addFix:function(expression,replacement){this.parser.add(expression,replacement);},addRecalc:function(propertyName,test,handler,replacement){test=new RegExp("([{;\\s])"+propertyName+"\\s*:\\s*"+test+"[^;}]*");var id=this.recalcs.length;if(replacement)replacement=propertyName+":"+replacement;this.addFix(test,function(match,$1){return(replacement?$1+replacement:match)+";ie7-"+match.slice(1)+";ie7_recalc"+id+":1";});this.recalcs.push(arguments);return id;},apply:function(){this.getInlineStyles();new StyleSheet("screen");this.trash();},createStyleSheet:function(){this.styleSheet=document.createStyleSheet();this.styleSheet.ie7=true;this.styleSheet.owningElement.ie7=true;this.styleSheet.cssText=HEADER;},getInlineStyles:function(){var styleSheets=document.getElementsByTagName("style"),styleSheet;for(var i=styleSheets.length-1;(styleSheet=styleSheets[i]);i--){if(!styleSheet.disabled&&!styleSheet.ie7){this.styles.push(styleSheet.innerHTML);}}},getText:function(styleSheet,path){try{var cssText=styleSheet.cssText;}catch(e){cssText="";}
-if(httpRequest)cssText=loadFile(styleSheet.href,path)||cssText;return cssText;},recalc:function(){this.screen.recalc();var RECALCS=/ie7_recalc\d+/g;var start=HEADER.match(/[{,]/g).length;var stop=start+(this.screen.cssText.match(/\{/g)||"").length;var rules=this.styleSheet.rules,rule;var calcs,calc,elements,element,i,j,k,id;for(i=start;i0&&Rule.CLASS.test(simple)){simple=simple.replace(Rule.CLASS,"");classes--;}
-while(tags>0&&Rule.TAG.test(simple)){simple=simple.replace(Rule.TAG,"$1*");tags--;}
-simple+="."+this.className;classes=Math.min(classes,2);tags=Math.min(tags,2);var score=-10*classes-tags;if(score>0){simple=simple+","+Rule.MAP[score]+" "+simple;}
-return simple;},remove:function(element){element.className=element.className.replace(this.MATCH,"$1");},toString:function(){return format("%1 {%2}",this.selectorText,this.cssText);}},{CHILD:/>/g,CLASS:/\.[\w-]+/,CLASSES:/[.:\[]/g,MULTI:/(\.[\w-]+)+/g,PREFIX:"ie7_class",TAG:/^\w+|([\s>+~])\w+/,TAGS:/^\w|[\s>+~]\w/g,MAP:{1:"html",2:"html body",10:".ie7_html",11:"html.ie7_html",12:"html.ie7_html body",20:".ie7_html .ie7_body",21:"html.ie7_html .ie7_body",22:"html.ie7_html body.ie7_body"}});var DynamicRule=Rule.extend({constructor:function(selector,attach,dynamicPseudoClass,target,cssText){this.attach=attach||"*";this.dynamicPseudoClass=IE7.CSS.dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.base(selector,cssText);},recalc:function(){var attaches=cssQuery(this.attach),attach;for(var i=0;attach=attaches[i];i++){var target=this.target?cssQuery(this.target,attach):[attach];if(target.length)this.dynamicPseudoClass.apply(attach,target,this);}}});var DynamicPseudoClass=Base.extend({constructor:function(name,apply){this.name=name;this.apply=apply;this.instances={};IE7.CSS.dynamicPseudoClasses[name]=this;},register:function(instance){var _class=instance[2];instance.id=_class.id+instance[0].uniqueID;if(!this.instances[instance.id]){var target=instance[1],j;for(j=0;j*:"+(type=="marginTop"?"first":"last")+"-child",element,true);if(child&&child.currentStyle.styleFloat=="none"&&IE7.hasLayout(child)){collapseMargin(child,type);margin=_getMargin(element,element.currentStyle[type]);childMargin=_getMargin(child,child.currentStyle[type]);if(margin<0||childMargin<0){element.runtimeStyle[type]=margin+childMargin;}else{element.runtimeStyle[type]=Math.max(childMargin,margin);}
-child.runtimeStyle[type]="0px";}}};function _getMargin(element,value){return value=="auto"?0:getPixelValue(element,value);};var UNIT=/^[.\d][\w%]*$/,AUTO=/^(auto|0cm)$/;var applyWidth,applyHeight;IE7.Layout.borderBox=function(element){applyWidth(element);applyHeight(element);};var fixWidth=function(HEIGHT){applyWidth=function(element){if(!PERCENT.test(element.currentStyle.width))fixWidth(element);collapseMargins(element);};function fixWidth(element,value){if(!element.runtimeStyle.fixedWidth){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;setOverrideStyle(element,"width",element.runtimeStyle.fixedWidth);}};function layoutWidth(element){if(!isFixed(element)){var layoutParent=element.offsetParent;while(layoutParent&&!IE7.hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;}
-return(layoutParent||viewport).clientWidth;};function getPixelWidth(element,value){if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutWidth(element));return getPixelValue(element,value);};var getFixedWidth=function(element,value){var borderBox=element.currentStyle["box-sizing"]=="border-box";var adjustment=0;if(quirksMode&&!borderBox)
-adjustment+=getBorderWidth(element)+getWidth(element,"padding");else if(!quirksMode&&borderBox)
-adjustment-=getBorderWidth(element)+getWidth(element,"padding");return getPixelWidth(element,value)+adjustment;};function getBorderWidth(element){return element.offsetWidth-element.clientWidth;};function getWidth(element,type){return getPixelWidth(element,element.currentStyle[type+"Left"])+getPixelWidth(element,element.currentStyle[type+"Right"]);};HEADER+="*{minWidth:none;maxWidth:none;min-width:none;max-width:none}";layout.minWidth=function(element){if(element.currentStyle["min-width"]!=null){element.style.minWidth=element.currentStyle["min-width"];}
-if(register(arguments.callee,element,element.currentStyle.minWidth!="none")){layout.boxSizing(element);fixWidth(element);resizeWidth(element);}};eval("IE7.Layout.maxWidth="+String(layout.minWidth).replace(/min/g,"max"));function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.minWidth!="none"&&width<=getFixedWidth(element,element.currentStyle.minWidth)){element.runtimeStyle.width=element.currentStyle.minWidth;}else if(element.currentStyle.maxWidth!="none"&&width>=getFixedWidth(element,element.currentStyle.maxWidth)){element.runtimeStyle.width=element.currentStyle.maxWidth;}else{element.runtimeStyle.width=element.runtimeStyle.fixedWidth;}};function fixRight(element){if(register(fixRight,element,/^(fixed|absolute)$/.test(element.currentStyle.position)&&getDefinedStyle(element,"left")!="auto"&&getDefinedStyle(element,"right")!="auto"&&AUTO.test(getDefinedStyle(element,"width")))){resizeRight(element);IE7.Layout.boxSizing(element);}};IE7.Layout.fixRight=fixRight;function resizeRight(element){var left=getPixelWidth(element,element.runtimeStyle._left||element.currentStyle.left);var width=layoutWidth(element)-getPixelWidth(element,element.currentStyle.right)-left-getWidth(element,"margin");if(parseInt(element.runtimeStyle.width)==width)return;element.runtimeStyle.width="";if(isFixed(element)||HEIGHT||element.offsetWidth=5.5&&appVersion<7){IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/,function(match,$1,$2,url,$4){url=getString(url);return PNG.test(url)?"filter:"+format(PNG_FILTER,url,"crop")+";zoom:1;background"+($1||"")+":"+($2||"")+"none"+($4||""):match;});IE7.HTML.addRecalc("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImage(element);addEventHandler(element,"onpropertychange",function(){if(!printing&&event.propertyName=="src"&&element.src.indexOf(BLANK_GIF)==-1)fixImage(element);});});var printing=false;addEventHandler(window,"onbeforeprint",function(){printing=true;for(var i=0;i=7)return;IE7.CSS.addRecalc("position","fixed",_positionFixed,"absolute");IE7.CSS.addRecalc("background(-attachment)?","[^};]*fixed",_backgroundFixed);var $viewport=quirksMode?"body":"documentElement";function _fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundRepeat="no-repeat";body.runtimeStyle.backgroundImage="url("+BLANK_GIF+")";}
-body.runtimeStyle.backgroundAttachment="fixed";}
-_fixBackground=Undefined;};var _tmp=createTempElement("img");function _isFixed(element){return element?isFixed(element)||_isFixed(element.parentElement):false;};function _setExpression(element,propertyName,expression){setTimeout("document.all."+element.uniqueID+".runtimeStyle.setExpression('"+propertyName+"','"+expression+"')",0);};function _backgroundFixed(element){if(register(_backgroundFixed,element,element.currentStyle.backgroundAttachment=="fixed"&&!element.contains(body))){_fixBackground();bgLeft(element);bgTop(element);_backgroundPosition(element);}};function _backgroundPosition(element){_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=element.canHaveChildren?element:element.parentElement;parentElement.appendChild(_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(_tmp);};function bgLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!_isFixed(element)){_setExpression(element,"backgroundPositionX","(parseInt(runtimeStyle.offsetLeft)+document."+$viewport+".scrollLeft)||0");}};eval(rotate(bgLeft));function setOffsetLeft(element){var propertyName=_isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-
-element.getBoundingClientRect().left-element.clientLeft+2;};eval(rotate(setOffsetLeft));function getOffsetLeft(element,position){switch(position){case"left":case"top":return 0;case"right":case"bottom":return viewport.clientWidth-_tmp.offsetWidth;case"center":return(viewport.clientWidth-_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-_tmp.offsetWidth)*parseFloat(position)/100);}
-_tmp.style.left=position;return _tmp.offsetLeft;}};eval(rotate(getOffsetLeft));function _positionFixed(element){if(register(_positionFixed,element,isFixed(element))){setOverrideStyle(element,"position","absolute");setOverrideStyle(element,"left",element.currentStyle.left);setOverrideStyle(element,"top",element.currentStyle.top);_fixBackground();IE7.Layout.fixRight(element);_foregroundPosition(element);}};function _foregroundPosition(element,recalc){positionTop(element,recalc);positionLeft(element,recalc,true);if(!element.runtimeStyle.autoLeft&&element.currentStyle.marginLeft=="auto"&&element.currentStyle.right!="auto"){var left=viewport.clientWidth-getPixelWidth(element,element.currentStyle.right)-
-getPixelWidth(element,element.runtimeStyle._left)-element.clientWidth;if(element.currentStyle.marginRight=="auto")left=parseInt(left/2);if(_isFixed(element.offsetParent))element.runtimeStyle.pixelLeft+=left;else element.runtimeStyle.shiftLeft=left;}
-clipWidth(element);clipHeight(element);};function clipWidth(element){var fixWidth=element.runtimeStyle.fixWidth;element.runtimeStyle.borderRightWidth="";element.runtimeStyle.width=fixWidth?getPixelWidth(element,fixWidth):"";if(element.currentStyle.width!="auto"){var rect=element.getBoundingClientRect();var width=element.offsetWidth-viewport.clientWidth+rect.left-2;if(width>=0){element.runtimeStyle.borderRightWidth="0px";width=Math.max(getPixelValue(element,element.currentStyle.width)-width,0);setOverrideStyle(element,"width",width);return width;}}};eval(rotate(clipWidth));function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width)){element.runtimeStyle.fixWidth=element.currentStyle.width;}
-if(element.runtimeStyle.fixWidth){element.runtimeStyle.width=getPixelWidth(element,element.runtimeStyle.fixWidth);}
-element.runtimeStyle.shiftLeft=0;element.runtimeStyle._left=element.currentStyle.left;element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto";element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;if(!recalc&&!_isFixed(element.offsetParent)){_setExpression(element,"pixelLeft","runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document."+$viewport+".scrollLeft");}};eval(rotate(positionLeft));function getScreenLeft(element){var screenLeft=element.offsetLeft,nested=1;if(element.runtimeStyle.autoLeft){screenLeft=viewport.clientWidth-element.offsetWidth-getPixelWidth(element,element.currentStyle.right);}
-if(element.currentStyle.marginLeft!="auto"){screenLeft-=getPixelWidth(element,element.currentStyle.marginLeft);}
-while(element=element.offsetParent){if(element.currentStyle.position!="static")nested=-1;screenLeft+=element.offsetLeft*nested;}
-return screenLeft;};eval(rotate(getScreenLeft));function getPixelWidth(element,value){return PERCENT.test(value)?parseInt(parseFloat(value)/100*viewport.clientWidth):getPixelValue(element,value);};eval(rotate(getPixelWidth));function _resize(){var elements=_backgroundFixed.elements;for(var i in elements)_backgroundPosition(elements[i]);elements=_positionFixed.elements;for(i in elements){_foregroundPosition(elements[i],true);_foregroundPosition(elements[i],true);}
-_timer=0;};var _timer;addResize(function(){if(!_timer)_timer=setTimeout(_resize,0);});};var WRAPPER_STYLE={backgroundColor:"transparent",backgroundImage:"none",backgroundPositionX:null,backgroundPositionY:null,backgroundRepeat:null,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none",borderLeftWidth:0,height:null,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,width:"100%"};IE7.CSS.addRecalc("overflow","visible",function(element){if(element.parentNode.ie7_wrapped)return;if(IE7.Layout&&element.currentStyle["max-height"]!="auto"){IE7.Layout.maxHeight(element);}
-if(element.currentStyle.marginLeft=="auto")element.style.marginLeft=0;if(element.currentStyle.marginRight=="auto")element.style.marginRight=0;var wrapper=document.createElement(ANON);wrapper.ie7_wrapped=element;for(var propertyName in WRAPPER_STYLE){wrapper.style[propertyName]=element.currentStyle[propertyName];if(WRAPPER_STYLE[propertyName]!=null){element.runtimeStyle[propertyName]=WRAPPER_STYLE[propertyName];}}
-wrapper.style.display="block";wrapper.style.position="relative";element.runtimeStyle.position="absolute";element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(element);});function ie7Quirks(){var FONT_SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i":"","\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/":"","@(namespace|import)[^;\\n]+[;\\n]":"","'(\\\\.|[^'\\\\])*'":encodeString,'"(\\\\.|[^"\\\\])*"':encodeString,"\\s+":" "});function encode(cssText){return encoder.exec(cssText);};function decode(cssText){return cssText.replace(ENCODED,function(match,index){return _strings[index-1];});};function encodeString(string){return"\x01"+_strings.push(string.replace(UNICODE,function(match,chr){return eval("'\\u"+"0000".slice(chr.length)+chr+"'");}).slice(1,-1).replace(QUOTES,"\\'"));};function getString(value){return STRING.test(value)?_strings[value.slice(1)-1]:value;};var rotater=new RegGrp({Width:"Height",width:"height",Left:"Top",left:"top",Right:"Bottom",right:"bottom",onX:"onY"});function rotate(fn){return rotater.exec(fn);};var eventHandlers=[];function addResize(handler){addRecalc(handler);addEventHandler(window,"onresize",handler);};function addEventHandler(element,type,handler){element.attachEvent(type,handler);eventHandlers.push(arguments);};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler);}catch(ignore){}};addEventHandler(window,"onunload",function(){var handler;while(handler=eventHandlers.pop()){removeEventHandler(handler[0],handler[1],handler[2]);}});function register(handler,element,condition){if(!handler.elements)handler.elements={};if(condition)handler.elements[element.uniqueID]=element;else delete handler.elements[element.uniqueID];return condition;};addEventHandler(window,"onbeforeprint",function(){if(!IE7.CSS.print)new StyleSheet("print");IE7.CSS.print.recalc();});var PIXEL=/^\d+(px)?$/i;var PERCENT=/^\d+%$/;var getPixelValue=function(element,value){if(PIXEL.test(value))return parseInt(value);var style=element.style.left;var runtimeStyle=element.runtimeStyle.left;element.runtimeStyle.left=element.currentStyle.left;element.style.left=value||0;value=element.style.pixelLeft;element.style.left=style;element.runtimeStyle.left=runtimeStyle;return value;};var $IE7="ie7-";var Fix=Base.extend({constructor:function(){this.fixes=[];this.recalcs=[];},init:Undefined});var recalcs=[];function addRecalc(recalc){recalcs.push(recalc);};IE7.recalc=function(){IE7.HTML.recalc();IE7.CSS.recalc();for(var i=0;i1?2:0;var block=cssParser.exec(selectors[i])||"if(0){";if(_wild){block+=format("if(e%1.nodeName!='!'){",_index);}
-var store=_duplicate>1?_TEST:"";block+=format(store+_STORE,_index);block+=Array(match(block,/\{/g).length+1).join("}");fn+=block;}
-eval(format(_FN,reg)+cssParser.unescape(fn)+"return s?null:r}");_cache[selector]=_selectorFunction;}
-return _cache[selector](context||document,single);};var _MSIE5=appVersion<6;var _EVALUATED=/^(href|src)$/;var _ATTRIBUTES={"class":"className","for":"htmlFor"};IE7._indexed=1;IE7._byId=function(document,id){var result=document.all[id]||null;if(!result||result.id==id)return result;for(var i=0;i+~,]|[^(]\+|^)([#.:\[])/g,IMPLIED_SPACE=/(^|,)([^\s>+~])/g,WHITESPACE=/\s*([\s>+~(),]|^|$)\s*/g,WILD_CARD=/\s\*\s/g;;var CSSParser=RegGrp.extend({constructor:function(items){this.base(items);this.sorter=new RegGrp;this.sorter.add(/:not\([^)]*\)/,RegGrp.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4");},ignoreCase:true,escape:function(selector){return this.optimise(this.format(selector));},format:function(selector){return selector.replace(WHITESPACE,"$1").replace(IMPLIED_SPACE,"$1 $2").replace(IMPLIED_ASTERISK,"$1*$2");},optimise:function(selector){return this.sorter.exec(selector.replace(WILD_CARD,">* "));},unescape:function(selector){return decode(selector);}});var _OPERATORS={"":"%1!=null","=":"%1=='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};var _PSEUDO_CLASSES={"first-child":"!IE7._getPreviousElementSibling(e%1)","link":"e%1.currentStyle['ie7-link']=='link'","visited":"e%1.currentStyle['ie7-link']=='visited'"};var _VAR="var p%2=0,i%2,e%2,n%2=e%1.";var _ID="e%1.sourceIndex";var _TEST="var g="+_ID+";if(!p[g]){p[g]=1;";var _STORE="r[r.length]=e%1;if(s)return e%1;";var _FN="var _selectorFunction=function(e0,s){IE7._indexed++;var r=[],p={},reg=[%1],d=document;";var reg;var _index;var _wild;var _list;var _duplicate;var _cache={};var cssParser=new CSSParser({" (\\*|[\\w-]+)#([\\w-]+)":function(match,tagName,id){_wild=false;var replacement="var e%2=IE7._byId(d,'%4');if(e%2&&";if(tagName!="*")replacement+="e%2.nodeName=='%3'&&";replacement+="(e%1==d||e%1.contains(e%2))){";if(_list)replacement+=format("i%1=n%1.length;",_list);return format(replacement,_index++,_index,tagName.toUpperCase(),id);}," (\\*|[\\w-]+)":function(match,tagName){_duplicate++;_wild=tagName=="*";var replacement=_VAR;replacement+=(_wild&&_MSIE5)?"all":"getElementsByTagName('%3')";replacement+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";return format(replacement,_index++,_list=_index,tagName.toUpperCase());},">(\\*|[\\w-]+)":function(match,tagName){var children=_list;_wild=tagName=="*";var replacement=_VAR;replacement+=children?"children":"childNodes";if(!_wild&&children)replacement+=".tags('%3')";replacement+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";if(_wild){replacement+="if(e%2.nodeType==1){";_wild=_MSIE5;}else{if(!children)replacement+="if(e%2.nodeName=='%3'){";}
-return format(replacement,_index++,_list=_index,tagName.toUpperCase());},"\\+(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild)replacement+="if(e%1.nodeName!='!'){";_wild=false;replacement+="e%1=IE7._getNextElementSibling(e%1);if(e%1";if(tagName!="*")replacement+="&&e%1.nodeName=='%2'";replacement+="){";return format(replacement,_index,tagName.toUpperCase());},"~(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild)replacement+="if(e%1.nodeName!='!'){";_wild=false;_duplicate=2;replacement+="while(e%1=e%1.nextSibling){if(e%1.ie7_adjacent==IE7._indexed)break;if(";if(tagName=="*"){replacement+="e%1.nodeType==1";if(_MSIE5)replacement+="&&e%1.nodeName!='!'";}else replacement+="e%1.nodeName=='%2'";replacement+="){e%1.ie7_adjacent=IE7._indexed;";return format(replacement,_index,tagName.toUpperCase());},"#([\\w-]+)":function(match,id){_wild=false;var replacement="if(e%1.id=='%2'){";if(_list)replacement+=format("i%1=n%1.length;",_list);return format(replacement,_index,id);},"\\.([\\w-]+)":function(match,className){_wild=false;reg.push(new RegExp("(^|\\s)"+rescape(className)+"(\\s|$)"));return format("if(e%1.className&®[%2].test(e%1.className)){",_index,reg.length-1);},"\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]":function(match,attr,operator,value){var alias=_ATTRIBUTES[attr]||attr;if(operator){var getAttribute="e%1.getAttribute('%2',2)";if(!_EVALUATED.test(attr)){getAttribute="e%1.%3||"+getAttribute;}
-attr=format("("+getAttribute+")",_index,attr,alias);}else{attr=format("IE7._getAttribute(e%1,'%2')",_index,attr);}
-var replacement=_OPERATORS[operator||""]||"0";if(replacement&&replacement.source){reg.push(new RegExp(format(replacement.source,rescape(cssParser.unescape(value)))));replacement="reg[%2].test(%1)";value=reg.length-1;}
-return"if("+format(replacement,attr,value)+"){";},":+([\\w-]+)(\\(([^)]+)\\))?":function(match,pseudoClass,$2,args){pseudoClass=_PSEUDO_CLASSES[pseudoClass];return"if("+(pseudoClass?format(pseudoClass,_index,args||""):"0")+"){";}});var HYPERLINK=/a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i;var BRACE1=/\s*\{\s*/,BRACE2=/\s*\}\s*/,COMMA=/\s*\,\s*/;var FIRST_LINE_LETTER=/(.*)(:first-(line|letter))/;var styleSheets=document.styleSheets;IE7.CSS=new(Fix.extend({parser:new Parser,screen:"",print:"",styles:[],rules:[],pseudoClasses:appVersion<7?"first\\-child":"",dynamicPseudoClasses:{toString:function(){var strings=[];for(var pseudoClass in this)strings.push(pseudoClass);return strings.join("|");}},init:function(){var NONE="^\x01$";var CLASS="\\[class=?[^\\]]*\\]";var pseudoClasses=[];if(this.pseudoClasses)pseudoClasses.push(this.pseudoClasses);var dynamicPseudoClasses=this.dynamicPseudoClasses.toString();if(dynamicPseudoClasses)pseudoClasses.push(dynamicPseudoClasses);pseudoClasses=pseudoClasses.join("|");var unknown=appVersion<7?["[>+~[(]|([:.])\\w+\\1"]:[CLASS];if(pseudoClasses)unknown.push(":("+pseudoClasses+")");this.UNKNOWN=new RegExp(unknown.join("|")||NONE,"i");var complex=appVersion<7?["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"]:[CLASS];var complexRule=complex.concat();if(pseudoClasses)complexRule.push(":("+pseudoClasses+")");Rule.COMPLEX=new RegExp(complexRule.join("|")||NONE,"ig");if(this.pseudoClasses)complex.push(":("+this.pseudoClasses+")");DynamicRule.COMPLEX=new RegExp(complex.join("|")||NONE,"i");DynamicRule.MATCH=new RegExp(dynamicPseudoClasses?"(.*):("+dynamicPseudoClasses+")(.*)":NONE,"i");this.createStyleSheet();this.refresh();},addEventHandler:function(){addEventHandler.apply(null,arguments);},addFix:function(expression,replacement){this.parser.add(expression,replacement);},addRecalc:function(propertyName,test,handler,replacement){test=new RegExp("([{;\\s])"+propertyName+"\\s*:\\s*"+test+"[^;}]*");var id=this.recalcs.length;if(replacement)replacement=propertyName+":"+replacement;this.addFix(test,function(match,$1){return(replacement?$1+replacement:match)+";ie7-"+match.slice(1)+";ie7_recalc"+id+":1";});this.recalcs.push(arguments);return id;},apply:function(){this.getInlineStyles();new StyleSheet("screen");this.trash();},createStyleSheet:function(){this.styleSheet=document.createStyleSheet();this.styleSheet.ie7=true;this.styleSheet.owningElement.ie7=true;this.styleSheet.cssText=HEADER;},getInlineStyles:function(){var styleSheets=document.getElementsByTagName("style"),styleSheet;for(var i=styleSheets.length-1;(styleSheet=styleSheets[i]);i--){if(!styleSheet.disabled&&!styleSheet.ie7){this.styles.push(styleSheet.innerHTML);}}},getText:function(styleSheet,path){try{var cssText=styleSheet.cssText;}catch(e){cssText="";}
-if(httpRequest)cssText=loadFile(styleSheet.href,path)||cssText;return cssText;},recalc:function(){this.screen.recalc();var RECALCS=/ie7_recalc\d+/g;var start=HEADER.match(/[{,]/g).length;var stop=start+(this.screen.cssText.match(/\{/g)||"").length;var rules=this.styleSheet.rules,rule;var calcs,calc,elements,element,i,j,k,id;for(i=start;i0&&Rule.CLASS.test(simple)){simple=simple.replace(Rule.CLASS,"");classes--;}
-while(tags>0&&Rule.TAG.test(simple)){simple=simple.replace(Rule.TAG,"$1*");tags--;}
-simple+="."+this.className;classes=Math.min(classes,2);tags=Math.min(tags,2);var score=-10*classes-tags;if(score>0){simple=simple+","+Rule.MAP[score]+" "+simple;}
-return simple;},remove:function(element){element.className=element.className.replace(this.MATCH,"$1");},toString:function(){return format("%1 {%2}",this.selectorText,this.cssText);}},{CHILD:/>/g,CLASS:/\.[\w-]+/,CLASSES:/[.:\[]/g,MULTI:/(\.[\w-]+)+/g,PREFIX:"ie7_class",TAG:/^\w+|([\s>+~])\w+/,TAGS:/^\w|[\s>+~]\w/g,MAP:{1:"html",2:"html body",10:".ie7_html",11:"html.ie7_html",12:"html.ie7_html body",20:".ie7_html .ie7_body",21:"html.ie7_html .ie7_body",22:"html.ie7_html body.ie7_body"}});var DynamicRule=Rule.extend({constructor:function(selector,attach,dynamicPseudoClass,target,cssText){this.attach=attach||"*";this.dynamicPseudoClass=IE7.CSS.dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.base(selector,cssText);},recalc:function(){var attaches=cssQuery(this.attach),attach;for(var i=0;attach=attaches[i];i++){var target=this.target?cssQuery(this.target,attach):[attach];if(target.length)this.dynamicPseudoClass.apply(attach,target,this);}}});var DynamicPseudoClass=Base.extend({constructor:function(name,apply){this.name=name;this.apply=apply;this.instances={};IE7.CSS.dynamicPseudoClasses[name]=this;},register:function(instance){var _class=instance[2];instance.id=_class.id+instance[0].uniqueID;if(!this.instances[instance.id]){var target=instance[1],j;for(j=0;j*:"+(type=="marginTop"?"first":"last")+"-child",element,true);if(child&&child.currentStyle.styleFloat=="none"&&IE7.hasLayout(child)){collapseMargin(child,type);margin=_getMargin(element,element.currentStyle[type]);childMargin=_getMargin(child,child.currentStyle[type]);if(margin<0||childMargin<0){element.runtimeStyle[type]=margin+childMargin;}else{element.runtimeStyle[type]=Math.max(childMargin,margin);}
-child.runtimeStyle[type]="0px";}}};function _getMargin(element,value){return value=="auto"?0:getPixelValue(element,value);};var UNIT=/^[.\d][\w%]*$/,AUTO=/^(auto|0cm)$/;var applyWidth,applyHeight;IE7.Layout.borderBox=function(element){applyWidth(element);applyHeight(element);};var fixWidth=function(HEIGHT){applyWidth=function(element){if(!PERCENT.test(element.currentStyle.width))fixWidth(element);collapseMargins(element);};function fixWidth(element,value){if(!element.runtimeStyle.fixedWidth){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;setOverrideStyle(element,"width",element.runtimeStyle.fixedWidth);}};function layoutWidth(element){if(!isFixed(element)){var layoutParent=element.offsetParent;while(layoutParent&&!IE7.hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;}
-return(layoutParent||viewport).clientWidth;};function getPixelWidth(element,value){if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutWidth(element));return getPixelValue(element,value);};var getFixedWidth=function(element,value){var borderBox=element.currentStyle["box-sizing"]=="border-box";var adjustment=0;if(quirksMode&&!borderBox)
-adjustment+=getBorderWidth(element)+getWidth(element,"padding");else if(!quirksMode&&borderBox)
-adjustment-=getBorderWidth(element)+getWidth(element,"padding");return getPixelWidth(element,value)+adjustment;};function getBorderWidth(element){return element.offsetWidth-element.clientWidth;};function getWidth(element,type){return getPixelWidth(element,element.currentStyle[type+"Left"])+getPixelWidth(element,element.currentStyle[type+"Right"]);};HEADER+="*{minWidth:none;maxWidth:none;min-width:none;max-width:none}";layout.minWidth=function(element){if(element.currentStyle["min-width"]!=null){element.style.minWidth=element.currentStyle["min-width"];}
-if(register(arguments.callee,element,element.currentStyle.minWidth!="none")){layout.boxSizing(element);fixWidth(element);resizeWidth(element);}};eval("IE7.Layout.maxWidth="+String(layout.minWidth).replace(/min/g,"max"));function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.minWidth!="none"&&width<=getFixedWidth(element,element.currentStyle.minWidth)){element.runtimeStyle.width=element.currentStyle.minWidth;}else if(element.currentStyle.maxWidth!="none"&&width>=getFixedWidth(element,element.currentStyle.maxWidth)){element.runtimeStyle.width=element.currentStyle.maxWidth;}else{element.runtimeStyle.width=element.runtimeStyle.fixedWidth;}};function fixRight(element){if(register(fixRight,element,/^(fixed|absolute)$/.test(element.currentStyle.position)&&getDefinedStyle(element,"left")!="auto"&&getDefinedStyle(element,"right")!="auto"&&AUTO.test(getDefinedStyle(element,"width")))){resizeRight(element);IE7.Layout.boxSizing(element);}};IE7.Layout.fixRight=fixRight;function resizeRight(element){var left=getPixelWidth(element,element.runtimeStyle._left||element.currentStyle.left);var width=layoutWidth(element)-getPixelWidth(element,element.currentStyle.right)-left-getWidth(element,"margin");if(parseInt(element.runtimeStyle.width)==width)return;element.runtimeStyle.width="";if(isFixed(element)||HEIGHT||element.offsetWidth=5.5&&appVersion<7){IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/,function(match,$1,$2,url,$4){url=getString(url);return PNG.test(url)?"filter:"+format(PNG_FILTER,url,"crop")+";zoom:1;background"+($1||"")+":"+($2||"")+"none"+($4||""):match;});IE7.HTML.addRecalc("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImage(element);addEventHandler(element,"onpropertychange",function(){if(!printing&&event.propertyName=="src"&&element.src.indexOf(BLANK_GIF)==-1)fixImage(element);});});var printing=false;addEventHandler(window,"onbeforeprint",function(){printing=true;for(var i=0;i=7)return;IE7.CSS.addRecalc("position","fixed",_positionFixed,"absolute");IE7.CSS.addRecalc("background(-attachment)?","[^};]*fixed",_backgroundFixed);var $viewport=quirksMode?"body":"documentElement";function _fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundRepeat="no-repeat";body.runtimeStyle.backgroundImage="url("+BLANK_GIF+")";}
-body.runtimeStyle.backgroundAttachment="fixed";}
-_fixBackground=Undefined;};var _tmp=createTempElement("img");function _isFixed(element){return element?isFixed(element)||_isFixed(element.parentElement):false;};function _setExpression(element,propertyName,expression){setTimeout("document.all."+element.uniqueID+".runtimeStyle.setExpression('"+propertyName+"','"+expression+"')",0);};function _backgroundFixed(element){if(register(_backgroundFixed,element,element.currentStyle.backgroundAttachment=="fixed"&&!element.contains(body))){_fixBackground();bgLeft(element);bgTop(element);_backgroundPosition(element);}};function _backgroundPosition(element){_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=element.canHaveChildren?element:element.parentElement;parentElement.appendChild(_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(_tmp);};function bgLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!_isFixed(element)){_setExpression(element,"backgroundPositionX","(parseInt(runtimeStyle.offsetLeft)+document."+$viewport+".scrollLeft)||0");}};eval(rotate(bgLeft));function setOffsetLeft(element){var propertyName=_isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-
-element.getBoundingClientRect().left-element.clientLeft+2;};eval(rotate(setOffsetLeft));function getOffsetLeft(element,position){switch(position){case"left":case"top":return 0;case"right":case"bottom":return viewport.clientWidth-_tmp.offsetWidth;case"center":return(viewport.clientWidth-_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-_tmp.offsetWidth)*parseFloat(position)/100);}
-_tmp.style.left=position;return _tmp.offsetLeft;}};eval(rotate(getOffsetLeft));function _positionFixed(element){if(register(_positionFixed,element,isFixed(element))){setOverrideStyle(element,"position","absolute");setOverrideStyle(element,"left",element.currentStyle.left);setOverrideStyle(element,"top",element.currentStyle.top);_fixBackground();IE7.Layout.fixRight(element);_foregroundPosition(element);}};function _foregroundPosition(element,recalc){positionTop(element,recalc);positionLeft(element,recalc,true);if(!element.runtimeStyle.autoLeft&&element.currentStyle.marginLeft=="auto"&&element.currentStyle.right!="auto"){var left=viewport.clientWidth-getPixelWidth(element,element.currentStyle.right)-
-getPixelWidth(element,element.runtimeStyle._left)-element.clientWidth;if(element.currentStyle.marginRight=="auto")left=parseInt(left/2);if(_isFixed(element.offsetParent))element.runtimeStyle.pixelLeft+=left;else element.runtimeStyle.shiftLeft=left;}
-clipWidth(element);clipHeight(element);};function clipWidth(element){var fixWidth=element.runtimeStyle.fixWidth;element.runtimeStyle.borderRightWidth="";element.runtimeStyle.width=fixWidth?getPixelWidth(element,fixWidth):"";if(element.currentStyle.width!="auto"){var rect=element.getBoundingClientRect();var width=element.offsetWidth-viewport.clientWidth+rect.left-2;if(width>=0){element.runtimeStyle.borderRightWidth="0px";width=Math.max(getPixelValue(element,element.currentStyle.width)-width,0);setOverrideStyle(element,"width",width);return width;}}};eval(rotate(clipWidth));function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width)){element.runtimeStyle.fixWidth=element.currentStyle.width;}
-if(element.runtimeStyle.fixWidth){element.runtimeStyle.width=getPixelWidth(element,element.runtimeStyle.fixWidth);}
-element.runtimeStyle.shiftLeft=0;element.runtimeStyle._left=element.currentStyle.left;element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto";element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;if(!recalc&&!_isFixed(element.offsetParent)){_setExpression(element,"pixelLeft","runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document."+$viewport+".scrollLeft");}};eval(rotate(positionLeft));function getScreenLeft(element){var screenLeft=element.offsetLeft,nested=1;if(element.runtimeStyle.autoLeft){screenLeft=viewport.clientWidth-element.offsetWidth-getPixelWidth(element,element.currentStyle.right);}
-if(element.currentStyle.marginLeft!="auto"){screenLeft-=getPixelWidth(element,element.currentStyle.marginLeft);}
-while(element=element.offsetParent){if(element.currentStyle.position!="static")nested=-1;screenLeft+=element.offsetLeft*nested;}
-return screenLeft;};eval(rotate(getScreenLeft));function getPixelWidth(element,value){return PERCENT.test(value)?parseInt(parseFloat(value)/100*viewport.clientWidth):getPixelValue(element,value);};eval(rotate(getPixelWidth));function _resize(){var elements=_backgroundFixed.elements;for(var i in elements)_backgroundPosition(elements[i]);elements=_positionFixed.elements;for(i in elements){_foregroundPosition(elements[i],true);_foregroundPosition(elements[i],true);}
-_timer=0;};var _timer;addResize(function(){if(!_timer)_timer=setTimeout(_resize,0);});};var WRAPPER_STYLE={backgroundColor:"transparent",backgroundImage:"none",backgroundPositionX:null,backgroundPositionY:null,backgroundRepeat:null,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none",borderLeftWidth:0,height:null,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,width:"100%"};IE7.CSS.addRecalc("overflow","visible",function(element){if(element.parentNode.ie7_wrapped)return;if(IE7.Layout&&element.currentStyle["max-height"]!="auto"){IE7.Layout.maxHeight(element);}
-if(element.currentStyle.marginLeft=="auto")element.style.marginLeft=0;if(element.currentStyle.marginRight=="auto")element.style.marginRight=0;var wrapper=document.createElement(ANON);wrapper.ie7_wrapped=element;for(var propertyName in WRAPPER_STYLE){wrapper.style[propertyName]=element.currentStyle[propertyName];if(WRAPPER_STYLE[propertyName]!=null){element.runtimeStyle[propertyName]=WRAPPER_STYLE[propertyName];}}
-wrapper.style.display="block";wrapper.style.position="relative";element.runtimeStyle.position="absolute";element.parentNode.insertBefore(wrapper,element);wrapper.appendChild(element);});function ie7Quirks(){var FONT_SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i=%2",a,b,position,last,"&&","%","==");if(negate)query="!("+query+")";return query;};_PSEUDO_CLASSES={"link":"e%1.currentStyle['ie7-link']=='link'","visited":"e%1.currentStyle['ie7-link']=='visited'","checked":"e%1.checked","contains":"e%1.innerText.indexOf('%2')!=-1","disabled":"e%1.isDisabled","empty":"IE7._isEmpty(e%1)","enabled":"e%1.disabled===false","first-child":"!IE7._getPreviousElementSibling(e%1)","lang":"IE7._isLang(e%1,'%2')","last-child":"!IE7._getNextElementSibling(e%1)","only-child":"!IE7._getPreviousElementSibling(e%1)&&!IE7._getNextElementSibling(e%1)","target":"e%1.id==location.hash.slice(1)","indeterminate":"e%1.indeterminate"};IE7._register=function(element){if(element.rows){element.ie7_length=element.rows.length;element.ie7_lookup="rowIndex";}else if(element.cells){element.ie7_length=element.cells.length;element.ie7_lookup="cellIndex";}else if(element.ie7_indexed!=IE7._indexed){var index=0;var child=element.firstChild;while(child){if(child.nodeType==1&&child.nodeName!="!"){child.ie7_index=++index;}
-child=child.nextSibling;}
-element.ie7_length=index;element.ie7_lookup="ie7_index";}
-element.ie7_indexed=IE7._indexed;return element;};var keys=cssParser[_KEYS];var pseudoClass=keys[keys.length-1];keys.length--;cssParser.merge({":not\\((\\*|[\\w-]+)?([^)]*)\\)":function(match,tagName,filters){var replacement=(tagName&&tagName!="*")?format("if(e%1.nodeName=='%2'){",_index,tagName.toUpperCase()):"";replacement+=cssParser.exec(filters);return"if(!"+replacement.slice(2,-1).replace(/\)\{if\(/g,"&&")+"){";},":nth(-last)?-child\\(([^)]+)\\)":function(match,last,args){_wild=false;last=format("e%1.parentNode.ie7_length",_index);var replacement="if(p%1!==e%1.parentNode)p%1=IE7._register(e%1.parentNode);";replacement+="var i=e%1[p%1.ie7_lookup];if(p%1.ie7_lookup!='ie7_index')i++;if(";return format(replacement,_index)+_nthChild(match,args,"i",last)+"){";}});keys.push(pseudoClass);var BRACKETS="\\([^)]*\\)";if(IE7.CSS.pseudoClasses)IE7.CSS.pseudoClasses+="|";IE7.CSS.pseudoClasses+="before|after|last\\-child|only\\-child|empty|root|"+"not|nth\\-child|nth\\-last\\-child|contains|lang".split("|").join(BRACKETS+"|")+BRACKETS;encoder.add(/::/,":");var Focus=new DynamicPseudoClass("focus",function(element){var instance=arguments;IE7.CSS.addEventHandler(element,"onfocus",function(){Focus.unregister(instance);Focus.register(instance);});IE7.CSS.addEventHandler(element,"onblur",function(){Focus.unregister(instance);});if(element==document.activeElement){Focus.register(instance)}});var Active=new DynamicPseudoClass("active",function(element){var instance=arguments;IE7.CSS.addEventHandler(element,"onmousedown",function(){Active.register(instance);});});addEventHandler(document,"onmouseup",function(){var instances=Active.instances;for(var i in instances)Active.unregister(instances[i]);});var Checked=new DynamicPseudoClass("checked",function(element){if(typeof element.checked!="boolean")return;var instance=arguments;IE7.CSS.addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="checked"){if(element.checked)Checked.register(instance);else Checked.unregister(instance);}});if(element.checked)Checked.register(instance);});var Enabled=new DynamicPseudoClass("enabled",function(element){if(typeof element.disabled!="boolean")return;var instance=arguments;IE7.CSS.addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="disabled"){if(!element.isDisabled)Enabled.register(instance);else Enabled.unregister(instance);}});if(!element.isDisabled)Enabled.register(instance);});var Disabled=new DynamicPseudoClass("disabled",function(element){if(typeof element.disabled!="boolean")return;var instance=arguments;IE7.CSS.addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="disabled"){if(element.isDisabled)Disabled.register(instance);else Disabled.unregister(instance);}});if(element.isDisabled)Disabled.register(instance);});var Indeterminate=new DynamicPseudoClass("indeterminate",function(element){if(typeof element.indeterminate!="boolean")return;var instance=arguments;IE7.CSS.addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="indeterminate"){if(element.indeterminate)Indeterminate.register(instance);else Indeterminate.unregister(instance);}});IE7.CSS.addEventHandler(element,"onclick",function(){Indeterminate.unregister(instance);});});var Target=new DynamicPseudoClass("target",function(element){var instance=arguments;if(!element.tabIndex)element.tabIndex=0;IE7.CSS.addEventHandler(document,"onpropertychange",function(){if(event.propertyName=="activeElement"){if(element.id&&element.id==location.hash.slice(1))Target.register(instance);else Target.unregister(instance);}});if(element.id&&element.id==location.hash.slice(1))Target.register(instance);});var ATTR=/^attr/;var URL=/^url\s*\(\s*([^)]*)\)$/;var POSITION_MAP={before0:"beforeBegin",before1:"afterBegin",after0:"afterEnd",after1:"beforeEnd"};var PseudoElement=IE7.PseudoElement=Rule.extend({constructor:function(selector,position,cssText){this.position=position;var content=cssText.match(PseudoElement.CONTENT),match,entity;if(content){content=content[1];match=content.split(/\s+/);for(var i=0;(entity=match[i]);i++){match[i]=ATTR.test(entity)?{attr:entity.slice(5,-1)}:(entity.charAt(0)=="'")?getString(entity):decode(entity);}
-content=match;}
-this.content=content;this.base(selector,decode(cssText));},init:function(){this.match=cssQuery(this.selector);for(var i=0;i%4",MATCH:/(.*):(before|after).*/,count:0});var UNSUCCESSFUL=/^(submit|reset|button)$/;IE7.HTML.addRecalc("button,input",function(button){if(button.tagName=="BUTTON"){var match=button.outerHTML.match(/ value="([^"]*)"/i);button.runtimeStyle.value=(match)?match[1]:"";}
-if(button.type=="submit"){addEventHandler(button,"onclick",function(){button.runtimeStyle.clicked=true;setTimeout("document.all."+button.uniqueID+".runtimeStyle.clicked=false",1);});}});IE7.HTML.addRecalc("form",function(form){addEventHandler(form,"onsubmit",function(){for(var element,i=0;element=form[i];i++){if(UNSUCCESSFUL.test(element.type)&&!element.disabled&&!element.runtimeStyle.clicked){element.disabled=true;setTimeout("document.all."+element.uniqueID+".disabled=false",1);}else if(element.tagName=="BUTTON"&&element.type=="submit"){setTimeout("document.all."+element.uniqueID+".value='"+
-element.value+"'",1);element.value=element.runtimeStyle.value;}}});});IE7.HTML.addRecalc("img",function(img){if(img.alt&&!img.title)img.title="";});IE7.CSS.addRecalc("border-spacing",NUMERIC,function(element){if(element.currentStyle.borderCollapse!="collapse"){element.cellSpacing=getPixelValue(element,element.currentStyle["border-spacing"]);}});IE7.CSS.addRecalc("box-sizing","content-box",IE7.Layout.boxSizing);IE7.CSS.addRecalc("box-sizing","border-box",IE7.Layout.borderBox);IE7.CSS.addFix(/opacity\s*:\s*([\d.]+)/,function(match,value){return"zoom:1;filter:Alpha(opacity="+((value*100)||1)+")";});var IMAGE=/^image/i;IE7.HTML.addRecalc("object",function(element){if(IMAGE.test(element.type)){element.body.style.cssText="margin:0;padding:0;border:none;overflow:hidden";return element;}});IE7.loaded=true;(function(){try{documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,1);return;}
-try{eval(script.innerHTML);}catch(e){}
-PNG=new RegExp(rescape(typeof IE7_PNG_SUFFIX=="string"?IE7_PNG_SUFFIX:"-trans.png")+"$","i");body=document.body;viewport=quirksMode?body:documentElement;body.className+=" ie7_body";documentElement.className+=" ie7_html";if(quirksMode)ie7Quirks();IE7.CSS.init();IE7.HTML.init();IE7.HTML.apply();IE7.CSS.apply();IE7.recalc();})();})();
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/ie7/blank.gif b/v2/dotclear/admin/js/ie7/blank.gif
deleted file mode 100644
index a4fe2e6..0000000
Binary files a/v2/dotclear/admin/js/ie7/blank.gif and /dev/null differ
diff --git a/v2/dotclear/admin/js/ie7/ie7-recalc.js b/v2/dotclear/admin/js/ie7/ie7-recalc.js
deleted file mode 100644
index 3acd0cb..0000000
--- a/v2/dotclear/admin/js/ie7/ie7-recalc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-(function(){if(!IE7.loaded)return;CLASSES=/\sie7_class\d+/g;IE7.CSS.extend({elements:{},handlers:[],reset:function(){this.removeEventHandlers();var elements=this.elements;for(var i in elements)elements[i].runtimeStyle.cssText="";this.elements={};var elements=IE7.Rule.elements;for(var i in elements){with(elements[i])className=className.replace(CLASSES,"");}
-IE7.Rule.elements={};},reload:function(){this.rules=[];this.getInlineStyles();this.screen.load();if(this.print)this.print.load();this.refresh();this.trash();},addRecalc:function(propertyName,test,handler,replacement){this.base(propertyName,test,function(element){handler(element);IE7.CSS.elements[element.uniqueID]=element;},replacement);},recalc:function(){this.reset();this.base();},addEventHandler:function(element,type,handler){element.attachEvent(type,handler);this.handlers.push(arguments);},removeEventHandlers:function(){var handler;while(handler=this.handlers.pop()){handler[0].detachEvent(handler[1],handler[2]);}},getInlineStyles:function(){var styleSheets=document.getElementsByTagName("style"),styleSheet;for(var i=styleSheets.length-1;(styleSheet=styleSheets[i]);i--){if(!styleSheet.disabled&&!styleSheet.ie7){var cssText=styleSheet.cssText||styleSheet.innerHTML;this.styles.push(cssText);styleSheet.cssText=cssText;}}},trash:function(){var styleSheets=document.styleSheets,styleSheet,i;for(i=0;i=6)IE7.CSS.addRecalc("float","(left|right)",function(element){IE7.Layout.boxSizing(element.parentElement);element.style.display="inline";});IE7.CSS.addRecalc("position","absolute|fixed",function(element){if(element.offsetParent&&element.offsetParent.currentStyle.position=="relative")
-IE7.Layout.boxSizing(element.offsetParent);});}
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/jquery/jquery-ui-1.8.12.custom.min.js b/v2/dotclear/admin/js/jquery/jquery-ui-1.8.12.custom.min.js
deleted file mode 100644
index b99518d..0000000
--- a/v2/dotclear/admin/js/jquery/jquery-ui-1.8.12.custom.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.12",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);;(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-
-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-
-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-
-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c(" ").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex");this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.12",animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);;
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/jquery/jquery.bgFade.js b/v2/dotclear/admin/js/jquery/jquery.bgFade.js
deleted file mode 100644
index cdf201a..0000000
--- a/v2/dotclear/admin/js/jquery/jquery.bgFade.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-jQuery.fn.backgroundFade=function(s,callback){var defaults={sColor:[255,0,0],eColor:[255,255,255],fColor:null,steps:200,intervals:5,powr:4},params=jQuery.extend(defaults,s);return this.each(function(){this.bgFade_sColor=jQuery.backgroundFade.parseHexColor(params.sColor);this.bgFade_eColor=jQuery.backgroundFade.parseHexColor(params.eColor);this.bgFade_fColor=params.fColor?params.fColor:jQuery(this).css('backgroundColor');this.bgFade_steps=params.steps;this.bgFade_intervals=params.intervals;this.bgFade_powr=params.powr;this.bgFade_fn=callback;jQuery.backgroundFade.doFade(this);});};jQuery.backgroundFade={parseHexColor:function(c){if(c.constructor==String&&c.substr(0,1)=='#'){return[parseInt(c.substr(1,2),16),parseInt(c.substr(3,2),16),parseInt(c.substr(5,2),16)];}
-return c;},easeInOut:function(minValue,maxValue,totalSteps,actualStep,powr){var delta=maxValue-minValue;var stepp=minValue+(Math.pow(((1/totalSteps)*actualStep),powr)*delta);return Math.ceil(stepp);},doFade:function(e){if(e.bgFadeInt)window.clearInterval(e.bgFadeInt);var act_step=0;e.bgFadeInt=window.setInterval(function(){e.style.backgroundColor="rgb("+
-jQuery.backgroundFade.easeInOut(e.bgFade_sColor[0],e.bgFade_eColor[0],e.bgFade_steps,act_step,e.bgFade_powr)+","+
-jQuery.backgroundFade.easeInOut(e.bgFade_sColor[1],e.bgFade_eColor[1],e.bgFade_steps,act_step,e.bgFade_powr)+","+
-jQuery.backgroundFade.easeInOut(e.bgFade_sColor[2],e.bgFade_eColor[2],e.bgFade_steps,act_step,e.bgFade_powr)+")";act_step++;if(act_step>e.bgFade_steps){window.clearInterval(e.bgFadeInt);e.bgFade_sColor=undefined;e.bgFade_eColor=undefined;e.bgFade_fColor=undefined;e.bgFade_steps=undefined;e.bgFade_intervals=undefined;e.bgFade_powr=undefined;if(typeof(e.bgFade_fn)=='function'){e.bgFade_fn.call(e);}
-e.style.backgroundColor=e.bgFade_fColor;}},e.bgFade_intervals);}};
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/jquery/jquery.biscuit.js b/v2/dotclear/admin/js/jquery/jquery.biscuit.js
deleted file mode 100644
index 8b74194..0000000
--- a/v2/dotclear/admin/js/jquery/jquery.biscuit.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toGMTString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
-expires='; expires='+date.toGMTString();}
-var path=options.path?'; path='+options.path:'';var domain=options.domain?'; domain='+options.domain:'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');return null;}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i'+' '+' '+' '+' '+' '+'';this.container=$(' ');if(this.params.target_element==null){this.container.css({display:'block',position:'absolute',left:$(document).scrollLeft()+'px',top:$(document).scrollTop()+'px',width:'30px',height:'30px',background:'#f00'});$('body').append(this.container);}else{$(this.params.target_element).append(this.container);this.container.css({display:'block',position:'absolute',top:0,left:0,zIndex:1});}
-this.container[0].innerHTML=flash;this.movie=document.getElementById(this.params.movie_name);return this;},addFlashVar:function(fv,n,v){if(v!=null){fv.push(n+'='+encodeURIComponent(v));}},flashBind:function(){_this=this;var events={flashReady:function(){if(window[_this.params.movie_name]==undefined){window[_this.params.movie_name]=_this.movie;}
-_this.flashBindEvent('flashReady',arguments);},fileDialogComplete:function(){_this.flashBindEvent('fileDialogComplete',arguments);},fileDialogStart:function(){_this.flashBindEvent('fileDialogStart',arguments);},fileQueued:function(file_object){_this.flashBindEvent('fileQueued',arguments);},fileQueueError:function(file_object,error_code,error_msg){_this.flashBindEvent('fileQueueError',arguments);},uploadStart:function(){_this.flashBindEvent('uploadStart',arguments);},uploadProgress:function(){_this.flashBindEvent('uploadProgress',arguments);},uploadError:function(){_this.flashBindEvent('uploadError',arguments);},uploadSuccess:function(){_this.flashBindEvent('uploadSuccess',arguments);},uploadComplete:function(){_this.flashBindEvent('uploadComplete',arguments);},debug:function(){_this.flashBindEvent('debug',arguments);}};window.SWFUpload.instances[this.params.movie_name]=events;window.SWFUpload.movieCount++;},flashEventQueue:[],flashBindEvent:function(evt,a){a=a||new Array();var _this=this;if($.isFunction(this.callbacks[evt])){this.flashEventQueue.push(function(){this.callbacks[evt].apply(this,a);});setTimeout(function(){_this.flashExecuteNextEvent();},0);}else if(this.callbacks[evt]!==null){throw'Event handler '+evt+' is unknown or is not a function';}},flashExecuteNextEvent:function(){var f=this.flashEventQueue?this.flashEventQueue.shift():null;if($.isFunction(f)){f.apply(this);}},destroy:function(){try{this.StopUpload();$(this.movie).remove();SWFUpload.instances[this.params.movie_name]=null;SWFUpload.movieCount--;delete SWFUpload.instances[this.movieName];delete window[this.movieName];return true;}catch(e){return false;}},StartUpload:function(file_id){return this.movie.StartUpload(file_id);},ReturnUploadStart:function(value){return this.movie.ReturnUploadStart(value);},StopUpload:function(){return this.movie.StopUpload();},CancelUpload:function(file_id){return this.movie.CancelUpload(file_id);},GetStats:function(){return this.movie.GetStats();},SetStats:function(stats){return this.movie.SetStats(stats);},GetFile:function(file_id){return this.movie.GetFile(file_id);},GetFileByIndex:function(file_index){return this.movie.GetFileByIndex(file_index);},getFileSizeLimit:function(size){var value=0;var unit='kb';size=$.trim(size.toLowerCase());var values=size.match(/^\d+/);if(values!=null&&values.length>0){value=parseInt(values[0]);}
-var units=size.match(/(b|kb|mb|gb)/);if(units!=null&&units.length>0){unit=units[0];}
-var multiplier=1024;if(unit==="b"){multiplier=1;}else if(unit==="mb"){multiplier=1048576;}else if(unit==="gb"){multiplier=1073741824;}
-return value*multiplier;}};})(jQuery);(function($){$.fn.candyUpload=function(settings,callbacks){new $._candyUpload(this,settings,callbacks);return this;};$._candyUpload=function(target,settings,callbacks){var defaults={debug:false,upload_url:'',params:null,flash_movie:'',file_types:'*.*',file_types_description:'All files',file_size_limit:0,file_upload_limit:0,file_queue_limit:-1,callbacks:{}};this.params=$.extend(defaults,settings);this.params.movie_name='SWFU-'+(window.SWFUpload.instances.length+1);this.target=target;this.createControls();this.target.hide().after(this.ctrl.block).hide();this.params.target_element=this.ctrl.btn_browse.parent().get(0);var _this=this;this.upldr=$.uploader(this.params,{debug:function(msg){$('body').append(''+msg+' ');_this.bindEvent('debug',arguments);},flashReady:function(){_this.initControls(this);_this.bindEvent('flashReady',arguments);this.movie.style.width=_this.ctrl.btn_browse.width()+'px';this.movie.style.height=_this.ctrl.btn_browse.height()+'px';},fileDialogComplete:function(num_ref_files,num_queue_files){_this.bindEvent('fileDialogComplete',arguments);},fileDialogStart:function(){_this.bindEvent('fileQueued',arguments);},fileQueued:function(o){_this.appendFile(this,o);_this.refreshControls(this);_this.bindEvent('fileQueued',arguments);},fileQueueError:function(o,code,msg){var codes=window.SWFUpload.QUEUE_ERROR;switch(code){case codes.QUEUE_LIMIT_EXCEEDED:_this.queueErrorMsg(_this.locales.limit_exceeded);break;case codes.FILE_EXCEEDS_SIZE_LIMIT:_this.queueErrorMsg(_this.locales.size_limit_exceeded);break;case codes.ZERO_BYTE_FILE:case codes.INVALID_FILETYPE:_this.queueErrorMsg(msg);break;}
-_this.bindEvent('fileQueueError',arguments);},uploadStart:function(){this.ReturnUploadStart(true);_this.bindEvent('uploadStart',arguments);},uploadProgress:function(o,bytes,total){_this.fileProgressBar(o.id,bytes,total);_this.bindEvent('uploadProgress',arguments);},uploadError:function(o,code,msg){var codes=window.SWFUpload.UPLOAD_ERROR;switch(code){case codes.FILE_CANCELLED:_this.fileErrorMsg(o.id,_this.locales.canceled);break;case codes.HTTP_ERROR:_this.fileErrorMsg(o.id,_this.locales.http_error+' '+msg);break;case codes.MISSING_UPLOAD_URL:case codes.IO_ERROR:case codes.SECURITY_ERROR:case codes.UPLOAD_LIMIT_EXCEEDED:case codes.UPLOAD_FAILED:case codes.SPECIFIED_FILE_ID_NOT_FOUND:case codes.FILE_VALIDATION_FAILED:case codes.FILE_CANCELLED:case codes.UPLOAD_STOPPED:_this.fileErrorMsg(o.id,_this.locales.error+' '+msg);break;}
-_this.refreshControls(this);_this.removeFileCancel(o);_this.bindEvent('uploadError',arguments);},uploadSuccess:function(o,data){_this.fileProgressBar(o.id,1,1);_this.refreshControls(this);_this.removeFileCancel(o);_this.bindEvent('uploadSuccess',arguments);},uploadComplete:function(o){this.StartUpload();_this.refreshControls(this);_this.bindEvent('uploadComplete',arguments);}});};$._candyUpload.prototype={locales:{max_file_size:'Maximum file size allowed:',limit_exceeded:'Limit exceeded.',size_limit_exceeded:'File size exceeds allowed limit.',canceled:'Canceled.',http_error:'HTTP Error:',error:'Error:',choose_file:'Choose file',choose_files:'Choose files',cancel:'Cancel',clean:'Clean',upload:'Upload',no_file_in_queue:'No file in queue.',file_in_queue:'1 file in queue.',files_in_queue:'%d files in queue.',queue_error:'Queue error:'},ctrl:{block:$('
'),files:null},createControls:function(){this.ctrl.btn_browse=$(' ').click(function(){return false;});this.ctrl.btn_cancel=$(''+this.locales.cancel+' ').click(function(){return false;});this.ctrl.btn_clean=$(''+this.locales.clean+' ').click(function(){return false;});this.ctrl.btn_upload=$(''+this.locales.upload+' ').click(function(){return false;});this.ctrl.msg=$(''+this.locales.no_file_in_queue+'
').appendTo(this.ctrl.block);var btn=$('
').appendTo(this.ctrl.block);var brw=$(' ').append(this.ctrl.btn_browse).appendTo(btn);$(' ').append(this.ctrl.btn_upload).appendTo(btn).hide();$(' ').append(this.ctrl.btn_cancel).appendTo(btn).hide();$(' ').append(this.ctrl.btn_clean).appendTo(btn).hide();this.bindEvent('createControls');},initControls:function(upldr){if(this.params.file_queue_limit==1){this.ctrl.btn_browse.text(this.locales.choose_file);}else{this.ctrl.btn_browse.text(this.locales.choose_files);}
-var _this=this;this.ctrl.btn_cancel.click(function(){_this.cancelQueue(upldr);return false;});this.ctrl.btn_clean.click(function(){_this.cleanQueue(upldr);return false;});this.ctrl.btn_upload.click(function(){_this.uploadQueue(upldr);return false;});var size=this.formatSize(upldr.params.file_size_limit);$(''+this.locales.max_file_size+' '+size+'
').appendTo(this.ctrl.block);},refreshControls:function(upldr){if(!this.ctrl.files||this.ctrl.files.length==0){return;}
-var stats=upldr.GetStats();if(stats.files_queued>0){this.ctrl.btn_cancel.parent().show();this.ctrl.btn_upload.parent().show();if(this.params.file_queue_limit>0&&this.params.file_queue_limit==stats.files_queued){this.ctrl.btn_browse.hide();}else{this.ctrl.btn_browse.show();}
-if(stats.files_queued>1){var msg=this.locales.files_in_queue.replace(/%d/,stats.files_queued);}else{var msg=this.locales.file_in_queue;}}else{this.ctrl.btn_browse.show();this.ctrl.btn_cancel.parent().hide();this.ctrl.btn_upload.parent().hide();var msg=this.locales.no_file_in_queue;}
-this.ctrl.msg.removeClass('cu-error').text(msg);if(stats.successful_uploads>0||stats.upload_errors>0||stats.upload_cancelled>0){this.ctrl.btn_clean.parent().show();}else{this.ctrl.btn_clean.parent().hide();}},removeFileCancel:function(o){$('#'+o.id+' span.cu-filecancel',this.ctrl.files).remove();},appendFile:function(upldr,o){if(!this.ctrl.files){this.ctrl.files=$('
');this.ctrl.msg.after(this.ctrl.files);}
-var fileblock=$(''+'
'+o.name+' '+'
('+this.formatSize(o.size)+') '+'
cancel '+'
'+'
');$('span.cu-filecancel a',fileblock).click(function(){upldr.CancelUpload(o.id);return false;});this.ctrl.files.append(fileblock);},fileProgressBar:function(file_id,bytes,total){var bar=$('#'+file_id+' div.cu-progress>div',this.ctrl.files);if(bar.length==0){$('#'+file_id,this.ctrl.files).append('
');bar=$('#'+file_id+' div.cu-progress>div',this.ctrl.files);}
-var percent=Math.round((bytes*100)/total);bar.css('width',percent+'%').text(percent+'%');},fileMsg:function(file_id,msg,error){error=error||false;var span=$('#'+file_id+' span.cu-filemsg',this.ctrl.files).attr('class','cu-filemsg');if(error){span.addClass('cu-error');}
-span.text(msg);},fileErrorMsg:function(file_id,msg){this.fileMsg(file_id,msg,true);},cancelQueue:function(upldr){if(!this.ctrl.files||this.ctrl.files.length==0){return;}
-this.ctrl.files.children('div').each(function(){upldr.CancelUpload(this.id);});},uploadQueue:function(upldr){if(!this.ctrl.files||this.ctrl.files.length==0){return;}
-upldr.StartUpload();},cleanQueue:function(upldr){var _this=this;var e=$('div.cu-file',this.ctrl.files).not(':has(span.cu-filecancel a)');e.filter(':last').slideUp(200,function(){$(this).remove();if(e.length==1){upldr.SetStats({successful_uploads:0,upload_errors:0,upload_cancelled:0});_this.refreshControls(upldr);}else if(e.length>1){_this.cleanQueue(upldr);}});},queueErrorMsg:function(msg){this.ctrl.msg.addClass('cu-error').text(this.locales.queue_error+' '+msg);},formatSize:function(s){var a_size=Array('B','KB','MB','GB','TB');var i_index=0;while(s>1024){i_index++;s/=1024;}
-return(Math.round(s*100)/100)+' '+a_size[i_index];},bindEvent:function(evt,a){if(this.params.callbacks[evt]!=undefined&&$.isFunction(this.params.callbacks[evt])){a=a||new Array();this.params.callbacks[evt].apply(this,a);}}};})(jQuery);
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/jquery/jquery.farbtastic.js b/v2/dotclear/admin/js/jquery/jquery.farbtastic.js
deleted file mode 100644
index 26103df..0000000
--- a/v2/dotclear/admin/js/jquery/jquery.farbtastic.js
+++ /dev/null
@@ -1,22 +0,0 @@
-
-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){var fb=this;$(container).html('
');var e=$('.farbtastic',container);fb.wheel=$('.wheel',container).get(0);fb.radius=84;fb.square=100;fb.width=194;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+"')"});}});}
-fb.linkTo=function(callback){if(typeof fb.callback=='object'){$(fb.callback).unbind('keyup',fb.updateValue);}
-fb.color=null;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);}};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;};fb.setHSL=function(hsl){fb.hsl=hsl;fb.rgb=fb.HSLToRGB(hsl);fb.color=fb.pack(fb.rgb);fb.updateDisplay();return this;};fb.widgetCoords=function(event){var x,y;var el=event.target||event.srcElement;var reference=fb.wheel;if(typeof event.offsetX!='undefined'){var pos={x:event.offsetX,y:event.offsetY};var e=el;while(e){e.mouseX=pos.x;e.mouseY=pos.y;pos.x+=e.offsetLeft;pos.y+=e.offsetTop;e=e.offsetParent;}
-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;}
-e=el;while(e){e.mouseX=undefined;e.mouseY=undefined;e=e.offsetParent;}}
-else{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;}
-return{x:x-fb.width/2,y:y-fb.width/2};};fb.mousedown=function(event){if(!document.dragging){$(document).bind('mousemove',fb.mousemove).bind('mouseup',fb.mouseup);document.dragging=true;}
-var pos=fb.widgetCoords(event);fb.circleDrag=Math.max(Math.abs(pos.x),Math.abs(pos.y))*2>fb.square;fb.mousemove(event);return false;};fb.mousemove=function(event){var pos=fb.widgetCoords(event);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;};fb.mouseup=function(){$(document).unbind('mousemove',fb.mousemove);$(document).unbind('mouseup',fb.mouseup);document.dragging=false;};fb.updateDisplay=function(){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'});$('.color',e).css('backgroundColor',fb.pack(fb.HSLToRGB([fb.hsl[0],1,0.5])));if(typeof fb.callback=='object'){$(fb.callback).css({backgroundColor:fb.color,color:fb.hsl[2]>0.5?'#000':'#fff'});$(fb.callback).each(function(){if(this.value!=fb.color){this.value=fb.color;}});$(fb.callback).change();}
-else if(typeof fb.callback=='function'){fb.callback.call(fb,fb.color);}};fb.absolutePosition=function(el){var r={x:el.offsetLeft,y:el.offsetTop};if(el.offsetParent){var tmp=fb.absolutePosition(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}
-return r;};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];};$('*',e).mousedown(fb.mousedown);fb.setColor('#000000');if(callback){fb.linkTo(callback);}};
\ No newline at end of file
diff --git a/v2/dotclear/admin/js/jquery/jquery.js b/v2/dotclear/admin/js/jquery/jquery.js
deleted file mode 100644
index 772d440..0000000
--- a/v2/dotclear/admin/js/jquery/jquery.js
+++ /dev/null
@@ -1,471 +0,0 @@
-
-(function(window,undefined){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context);},_jQuery=window.jQuery,_$=window.$,document=window.document,rootjQuery,quickExpr=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/,rnotwhite=/\S/,rtrim=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,userAgent=navigator.userAgent,browserMatch,readyBound=false,readyList=[],DOMContentLoaded,toString=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,indexOf=Array.prototype.indexOf;jQuery.fn=jQuery.prototype={init:function(selector,context){var match,elem,ret,doc;if(!selector){return this;}
-if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}
-if(selector==="body"&&!context){this.context=document;this[0]=document.body;this.selector="body";this.length=1;return this;}
-if(typeof selector==="string"){match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1]){doc=(context?context.ownerDocument||context:document);ret=rsingleTag.exec(selector);if(ret){if(jQuery.isPlainObject(context)){selector=[document.createElement(ret[1])];jQuery.fn.attr.call(selector,context,true);}else{selector=[doc.createElement(ret[1])];}}else{ret=buildFragment([match[1]],[doc]);selector=(ret.cacheable?ret.fragment.cloneNode(true):ret.fragment).childNodes;}
-return jQuery.merge(this,selector);}else{elem=document.getElementById(match[2]);if(elem){if(elem.id!==match[2]){return rootjQuery.find(selector);}
-this.length=1;this[0]=elem;}
-this.context=document;this.selector=selector;return this;}}else if(!context&&/^\w+$/.test(selector)){this.selector=selector;this.context=document;selector=document.getElementsByTagName(selector);return jQuery.merge(this,selector);}else if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return jQuery(context).find(selector);}}else if(jQuery.isFunction(selector)){return rootjQuery.ready(selector);}
-if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}
-return jQuery.makeArray(selector,this);},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length;},toArray:function(){return slice.call(this,0);},get:function(num){return num==null?this.toArray():(num<0?this.slice(num)[0]:this[num]);},pushStack:function(elems,name,selector){var ret=jQuery();if(jQuery.isArray(elems)){push.apply(ret,elems);}else{jQuery.merge(ret,elems);}
-ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector;}else if(name){ret.selector=this.selector+"."+name+"("+selector+")";}
-return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},ready:function(fn){jQuery.bindReady();if(jQuery.isReady){fn.call(document,jQuery);}else if(readyList){readyList.push(fn);}
-return this;},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1);},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},end:function(){return this.prevObject||jQuery(null);},push:push,sort:[].sort,splice:[].splice};jQuery.fn.init.prototype=jQuery.fn;jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options,name,src,copy;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
-if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}
-if(length===i){target=this;--i;}
-for(;i
a ";var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return;}
-jQuery.support={leadingWhitespace:div.firstChild.nodeType===3,tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:/^0.55$/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,checkOn:div.getElementsByTagName("input")[0].value==="on",optSelected:document.createElement("select").appendChild(document.createElement("option")).selected,parentNode:div.removeChild(div.appendChild(document.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"));}catch(e){}
-root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id];}
-try{delete script.test;}catch(e){jQuery.support.deleteExpando=false;}
-root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function click(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",click);});div.cloneNode(true).fireEvent("onclick");}
-div=document.createElement("div");div.innerHTML="
";var fragment=document.createDocumentFragment();fragment.appendChild(div.firstChild);jQuery.support.checkClone=fragment.cloneNode(true).cloneNode(true).lastChild.checked;jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display='none';div=null;});var eventSupported=function(eventName){var el=document.createElement("div");eventName="on"+eventName;var isSupported=(eventName in el);if(!isSupported){el.setAttribute(eventName,"return;");isSupported=typeof el[eventName]==="function";}
-el=null;return isSupported;};jQuery.support.submitBubbles=eventSupported("submit");jQuery.support.changeBubbles=eventSupported("change");root=script=div=all=a=null;})();jQuery.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},expando:expando,noData:{"embed":true,"object":true,"applet":true},data:function(elem,name,data){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){return;}
-elem=elem==window?windowData:elem;var id=elem[expando],cache=jQuery.cache,thisCache;if(!id&&typeof name==="string"&&data===undefined){return null;}
-if(!id){id=++uuid;}
-if(typeof name==="object"){elem[expando]=id;thisCache=cache[id]=jQuery.extend(true,{},name);}else if(!cache[id]){elem[expando]=id;cache[id]={};}
-thisCache=cache[id];if(data!==undefined){thisCache[name]=data;}
-return typeof name==="string"?thisCache[name]:thisCache;},removeData:function(elem,name){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){return;}
-elem=elem==window?windowData:elem;var id=elem[expando],cache=jQuery.cache,thisCache=cache[id];if(name){if(thisCache){delete thisCache[name];if(jQuery.isEmptyObject(thisCache)){jQuery.removeData(elem);}}}else{if(jQuery.support.deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}
-delete cache[id];}}});jQuery.fn.extend({data:function(key,value){if(typeof key==="undefined"&&this.length){return jQuery.data(this[0]);}else if(typeof key==="object"){return this.each(function(){jQuery.data(this,key);});}
-var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key);}
-return data===undefined&&parts[1]?this.data(parts[0]):data;}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});}});jQuery.extend({queue:function(elem,type,data){if(!elem){return;}
-type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!data){return q||[];}
-if(!q||jQuery.isArray(data)){q=jQuery.data(elem,type,jQuery.makeArray(data));}else{q.push(data);}
-return q;},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift();if(fn==="inprogress"){fn=queue.shift();}
-if(fn){if(type==="fx"){queue.unshift("inprogress");}
-fn.call(elem,function(){jQuery.dequeue(elem,type);});}}});jQuery.fn.extend({queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
-if(data===undefined){return jQuery.queue(this[0],type);}
-return this.each(function(i,elem){var queue=jQuery.queue(this,type,data);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},delay:function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(){var elem=this;setTimeout(function(){jQuery.dequeue(elem,type);},time);});},clearQueue:function(type){return this.queue(type||"fx",[]);}});var rclass=/[\n\t]/g,rspace=/\s+/,rreturn=/\r/g,rspecialurl=/href|src|style/,rtype=/(button|input)/i,rfocusable=/(button|input|object|select|textarea)/i,rclickable=/^(a|area)$/i,rradiocheck=/radio|checkbox/;jQuery.fn.extend({attr:function(name,value){return access(this,name,value,true,jQuery.attr);},removeAttr:function(name,fn){return this.each(function(){jQuery.attr(this,name,"");if(this.nodeType===1){this.removeAttribute(name);}});},addClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.addClass(value.call(this,i,self.attr("class")));});}
-if(value&&typeof value==="string"){var classNames=(value||"").split(rspace);for(var i=0,l=this.length;i
-1){return true;}}
-return false;},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,"option")){return(elem.attributes.value||{}).specified?elem.value:elem.text;}
-if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type==="select-one";if(index<0){return null;}
-for(var i=one?index:0,max=one?index+1:options.length;i=0;}else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(val);jQuery("option",this).each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0;});if(!values.length){this.selectedIndex=-1;}}else{this.value=val;}});}});jQuery.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(elem,name,value,pass){if(!elem||elem.nodeType===3||elem.nodeType===8){return undefined;}
-if(pass&&name in jQuery.attrFn){return jQuery(elem)[name](value);}
-var notxml=elem.nodeType!==1||!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.nodeType===1){var special=rspecialurl.test(name);if(name==="selected"&&!jQuery.support.optSelected){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}}
-if(name in elem&¬xml&&!special){if(set){if(name==="type"&&rtype.test(elem.nodeName)&&elem.parentNode){jQuery.error("type property can't be changed");}
-elem[name]=value;}
-if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue;}
-if(name==="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined;}
-return elem[name];}
-if(!jQuery.support.style&¬xml&&name==="style"){if(set){elem.style.cssText=""+value;}
-return elem.style.cssText;}
-if(set){elem.setAttribute(name,""+value);}
-var attr=!jQuery.support.hrefNormalized&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
-return jQuery.style(elem,name,value);}});var rnamespaces=/\.(.*)$/,fcleanup=function(nm){return nm.replace(/[^\w\s\.\|`]/g,function(ch){return"\\"+ch;});};jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType===3||elem.nodeType===8){return;}
-if(elem.setInterval&&(elem!==window&&!elem.frameElement)){elem=window;}
-var handleObjIn,handleObj;if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;}
-if(!handler.guid){handler.guid=jQuery.guid++;}
-var elemData=jQuery.data(elem);if(!elemData){return;}
-var events=elemData.events=elemData.events||{},eventHandle=elemData.handle,eventHandle;if(!eventHandle){elemData.handle=eventHandle=function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(eventHandle.elem,arguments):undefined;};}
-eventHandle.elem=elem;types=types.split(" ");var type,i=0,namespaces;while((type=types[i++])){handleObj=handleObjIn?jQuery.extend({},handleObjIn):{handler:handler,data:data};if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();handleObj.namespace=namespaces.slice(0).sort().join(".");}else{namespaces=[];handleObj.namespace="";}
-handleObj.type=type;handleObj.guid=handler.guid;var handlers=events[type],special=jQuery.event.special[type]||{};if(!handlers){handlers=events[type]=[];if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}else if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle);}}}
-if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
-handlers.push(handleObj);jQuery.event.global[type]=true;}
-elem=null;},global:{},remove:function(elem,types,handler,pos){if(elem.nodeType===3||elem.nodeType===8){return;}
-var ret,type,fn,i=0,all,namespaces,namespace,special,eventType,handleObj,origType,elemData=jQuery.data(elem),events=elemData&&elemData.events;if(!elemData||!events){return;}
-if(types&&types.type){handler=types.handler;types=types.type;}
-if(!types||typeof types==="string"&&types.charAt(0)==="."){types=types||"";for(type in events){jQuery.event.remove(elem,type+types);}
-return;}
-types=types.split(" ");while((type=types[i++])){origType=type;handleObj=null;all=type.indexOf(".")<0;namespaces=[];if(!all){namespaces=type.split(".");type=namespaces.shift();namespace=new RegExp("(^|\\.)"+
-jQuery.map(namespaces.slice(0).sort(),fcleanup).join("\\.(?:.*\\.)?")+"(\\.|$)")}
-eventType=events[type];if(!eventType){continue;}
-if(!handler){for(var j=0;j=0){event.type=type=type.slice(0,-1);event.exclusive=true;}
-if(!elem){event.stopPropagation();if(jQuery.event.global[type]){jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type]){jQuery.event.trigger(event,data,this.handle.elem);}});}}
-if(!elem||elem.nodeType===3||elem.nodeType===8){return undefined;}
-event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event);}
-event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle){handle.apply(elem,data);}
-var parent=elem.parentNode||elem.ownerDocument;try{if(!(elem&&elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()])){if(elem["on"+type]&&elem["on"+type].apply(elem,data)===false){event.result=false;}}}catch(e){}
-if(!event.isPropagationStopped()&&parent){jQuery.event.trigger(event,data,parent,true);}else if(!event.isDefaultPrevented()){var target=event.target,old,isClick=jQuery.nodeName(target,"a")&&type==="click",special=jQuery.event.special[type]||{};if((!special._default||special._default.call(elem,event)===false)&&!isClick&&!(target&&target.nodeName&&jQuery.noData[target.nodeName.toLowerCase()])){try{if(target[type]){old=target["on"+type];if(old){target["on"+type]=null;}
-jQuery.event.triggered=true;target[type]();}}catch(e){}
-if(old){target["on"+type]=old;}
-jQuery.event.triggered=false;}}},handle:function(event){var all,handlers,namespaces,namespace,events;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;all=event.type.indexOf(".")<0&&!event.exclusive;if(!all){namespaces=event.type.split(".");event.type=namespaces.shift();namespace=new RegExp("(^|\\.)"+namespaces.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");}
-var events=jQuery.data(this,"events"),handlers=events[event.type];if(events&&handlers){handlers=handlers.slice(0);for(var j=0,l=handlers.length;j-1?jQuery.map(elem.options,function(elem){return elem.selected;}).join("-"):"";}else if(elem.nodeName.toLowerCase()==="select"){val=elem.selectedIndex;}
-return val;},testChange=function testChange(e){var elem=e.target,data,val;if(!formElems.test(elem.nodeName)||elem.readOnly){return;}
-data=jQuery.data(elem,"_change_data");val=getVal(elem);if(e.type!=="focusout"||elem.type!=="radio"){jQuery.data(elem,"_change_data",val);}
-if(data===undefined||val===data){return;}
-if(data!=null||val){e.type="change";return jQuery.event.trigger(e,arguments[1],elem);}};jQuery.event.special.change={filters:{focusout:testChange,click:function(e){var elem=e.target,type=elem.type;if(type==="radio"||type==="checkbox"||elem.nodeName.toLowerCase()==="select"){return testChange.call(this,e);}},keydown:function(e){var elem=e.target,type=elem.type;if((e.keyCode===13&&elem.nodeName.toLowerCase()!=="textarea")||(e.keyCode===32&&(type==="checkbox"||type==="radio"))||type==="select-multiple"){return testChange.call(this,e);}},beforeactivate:function(e){var elem=e.target;jQuery.data(elem,"_change_data",getVal(elem));}},setup:function(data,namespaces){if(this.type==="file"){return false;}
-for(var type in changeFilters){jQuery.event.add(this,type+".specialChange",changeFilters[type]);}
-return formElems.test(this.nodeName);},teardown:function(namespaces){jQuery.event.remove(this,".specialChange");return formElems.test(this.nodeName);}};changeFilters=jQuery.event.special.change.filters;}
-function trigger(type,elem,args){args[0].type=type;return jQuery.event.handle.apply(elem,args);}
-if(document.addEventListener){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){jQuery.event.special[fix]={setup:function(){this.addEventListener(orig,handler,true);},teardown:function(){this.removeEventListener(orig,handler,true);}};function handler(e){e=jQuery.event.fix(e);e.type=fix;return jQuery.event.handle.call(this,e);}});}
-jQuery.each(["bind","one"],function(i,name){jQuery.fn[name]=function(type,data,fn){if(typeof type==="object"){for(var key in type){this[name](key,data,type[key],fn);}
-return this;}
-if(jQuery.isFunction(data)){fn=data;data=undefined;}
-var handler=name==="one"?jQuery.proxy(fn,function(event){jQuery(this).unbind(event,handler);return fn.apply(this,arguments);}):fn;if(type==="unload"&&name!=="one"){this.one(type,data,fn);}else{for(var i=0,l=this.length;i+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true;[0,0].sort(function(){baseHasDuplicate=false;return 0;});var Sizzle=function(selector,context,results,seed){results=results||[];var origContext=context=context||document;if(context.nodeType!==1&&context.nodeType!==9){return[];}
-if(!selector||typeof selector!=="string"){return results;}
-var parts=[],m,set,checkSet,extra,prune=true,contextXML=isXML(context),soFar=selector;while((chunker.exec(""),m=chunker.exec(soFar))!==null){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break;}}
-if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift();}
-set=posProcess(selector,set);}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){var ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];}
-if(context){var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
-while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
-if(pop==null){pop=context;}
-Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}
-if(!checkSet){checkSet=set;}
-if(!checkSet){Sizzle.error(cur||selector);}
-if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context&&context.nodeType===1){for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
-if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}
-return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i":function(checkSet,part){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=part.toLowerCase();for(var i=0,l=checkSet.length;i=0)){if(!inplace){result.push(elem);}}else if(inplace){curLoop[i]=false;}}}
-return false;},ID:function(match){return match[1].replace(/\\/g,"");},TAG:function(match,curLoop){return match[1].toLowerCase();},CHILD:function(match){if(match[1]==="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
-match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
-if(match[2]==="~="){match[4]=" "+match[4]+" ";}
-return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
-return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
-return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return/h\d/i.test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toLowerCase()==="button";},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return imatch[3]-0;},nth:function(elem,i,match){return match[3]-0===i;},eq:function(elem,i,match){return match[3]-0===i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||getText([elem])||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var i=0,l=not.length;i=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,function(all,num){return"\\"+(num-0+1);}));}
-var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results;}
-return array;};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType;}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i ";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
-root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
-results=tmp;}
-return results;};}
-div.innerHTML=" ";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}
-div=null;})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="
";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
-Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra);}catch(e){}}
-return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}
-div=null;})();}
-(function(){var div=document.createElement("div");div.innerHTML="
";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return;}
-div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return;}
-Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i0){match=elem;break;}}
-elem=elem[dir];}
-checkSet[i]=match;}}}
-var contains=document.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16);}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};var isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
-selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i=0)===keep;});};jQuery.fn.extend({find:function(selector){var ret=this.pushStack("","find",selector),length=0;for(var i=0,l=this.length;i0){for(var n=length;n0;},closest:function(selectors,context){if(jQuery.isArray(selectors)){var ret=[],cur=this[0],match,matches={},selector;if(cur&&selectors.length){for(var i=0,l=selectors.length;i-1:jQuery(cur).is(match)){ret.push({selector:selector,elem:cur});delete matches[selector];}}
-cur=cur.parentNode;}}
-return ret;}
-var pos=jQuery.expr.match.POS.test(selectors)?jQuery(selectors,context||this.context):null;return this.map(function(i,cur){while(cur&&cur.ownerDocument&&cur!==context){if(pos?pos.index(cur)>-1:jQuery(cur).is(selectors)){return cur;}
-cur=cur.parentNode;}
-return null;});},index:function(elem){if(!elem||typeof elem==="string"){return jQuery.inArray(this[0],elem?jQuery(elem):this.parent().children());}
-return jQuery.inArray(elem.jquery?elem[0]:elem,this);},add:function(selector,context){var set=typeof selector==="string"?jQuery(selector,context||this.context):jQuery.makeArray(selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all));},andSelf:function(){return this.add(this.prevObject);}});function isDisconnected(node){return!node||!node.parentNode||node.parentNode.nodeType===11;}
-jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until);if(!runtil.test(name)){selector=until;}
-if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret);}
-ret=this.length>1?jQuery.unique(ret):ret;if((this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)){ret=ret.reverse();}
-return this.pushStack(ret,name,slice.call(arguments).join(","));};});jQuery.extend({filter:function(expr,elems,not){if(not){expr=":not("+expr+")";}
-return jQuery.find.matches(expr,elems);},dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur);}
-cur=cur[dir];}
-return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType===1&&++num===result){break;}}
-return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n);}}
-return r;}});var rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/(<([\w:]+)[^>]*?)\/>/g,rselfClosing=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,rtagName=/<([\w:]+)/,rtbody=/"+tag+">";},wrapMap={option:[1,""," "],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!jQuery.support.htmlSerialize){wrapMap._default=[1,"div","
"];}
-jQuery.fn.extend({text:function(text){if(jQuery.isFunction(text)){return this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()));});}
-if(typeof text!=="object"&&text!==undefined){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));}
-return jQuery.text(this);},wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}
-if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
-wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild;}
-return elem;}).append(this);}
-return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
-return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.insertBefore(elem,this.firstChild);}});},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});}else if(arguments.length){var set=jQuery(arguments[0]);set.push.apply(set,this.toArray());return this.pushStack(set,"before",arguments);}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});}else if(arguments.length){var set=this.pushStack(this,"after",arguments);set.push.apply(set,jQuery(arguments[0]).toArray());return set;}},remove:function(selector,keepData){for(var i=0,elem;(elem=this[i])!=null;i++){if(!selector||jQuery.filter(selector,[elem]).length){if(!keepData&&elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));jQuery.cleanData([elem]);}
-if(elem.parentNode){elem.parentNode.removeChild(elem);}}}
-return this;},empty:function(){for(var i=0,elem;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));}
-while(elem.firstChild){elem.removeChild(elem.firstChild);}}
-return this;},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML,ownerDocument=this.ownerDocument;if(!html){var div=ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML;}
-return jQuery.clean([html.replace(rinlinejQuery,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(rleadingWhitespace,"")],ownerDocument)[0];}else{return this.cloneNode(true);}});if(events===true){cloneCopyEvent(this,ret);cloneCopyEvent(this.find("*"),ret.find("*"));}
-return ret;},html:function(value){if(value===undefined){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(rinlinejQuery,""):null;}else if(typeof value==="string"&&!rnocache.test(value)&&(jQuery.support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,fcloseTag);try{for(var i=0,l=this.length;i0||results.cacheable||this.length>1?fragment.cloneNode(true):fragment);}}
-if(scripts.length){jQuery.each(scripts,evalScript);}}
-return this;function root(elem,cur){return jQuery.nodeName(elem,"table")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}}});function cloneCopyEvent(orig,ret){var i=0;ret.each(function(){if(this.nodeName!==(orig[i]&&orig[i].nodeName)){return;}
-var oldData=jQuery.data(orig[i++]),curData=jQuery.data(this,oldData),events=oldData&&oldData.events;if(events){delete curData.handle;curData.events={};for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data);}}}});}
-function buildFragment(args,nodes,scripts){var fragment,cacheable,cacheresults,doc=(nodes&&nodes[0]?nodes[0].ownerDocument||nodes[0]:document);if(args.length===1&&typeof args[0]==="string"&&args[0].length<512&&doc===document&&!rnocache.test(args[0])&&(jQuery.support.checkClone||!rchecked.test(args[0]))){cacheable=true;cacheresults=jQuery.fragments[args[0]];if(cacheresults){if(cacheresults!==1){fragment=cacheresults;}}}
-if(!fragment){fragment=doc.createDocumentFragment();jQuery.clean(args,doc,fragment,scripts);}
-if(cacheable){jQuery.fragments[args[0]]=cacheresults?fragment:1;}
-return{fragment:fragment,cacheable:cacheable};}
-jQuery.fragments={};jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=this.length===1&&this[0].parentNode;if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);return this;}else{for(var i=0,l=insert.length;i0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems);}
-return this.pushStack(ret,name,insert.selector);}};});jQuery.extend({clean:function(elems,context,fragment,scripts){context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;}
-var ret=[];for(var i=0,elem;(elem=elems[i])!=null;i++){if(typeof elem==="number"){elem+="";}
-if(!elem){continue;}
-if(typeof elem==="string"&&!rhtml.test(elem)){elem=context.createTextNode(elem);}else if(typeof elem==="string"){elem=elem.replace(rxhtmlTag,fcloseTag);var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");div.innerHTML=wrap[1]+elem+wrap[2];while(depth--){div=div.lastChild;}
-if(!jQuery.support.tbody){var hasBody=rtbody.test(elem),tbody=tag==="table"&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]===""&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j]);}}}
-if(!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)){div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild);}
-elem=div.childNodes;}
-if(elem.nodeType){ret.push(elem);}else{ret=jQuery.merge(ret,elem);}}
-if(fragment){for(var i=0;ret[i];i++){if(scripts&&jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1){ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));}
-fragment.appendChild(ret[i]);}}}
-return ret;},cleanData:function(elems){var data,id,cache=jQuery.cache,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando;for(var i=0,elem;(elem=elems[i])!=null;i++){id=elem[jQuery.expando];if(id){data=cache[id];if(data.events){for(var type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{removeEvent(elem,type,data.handle);}}}
-if(deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}
-delete cache[id];}}}});var rexclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,ralpha=/alpha\([^)]*\)/,ropacity=/opacity=([^)]*)/,rfloat=/float/i,rdashAlpha=/-([a-z])/ig,rupper=/([A-Z])/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],getComputedStyle=document.defaultView&&document.defaultView.getComputedStyle,styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat",fcamelCase=function(all,letter){return letter.toUpperCase();};jQuery.fn.css=function(name,value){return access(this,name,value,true,function(elem,name,value){if(value===undefined){return jQuery.curCSS(elem,name);}
-if(typeof value==="number"&&!rexclude.test(name)){value+="px";}
-jQuery.style(elem,name,value);});};jQuery.extend({style:function(elem,name,value){if(!elem||elem.nodeType===3||elem.nodeType===8){return undefined;}
-if((name==="width"||name==="height")&&parseFloat(value)<0){value=undefined;}
-var style=elem.style||elem,set=value!==undefined;if(!jQuery.support.opacity&&name==="opacity"){if(set){style.zoom=1;var opacity=parseInt(value,10)+""==="NaN"?"":"alpha(opacity="+value*100+")";var filter=style.filter||jQuery.curCSS(elem,"filter")||"";style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):opacity;}
-return style.filter&&style.filter.indexOf("opacity=")>=0?(parseFloat(ropacity.exec(style.filter)[1])/100)+"":"";}
-if(rfloat.test(name)){name=styleFloat;}
-name=name.replace(rdashAlpha,fcamelCase);if(set){style[name]=value;}
-return style[name];},css:function(elem,name,force,extra){if(name==="width"||name==="height"){var val,props=cssShow,which=name==="width"?cssWidth:cssHeight;function getWH(){val=name==="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return;}
-jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;}
-if(extra==="margin"){val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0;}else{val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;}});}
-if(elem.offsetWidth!==0){getWH();}else{jQuery.swap(elem,props,getWH);}
-return Math.max(0,Math.round(val));}
-return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style,filter;if(!jQuery.support.opacity&&name==="opacity"&&elem.currentStyle){ret=ropacity.test(elem.currentStyle.filter||"")?(parseFloat(RegExp.$1)/100)+"":"";return ret===""?"1":ret;}
-if(rfloat.test(name)){name=styleFloat;}
-if(!force&&style&&style[name]){ret=style[name];}else if(getComputedStyle){if(rfloat.test(name)){name="float";}
-name=name.replace(rupper,"-$1").toLowerCase();var defaultView=elem.ownerDocument.defaultView;if(!defaultView){return null;}
-var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle){ret=computedStyle.getPropertyValue(name);}
-if(name==="opacity"&&ret===""){ret="1";}}else if(elem.currentStyle){var camelCase=name.replace(rdashAlpha,fcamelCase);ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!rnumpx.test(ret)&&rnum.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=camelCase==="fontSize"?"1em":(ret||0);ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}
-return ret;},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
-callback.call(elem);for(var name in options){elem.style[name]=old[name];}}});if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight,skip=elem.nodeName.toLowerCase()==="tr";return width===0&&height===0&&!skip?true:width>0&&height>0&&!skip?false:jQuery.curCSS(elem,"display")==="none";};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem);};}
-var jsc=now(),rscript=/".
- dcPage::jsLoad('js/_media.js').
- (($user_ui_enhanceduploader && $core_media_writable) ? dcPage::jsCandyUpload(array('d='.$d)) : '')
- );
-
-if (!empty($_GET['mkdok'])) {
- echo ''.__('Directory has been successfully created.').'
';
-}
-
-if (!empty($_GET['upok'])) {
- echo ''.__('Files have been successfully uploaded.').'
';
-}
-
-if (!empty($_GET['rmfok'])) {
- echo ''.__('File has been successfully removed.').'
';
-}
-
-if (!empty($_GET['rmdok'])) {
- echo ''.__('Directory has been successfully removed.').'
';
-}
-
-if (!empty($_GET['rebuildok'])) {
- echo ''.__('Directory has been successfully rebuilt.').'
';
-}
-
-if (!empty($_GET['unzipok'])) {
- echo ''.__('Zip file has been successfully extracted.').'
';
-}
-
-echo ''.html::escapeHTML($core->blog->name).' › ';
-if (!isset($core->media)) {
- echo ''.__('Media manager').' ';
-} else {
- $breadcrumb = $core->media->breadCrumb(html::escapeURL($page_url).'&d=%s','%s ');
- if ($breadcrumb == '') {
- echo ''.__('Media manager').' ';
- } else {
- echo ''.__('Media manager').' '.' / '.$breadcrumb.'';
- }
-}
-
-if (!$dir) {
- call_user_func($close_f);
- exit;
-}
-
-if ($post_id) {
- echo ''.sprintf(__('Choose a file to attach to entry %s by clicking on %s.'),
- ''.html::escapeHTML($post_title).' ',
- ' ').'
';
-}
-if ($popup) {
- echo ''.sprintf(__('Choose a file to insert into entry by clicking on %s.'),
- ' ').'
';
-}
-
-
-$items = array_values(array_merge($dir['dirs'],$dir['files']));
-if (count($items) == 0)
-{
- echo ''.__('No file.').'
';
-}
-else
-{
- $pager = new pager($page,count($items),$nb_per_page,10);
- $pager->html_prev = __($pager->html_prev);
- $pager->html_next = __($pager->html_next);
-
- echo
- ''.
-
- '';
-}
-
-if ($core_media_writable)
-{
- echo '';
-
- echo
- '
'.
- '
'.__('Add files').' '.
- ''.__('Please take care to publish media that you own and that are not protected by copyright.').'
'.
- ''.
- ''.
- '
';
-
- echo
- '
';
-
- echo '
';
-}
-
-# Empty remove form (for javascript actions)
-echo
-'';
-
-# Get zip directory
-if ($core->auth->check('media_admin',$core->blog->id) &&
- !(count($items) == 0 || (count($items) == 1 && $items[0]->parent)))
-{
- echo
- ''.
- __('Download this directory as a zip file').'
';
-}
-
-call_user_func($close_f);
-
-/* ----------------------------------------------------- */
-function mediaItemLine($f,$i)
-{
- global $core, $page_url, $popup, $post_id;
-
- $fname = $f->basename;
-
- if ($f->d) {
- $link = html::escapeURL($page_url).'&d='.html::sanitizeURL($f->relname);
- if ($f->parent) {
- $fname = '..';
- }
- } else {
- $link =
- 'media_item.php?id='.$f->media_id.'&popup='.$popup.'&post_id='.$post_id;
- }
-
- $class = 'media-item media-col-'.($i%2);
-
- $res =
- '';
-
- return $res;
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/media_item.php b/v2/dotclear/admin/media_item.php
deleted file mode 100644
index 3b4ffd0..0000000
--- a/v2/dotclear/admin/media_item.php
+++ /dev/null
@@ -1,528 +0,0 @@
-blog->getPosts(array('post_id'=>$post_id));
- if ($post->isEmpty()) {
- $post_id = null;
- }
- $post_title = $post->post_title;
- unset($post);
-}
-
-$file = null;
-$popup = (integer) !empty($_GET['popup']);
-$page_url = 'media_item.php?popup='.$popup.'&post_id='.$post_id;
-$media_page_url = 'media.php?popup='.$popup.'&post_id='.$post_id;
-
-$id = !empty($_REQUEST['id']) ? (integer) $_REQUEST['id'] : '';
-
-if ($popup) {
- $open_f = array('dcPage','openPopup');
- $close_f = array('dcPage','closePopup');
-} else {
- $open_f = array('dcPage','open');
- $close_f = create_function('',"dcPage::helpBlock('core_media'); dcPage::close();");
-}
-
-$core_media_writable = false;
-try
-{
- $core->media = new dcMedia($core);
-
- if ($id) {
- $file = $core->media->getFile($id);
- }
-
- if ($file === null) {
- throw new Exception(__('Not a valid file'));
- }
-
- $core->media->chdir(dirname($file->relname));
- $core_media_writable = $core->media->writable();
-
- # Prepare directories combo box
- $dirs_combo = array();
- foreach ($core->media->getRootDirs() as $v) {
- if ($v->w) {
- $dirs_combo['/'.$v->relname] = $v->relname;
- }
- }
- ksort($dirs_combo);
-}
-catch (Exception $e)
-{
- $core->error->add($e->getMessage());
-}
-
-# Upload a new file
-if ($file && !empty($_FILES['upfile']) && $file->editable && $core_media_writable)
-{
- try {
- files::uploadStatus($_FILES['upfile']);
- $core->media->uploadFile($_FILES['upfile']['tmp_name'],$file->basename,null,false,true);
- http::redirect($page_url.'&id='.$id.'&fupl=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Update file
-if ($file && !empty($_POST['media_file']) && $file->editable && $core_media_writable)
-{
- $newFile = clone $file;
-
- $newFile->basename = $_POST['media_file'];
-
- if ($_POST['media_path']) {
- $newFile->dir = $_POST['media_path'];
- $newFile->relname = $_POST['media_path'].'/'.$newFile->basename;
- } else {
- $newFile->dir = '';
- $newFile->relname = $newFile->basename;
- }
- $newFile->media_title = $_POST['media_title'];
- $newFile->media_dt = strtotime($_POST['media_dt']);
- $newFile->media_dtstr = $_POST['media_dt'];
- $newFile->media_priv = !empty($_POST['media_private']);
-
- try {
- $core->media->updateFile($file,$newFile);
- http::redirect($page_url.'&id='.$id.'&fupd=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Update thumbnails
-if (!empty($_POST['thumbs']) && $file->media_type == 'image' && $file->editable && $core_media_writable)
-{
- try {
- $foo = null;
- $core->media->mediaFireRecreateEvent($file);
- http::redirect($page_url.'&id='.$id.'&thumbupd=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Unzip file
-if (!empty($_POST['unzip']) && $file->type == 'application/zip' && $file->editable && $core_media_writable)
-{
- try {
- $unzip_dir = $core->media->inflateZipFile($file,$_POST['inflate_mode'] == 'new');
- http::redirect($media_page_url.'&d='.$unzip_dir.'&unzipok=1');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Function to get image title based on meta
-function dcGetImageTitle($file,$pattern)
-{
- $res = array();
- $pattern = preg_split('/\s*;;\s*/',$pattern);
- $sep = ', ';
-
- foreach ($pattern as $v) {
- if ($v == 'Title') {
- $res[] = $file->media_title;
- } elseif ($file->media_meta->{$v}) {
- $res[] = (string) $file->media_meta->{$v};
- } elseif (preg_match('/^Date\((.+?)\)$/u',$v,$m)) {
- $res[] = dt::str($m[1],$file->media_dt);
- } elseif (preg_match('/^DateTimeOriginal\((.+?)\)$/u',$v,$m) && $file->media_meta->DateTimeOriginal) {
- $res[] = dt::dt2str($m[1],(string) $file->media_meta->DateTimeOriginal);
- } elseif (preg_match('/^separator\((.*?)\)$/u',$v,$m)) {
- $sep = $m[1];
- }
- }
- return implode($sep,$res);
-}
-
-/* DISPLAY Main page
--------------------------------------------------------- */
-$starting_scripts = dcPage::jsLoad('js/_media_item.js');
-if ($popup) {
- $starting_scripts .=
- dcPage::jsLoad('js/jsToolBar/popup_media.js');
-}
-call_user_func($open_f,__('Media manager'),
- $starting_scripts.
- dcPage::jsDatePicker().
- dcPage::jsPageTabs()
-);
-
-if ($file === null) {
- call_user_func($close_f);
- exit;
-}
-
-if (!empty($_GET['fupd']) || !empty($_GET['fupl'])) {
- echo ''.__('File has been successfully updated.').'
';
-}
-if (!empty($_GET['thumbupd'])) {
- echo ''.__('Thumbnails have been successfully updated.').'
';
-}
-
-echo ''.__('Media manager').' '.
-' / '.$core->media->breadCrumb(html::escapeURL($media_page_url).'&d=%s').
-''.$file->basename.' ';
-
-# Insertion popup
-if ($popup)
-{
- $media_desc = $file->media_title;
-
- echo
- '';
-}
-
-echo
-'';
-
-call_user_func($close_f);
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/permissions.php b/v2/dotclear/admin/permissions.php
deleted file mode 100644
index a0dd0a6..0000000
--- a/v2/dotclear/admin/permissions.php
+++ /dev/null
@@ -1,160 +0,0 @@
-userExists($u)) {
- $users[] = $u;
- }
- }
-}
-
-# Check blogs
-if (!empty($_REQUEST['blog_id']) && is_array($_REQUEST['blog_id']))
-{
- foreach ($_REQUEST['blog_id'] as $b)
- {
- if ($core->blogExists($b)) {
- $blogs[] = $b;
- }
- }
-}
-
-# Update permissions
-if (!empty($_POST['upd_perm']) && !empty($users) && !empty($blogs))
-{
- $redir = 'permissions.php?upd=1';
-
- try
- {
- if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
- throw new Exception(__('Password verification failed'));
- }
-
- foreach ($users as $u)
- {
- foreach ($blogs as $b)
- {
- $set_perms = array();
-
- if (!empty($_POST['perm'][$b]))
- {
- foreach ($_POST['perm'][$b] as $perm_id => $v)
- {
- if ($v) {
- $set_perms[$perm_id] = true;
- }
- }
- }
-
- $core->setUserBlogPermissions($u, $b, $set_perms, true);
- }
-
- $redir .= '&user_id[]='.$u;
- }
-
- foreach ($blogs as $b) {
- $redir .= '&blog_id[]='.$b;
- }
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-
-
-if (empty($blogs) || empty($users)) {
- $core->error->add(__('No blog or user given.'));
-}
-
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open(__('permissions'),
- dcPage::jsLoad('js/_permissions.js')
-);
-
-echo '';
-
-if (!empty($_GET['upd'])) {
- echo ''.__('The permissions have been successfully updated.').'
';
-}
-
-if (!empty($blogs) && !empty($users))
-{
- $perm_form = '';
-
- if (count($users) == 1) {
- $user_perm = $core->getUserPermissions($users[0]);
- }
-
- foreach ($users as $u) {
- $user_list[] = ''.$u.' ';
- }
-
- echo ''.sprintf(__('You are about to change permissions on the following blogs for users %s.'),
- implode(', ',$user_list));
-
- echo '
';
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/permissions_blog.php b/v2/dotclear/admin/permissions_blog.php
deleted file mode 100644
index 3757788..0000000
--- a/v2/dotclear/admin/permissions_blog.php
+++ /dev/null
@@ -1,196 +0,0 @@
- 'B.blog_id',
-__('Blog name') => 'blog_name'
-);
-
-$order_combo = array(
-__('Descending') => 'desc',
-__('Ascending') => 'asc'
-);
-
-$q = !empty($_GET['q']) ? $_GET['q'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'blog_id';
-$order = !empty($_GET['order']) ? $_GET['order'] : 'asc';
-
-
-# Check users
-if (!empty($_REQUEST['user_id']) && is_array($_REQUEST['user_id']))
-{
- foreach ($_REQUEST['user_id'] as $u)
- {
- if ($core->userExists($u)) {
- $users[] = $u;
- }
- }
-}
-
-if (empty($users))
-{
- $core->error->add(__('No blog or user given.'));
-}
-else
-{
- $page = !empty($_GET['page']) ? $_GET['page'] : 1;
- $nb_per_page = 30;
-
- if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
- $nb_per_page = $_GET['nb'];
- }
-
- $show_filters = false;
-
- # - Search filter
- if ($q) {
- $params['q'] = $q;
- $show_filters = true;
- }
-
- # - Sortby and order filter
- if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
- if ($order !== '' && in_array($order,$order_combo)) {
- $params['order'] = $sortby.' '.$order;
- $show_filters = true;
- }
- }
-
- $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
-
- try {
- $rs = $core->getBlogs($params);
- $counter = $core->getBlogs($params,1);
- $nb_blog = $counter->f(0);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-$starting_script = dcPage::jsLoad('js/_permissions_blog.js');
-if (!$show_filters) {
- $starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
-dcPage::open(__('choose a blog'),$starting_script);
-
-echo '';
-
-if (!$core->error->flag())
-{
- $hidden_fields = '';
- foreach ($users as $u) {
- $hidden_fields .= form::hidden(array('user_id[]'),$u);
- }
-
- if (!$show_filters) {
- echo ''.__('Filters').'
';
- }
-
- echo
- '';
-
- echo
- ''.
- sprintf(__('Choose one or more blogs to which you want to give permissions to users %s.'),
- ''.implode(', ',$users).' ').'
';
-
- # Show blogs
- if ($nb_blog == 0)
- {
- echo ''.__('No blog').'
';
- }
- else
- {
- $pager = new pager($page,$nb_blog,$nb_per_page,10);
- $pager->var_page = 'page';
-
- echo ''.__('Page(s)').' : '.$pager->getLinks().'
';
-
- echo
- '';
-
- echo ''.__('Page(s)').' : '.$pager->getLinks().'
';
- }
-}
-
-dcPage::close();
-
-function blogLine($rs)
-{
- global $core;
-
- $img_status = $rs->blog_status == 1 ? 'check-on' : 'check-off';
- $txt_status = $GLOBALS['core']->getBlogStatus($rs->blog_status);
- $img_status = sprintf(' ',$img_status,$txt_status);
-
- return
- ''.
- ''.
- form::checkbox(array('blog_id[]'),$rs->blog_id,'','','',false,'title="'.__('select').' '.$rs->blog_id.'"').' '.
- ''.$rs->blog_id.' '.
- ''.html::escapeHTML($rs->blog_name).' '.
- ''.$core->countBlogPosts($rs->blog_id).' '.
- ''.$img_status.' '.
- ' ';
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/plugin.php b/v2/dotclear/admin/plugin.php
deleted file mode 100644
index cea46d5..0000000
--- a/v2/dotclear/admin/plugin.php
+++ /dev/null
@@ -1,91 +0,0 @@
-plugins->moduleExists($p)) {
- $p_file = $core->plugins->moduleRoot($p).'/index.php';
-}
-
-if (file_exists($p_file))
-{
- # Loading plugin
- $p_info = $core->plugins->getModules($p);
-
- $p_url = 'plugin.php?p='.$p;
-
- $p_title = 'no content - plugin';
- $p_head = '';
- $p_content = ''.__('No content found on this plugin.').'
';
-
- ob_start();
- include $p_file;
- $res = ob_get_contents();
- ob_end_clean();
-
- if (preg_match('|(.*?)(.*?)|ms',$m[1],$mt)) {
- $p_title = $mt[1];
- }
-
- if (preg_match_all('|(.*?)|ms',$m[1],$ms)) {
- foreach ($ms[1] as $v) {
- $p_head .= $v."\n";
- }
- }
-
- if (preg_match_all('|(.*?)|ms',$m[1],$ms)) {
- foreach ($ms[1] as $v) {
- $p_head .= $v."\n";
- }
- }
-
- if (preg_match_all('|( )|ms',$m[1],$ms)) {
- foreach ($ms[1] as $v) {
- $p_head .= $v."\n";
- }
- }
- }
-
- if (preg_match('|(.+)
'."\n".
-
- '';
-
- echo
- ''."\n".
- '
'."\n".
- '
'."\n";
-
- # Safe mode
- if ($safe_mode)
- {
- echo
- '
'.__('Safe mode').' '.
- '
'.__('You are in safe mode. All plugins have been temporarily disabled. Remind to log out then log in again normally to get back all functionalities').'
'.
- '
';
- }
-
- if ($core->error->flag()) {
- echo
- '
'.__('Errors:').' '.
- $core->error->toHTML().
- '
';
- }
- }
-
- public static function close()
- {
- $menu =& $GLOBALS['_menu'];
-
- echo
- "
\n". // End of #content
- "
\n". // End of #main
-
- '
'."\n";
-
- foreach ($menu as $k => $v) {
- echo $menu[$k]->draw();
- }
-
- echo
- '
'."\n". // End of #main-menu
- ''."\n".
- "
\n"; // End of #wrapper
-
- if (defined('DC_DEV') && DC_DEV === true) {
- echo self::debugInfo();
- }
-
- echo
- '|ms',$res,$m)) {
- $p_content = $m[1];
- }
-
- call_user_func($open_f,$p_title,$p_head);
- echo $p_content;
- call_user_func($close_f);
-}
-else
-{
- call_user_func($open_f,__('Plugin not found'));
-
- echo '
'.__('Plugin not found').' ';
-
- echo '
'.__('The plugin you reached does not exist or does not have an admin page.').'
';
-
- call_user_func($close_f);
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/plugins.php b/v2/dotclear/admin/plugins.php
deleted file mode 100644
index cdc7a61..0000000
--- a/v2/dotclear/admin/plugins.php
+++ /dev/null
@@ -1,364 +0,0 @@
-plugins->moduleExists($plugin_id)) {
- throw new Exception(__('No such plugin.'));
- }
-
- $plugin = $core->plugins->getModules($plugin_id);
- $plugin['id'] = $plugin_id;
-
- if (!preg_match('!^'.$p_path_pat.'!', $plugin['root'])) {
- throw new Exception(__('You don\'t have permissions to delete this plugin.'));
- }
-
- # --BEHAVIOR-- pluginBeforeDelete
- $core->callBehavior('pluginsBeforeDelete', $plugin);
-
- $core->plugins->deleteModule($plugin_id);
-
- # --BEHAVIOR-- pluginAfterDelete
- $core->callBehavior('pluginsAfterDelete', $plugin);
- }
- else
- {
- $core->plugins->deleteModule($plugin_id,true);
- }
-
- http::redirect('plugins.php?removed=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- # Deactivate plugin
- elseif ($plugin_id && !empty($_POST['deactivate']))
- {
- try
- {
- if (!$core->plugins->moduleExists($plugin_id)) {
- throw new Exception(__('No such plugin.'));
- }
-
- $plugin = $core->plugins->getModules($plugin_id);
- $plugin['id'] = $plugin_id;
-
- if (!$plugin['root_writable']) {
- throw new Exception(__('You don\'t have permissions to deactivate this plugin.'));
- }
-
- $core->plugins->deactivateModule($plugin_id);
- http::redirect('plugins.php');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- # Activate plugin
- elseif ($plugin_id && !empty($_POST['activate']))
- {
- try
- {
- $p = $core->plugins->getDisabledModules();
- if (!isset($p[$plugin_id])) {
- throw new Exception(__('No such plugin.'));
- }
- $core->plugins->activateModule($plugin_id);
- http::redirect('plugins.php');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- # Plugin upload
- elseif ((!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file'])) ||
- (!empty($_POST['fetch_pkg']) && !empty($_POST['pkg_url'])))
- {
- try
- {
- if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
- throw new Exception(__('Password verification failed'));
- }
-
- if (!empty($_POST['upload_pkg']))
- {
- files::uploadStatus($_FILES['pkg_file']);
-
- $dest = $p_path.'/'.$_FILES['pkg_file']['name'];
- if (!move_uploaded_file($_FILES['pkg_file']['tmp_name'],$dest)) {
- throw new Exception(__('Unable to move uploaded file.'));
- }
- }
- else
- {
- $url = urldecode($_POST['pkg_url']);
- $dest = $p_path.'/'.basename($url);
-
- try
- {
- $client = netHttp::initClient($url,$path);
- $client->setUserAgent('Dotclear - http://www.dotclear.org/');
- $client->useGzip(false);
- $client->setPersistReferers(false);
- $client->setOutput($dest);
- $client->get($path);
- }
- catch( Exception $e)
- {
- throw new Exception(__('An error occurred while downloading the file.'));
- }
-
- unset($client);
- }
-
- $ret_code = $core->plugins->installPackage($dest,$core->plugins);
- http::redirect('plugins.php?added='.$ret_code);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- $default_tab = 'addplugin';
- }
- }
-}
-
-# Plugin install
-$plugins_install = $core->plugins->installModules();
-
-/* DISPLAY Main page
--------------------------------------------------------- */
-dcPage::open(__('Plugins management'),
- dcPage::jsLoad('js/_plugins.js').
- dcPage::jsPageTabs($default_tab)
-);
-
-echo
-'
'.__('Plugins management').' ';
-
-if (!empty($_GET['removed'])) {
- echo
- '
'.__('Plugin has been successfully deleted.').'
';
-}
-if (!empty($_GET['added'])) {
- echo '
'.
- ($_GET['added'] == 2 ? __('Plugin has been successfully upgraded') : __('Plugin has been successfully installed.')).
- '
';
-}
-
-# Plugins install messages
-if (!empty($plugins_install['success']))
-{
- echo '
'.__('Following plugins have been installed:').'
';
- foreach ($plugins_install['success'] as $k => $v) {
- echo ''.$k.' ';
- }
- echo ' ';
-}
-if (!empty($plugins_install['failure']))
-{
- echo '
'.__('Following plugins have not been installed:').'
';
- foreach ($plugins_install['failure'] as $k => $v) {
- echo ''.$k.' ('.$v.') ';
- }
- echo ' ';
-}
-
-# List all active plugins
-echo '
'.__('Plugins add new functionalities to Dotclear. '.
-'Here you can activate or deactivate installed plugins.').'
';
-
-echo '
'.sprintf(__('You can find additional plugins for your blog on %s.'),
-'Dotaddict ').' ';
-
-if ($is_writable) {
- echo __('To install or upgrade a plugin you generally just need to upload it '.
- 'in "Install or upgrade a plugin" section.');
-} else {
- echo __('To install or upgrade a plugin you just need to extract it in your plugins directory.');
-}
-echo '
';
-
-echo
-'
';
-
-$p_available = $core->plugins->getModules();
-uasort($p_available,create_function('$a,$b','return strcasecmp($a["name"],$b["name"]);'));
-if (!empty($p_available))
-{
- echo
- '
'.__('Activated plugins').' '.
- '
'.
- ''.__('Plugin').' '.
- ''.__('Version').' '.
- ''.__('Details').' '.
- ''.__('Action').' '.
- ' ';
-
- foreach ($p_available as $k => $v)
- {
- $is_deletable = $is_writable && preg_match('!^'.$p_path_pat.'!',$v['root']);
- $is_deactivable = $v['root_writable'];
-
- echo
- ''.
- ''.html::escapeHTML($k).' '.
- ''.html::escapeHTML($v['version']).' '.
- ''.html::escapeHTML($v['name']).' '.
- ' '.html::escapeHTML($v['desc']).' '.
- '';
-
- if ($is_deletable || $is_deactivable)
- {
- echo
- '';
- }
-
- echo
- ' '.
- ' ';
- }
- echo
- '
';
-}
-
-$p_disabled = $core->plugins->getDisabledModules();
-uksort($p_disabled,create_function('$a,$b','return strcasecmp($a,$b);'));
-if (!empty($p_disabled))
-{
- echo
- '
'.__('Deactivated plugins').' '.
- '
'.
- ''.__('Plugin').' '.
- ''.__('Action').' '.
- ' ';
-
- foreach ($p_disabled as $k => $v)
- {
- $is_deletable = $is_writable && preg_match('!^'.$p_path_pat.'!',$v['root']);
- $is_activable = $v['root_writable'];
-
- echo
- ''.
- ''.html::escapeHTML($k).' '.
- '';
-
- if ($is_deletable || $is_activable)
- {
- echo
- '';
- }
-
- echo
- ' '.
- ' ';
- }
- echo
- '
';
-}
-
-echo '
';
-
-# Add a new plugin
-echo
-'
';
-
-if ($is_writable)
-{
- echo '
'.__('You can install plugins by uploading or downloading zip files.').'
';
-
- # 'Upload plugin' form
- echo
- '
';
-
- # 'Fetch plugin' form
- echo
- '
';
-}
-else
-{
- echo
- '
'.
- __('To enable this function, please give write access to your plugins directory.').
- '
';
-}
-echo '
';
-
-# --BEHAVIOR-- pluginsToolsTabs
-$core->callBehavior('pluginsToolsTabs',$core);
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/popup_link.php b/v2/dotclear/admin/popup_link.php
deleted file mode 100644
index 5f3bddd..0000000
--- a/v2/dotclear/admin/popup_link.php
+++ /dev/null
@@ -1,62 +0,0 @@
-'.__('Add a link').'';
-
-# Languages combo
-$rs = $core->blog->getLangs(array('order'=>'asc'));
-$all_langs = l10n::getISOcodes(0,1);
-$lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1));
-while ($rs->fetch()) {
- if (isset($all_langs[$rs->post_lang])) {
- $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang;
- unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]);
- } else {
- $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang;
- }
-}
-unset($all_langs);
-unset($rs);
-
-echo
-'
'.
-
-'
'.__('Cancel').' - '.
-''.__('Insert').'
'."\n".
-
-''."\n";
-
-dcPage::closePopup();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/popup_posts.php b/v2/dotclear/admin/popup_posts.php
deleted file mode 100644
index 46591f4..0000000
--- a/v2/dotclear/admin/popup_posts.php
+++ /dev/null
@@ -1,57 +0,0 @@
-'.__('Add a link to an entry').'';
-
-echo '
';
-
-try {
- $posts = $core->blog->getPosts($params);
- $counter = $core->blog->getPosts($params,true);
- $post_list = new adminPostMiniList($core,$posts,$counter->f(0));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-echo '
'; # I know it's not a form but we just need the ID
-$post_list->display($page,$nb_per_page);
-echo '
';
-
-echo '
'.__('cancel').'
';
-
-dcPage::closePopup();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/post.php b/v2/dotclear/admin/post.php
deleted file mode 100644
index 02493ec..0000000
--- a/v2/dotclear/admin/post.php
+++ /dev/null
@@ -1,624 +0,0 @@
-auth->getOption('post_format');
-$post_password = '';
-$post_url = '';
-$post_lang = $core->auth->getInfo('user_lang');
-$post_title = '';
-$post_excerpt = '';
-$post_excerpt_xhtml = '';
-$post_content = '';
-$post_content_xhtml = '';
-$post_notes = '';
-$post_status = $core->auth->getInfo('user_post_status');
-$post_selected = false;
-$post_open_comment = $core->blog->settings->system->allow_comments;
-$post_open_tb = $core->blog->settings->system->allow_trackbacks;
-
-$page_title = __('New entry');
-
-$can_view_page = true;
-$can_edit_post = $core->auth->check('usage,contentadmin',$core->blog->id);
-$can_publish = $core->auth->check('publish,contentadmin',$core->blog->id);
-$can_delete = false;
-
-$post_headlink = ' ';
-$post_link = '%s ';
-
-$next_link = $prev_link = $next_headlink = $prev_headlink = null;
-
-# If user can't publish
-if (!$can_publish) {
- $post_status = -2;
-}
-
-# Getting categories
-$categories_combo = array(' ' => '');
-try {
- $categories = $core->blog->getCategories(array('post_type'=>'post'));
- while ($categories->fetch()) {
- $categories_combo[] = new formSelectOption(
- str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title),
- $categories->cat_id
- );
- }
-} catch (Exception $e) { }
-
-# Status combo
-foreach ($core->blog->getAllPostStatus() as $k => $v) {
- $status_combo[$v] = (string) $k;
-}
-
-# Formaters combo
-foreach ($core->getFormaters() as $v) {
- $formaters_combo[$v] = $v;
-}
-
-# Languages combo
-$rs = $core->blog->getLangs(array('order'=>'asc'));
-$all_langs = l10n::getISOcodes(0,1);
-$lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1));
-while ($rs->fetch()) {
- if (isset($all_langs[$rs->post_lang])) {
- $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang;
- unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]);
- } else {
- $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang;
- }
-}
-unset($all_langs);
-unset($rs);
-
-
-# Get entry informations
-if (!empty($_REQUEST['id']))
-{
- $params['post_id'] = $_REQUEST['id'];
-
- $post = $core->blog->getPosts($params);
-
- if ($post->isEmpty())
- {
- $core->error->add(__('This entry does not exist.'));
- $can_view_page = false;
- }
- else
- {
- $post_id = $post->post_id;
- $cat_id = $post->cat_id;
- $post_dt = date('Y-m-d H:i',strtotime($post->post_dt));
- $post_format = $post->post_format;
- $post_password = $post->post_password;
- $post_url = $post->post_url;
- $post_lang = $post->post_lang;
- $post_title = $post->post_title;
- $post_excerpt = $post->post_excerpt;
- $post_excerpt_xhtml = $post->post_excerpt_xhtml;
- $post_content = $post->post_content;
- $post_content_xhtml = $post->post_content_xhtml;
- $post_notes = $post->post_notes;
- $post_status = $post->post_status;
- $post_selected = (boolean) $post->post_selected;
- $post_open_comment = (boolean) $post->post_open_comment;
- $post_open_tb = (boolean) $post->post_open_tb;
-
- $page_title = __('Edit entry');
-
- $can_edit_post = $post->isEditable();
- $can_delete= $post->isDeletable();
-
- $next_rs = $core->blog->getNextPost($post,1);
- $prev_rs = $core->blog->getNextPost($post,-1);
-
- if ($next_rs !== null) {
- $next_link = sprintf($post_link,$next_rs->post_id,
- html::escapeHTML($next_rs->post_title),__('next entry').' »');
- $next_headlink = sprintf($post_headlink,'next',
- html::escapeHTML($next_rs->post_title),$next_rs->post_id);
- }
-
- if ($prev_rs !== null) {
- $prev_link = sprintf($post_link,$prev_rs->post_id,
- html::escapeHTML($prev_rs->post_title),'« '.__('previous entry'));
- $prev_headlink = sprintf($post_headlink,'previous',
- html::escapeHTML($prev_rs->post_title),$prev_rs->post_id);
- }
-
- try {
- $core->media = new dcMedia($core);
- } catch (Exception $e) {}
- }
-}
-
-# Format excerpt and content
-if (!empty($_POST) && $can_edit_post)
-{
- $post_format = $_POST['post_format'];
- $post_excerpt = $_POST['post_excerpt'];
- $post_content = $_POST['post_content'];
-
- $post_title = $_POST['post_title'];
-
- $cat_id = (integer) $_POST['cat_id'];
-
- if (isset($_POST['post_status'])) {
- $post_status = (integer) $_POST['post_status'];
- }
-
- if (empty($_POST['post_dt'])) {
- $post_dt = '';
- } else {
- $post_dt = strtotime($_POST['post_dt']);
- $post_dt = date('Y-m-d H:i',$post_dt);
- }
-
- $post_open_comment = !empty($_POST['post_open_comment']);
- $post_open_tb = !empty($_POST['post_open_tb']);
- $post_selected = !empty($_POST['post_selected']);
- $post_lang = $_POST['post_lang'];
- $post_password = !empty($_POST['post_password']) ? $_POST['post_password'] : null;
-
- $post_notes = $_POST['post_notes'];
-
- if (isset($_POST['post_url'])) {
- $post_url = $_POST['post_url'];
- }
-
- $core->blog->setPostContent(
- $post_id,$post_format,$post_lang,
- $post_excerpt,$post_excerpt_xhtml,$post_content,$post_content_xhtml
- );
-}
-
-# Create or update post
-if (!empty($_POST) && !empty($_POST['save']) && $can_edit_post)
-{
- $cur = $core->con->openCursor($core->prefix.'post');
-
- $cur->post_title = $post_title;
- $cur->cat_id = ($cat_id ? $cat_id : null);
- $cur->post_dt = $post_dt ? date('Y-m-d H:i:00',strtotime($post_dt)) : '';
- $cur->post_format = $post_format;
- $cur->post_password = $post_password;
- $cur->post_lang = $post_lang;
- $cur->post_title = $post_title;
- $cur->post_excerpt = $post_excerpt;
- $cur->post_excerpt_xhtml = $post_excerpt_xhtml;
- $cur->post_content = $post_content;
- $cur->post_content_xhtml = $post_content_xhtml;
- $cur->post_notes = $post_notes;
- $cur->post_status = $post_status;
- $cur->post_selected = (integer) $post_selected;
- $cur->post_open_comment = (integer) $post_open_comment;
- $cur->post_open_tb = (integer) $post_open_tb;
-
- if (isset($_POST['post_url'])) {
- $cur->post_url = $post_url;
- }
-
- # Update post
- if ($post_id)
- {
- try
- {
- # --BEHAVIOR-- adminBeforePostUpdate
- $core->callBehavior('adminBeforePostUpdate',$cur,$post_id);
-
- $core->blog->updPost($post_id,$cur);
-
- # --BEHAVIOR-- adminAfterPostUpdate
- $core->callBehavior('adminAfterPostUpdate',$cur,$post_id);
-
- http::redirect('post.php?id='.$post_id.'&upd=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- else
- {
- $cur->user_id = $core->auth->userID();
-
- try
- {
- # --BEHAVIOR-- adminBeforePostCreate
- $core->callBehavior('adminBeforePostCreate',$cur);
-
- $return_id = $core->blog->addPost($cur);
-
- # --BEHAVIOR-- adminAfterPostCreate
- $core->callBehavior('adminAfterPostCreate',$cur,$return_id);
-
- http::redirect('post.php?id='.$return_id.'&crea=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
-}
-
-if (!empty($_POST['delete']) && $can_delete)
-{
- try {
- # --BEHAVIOR-- adminBeforePostDelete
- $core->callBehavior('adminBeforePostDelete',$post_id);
- $core->blog->delPost($post_id);
- http::redirect('posts.php');
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-$default_tab = 'edit-entry';
-if (!$can_edit_post) {
- $default_tab = '';
-}
-if (!empty($_GET['co'])) {
- $default_tab = 'comments';
-}
-
-dcPage::open($page_title.' - '.__('Entries'),
- dcPage::jsDatePicker().
- dcPage::jsToolBar().
- dcPage::jsModal().
- dcPage::jsMetaEditor().
- dcPage::jsLoad('js/_post.js').
- dcPage::jsConfirmClose('entry-form','comment-form').
- # --BEHAVIOR-- adminPostHeaders
- $core->callBehavior('adminPostHeaders').
- dcPage::jsPageTabs($default_tab).
- $next_headlink."\n".$prev_headlink
-);
-
-if (!empty($_GET['upd'])) {
- echo '
'.__('Entry has been successfully updated.').'
';
-}
-elseif (!empty($_GET['crea'])) {
- echo '
'.__('Entry has been successfully created.').'
';
-}
-elseif (!empty($_GET['attached'])) {
- echo '
'.__('File has been successfully attached.').'
';
-}
-elseif (!empty($_GET['rmattach'])) {
- echo '
'.__('Attachment has been successfully removed.').'
';
-}
-
-if (!empty($_GET['creaco'])) {
- echo '
'.__('Comment has been successfully created.').'
';
- }
-
-# XHTML conversion
-if (!empty($_GET['xconv']))
-{
- $post_excerpt = $post_excerpt_xhtml;
- $post_content = $post_content_xhtml;
- $post_title = $post_title_xhtml;
- $post_format = 'xhtml';
-
- echo '
'.__('Don\'t forget to validate your XHTML conversion by saving your post.').'
';
-}
-
-echo '
'.html::escapeHTML($core->blog->name).' › '.''.__('Entries').' › '.$page_title;
-
- if ($post_id) {
- echo ' “'.$post_title.'”';
- }
-echo ' ';
-
-if ($post_id && $post->post_status == 1) {
- echo '
'.__('Go to this entry on the site').'
';
-}
-if ($post_id)
-{
- echo '
';
- if ($prev_link) { echo $prev_link; }
- if ($next_link && $prev_link) { echo ' - '; }
- if ($next_link) { echo $next_link; }
-
- # --BEHAVIOR-- adminPostNavLinks
- $core->callBehavior('adminPostNavLinks',isset($post) ? $post : null);
-
- echo '
';
-}
-
-# Exit if we cannot view page
-if (!$can_view_page) {
- dcPage::helpBlock('core_post');
- dcPage::close();
- exit;
-}
-
-/* Post form if we can edit post
--------------------------------------------------------- */
-if ($can_edit_post)
-{
- echo '
';
- echo '
';
-
- # --BEHAVIOR-- adminPostForm
- $core->callBehavior('adminPostAfterForm',isset($post) ? $post : null);
-
- echo '
';
-
- if ($post_id && $post->post_status == 1) {
- echo '
'.
- __('Ping blogs').'
';
- }
-
-}
-
-
-/* Comments and trackbacks
--------------------------------------------------------- */
-if ($post_id)
-{
- $params = array('post_id' => $post_id, 'order' => 'comment_dt ASC');
-
- $comments = $core->blog->getComments(array_merge($params,array('comment_trackback'=>0)));
- $trackbacks = $core->blog->getComments(array_merge($params,array('comment_trackback'=>1)));
-
- # Actions combo box
- $combo_action = array();
- if ($can_edit_post && $core->auth->check('publish,contentadmin',$core->blog->id))
- {
- $combo_action[__('publish')] = 'publish';
- $combo_action[__('unpublish')] = 'unpublish';
- $combo_action[__('mark as pending')] = 'pending';
- $combo_action[__('mark as junk')] = 'junk';
- }
-
- if ($can_edit_post && $core->auth->check('delete,contentadmin',$core->blog->id))
- {
- $combo_action[__('Delete')] = 'delete';
- }
-
- # --BEHAVIOR-- adminCommentsActionsCombo
- $core->callBehavior('adminCommentsActionsCombo',array(&$combo_action));
-
- $has_action = !empty($combo_action) && (!$trackbacks->isEmpty() || !$comments->isEmpty());
-
- echo
- '
';
-}
-
-/* Add a comment
--------------------------------------------------------- */
-if ($post_id)
-{
- echo
- '
';
-}
-
-
-# Show comments or trackbacks
-function showComments($rs,$has_action,$tb=false)
-{
- echo
- '
';
-}
-
-dcPage::helpBlock('core_post','core_wiki');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/post_media.php b/v2/dotclear/admin/post_media.php
deleted file mode 100644
index 1ed7d22..0000000
--- a/v2/dotclear/admin/post_media.php
+++ /dev/null
@@ -1,79 +0,0 @@
-blog->getPosts(array('post_id' => $post_id,'post_type'=>''));
-if ($rs->isEmpty()) {
- exit;
-}
-
-if ($post_id && $media_id && !empty($_POST['attach']))
-{
- $core->media = new dcMedia($core);
- $core->media->addPostMedia($post_id,$media_id);
- http::redirect($core->getPostAdminURL($rs->post_type,$post_id,false));
-}
-
-try {
- $core->media = new dcMedia($core);
- $f = $core->media->getPostMedia($post_id,$media_id);
- if (empty($f)) {
- $post_id = $media_id = null;
- throw new Exception(__('This attachment does not exist'));
- }
- $f = $f[0];
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-# Remove a media from en
-if (($post_id && $media_id) || $core->error->flag())
-{
- if (!empty($_POST['remove']))
- {
- $core->media->removePostMedia($post_id,$media_id);
- http::redirect($core->getPostAdminURL($rs->post_type,$post_id,false).'&rmattach=1');
- }
- elseif (isset($_POST['post_id'])) {
- http::redirect($core->getPostAdminURL($rs->post_type,$post_id,false));
- }
-
- if (!empty($_GET['remove']))
- {
- dcPage::open(__('Remove attachment'));
-
- echo '
'.__('Attachment').' › '.__('confirm removal').' ';
-
- echo
- '
';
-
- dcPage::close();
- exit;
- }
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/posts.php b/v2/dotclear/admin/posts.php
deleted file mode 100644
index f861074..0000000
--- a/v2/dotclear/admin/posts.php
+++ /dev/null
@@ -1,324 +0,0 @@
-blog->getCategories(array('post_type'=>'post'));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-# Getting authors
-try {
- $users = $core->blog->getPostsUsers();
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-# Getting dates
-try {
- $dates = $core->blog->getDates(array('type'=>'month'));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-# Getting langs
-try {
- $langs = $core->blog->getLangs();
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-# Creating filter combo boxes
-if (!$core->error->flag())
-{
- # Filter form we'll put in html_block
- $users_combo = $categories_combo = array();
- $users_combo['-'] = $categories_combo['-'] = '';
- while ($users->fetch())
- {
- $user_cn = dcUtils::getUserCN($users->user_id,$users->user_name,
- $users->user_firstname,$users->user_displayname);
-
- if ($user_cn != $users->user_id) {
- $user_cn .= ' ('.$users->user_id.')';
- }
-
- $users_combo[$user_cn] = $users->user_id;
- }
-
- $categories_combo[__('None')] = 'NULL';
- while ($categories->fetch()) {
- $categories_combo[str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').
- html::escapeHTML($categories->cat_title).
- ' ('.$categories->nb_post.')'] = $categories->cat_id;
- }
-
- $status_combo = array(
- '-' => ''
- );
- foreach ($core->blog->getAllPostStatus() as $k => $v) {
- $status_combo[$v] = (string) $k;
- }
-
- $selected_combo = array(
- '-' => '',
- __('selected') => '1',
- __('not selected') => '0'
- );
-
- # Months array
- $dt_m_combo['-'] = '';
- while ($dates->fetch()) {
- $dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month();
- }
-
- $lang_combo['-'] = '';
- while ($langs->fetch()) {
- $lang_combo[$langs->post_lang] = $langs->post_lang;
- }
-
- $sortby_combo = array(
- __('Date') => 'post_dt',
- __('Title') => 'post_title',
- __('Category') => 'cat_title',
- __('Author') => 'user_id',
- __('Status') => 'post_status',
- __('Selected') => 'post_selected'
- );
-
- $order_combo = array(
- __('Descending') => 'desc',
- __('Ascending') => 'asc'
- );
-}
-
-# Actions combo box
-$combo_action = array();
-if ($core->auth->check('publish,contentadmin',$core->blog->id))
-{
- $combo_action[__('Status')] = array(
- __('Publish') => 'publish',
- __('Unpublish') => 'unpublish',
- __('Schedule') => 'schedule',
- __('Mark as pending') => 'pending'
- );
-}
-$combo_action[__('Mark')] = array(
- __('Mark as selected') => 'selected',
- __('Mark as unselected') => 'unselected'
-);
-$combo_action[__('Change')] = array(__('Change category') => 'category');
-if ($core->auth->check('admin',$core->blog->id))
-{
- $combo_action[__('Change')] = array_merge($combo_action[__('Change')],
- array(__('Change author') => 'author'));
-}
-if ($core->auth->check('delete,contentadmin',$core->blog->id))
-{
- $combo_action[__('Delete')] = array(__('Delete') => 'delete');
-}
-
-# --BEHAVIOR-- adminPostsActionsCombo
-$core->callBehavior('adminPostsActionsCombo',array(&$combo_action));
-
-/* Get posts
--------------------------------------------------------- */
-$user_id = !empty($_GET['user_id']) ? $_GET['user_id'] : '';
-$cat_id = !empty($_GET['cat_id']) ? $_GET['cat_id'] : '';
-$status = isset($_GET['status']) ? $_GET['status'] : '';
-$selected = isset($_GET['selected']) ? $_GET['selected'] : '';
-$month = !empty($_GET['month']) ? $_GET['month'] : '';
-$lang = !empty($_GET['lang']) ? $_GET['lang'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'post_dt';
-$order = !empty($_GET['order']) ? $_GET['order'] : 'desc';
-
-$show_filters = false;
-
-$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
-$nb_per_page = 30;
-
-if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
- if ($nb_per_page != $_GET['nb']) {
- $show_filters = true;
- }
- $nb_per_page = (integer) $_GET['nb'];
-}
-
-$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
-$params['no_content'] = true;
-
-# - User filter
-if ($user_id !== '' && in_array($user_id,$users_combo)) {
- $params['user_id'] = $user_id;
- $show_filters = true;
-} else {
- $user_id='';
-}
-
-# - Categories filter
-if ($cat_id !== '' && in_array($cat_id,$categories_combo)) {
- $params['cat_id'] = $cat_id;
- $show_filters = true;
-} else {
- $cat_id='';
-}
-
-# - Status filter
-if ($status !== '' && in_array($status,$status_combo)) {
- $params['post_status'] = $status;
- $show_filters = true;
-} else {
- $status='';
-}
-
-# - Selected filter
-if ($selected !== '' && in_array($selected,$selected_combo)) {
- $params['post_selected'] = $selected;
- $show_filters = true;
-} else {
- $selected='';
-}
-
-# - Month filter
-if ($month !== '' && in_array($month,$dt_m_combo)) {
- $params['post_month'] = substr($month,4,2);
- $params['post_year'] = substr($month,0,4);
- $show_filters = true;
-} else {
- $month='';
-}
-
-# - Lang filter
-if ($lang !== '' && in_array($lang,$lang_combo)) {
- $params['post_lang'] = $lang;
- $show_filters = true;
-} else {
- $lang='';
-}
-
-# - Sortby and order filter
-if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
- if ($order !== '' && in_array($order,$order_combo)) {
- $params['order'] = $sortby.' '.$order;
- } else {
- $order='desc';
- }
-
- if ($sortby != 'post_dt' || $order != 'desc') {
- $show_filters = true;
- }
-} else {
- $sortby='post_dt';
- $order='desc';
-}
-
-# Get posts
-try {
- $posts = $core->blog->getPosts($params);
- $counter = $core->blog->getPosts($params,true);
- $post_list = new adminPostList($core,$posts,$counter->f(0));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-$starting_script = dcPage::jsLoad('js/_posts_list.js');
-if (!$show_filters) {
- $starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
-
-dcPage::open(__('Entries'),$starting_script);
-
-if (!$core->error->flag())
-{
- echo
- '
'.html::escapeHTML($core->blog->name).' › '.__('Entries').' '.
- '
'.__('New entry').'
';
-
- if (!$show_filters) {
- echo '
'.
- __('Filters').'
';
- }
-
- echo
- '
';
-
- # Show posts
- $post_list->display($page,$nb_per_page,
- '
'
- );
-}
-
-dcPage::helpBlock('core_posts');
-dcPage::close();
-?>
diff --git a/v2/dotclear/admin/posts_actions.php b/v2/dotclear/admin/posts_actions.php
deleted file mode 100644
index e2e03d8..0000000
--- a/v2/dotclear/admin/posts_actions.php
+++ /dev/null
@@ -1,259 +0,0 @@
- $v) {
- $entries[$k] = (integer) $v;
- }
-
- $params['sql'] = 'AND P.post_id IN('.implode(',',$entries).') ';
-
- if (!isset($_POST['full_content']) || empty($_POST['full_content'])) {
- $params['no_content'] = true;
- }
-
- if (isset($_POST['post_type'])) {
- $params['post_type'] = $_POST['post_type'];
- }
-
- $posts = $core->blog->getPosts($params);
-
- # --BEHAVIOR-- adminPostsActions
- $core->callBehavior('adminPostsActions',$core,$posts,$action,$redir);
-
- if (preg_match('/^(publish|unpublish|schedule|pending)$/',$action))
- {
- switch ($action) {
- case 'unpublish' : $status = 0; break;
- case 'schedule' : $status = -1; break;
- case 'pending' : $status = -2; break;
- default : $status = 1; break;
- }
-
- try
- {
- while ($posts->fetch()) {
- $core->blog->updPostStatus($posts->post_id,$status);
- }
-
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- elseif ($action == 'selected' || $action == 'unselected')
- {
- try
- {
- while ($posts->fetch()) {
- $core->blog->updPostSelected($posts->post_id,$action == 'selected');
- }
-
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- elseif ($action == 'delete')
- {
- try
- {
- while ($posts->fetch()) {
- # --BEHAVIOR-- adminBeforePostDelete
- $core->callBehavior('adminBeforePostDelete',$posts->post_id);
- $core->blog->delPost($posts->post_id);
- }
-
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-
- }
- elseif ($action == 'category' && isset($_POST['new_cat_id']))
- {
- try
- {
- while ($posts->fetch())
- {
- $new_cat_id = (integer) $_POST['new_cat_id'];
- $core->blog->updPostCategory($posts->post_id,$new_cat_id);
- }
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- elseif ($action == 'author' && isset($_POST['new_auth_id'])
- && $core->auth->check('admin',$core->blog->id))
- {
- $new_user_id = $_POST['new_auth_id'];
-
- try
- {
- if ($core->getUser($new_user_id)->isEmpty()) {
- throw new Exception(__('This user does not exist'));
- }
-
- while ($posts->fetch())
- {
- $cur = $core->con->openCursor($core->prefix.'post');
- $cur->user_id = $new_user_id;
- $cur->update('WHERE post_id = '.(integer) $posts->post_id);
- }
-
- http::redirect($redir);
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open(
- __('Entries'),
- dcPage::jsMetaEditor().
- # --BEHAVIOR-- adminBeforePostDelete
- $core->callBehavior('adminPostsActionsHeaders')
-);
-
-if (!isset($action)) {
- dcPage::close();
- exit;
-}
-
-$hidden_fields = '';
-while ($posts->fetch()) {
- $hidden_fields .= form::hidden(array('entries[]'),$posts->post_id);
-}
-
-if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false)
-{
- $hidden_fields .= form::hidden(array('redir'),html::escapeURL($_POST['redir']));
-}
-else
-{
- $hidden_fields .=
- form::hidden(array('user_id'),$_POST['user_id']).
- form::hidden(array('cat_id'),$_POST['cat_id']).
- form::hidden(array('status'),$_POST['status']).
- form::hidden(array('selected'),$_POST['selected']).
- form::hidden(array('month'),$_POST['month']).
- form::hidden(array('lang'),$_POST['lang']).
- form::hidden(array('sortby'),$_POST['sortby']).
- form::hidden(array('order'),$_POST['order']).
- form::hidden(array('page'),$_POST['page']).
- form::hidden(array('nb'),$_POST['nb']);
-}
-
-if (isset($_POST['post_type'])) {
- $hidden_fields .= form::hidden(array('post_type'),$_POST['post_type']);
-}
-
-# --BEHAVIOR-- adminPostsActionsContent
-$core->callBehavior('adminPostsActionsContent',$core,$action,$hidden_fields);
-
-if ($action == 'category')
-{
- echo '
'.__('Change category for entries').' ';
-
- # categories list
- # Getting categories
- $categories_combo = array(' ' => '');
- try {
- $categories = $core->blog->getCategories(array('post_type'=>'post'));
- while ($categories->fetch()) {
- $categories_combo[] = new formSelectOption(
- str_repeat(' ',$categories->level-1).
- ($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title),
- $categories->cat_id
- );
- }
- } catch (Exception $e) { }
-
- echo
- '
';
-}
-elseif ($action == 'author' && $core->auth->check('admin',$core->blog->id))
-{
- echo '
'.__('Change author for entries').' ';
-
- echo
- '
';
-}
-
-echo '
'.__('back').'
';
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/preferences.php b/v2/dotclear/admin/preferences.php
deleted file mode 100644
index 30420ab..0000000
--- a/v2/dotclear/admin/preferences.php
+++ /dev/null
@@ -1,631 +0,0 @@
-auth->getInfo('user_name');
-$user_firstname = $core->auth->getInfo('user_firstname');
-$user_displayname = $core->auth->getInfo('user_displayname');
-$user_email = $core->auth->getInfo('user_email');
-$user_url = $core->auth->getInfo('user_url');
-$user_lang = $core->auth->getInfo('user_lang');
-$user_tz = $core->auth->getInfo('user_tz');
-$user_post_status = $core->auth->getInfo('user_post_status');
-
-$user_options = $core->auth->getOptions();
-
-$core->auth->user_prefs->addWorkspace('dashboard');
-$user_dm_doclinks = $core->auth->user_prefs->dashboard->doclinks;
-$user_dm_dcnews = $core->auth->user_prefs->dashboard->dcnews;
-$user_dm_quickentry = $core->auth->user_prefs->dashboard->quickentry;
-
-$core->auth->user_prefs->addWorkspace('accessibility');
-$user_acc_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
-
-$core->auth->user_prefs->addWorkspace('interface');
-$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
-if ($core->auth->isSuperAdmin()) {
- $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
-}
-$user_ui_iconset = @$core->auth->user_prefs->interface->iconset;
-$user_ui_nofavmenu = $core->auth->user_prefs->interface->nofavmenu;
-
-$default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'user-profile';
-
-if (!empty($_GET['append']) || !empty($_GET['removed']) || !empty($_GET['neworder']) ||
- !empty($_GET['replaced']) || !empty($_POST['appendaction']) || !empty($_POST['removeaction'])) {
- $default_tab = 'user-favorites';
-} elseif (!empty($_GET['updated'])) {
- $default_tab = 'user-options';
-}
-if (($default_tab != 'user-profile') && ($default_tab != 'user-options') && ($default_tab != 'user-favorites')) {
- $default_tab = 'user-profile';
-}
-
-foreach ($core->getFormaters() as $v) {
- $formaters_combo[$v] = $v;
-}
-
-foreach ($core->blog->getAllPostStatus() as $k => $v) {
- $status_combo[$v] = $k;
-}
-
-$iconsets_combo = array(__('Default') => '');
-$iconsets_root = dirname(__FILE__).'/images/iconset/';
-if (is_dir($iconsets_root) && is_readable($iconsets_root)) {
- if (($d = @dir($iconsets_root)) !== false) {
- while (($entry = $d->read()) !== false) {
- if ($entry != '.' && $entry != '..' && is_dir($iconsets_root.'/'.$entry)) {
- $iconsets_combo[$entry] = $entry;
- }
- }
- }
-}
-
-# Language codes
-$langs = l10n::getISOcodes(1,1);
-foreach ($langs as $k => $v) {
- $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v);
- $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : '');
-}
-
-# Add or update user
-if (isset($_POST['user_name']))
-{
- try
- {
- $pwd_check = !empty($_POST['cur_pwd']) && $core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['cur_pwd']));
-
- if ($core->auth->allowPassChange() && !$pwd_check && $user_email != $_POST['user_email']) {
- throw new Exception(__('If you want to change your email or password you must provide your current password.'));
- }
-
- $cur = $core->con->openCursor($core->prefix.'user');
-
- $cur->user_name = $user_name = $_POST['user_name'];
- $cur->user_firstname = $user_firstname = $_POST['user_firstname'];
- $cur->user_displayname = $user_displayname = $_POST['user_displayname'];
- $cur->user_email = $user_email = $_POST['user_email'];
- $cur->user_url = $user_url = $_POST['user_url'];
- $cur->user_lang = $user_lang = $_POST['user_lang'];
- $cur->user_tz = $user_tz = $_POST['user_tz'];
-
- $cur->user_options = new ArrayObject($user_options);
-
- if ($core->auth->allowPassChange() && !empty($_POST['new_pwd']))
- {
- if (!$pwd_check) {
- throw new Exception(__('If you want to change your email or password you must provide your current password.'));
- }
-
- if ($_POST['new_pwd'] != $_POST['new_pwd_c']) {
- throw new Exception(__("Passwords don't match"));
- }
-
- $cur->user_pwd = $_POST['new_pwd'];
- }
-
- # --BEHAVIOR-- adminBeforeUserUpdate
- $core->callBehavior('adminBeforeUserProfileUpdate',$cur,$core->auth->userID());
-
- # Udate user
- $core->updUser($core->auth->userID(),$cur);
-
- # --BEHAVIOR-- adminAfterUserUpdate
- $core->callBehavior('adminAfterUserProfileUpdate',$cur,$core->auth->userID());
-
- http::redirect('preferences.php?upd=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-# Update user options
-if (isset($_POST['user_post_format']))
-{
- try
- {
- $cur = $core->con->openCursor($core->prefix.'user');
-
- $cur->user_name = $user_name;
- $cur->user_firstname = $user_firstname;
- $cur->user_displayname = $user_displayname;
- $cur->user_email = $user_email;
- $cur->user_url = $user_url;
- $cur->user_lang = $user_lang;
- $cur->user_tz = $user_tz;
-
- $cur->user_post_status = $user_post_status = $_POST['user_post_status'];
-
- $user_options['edit_size'] = (integer) $_POST['user_edit_size'];
- if ($user_options['edit_size'] < 1) {
- $user_options['edit_size'] = 10;
- }
- $user_options['post_format'] = $_POST['user_post_format'];
- $user_options['enable_wysiwyg'] = !empty($_POST['user_wysiwyg']);
-
- $cur->user_options = new ArrayObject($user_options);
-
- # --BEHAVIOR-- adminBeforeUserUpdate
- $core->callBehavior('adminBeforeUserUpdate',$cur,$core->auth->userID());
-
- # Update user prefs
- $core->auth->user_prefs->dashboard->put('doclinks',!empty($_POST['user_dm_doclinks']),'boolean');
- $core->auth->user_prefs->dashboard->put('dcnews',!empty($_POST['user_dm_dcnews']),'boolean');
- $core->auth->user_prefs->dashboard->put('quickentry',!empty($_POST['user_dm_quickentry']),'boolean');
- $core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_acc_nodragdrop']),'boolean');
- $core->auth->user_prefs->interface->put('enhanceduploader',!empty($_POST['user_ui_enhanceduploader']),'boolean');
- if ($core->auth->isSuperAdmin()) {
- # Applied to all users
- $core->auth->user_prefs->interface->put('hide_std_favicon',!empty($_POST['user_ui_hide_std_favicon']),'boolean',null,true,true);
- }
- $core->auth->user_prefs->interface->put('iconset',(!empty($_POST['user_ui_iconset']) ? $_POST['user_ui_iconset'] : ''));
- $core->auth->user_prefs->interface->put('nofavmenu',!empty($_POST['user_ui_nofavmenu']),'boolean');
-
- # Udate user
- $core->updUser($core->auth->userID(),$cur);
-
- # --BEHAVIOR-- adminAfterUserUpdate
- $core->callBehavior('adminAfterUserUpdate',$cur,$core->auth->userID());
-
- http::redirect('preferences.php?updated=1');
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-# Add selected favorites
-if (!empty($_POST['appendaction']))
-{
- try {
- if (empty($_POST['append'])) {
- throw new Exception(__('No favorite selected'));
- }
-
- $ws = $core->auth->user_prefs->addWorkspace('favorites');
- $user_favs = $ws->DumpLocalPrefs();
- $count = count($user_favs);
- foreach ($_POST['append'] as $k => $v)
- {
- try {
- $found = false;
- foreach ($user_favs as $f) {
- $f = unserialize($f['value']);
- if ($f['name'] == $v) {
- $found = true;
- break;
- }
- }
- if (!$found) {
- $uid = sprintf("u%03s",$count);
- $fav = array('name' => $_fav[$v][0],'title' => $_fav[$v][1],'url' => $_fav[$v][2],'small-icon' => $_fav[$v][3],
- 'large-icon' => $_fav[$v][4],'permissions' => $_fav[$v][5],'id' => $_fav[$v][6],'class' => $_fav[$v][7]);
- $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
- $count++;
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- break;
- }
- }
-
- if (!$core->error->flag()) {
- http::redirect('preferences.php?append=1');
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Delete selected favorites
-if (!empty($_POST['removeaction']))
-{
- try {
- if (empty($_POST['remove'])) {
- throw new Exception(__('No favorite selected'));
- }
-
- $ws = $core->auth->user_prefs->addWorkspace('favorites');
- foreach ($_POST['remove'] as $k => $v)
- {
- try {
- $core->auth->user_prefs->favorites->drop($v);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- break;
- }
- }
- // Update pref_id values
- try {
- $user_favs = $ws->DumpLocalPrefs();
- $core->auth->user_prefs->favorites->dropAll();
- $count = 0;
- foreach ($user_favs as $k => $v)
- {
- $uid = sprintf("u%03s",$count);
- $f = unserialize($v['value']);
- $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
- 'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
- $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
- $count++;
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-
- if (!$core->error->flag()) {
- http::redirect('preferences.php?removed=1');
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Order favs
-$order = array();
-if (empty($_POST['favs_order']) && !empty($_POST['order'])) {
- $order = $_POST['order'];
- asort($order);
- $order = array_keys($order);
-} elseif (!empty($_POST['favs_order'])) {
- $order = explode(',',$_POST['favs_order']);
-}
-
-if (!empty($_POST['saveorder']) && !empty($order))
-{
- try {
- $ws = $core->auth->user_prefs->addWorkspace('favorites');
- $user_favs = $ws->DumpLocalPrefs();
- $core->auth->user_prefs->favorites->dropAll();
- $count = 0;
- foreach ($order as $i => $k) {
- $uid = sprintf("u%03s",$count);
- $f = unserialize($user_favs[$k]['value']);
- $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
- 'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
- $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
- $count++;
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-
- if (!$core->error->flag()) {
- http::redirect('preferences.php?&neworder=1');
- }
-}
-
-# Replace default favorites by current set (super admin only)
-if (!empty($_POST['replace']) && $core->auth->isSuperAdmin()) {
- try {
- $ws = $core->auth->user_prefs->addWorkspace('favorites');
- $user_favs = $ws->DumpLocalPrefs();
- $core->auth->user_prefs->favorites->dropAll(true);
- $count = 0;
- foreach ($user_favs as $k => $v)
- {
- $uid = sprintf("g%03s",$count);
- $f = unserialize($v['value']);
- $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
- 'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
- $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string',null,null,true);
- $count++;
- }
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-
- if (!$core->error->flag()) {
- http::redirect('preferences.php?&replaced=1');
- }
-}
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open($page_title,
- dcPage::jsLoad('js/_preferences.js').
- ($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
- dcPage::jsLoad('js/jquery/jquery-ui-1.8.12.custom.min.js').
- dcPage::jsPageTabs($default_tab).
- dcPage::jsConfirmClose('user-form').
-
- # --BEHAVIOR-- adminPreferencesHeaders
- $core->callBehavior('adminPreferencesHeaders')
-);
-
-if (!empty($_GET['upd'])) {
- echo '
'.__('Personal information has been successfully updated.').'
';
-}
-if (!empty($_GET['updated'])) {
- echo '
'.__('Personal options has been successfully updated.').'
';
-}
-if (!empty($_GET['append'])) {
- echo '
'.__('Favorites have been successfully added.').'
';
-}
-if (!empty($_GET['neworder'])) {
- echo '
'.__('Favorites have been successfully updated.').'
';
-}
-if (!empty($_GET['removed'])) {
- echo '
'.__('Favorites have been successfully removed.').'
';
-}
-if (!empty($_GET['replaced'])) {
- echo '
'.__('Default favorites have been successfully updated.').'
';
-}
-
-echo '
'.html::escapeHTML($core->blog->name).' › '.$page_title.' ';
-
-# User profile
-echo '
';
-
-echo
-'
';
-
-echo '
';
-
-# User options : some from actual user profile, dashboard modules, ...
-echo '
';
-
-echo
-'
';
-
-echo '
';
-
-# User favorites
-echo '
';
-$ws = $core->auth->user_prefs->addWorkspace('favorites');
-echo '
';
-echo '
'; # user-favorites
-
-dcPage::helpBlock('core_user_pref');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/search.php b/v2/dotclear/admin/search.php
deleted file mode 100644
index a6fc234..0000000
--- a/v2/dotclear/admin/search.php
+++ /dev/null
@@ -1,180 +0,0 @@
-blog->getPosts($params);
- $counter = $core->blog->getPosts($params,true);
- $post_list = new adminPostList($core,$posts,$counter->f(0));
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
- # Get comments
- elseif ($qtype == 'c')
- {
- $starting_scripts .= dcPage::jsLoad('js/_comments.js');
-
- $params['search'] = $q;
- $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
- $params['no_content'] = true;
- $params['order'] = 'comment_dt DESC';
-
- try {
- $comments = $core->blog->getComments($params);
- $counter = $core->blog->getComments($params,true);
- $comment_list = new adminCommentList($core,$comments,$counter->f(0));
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-}
-
-
-dcPage::open(__('Search'),$starting_scripts);
-
-echo
-'
'.html::escapeHTML($core->blog->name).' › '.__('Search').' '.
-'
';
-
-if ($q && !$core->error->flag())
-{
- $redir = html::escapeHTML($_SERVER['REQUEST_URI']);
-
- # Show posts
- if ($qtype == 'p')
- {
- # Actions combo box
- $combo_action = array();
- if ($core->auth->check('publish,contentadmin',$core->blog->id))
- {
- $combo_action[__('publish')] = 'publish';
- $combo_action[__('unpublish')] = 'unpublish';
- $combo_action[__('schedule')] = 'schedule';
- $combo_action[__('mark as pending')] = 'pending';
- }
- $combo_action[__('change category')] = 'category';
- if ($core->auth->check('admin',$core->blog->id)) {
- $combo_action[__('change author')] = 'author';
- }
- if ($core->auth->check('delete,contentadmin',$core->blog->id))
- {
- $combo_action[__('Delete')] = 'delete';
- }
-
- # --BEHAVIOR-- adminPostsActionsCombo
- $core->callBehavior('adminPostsActionsCombo',array(&$combo_action));
-
- if ($counter->f(0) > 0) {
- printf('
'.
- ($counter->f(0) == 1 ? __('%d entry found') : __('%d entries found')).
- ' ',$counter->f(0));
- }
-
- $post_list->display($page,$nb_per_page,
- '
'
- );
- }
- # Show posts
- elseif ($qtype == 'c')
- {
- # Actions combo box
- $combo_action = array();
- if ($core->auth->check('publish,contentadmin',$core->blog->id))
- {
- $combo_action[__('publish')] = 'publish';
- $combo_action[__('unpublish')] = 'unpublish';
- $combo_action[__('mark as pending')] = 'pending';
- $combo_action[__('mark as junk')] = 'junk';
- }
- if ($core->auth->check('delete,contentadmin',$core->blog->id))
- {
- $combo_action[__('Delete')] = 'delete';
- }
-
- if ($counter->f(0) > 0) {
- printf('
'.
- ($counter->f(0) == 1 ? __('%d comment found') : __('%d comments found')).
- ' ',$counter->f(0));
- }
-
- $comment_list->display($page,$nb_per_page,
- '
'
- );
- }
-}
-
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/services.php b/v2/dotclear/admin/services.php
deleted file mode 100644
index 1d1a301..0000000
--- a/v2/dotclear/admin/services.php
+++ /dev/null
@@ -1,395 +0,0 @@
-rest->addFunction('getPostById',array('dcRestMethods','getPostById'));
-$core->rest->addFunction('getCommentById',array('dcRestMethods','getCommentById'));
-$core->rest->addFunction('quickPost',array('dcRestMethods','quickPost'));
-$core->rest->addFunction('validatePostMarkup',array('dcRestMethods','validatePostMarkup'));
-$core->rest->addFunction('getZipMediaContent',array('dcRestMethods','getZipMediaContent'));
-$core->rest->addFunction('getMeta',array('dcRestMethods','getMeta'));
-$core->rest->addFunction('delMeta',array('dcRestMethods','delMeta'));
-$core->rest->addFunction('setPostMeta',array('dcRestMethods','setPostMeta'));
-$core->rest->addFunction('searchMeta',array('dcRestMethods','searchMeta'));
-
-$core->rest->serve();
-
-/* Common REST methods */
-class dcRestMethods
-{
- public static function getPostById($core,$get)
- {
- if (empty($get['id'])) {
- throw new Exception('No post ID');
- }
-
- $params = array('post_id' => (integer) $get['id']);
-
- if (isset($get['post_type'])) {
- $params['post_type'] = $get['post_type'];
- }
-
- $rs = $core->blog->getPosts($params);
-
- if ($rs->isEmpty()) {
- throw new Exception('No post for this ID');
- }
-
- $rsp = new xmlTag('post');
- $rsp->id = $rs->post_id;
-
- $rsp->blog_id($rs->blog_id);
- $rsp->user_id($rs->user_id);
- $rsp->cat_id($rs->cat_id);
- $rsp->post_dt($rs->post_dt);
- $rsp->post_creadt($rs->post_creadt);
- $rsp->post_upddt($rs->post_upddt);
- $rsp->post_format($rs->post_format);
- $rsp->post_url($rs->post_url);
- $rsp->post_lang($rs->post_lang);
- $rsp->post_title($rs->post_title);
- $rsp->post_excerpt($rs->post_excerpt);
- $rsp->post_excerpt_xhtml($rs->post_excerpt_xhtml);
- $rsp->post_content($rs->post_content);
- $rsp->post_content_xhtml($rs->post_content_xhtml);
- $rsp->post_notes($rs->post_notes);
- $rsp->post_status($rs->post_status);
- $rsp->post_selected($rs->post_selected);
- $rsp->post_open_comment($rs->post_open_comment);
- $rsp->post_open_tb($rs->post_open_tb);
- $rsp->nb_comment($rs->nb_comment);
- $rsp->nb_trackback($rs->nb_trackback);
- $rsp->user_name($rs->user_name);
- $rsp->user_firstname($rs->user_firstname);
- $rsp->user_displayname($rs->user_displayname);
- $rsp->user_email($rs->user_email);
- $rsp->user_url($rs->user_url);
- $rsp->cat_title($rs->cat_title);
- $rsp->cat_url($rs->cat_url);
-
- $rsp->post_display_content($rs->getContent(true));
- $rsp->post_display_excerpt($rs->getExcerpt(true));
-
- $metaTag = new xmlTag('meta');
- if (($meta = @unserialize($rs->post_meta)) !== false)
- {
- foreach ($meta as $K => $V)
- {
- foreach ($V as $v) {
- $metaTag->$K($v);
- }
- }
- }
- $rsp->post_meta($metaTag);
-
- return $rsp;
- }
-
- public static function getCommentById($core,$get)
- {
- if (empty($get['id'])) {
- throw new Exception('No comment ID');
- }
-
- $rs = $core->blog->getComments(array('comment_id' => (integer) $get['id']));
-
- if ($rs->isEmpty()) {
- throw new Exception('No comment for this ID');
- }
-
- $rsp = new xmlTag('post');
- $rsp->id = $rs->comment_id;
-
- $rsp->comment_dt($rs->comment_dt);
- $rsp->comment_upddt($rs->comment_upddt);
- $rsp->comment_author($rs->comment_author);
- $rsp->comment_site($rs->comment_site);
- $rsp->comment_content($rs->comment_content);
- $rsp->comment_trackback($rs->comment_trackback);
- $rsp->comment_status($rs->comment_status);
- $rsp->post_title($rs->post_title);
- $rsp->post_url($rs->post_url);
- $rsp->post_id($rs->post_id);
- $rsp->post_dt($rs->post_dt);
- $rsp->user_id($rs->user_id);
-
- $rsp->comment_display_content($rs->getContent(true));
-
- if ($core->auth->userID()) {
- $rsp->comment_ip($rs->comment_ip);
- $rsp->comment_email($rs->comment_email);
- $rsp->comment_spam_disp(dcAntispam::statusMessage($rs));
- }
-
- return $rsp;
- }
-
- public static function quickPost($core,$get,$post)
- {
- $cur = $core->con->openCursor($core->prefix.'post');
-
- $cur->post_title = !empty($post['post_title']) ? $post['post_title'] : '';
- $cur->user_id = $core->auth->userID();
- $cur->post_content = !empty($post['post_content']) ? $post['post_content'] : '';
- $cur->cat_id = !empty($post['cat_id']) ? (integer) $post['cat_id'] : null;
- $cur->post_format = !empty($post['post_format']) ? $post['post_format'] : 'xhtml';
- $cur->post_lang = !empty($post['post_lang']) ? $post['post_lang'] : '';
- $cur->post_status = !empty($post['post_status']) ? (integer) $post['post_status'] : 0;
- $cur->post_open_comment = (integer) $core->blog->settings->system->allow_comments;
- $cur->post_open_tb = (integer) $core->blog->settings->system->allow_trackbacks;
-
- # --BEHAVIOR-- adminBeforePostCreate
- $core->callBehavior('adminBeforePostCreate',$cur);
-
- $return_id = $core->blog->addPost($cur);
-
- # --BEHAVIOR-- adminAfterPostCreate
- $core->callBehavior('adminAfterPostCreate',$cur,$return_id);
-
- $rsp = new xmlTag('post');
- $rsp->id = $return_id;
-
- $post = $core->blog->getPosts(array('post_id' => $return_id));
-
- $rsp->post_status = $post->post_status;
- $rsp->post_url = $post->getURL();
- return $rsp;
- }
-
- public static function validatePostMarkup($core,$get,$post)
- {
- if (!isset($post['excerpt'])) {
- throw new Exception('No entry excerpt');
- }
-
- if (!isset($post['content'])) {
- throw new Exception('No entry content');
- }
-
- if (empty($post['format'])) {
- throw new Exception('No entry format');
- }
-
- if (!isset($post['lang'])) {
- throw new Exception('No entry lang');
- }
-
- $excerpt = $post['excerpt'];
- $excerpt_xhtml = '';
- $content = $post['content'];
- $content_xhtml = '';
- $format = $post['format'];
- $lang = $post['lang'];
-
- $core->blog->setPostContent(0,$format,$lang,$excerpt,$excerpt_xhtml,$content,$content_xhtml);
-
- $rsp = new xmlTag('result');
-
- $v = htmlValidator::validate($excerpt_xhtml.$content_xhtml);
-
- $rsp->valid($v['valid']);
- $rsp->errors($v['errors']);
-
- return $rsp;
- }
-
- public static function getZipMediaContent($core,$get,$post)
- {
- if (empty($get['id'])) {
- throw new Exception('No media ID');
- }
-
- $id = (integer) $get['id'];
-
- if (!$core->auth->check('media,media_admin',$core->blog)) {
- throw new Exception('Permission denied');
- }
-
- $core->media = new dcMedia($core);
- $file = $core->media->getFile($id);
-
- if ($file === null || $file->type != 'application/zip' || !$file->editable) {
- throw new Exception('Not a valid file');
- }
-
- $rsp = new xmlTag('result');
- $content = $core->media->getZipContent($file);
-
- foreach ($content as $k => $v) {
- $rsp->file($k);
- }
-
- return $rsp;
- }
-
- public static function getMeta($core,$get)
- {
- $postid = !empty($get['postId']) ? $get['postId'] : null;
- $limit = !empty($get['limit']) ? $get['limit'] : null;
- $metaId = !empty($get['metaId']) ? $get['metaId'] : null;
- $metaType = !empty($get['metaType']) ? $get['metaType'] : null;
-
- $sortby = !empty($get['sortby']) ? $get['sortby'] : 'meta_type,asc';
-
- $rs = $core->meta->getMetadata(array(
- 'meta_type' => $metaType,
- 'limit' => $limit,
- 'meta_id' => $metaId,
- 'post_id' => $postid));
- $rs = $core->meta->computeMetaStats($rs);
-
- $sortby = explode(',',$sortby);
- $sort = $sortby[0];
- $order = isset($sortby[1]) ? $sortby[1] : 'asc';
-
- switch ($sort) {
- case 'metaId':
- $sort = 'meta_id_lower';
- break;
- case 'count':
- $sort = 'count';
- break;
- case 'metaType':
- $sort = 'meta_type';
- break;
- default:
- $sort = 'meta_type';
- }
-
- $rs->sort($sort,$order);
-
- $rsp = new xmlTag();
-
- while ($rs->fetch())
- {
- $metaTag = new xmlTag('meta');
- $metaTag->type = $rs->meta_type;
- $metaTag->uri = rawurlencode($rs->meta_id);
- $metaTag->count = $rs->count;
- $metaTag->percent = $rs->percent;
- $metaTag->roundpercent = $rs->roundpercent;
- $metaTag->CDATA($rs->meta_id);
-
- $rsp->insertNode($metaTag);
- }
-
- return $rsp;
- }
-
- public static function setPostMeta($core,$get,$post)
- {
- if (empty($post['postId'])) {
- throw new Exception('No post ID');
- }
-
- if (empty($post['meta']) && $post['meta'] != '0') {
- throw new Exception('No meta');
- }
-
- if (empty($post['metaType'])) {
- throw new Exception('No meta type');
- }
-
- # Get previous meta for post
- $post_meta = $core->meta->getMetadata(array(
- 'meta_type' => $post['metaType'],
- 'post_id' => $post['postId']));
- $pm = array();
- while ($post_meta->fetch()) {
- $pm[] = $post_meta->meta_id;
- }
-
- foreach ($core->meta->splitMetaValues($post['meta']) as $m)
- {
- if (!in_array($m,$pm)) {
- $core->meta->setPostMeta($post['postId'],$post['metaType'],$m);
- }
- }
-
- return true;
- }
-
- public static function delMeta($core,$get,$post)
- {
- if (empty($post['postId'])) {
- throw new Exception('No post ID');
- }
-
- if (empty($post['metaId']) && $post['metaId'] != '0') {
- throw new Exception('No meta ID');
- }
-
- if (empty($post['metaType'])) {
- throw new Exception('No meta type');
- }
-
- $core->meta->delPostMeta($post['postId'],$post['metaType'],$post['metaId']);
-
- return true;
- }
-
- public static function searchMeta($core,$get)
- {
- $q = !empty($get['q']) ? $get['q'] : null;
- $metaType = !empty($get['metaType']) ? $get['metaType'] : null;
-
- $sortby = !empty($get['sortby']) ? $get['sortby'] : 'meta_type,asc';
-
- $rs = $core->meta->getMetadata(array('meta_type' => $metaType));
- $rs = $core->meta->computeMetaStats($rs);
-
- $sortby = explode(',',$sortby);
- $sort = $sortby[0];
- $order = isset($sortby[1]) ? $sortby[1] : 'asc';
-
- switch ($sort) {
- case 'metaId':
- $sort = 'meta_id_lower';
- break;
- case 'count':
- $sort = 'count';
- break;
- case 'metaType':
- $sort = 'meta_type';
- break;
- default:
- $sort = 'meta_type';
- }
-
- $rs->sort($sort,$order);
-
- $rsp = new xmlTag();
-
- while ($rs->fetch())
- {
- if (preg_match('/'.$q.'/i',$rs->meta_id)) {
- $metaTag = new xmlTag('meta');
- $metaTag->type = $rs->meta_type;
- $metaTag->uri = rawurlencode($rs->meta_id);
- $metaTag->count = $rs->count;
- $metaTag->percent = $rs->percent;
- $metaTag->roundpercent = $rs->roundpercent;
- $metaTag->CDATA($rs->meta_id);
-
- $rsp->insertNode($metaTag);
- }
- }
-
- return $rsp;
- }
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/add.png b/v2/dotclear/admin/style/add.png
deleted file mode 100644
index dab4ead..0000000
Binary files a/v2/dotclear/admin/style/add.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/candyUpload/cancel.png b/v2/dotclear/admin/style/candyUpload/cancel.png
deleted file mode 100644
index b1a5947..0000000
Binary files a/v2/dotclear/admin/style/candyUpload/cancel.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/candyUpload/loader.png b/v2/dotclear/admin/style/candyUpload/loader.png
deleted file mode 100644
index 267f541..0000000
Binary files a/v2/dotclear/admin/style/candyUpload/loader.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/candyUpload/style.css b/v2/dotclear/admin/style/candyUpload/style.css
deleted file mode 100644
index 9b0f71c..0000000
--- a/v2/dotclear/admin/style/candyUpload/style.css
+++ /dev/null
@@ -1,113 +0,0 @@
-
-.cu-ctrl {
- background: #f5f5f5;
- padding: .5em 0 0 0;
- margin: 0 0 1em 0;
- overflow: hidden;
-}
-.cu-msg {
- font-weight: bold;
-}
-.cu-msg.cu-error {
- color: #c00;
-}
-.cu-files {
- padding: 0 0.5em;
- margin: 10px 0;
-}
-.cu-file {
- margin: 0 0 8px 0;
- position: relative;
-}
-.cu-fileinfo {
- margin-left: 16px;
-}
-.cu-fileinfo span.cu-filecancel {
- display: block;
- position: absolute;
- top: 2px;
- left: 0px !important;
- left: -16px;
-}
-.cu-filecancel a {
- display: block;
- width: 12px;
- height: 12px;
- background: transparent url(cancel.png) no-repeat top left;
- border: none;
- text-indent: -5000px;
- outline: none;
-}
-.cu-filemsg {
- font-weight: bold;
- color: green;
-}
-span.cu-filemsg.cu-error {
- color: #c00;
-}
-.cu-progress {
- margin-left: 16px;
-}
-.cu-progress div {
- height: 10px;
- width: 0;
- font-size: 0.8em;
- line-height: 1em;
- height: 1em;
- padding: .2em 0;
- text-align: right;
- background: green url(loader.png) repeat-x top left;
- color: white;
- font-weight: bold;
- -moz-border-radius: 2px;
-}
-.cu-btn {
- padding: 0 0.5em;
- line-height: 1.2em;
- height: 1.5em;
- margin-top: 1em;
- position: relative;
-}
-.cu-btn span {
- display: block;
- margin: 0 1em 0 0;
- float: right;
-}
-.cu-btn span a {
- display: block;
- padding: .3em 1.5em;
-}
-span.cu-btn-browse {
- float: none;
- position: absolute;
- left: 0;
- margin: 0;
-}
-span.cu-btn-upload, span.cu-btn-clean {
- margin-right: 0;
-}
-span.cu-btn-upload a.button {
- color: #fff;
- border: 1px solid #2373A8;
- background: #2373A8;
- background: -webkit-gradient(linear, left top, left bottom, from(#2C8FD1), to(#2373A8));
- background: -moz-linear-gradient(top, #2C8FD1, #2373A8);
-}
-span.cu-btn-upload a.button:hover,
-span.cu-btn-upload a.button:focus {
- color: #fff;
- border: 1px solid #2C8FD1;
- background: #2C8FD1;
- background: -webkit-gradient(linear, left top, left bottom, from(#2373A8), to(#2C8FD1));
- background: -moz-linear-gradient(top, #2373A8, #2C8FD1);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2373A8', endColorstr='#2C8FD1');
-}
-.cu-maxsize.form-note {
- clear: both;
- margin: 1.5em 0 0;
- font-style: italic;
-}
-.cu-disable {
- margin: 1em 0;
- padding: 0 0 0.5em 0.5em;
-}
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/date-picker.css b/v2/dotclear/admin/style/date-picker.css
deleted file mode 100644
index 8cb66c7..0000000
--- a/v2/dotclear/admin/style/date-picker.css
+++ /dev/null
@@ -1,35 +0,0 @@
-.date-picker {
- border-collapse : collapse;
- background : #fff;
- color : #fff;
- border: 1px solid #666;
- border-width : 1px 2px 2px 1px;
-}
-.date-picker th {
- border : none;
- color : #000;
- text-align : center;
-}
-.date-picker td {
- border : 1px solid #666;
- text-align : center;
- padding : 4px 6px;
-}
-th.date-picker-month {
- text-align : left;
-}
-th.date-picker-year {
- text-align : right;
-}
-.date-picker-control, th.date-picker-control {
- color : #06c;
- cursor : pointer;
-}
-.date-picker-day, .date-picker-today {
- color : #000;
- background : #eee;
- cursor : pointer;
-}
-.date-picker-today {
- background : #ccc;
-}
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/dc_bg.png b/v2/dotclear/admin/style/dc_bg.png
deleted file mode 100644
index 15fb5f6..0000000
Binary files a/v2/dotclear/admin/style/dc_bg.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/dc_logo.png b/v2/dotclear/admin/style/dc_logo.png
deleted file mode 100644
index d7204e2..0000000
Binary files a/v2/dotclear/admin/style/dc_logo.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/dc_logo_small.png b/v2/dotclear/admin/style/dc_logo_small.png
deleted file mode 100644
index 3ec22c9..0000000
Binary files a/v2/dotclear/admin/style/dc_logo_small.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/default-rtl.css b/v2/dotclear/admin/style/default-rtl.css
deleted file mode 100644
index f1217c4..0000000
--- a/v2/dotclear/admin/style/default-rtl.css
+++ /dev/null
@@ -1,11 +0,0 @@
-body {
- direction: rtl;
-}
-
-.right {
- text-align: left;
-}
-
-th {
- text-align: left;
-}
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/default.css b/v2/dotclear/admin/style/default.css
deleted file mode 100644
index d6b7cde..0000000
--- a/v2/dotclear/admin/style/default.css
+++ /dev/null
@@ -1,1361 +0,0 @@
-/*
-# -- BEGIN LICENSE BLOCK ---------------------------------------
-#
-# This file is part of Dotclear 2.
-#
-# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
-# Licensed under the GPL version 2.0 license.
-# See LICENSE file or
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
-#
-# -- END LICENSE BLOCK -----------------------------------------
-*/
-
-/* ------------------------------------------------------------------ html */
-body {
- font: 75%/1.5em Helvetica,Arial,sans-serif;
- color: #333;
- background: #f5f5f5;
- margin: 0;
- padding: 0;
-}
-body.auth {
- background: #fff;
-}
-
-a, a:link, a:visited {
- color: #2373A8;
- text-decoration: none;
- border-bottom: 1px dotted #f90;
-}
-a:hover, a:active, a:focus {
- text-decoration: underline;
-}
-a img, a:link img, a:visited img {
- border:none;
-}
-
-h1, h2, h3, h4, h5, h6, p {
- margin-top: 0;
- margin-bottom: 0.6em;
-}
-h2 {
- color: #666;
- font-size: 1.4em;
- padding: 4px 0;
-}
-.page-title {
- color: #d30e60;
-}
-h3 {
- color: #333;
- font-size: 1.2em;
-}
-p, div.p {
- margin: 0 0 1em 0;
-}
-hr {
- height: 1px;
- border-width: 1px 0 0 0;
- border-color: #999;
- border-style: solid;
-}
-pre, code {
- font: 100% "Andale Mono","Courier New",monospace;
-}
-pre {
- white-space: pre;
- white-space: -moz-pre-wrap;
- white-space: -hp-pre-wrap;
- white-space: -o-pre-wrap;
- white-space: -pre-wrap;
- white-space: pre-wrap;
- white-space: pre-line;
- word-wrap: break-word;
-}
-abbr {
- cursor: help;
-}
-
-/* LAYOUT
--------------------------------------------------------- */
-/* header */
-#header {
- background: #575859;
- height: 3em;
- position: relative;
-}
-#prelude {
- background: #575859;
- line-height: 1.5em;
- margin: 0;
- padding: 0 1.7em 0 1em;
- overflow: hidden;
- position: absolute;
- top: 1.2em;
- left: 0;
- }
-#prelude li {
- list-style-type: none;
- margin: 0 1em 0 0;
- background:transparent;
- }
-#prelude li a {
- color:#fff;
- }
-#top {
- margin: 0;
- padding: 0;
- width: 13em;
- float: left;
-}
-#top h1 {
- padding: 0;
- margin: 0;
- height: 3em;
- text-indent: -1000px;
- background: transparent url(dc_logo.png) no-repeat 0 50%;
-}
-#top h1 a {
- position: absolute;
- top: 3px;
- left: 0;
- width: 130px;
- height: 60px;
- border: none;
- outline: none;
- color: #fff;
-}
-#info-boxes {
- background: #575859;
- font-size: .95em;
- height: 3em;
-}
-#info-box1 {
- margin: 0;
- padding: .5em 3px 4px 0;
- color: #fff;
- float: left;
- background: #575859;
-}
-#info-box2 {
- margin: .1em 0 0 0;
- padding: .5em 1.3em 4px 0;
- color: #fff;
- float: right;
- text-align: right;
- background: #575859;
- height: 2em;
-}
-#info-box1 select {
- width: 15em;
-}
-#info-box1 a img, #info-box2 a img {
- vertical-align: middle;
- padding-left: .3em;
- }
-#info-box1 a, #info-box2 a {
- background: #575859;
- font-weight: bold;
- color: #fff;
- border-bottom-color: #ccc;
- margin-left: .3em;
- margin-right: .3em;
- white-space: nowrap;
- font-weight: normal;
-}
-#info-box1 a {
- margin-left: 1.33em;
-}
-#info-box2 a.active {
- border-bottom-color: #f5f5f5;
- margin: 0;
- padding: 1.2em .5em;
- background-color: #f5f5f5;
- color: #333;
- font-weight: bold;
-}
-#info-box2 span {
- color: #575859;
-}
-/* prelude */
-#wrapper {
- width: 100%;
-}
-#main {
- width: 100%;
- float: right;
- margin-left: -13em;
- margin-top: 0;
-}
-#content {
- margin: 1.5em 1.5em 4em 13em;
- padding: 1em;
- background: #fff;
- -webkit-border-radius: .5em;
- -moz-border-radius: .5em;
- border-radius: .5em;
- border: 1px solid #ddd;
-}
- /* Micro clearfix thx to Nicolas Gallagher */
- #content:before, #content:after {content:"";display:table;}
- #content:after {clear:both;}
-/* -------------------------------------------------- layout - multipart */
-.three-cols {
-}
-.three-cols .col {
- width: 32.3%;
- float: left;
- margin-left: 1%;
-}
-.three-cols .col:first-child {
- width: 33.3%;
- margin-left: 0;
-}
-.two-cols {
- position: static;
-}
-.two-cols .col {
- width: 49%;
- margin-left: 2%;
- float: left;
-}
-.two-cols .col:first-child {
- width: 49%;
- margin-left: 0;
-}
-.two-cols .col70{
- width: 69%;
- margin-left: 0;
- float: left;
-}
-.two-cols .col30 {
- width: 28%;
- margin-left: 2%;
- float: left;
-}
-/* -------------------------------------------------------------- layout - onglets */
-.part-tabs ul {
- padding: .3em 0 1px 1em;
- border-bottom: 1px solid #999;
-}
-.part-tabs li {
- list-style: none;
- margin: 0;
- display: inline;
-}
-.part-tabs li a {
- padding: .3em 0.5em;
- margin-right: .5em;
- border: 1px solid #999;
- border-bottom: none;
- background: #dfdfdf;
- text-decoration: none;
- -webkit-border-top-left-radius: .3em;
- -webkit-border-top-right-radius: .3em;
- -moz-border-radius-topleft: .3em;
- -moz-border-radius-topright: .3em;
- border-top-left-radius: .3em;
- border-top-right-radius: .3em;
- color: #000;
-}
-.part-tabs li.part-tabs-link a {
- background: #ffe;
-}
-.part-tabs li a:hover, .part-tabs li a:focus {
- color: #000;
- background: #fff;
- border-bottom-color: #fff;
-}
-.part-tabs li.part-tabs-active a {
- background: #fff;
- border-bottom: 1px solid #fff;
- color: #000;
- font-weight: bold;
-}
-/* ------------------------------------------------------------------ main-menu */
-#main-menu {
- width: 13em;
- float: left;
- margin-top: 1.2em;
- margin-bottom: 1em;
-}
-#main-menu h3 {
- margin: 0 0 0.5em;
- padding: .5em 0 0 .5em;
- text-transform: uppercase;
- color: #666;
- font-size: 1.1em;
-}
-#main-menu ul {
- font-size: .95em;
- margin: 0 0 1em 0;
- padding: 0;
- list-style: none;
-}
-#main-menu li {
- display: block;
- margin: 0.5em 0 0;
- padding: .2em 0 0 32px;
- background-repeat: no-repeat;
- background-position: 12px .2em;
-}
-#main-menu a {
- font-weight: bold;
-}
-#main-menu .active a {
- border-bottom: none;
- color: #333;
-}
-#main-menu .active {
- background-color: #fff;
- padding: .4em 0 .1em 32px;
- background-position: 12px .4em;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin-right: -1px;
-}
-#favorites-menu {
- margin: 0 0 2em;
-}
-#favorites-menu h3 {
- color: #333;
- text-transform: none;
-}
-#favorites-menu a {
- color: #333;
-}
-#favorites-menu .active {
- background-color: transparent;
- border: none;
-}
-#favorites-menu .active a {
- font-weight: bold;
- color: #666;
-}
-/* ------------------------------------------------------------------ footer */
-#footer {
- clear: both;
- padding: .75em 2em;
- margin: 6em 15px .5em 15px;
- -webkit-border-radius: .3em;
- -moz-border-radius: .3em;
- border-radius: .3em;
- background: #575859 url(dc_logo_small.png) no-repeat right bottom;
- color: #fff;
-}
-#footer p {
- margin: 0;
- padding: 0 1em;
- text-align: center;
- font-size: 1.1em;
-}
-#footer a {
- color: #f5f5f5;
-}
-#footer p span.credit {
- font-size: .85em;
- font-weight: normal;
-}
-/* ---------------------------------------------------------------------------- auth.php */
-#login-screen {
- display: block;
- width: 18em;
- margin: 1.5em auto 0;
- font-size: 1.1em;
-}
-#login-screen h1 {
- text-indent: -2000px;
- background: transparent url(dotclear-logo2.png) no-repeat top left;
- height: 50px;
- margin-bottom: .5em;
- margin-left: .5em;
-}
-#login-screen fieldset, #login-screen .fieldset {
- border: 1px solid #999;
- padding: 1em 1em 0 1em;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
-}
-#login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] {
- width: 100%;
-}
-#login-screen #issue {
- margin-left: 1em;
- font-size: 1em;
-}
-#login-screen #issue strong {font-weight: normal;}
-
-
-/* ------------------------------------------------------------------ dashboard */
-#dashboard-main {
- float: left;
- overflow: hidden;
- padding: 1em 2% 1em 0;
- width: 70%;
-}
-#dashboard-main.fullwidth {
- width: 100%;
- padding: 1em 0;
- float: none;
-}
-#icons {
- overflow: hidden;
- padding-bottom: 1em;
- text-align: center;
-}
-#icons p {
- width: 210px;
- text-align: center;
- margin: 2em 0 0 0;
- display:inline-block;
-}
-#icons a,
-#icons a:link,
-#icons a:visited,
-#icons a:hover,
-#icons a:focus {
- border-bottom-width: 0px;
- text-decoration: none;
-}
-#icons a span {
- border-bottom: 1px dotted #f90;
-}
-#icons a:focus span, #icons a:hover span {
- text-decoration: underline;
-}
-#quick {
- clear: left;
- margin-top: 2em;
-}
-#quick h3 {
- margin-bottom: 0.2em;
- font-size: 1.2em;
-}
-#quick p.qinfo {
- margin: -.7em -1em 1em;
- background: #eef url(info.png) no-repeat .2em .2em;
- border: 1px solid #99f;
- padding: .2em 1em .1em 24px;
- color: #666;
-}
-#dashboard-items {
- float: left;
- width: 27%;
- overflow: hidden;
- padding-bottom: 1em;
- padding-top: 3em;
-}
-#dashboard-items img {
- vertical-align: middle;
-}
-#dashboard-items ul {
- display: block;
- padding-left: 1.5em;
- list-style: square;
-}
-#dashboard-items li {
- margin: 0.25em 0 0 0;
- color: #666;
-}
-#news dt {
- font-weight: bold;
- margin: 0 0 0.4em 0;
-}
-#news dd {
- margin: 0 0 1em 0;
-}
-#news dd p {
- margin: 0.2em 0 0 0;
-}
-
-#upg-notify {
-}
-#upg-notify ul {
- padding-left: 15px;
-}
-#upg-notify li {
- color: #fff;
-}
-/* ------------------------------------------------------------------ post */
-#entry-wrapper {
- float: left;
- width: 100%;
- margin-right: -18em;
-}
-#entry-content {
- margin-right: 18em;
-}
-#entry-sidebar {
- width: 17em;
- float: right;
-}
-#comments {
- clear: both;
-}
-/* ------------------------------------------------------------------ categories */
-#categories {
- margin: 1em 0 2em;
-}
-#categories ul {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-#categories li {
- margin: .5em 0;
- padding: .3em 1.5em;
- border: 1px solid #ccc;
- border-left: 1em solid #E5E3DA;
- -moz-border-radius: .3em;
- -webkit-border-radius: .3em;
- border-radius: .3em;
-}
-#categories h4 {
- margin: 0;
-}
-#categories h4 span {
- font-weight: normal;
-}
-#categories li p {
- margin: 0;
-}
-select#del_cat {
- width: 100%;
-}
-/* ------------------------------------------------------------------ media */
-#media-icon {
- float: left;
-}
-#media-details {
- margin-left: 70px;
-}
-#media-details ul {
- display: block;
- margin-left: 0;
- padding: 0;
-}
-#media-details li {
- list-style: square inside;
- margin: 0;
- padding: 0;
-}
-#media-original-image {
- overflow: auto;
-}
-#media-original-image.overheight {
- height: 500px;
-}
-#add-file-f {
- position: relative;
-}
-#add-file-f .more-file {
- position:absolute;
- right: 0.5em;
- background: #999;
- color: #fff;
- border: none;
-}
-.media-list {
- position: static;
-}
-.media-col-0 {
- clear: left;
-}
-.media-item {
- position: relative;
- border-top: 1px solid #ccc;
- margin-bottom: 1em;
- padding: 5px 0;
-}
-div.media-list .media-item {
- width: 49%;
- float: left;
- margin-right: 1%;
-}
-a.media-icon {
- display: block;
- border-bottom: none;
- float: left;
-}
-.media-icon img {
- display: block;
-}
-.media-item ul {
- display: block;
- list-style: none;
- margin: 0 0 0 60px;
- padding: 0;
-}
-li.media-action {
- display: block;
- position: absolute;
- top: 5px;
- right: 5px;
- height: 16px;
-}
-li.media-action a {
- border: none;
-}
-li.media-action form {
- display: inline;
-}
-li.media-action input {
- border: none;
-}
-/* ------------------------------------------------------------------ preferences */
-#my-favs ul {
- list-style-type: none;
- margin-left: 0;
- padding-left: 0;
- line-height: 1.2;
-}
-#my-favs li {
- display: block;
- float: left;
- width: 164px;
- margin-top: 1em;
- margin-bottom: 1.5em;
-}
-#my-favs label {height: 2.5em;width:140px;margin-top:.3em;}
-#my-favs label input {display:inline;}
-#my-favs img {
- display: block;
-}
-#my-favs input.position {
- margin: 0 0 .4em .2em;
-}
-#available-favs input, #available-favs label, #available-favs label span {
- white-space: normal;
- display: inline;
-}
-#default-favs h3 {
- margin-top: 2em;
- margin-bottom: 1em;
-}
-.fav-list {
- list-style-type: none;
- margin-left: 0;
- padding-left: 0;
-}
-.fav-list li {
- line-height: 2;
- margin-left: 0;
- padding-left: 0;
- position: relative;
-}
-.fav-list img {
- vertical-align: middle;
- margin-right: .2em;
-}
-#available-favs label span.zoom {
- display: none;
-}
-#available-favs li:hover label span.zoom {
- display: block;
- position: absolute;
- bottom: 0;
- left: 10em;
- background-color: #f5f5f5;
- border: 1px solid #ddd;
- padding: .2em;
- -moz-border-radius: .5em;
- -webkit-border-radius: .5em;
- border-radius: .5em;
-}
-/* -------------------------------------------------------------------- Themes */
-#themes {
- border-bottom: 1px solid #ccc;
- margin: 1em 0;
-}
-#themes div.theme-details {
- clear: left;
- border-top: 1px solid #ccc;
- padding: 1em 0;
-}
-#themes div.theme-details:hover {
- background: #eee;
-}
-#themes div.theme-details div.theme-shot {
- float: left;
-}
-#themes div.theme-details div.theme-shot img {
- display: block;
- width: 57px;
- height: 50px;
- border: 1px solid #ccc;
-}
-#themes div.theme-details div.theme-info {
- margin-left: 67px;
-}
-#themes div.theme-details div.theme-info span.theme-desc {
- display: block;
-}
-#themes div.theme-details div.theme-info span.theme-version {
- color: #666;
-}
-#themes div.theme-details div.theme-actions {
- margin-left: 67px;
-}
-/* Themes list, JS version */
-#themes-wrapper {
-}
-#theme-box {
- border: 1px solid #999;
- border-left: none;
- padding: 5px;
- float: right;
- height: 420px;
- width: 320px;
- overflow: auto;
-}
-#theme-box div.theme-shot img {
- display: block;
- margin: 0 0 0 10px;
- width: 280px;
- height: 245px;
- border: 1px solid #ccc;
-}
-#theme-box div.theme-info {
- margin: 1em 0 0 10px;
-}
-#theme-box h3 {
- margin: 0;
-}
-#theme-box div.theme-info span {
- display: block;
-}
-#theme-box span.theme-version {
- color: #666;
-}
-#theme-box span.theme-parent-ok {
- color: #666;
-}
-#theme-box span.theme-parent-missing {
- color: #c00;
- font-weight:bold;
-}
-#theme-box div.theme-actions {
- margin-left: 10px;
-}
-#themes-wrapper #themes {
- border: 1px solid #999;
- overflow: auto;
- height: 420px;
- padding: 5px;
- margin: 0;
-}
-#themes div.theme-details-js {
- float: left;
- width: 120px;
- height: 150px;
- margin: 0 10px 20px;
- padding: 10px 10px 0;
- text-align: center;
- background: #f3f3f3;
- border: 1px solid #f3f3f3;
- cursor: pointer;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
-}
-#themes div.theme-details-js label {
- cursor: pointer;
-}
-#themes div.theme-details-js.theme-selected {
- background: #E5E3DA;
- border: 1px solid #999;
-}
-#themes div.theme-details-js div.theme-shot img {
- width: 120px;
- height: 105px;
- border: 1px solid #fff;
-}
-#themes div.theme-details-js h3 {
- font-family: inherit;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-/* ---------------------------------------------------------- Plugins list */
-#plugins td.action {
- vertical-align: middle;
-}
-
-select.l10n option {
- padding-left: 16px;
-}
-option.avail10n {
- background: transparent url(../images/check-on.png) no-repeat 0 50%;
-}
-/* ------------------------------------------------------------------ contextual help */
-#help {
- margin-top: 2em;
- background: #f5f5f5;
- z-index: 100;
-}
-#help-button {
- position: absolute;
- top: 6.2em;
- right: 0px;
- cursor: pointer;
- background: #fc3;
- border: 1px solid #dde;
- border-right: none;
- font-size: 1.1em;
- font-weight: bold;
- text-transform: capitalize;
- padding: .33em .75em .33em 1em;
- border-radius: 1em 0 0 1em;
- -moz-border-radius: 1em 0 0 1em;
- -webkit-border-top-left-radius: 1em;
- -webkit-border-bottom-left-radius: 1em;
- color: #444;
-}
-.help-box {
- display: none;
-}
-.help-box ul {
- padding-left: 20px;
- margin-left: 0;
-}
-#content.with-help #help-button {
- right: 282px;
-}
-#content.with-help #help {
- display: block;
- position: absolute;
- top: 40px;
- right: 0;
- width: 280px;
- border-left: 2px solid #fc3;
- margin-top: 0;
- padding: 10px 0 0 0;
- overflow: auto;
-}
-#content.with-help .help-content {
- padding: 0 5px 1em 5px;
-}
-.help-content dt {
- font-weight: bold;
- color: #626262;
- margin: 0;
-}
-.help-content dd {
- margin: 0.3em 0 1.5em 0;
-}
-/* ------------------------------------------------------------------ popups */
-body.popup #wrapper, body.popup #top {
- margin-top: -1.5em;
- float: none;
-}
-body.popup #top h1 {
- background: transparent;
-}
-body.popup #main {
- margin-left: -35px;
- margin-bottom: 1em;
-}
-body.popup #content {
- margin-left: 35px;
- margin-left: 2em; /* 3.2 */
-}
-body.popup #footer {
- display: none; /* 3.2 */
-}
-body.popup #footer p {
- margin-left: 35px;
- border: none;
-}
-/* ------------------------------------------------------------------ messages */
-div.error, p.error,
-div.message, p.message,
-div.static-msg, p.static-msg {
- padding: 0.5em 0.5em 0.5em 40px;
- margin-bottom: 1em;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
-}
-p.error, p.message, p.static-msg {
- padding-top: 1em;
- padding-bottom: 1em;
-}
-div.error, p.error {
- background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
- color: #600;
-}
-div.message, p.message,
-div.static-msg, p.static-msg {
- background: #666 url(msg-std.png) no-repeat 5px 5px;
- color: #fff;
-}
-div.message a, p.message a,
-div.static-msg a, p.static-msg a {
- color: #fff;
-}
-/* ------------------------------------------------------------------ debug */
-#debug {
- position: absolute;
- top: 0;
- width: 100%;
- height: 4px;
- background: #d99;
-}
-#debug div {
- display: none;
- padding: 3px 0.5em 2px;
-}
-#debug p {
- margin: 0.5em 0;
-}
-#debug:hover {
- height: auto;
-}
-#debug:hover div {
- display: block;
-}
-/* -------------------------------------------------------------------- CLASSES COMMUNES */
-
-.no-margin {
- margin: 0;
-}
-
-/* paragraphe pour bouton Nouveau bidule */
-p.top-add {
- text-align: right;
- margin: 0;
- }
-p.top-add a {
- padding: .3em 1em .3em .5em;
- font-weight: bold;
-}
-p.top-add a img {
- padding-right: .3em;
- vertical-align: middle;
-}
-/* Si quelque chose a besoin d'être caché sauf pour les revues d'écran */
-.hidden {
- position: absolute !important;
- clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
- clip: rect(1px, 1px, 1px, 1px);
- padding: 0 !important;
- border: 0 !important;
- height: 1px !important;
- width: 1px !important;
- overflow: hidden;
- }
-.clear {
- clear: both;
-}
-.lclear {
- clear: left;
-}
-div.clearer {
- height: 1px;
- font-size: 1px;
-}
-.hide {
- display: none;
-}
-.right {
- text-align: right;
-}
-.frame-shrink {
- border: 1px solid #666;
- padding: 0.5em;
- margin-bottom: 1em;
- height: 120px;
- overflow: auto;
-}
-.grid {
- background: transparent repeat url('grid.png') 0 0;
-}
-.line p {
- margin: 0;
-}
-.offline {
- color: #666;
-}
-ul.nice {
- margin: 1em 0;
- padding: 0 0 0 2em;
- list-style: square;
-}
-ul.nice li {
- margin:0;
- padding: 0;
-}
-.zip-dl {
- background: transparent url(package.png) no-repeat 0 50%;
- padding: 5px 0 5px 20px;
-}
-/* pas trouvé dans le code */
-.comment {
- border-top: 2px solid #ccc;
- margin-bottom: 1em;
- padding: 2em 0 1em 0;
- position: relative;
-}
-.comment form p {
- margin: 0;
- position: absolute;
- top: 2px;
- right: 0;
-}
-/* TABLES
--------------------------------------------------------- */
-table {
- font-size: 1em;
- border-collapse: collapse;
- margin: 0 0 1em 0;
-}
-tr.line:hover {
- background: #ddd;
-}
-caption {
- color: #333;
- font-size: 1.2em;
- font-weight: bold;
- text-align: left;
- margin-bottom: .5em;
-}
-
-th, td {
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #ccc;
- padding: 3px 5px;
- vertical-align: top;
-}
-th {
- text-align: left;
- border-bottom-color: #666;
-}
-.noborder td, td.noborder, .noborder th, th.noborder {
- border-width: 0;
-}
-table .maximal, table.maximal {
- width: 100%;
-}
-table .minimal {
- width: 1px;
-}
-table .nowrap {
- white-space: nowrap;
- vertical-align: top;
-}
-table.settings, table.prefs {
- width: 80%;
-}
-table.settings th:first-child, table.prefs th:first-child {
- width: 20%;
-}
-table.settings th + th, table.prefs th + th {
- width: 30%;
-}
-table.settings th + th + th, table.prefs th + th + th {
- width: 10%;
-}
-table.settings th:last-child, table.prefs th:last-child {
- width: 40%;
-}
-
-td.status {
- vertical-align: middle;
-}
-td.status img {
- margin-bottom: -2px;
-}
-td.status a {
- border: none;
-}
-
-tr.line img.expand {
- margin-right: 10px;
- margin-bottom: -2px;
-}
-tr.line input {
- vertical-align: middle;
-}
-tr.expand td {
- border-bottom: none;
-}
-td.expand {
- padding: 1em;
-}
-
-.dragable {
- border-collapse: separate;
-}
-.dragable tbody td {
-
-}
-.handle {
- padding: 0;
-}
-.handler {
- cursor: move;
- background: transparent url(drag.png) no-repeat 0 50%;
- padding-left: 15px;
-}
-
-/* ----------------------------------------------------------------- FORMS */
-form {
- display: block;
- margin: 0;
- padding: 0;
-}
-fieldset, .fieldset {
- display: block;
- margin: 0 0 1em 0;
- padding: 1em 0.5em;
- border-width: 1px 0;
- border-style: solid;
- border-color: #ccc;
- background: #f5f5f5;
-}
-legend {
- font-weight: bold;
- padding: 0.2em 0.6em;
- border-width: 1px;
- border-style: solid;
- border-color: #ccc;
- background: #f5f5f5;
- margin-bottom: 0.5em;
-}
-optgroup {
- font-weight: bold;
- font-style: normal;
-}
-option {
- font-weight: normal;
-}
-input, textarea, select {
- background: #f9f9f9;
- color: #000;
- border-width: 1px;
- border-style: solid;
- border-color: #000 #ccc #ccc #000;
-}
-input, textarea, select, option {
- font: 1em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
-}
-input[type=text], input[type=password], textarea {
- padding: 2px 0;
- margin-right: .3em;
-}
-input[type=checkbox], input[type=radio] {
- border: none;
-}
-textarea {
- padding: 2px 0;
-}
-
-input[type=checkbox], input[type=radio] {
- margin: 0;
- padding: 0;
- background: transparent;
-}
-label {
- display: block;
-}
-label input, label select, label span {
- display: block;
-}
-p.form-note {
- font-style:italic;
- margin-top: -.7em;
- color: #666;
-}
-p.form-note.warn, p.form-note.info, p.warning {
- font-style: normal;
- padding: .2em 1em .1em 24px;
-}
-p.form-note.warn, p.warning {
- background: #ffd url(warning.png) no-repeat .2em .2em;
- border: 1px solid #f0c020;
-}
-p.form-note.info {
- background: #eef url(info.png) no-repeat .2em .2em;
- border: 1px solid #99f;
-}
-.form-note a {border-bottom: 1px solid #99f;}
-
-label.classic {
- display: inline;
-}
-label.classic input, label span input, label.classic select, label span select {
- display: inline;
-}
-
-label.area, p.area {
- width: inherit !important;
-}
-.area textarea {
- display: block;
- width: 100%;
- resize: vertical;
-}
-label.required {
- font-weight: bold;
-}
-label.required abbr {
- color: #dd0000;
- font-size: 1.3em;
-}
-label.inline {
- display: inline;
-}
-p.field {
- position: relative;
-
-}
-p.field label {
- display: block;
- width: 14em;
-}
-p.field input, p.field select {
- display: inline;
- position: absolute;
- left: 15em;
- top: 0;
-}
-label .maximal, textarea.maximal, input.maximal {
- width: 100%;
-}
-textarea.maximal {
- resize: vertical;
-}
-
-a.form-control {
- display: none;
- font-weight: bold;
- background: url(magnifier.png) no-repeat 0 0;
- color: green;
- padding-left: 20px;
-}
-.constrained {
- margin: 0;
- padding: 0;
- border: none;
- background: transparent;
-}
-
-/* --------------------------------------------------------------- buttons */
-h2 a.button {
- color: #333;
- font-weight: normal;
- font-size: .75em;
- vertical-align: middle;
-}
-/* commun */
-input[type=submit],
-input[type=reset],
-input[type=button],
-a.button,
-a.back,
-a.submit {
- display: inline-block;
- outline: none;
- cursor: pointer;
- text-align: center;
- text-decoration: none;
- padding: .1em .5em 0 .5em;
- text-shadow: 0 1px 1px rgba(0,0,0,.3);
- -webkit-border-radius: .2em;
- -moz-border-radius: .2em;
- border-radius: .2em;
- margin-bottom: .1em;
-}
-/* validation */
-input[type=submit],
-input[type=button],
-a.submit {
- color: #fff;
- border: 1px solid #2373A8;
- background: #2373A8;
- background: -webkit-gradient(linear, left top, left bottom, from(#2C8FD1), to(#2373A8));
- background: -moz-linear-gradient(top, #2C8FD1, #2373A8);
-}
-input[type=submit]:hover,
-input[type=button]:hover,
-a.submit:hover,
-input[type=submit]:focus,
-input[type=button]:focus,
-a.submit:focus {
- background: #2373A8;
- background: -webkit-gradient(linear, left top, left bottom, from(#2373A8), to(#2C8FD1));
- background: -moz-linear-gradient(top, #2373A8, #2C8FD1);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2373A8', endColorstr='#2C8FD1');
- border: 1px solid #2C8FD1;
-}
-/* suppression et reset */
-a.button,
-a.back,
-input[type=submit].reset,
-input[type=submit].delete {
- border: 1px solid #ccc;
- background: #f5f5f5;
- color: #000;
- background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));
- background: -moz-linear-gradient(top, #f5f5f5, #dfdfdf);
- text-shadow: none;
- }
-a.button:hover,
-a.back:hover,
-input[type=reset]:hover,
-input[type=submit].reset:hover,
-input[type=submit].delete:hover,
-a.button:focus,
-a.back:focus,
-input[type=reset]:focus,
-input[type=submit].reset:focus,
-input[type=submit].delete:focus {
- background: #dfdfdf;
- background: -webkit-gradient(linear, left top, left bottom, from(#dfdfdf), to(#f5f5f5));
- background: -moz-linear-gradient(top, #dfdfdf, #f5f5f5);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e5e5e5', endColorstr='#f5f5f5');
- }
-a.delete,
-input.delete,
-input[type=submit].delete {
- color: #c00;
- padding-bottom: .1em;
-}
-#entry-content .delete {
- margin-left: 1em;
-}
-a.delete:hover,
-input.delete:hover,
-input[type=submit].delete:hover,
-a.delete:focus,
-input.delete:focus,
-input[type=submit].delete:focus {
- border-color: #c00;
-}
-/* finasseries */
-input[type=button] {
- padding: .1em;
-}
-#info-box a.button {
- padding: 0 .5em;
- margin-left: 2em;
-}
-a.back:before {
- content: "\ab\a0";
-}
-a.button.add {
- -webkit-border-radius: .5em;
- -moz-border-radius: .5em;
- border-radius: .5em;
- margin-bottom: .1em;
- background: #2C8FD1 url(../images/add.png) no-repeat 6px center;
- color: #fff;
- padding: .2em 16px .2em 30px;
- border: 1px solid #2373A8;
-}
-a.button.add:hover, a.button.add:focus {
- background-color: #2373A8;
-}
diff --git a/v2/dotclear/admin/style/dotclear-logo.png b/v2/dotclear/admin/style/dotclear-logo.png
deleted file mode 100644
index e39a3ea..0000000
Binary files a/v2/dotclear/admin/style/dotclear-logo.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/dotclear-logo2.png b/v2/dotclear/admin/style/dotclear-logo2.png
deleted file mode 100644
index 7295297..0000000
Binary files a/v2/dotclear/admin/style/dotclear-logo2.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/drag.png b/v2/dotclear/admin/style/drag.png
deleted file mode 100644
index 28410fc..0000000
Binary files a/v2/dotclear/admin/style/drag.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/farbtastic/farbtastic.css b/v2/dotclear/admin/style/farbtastic/farbtastic.css
deleted file mode 100644
index 07d953f..0000000
--- a/v2/dotclear/admin/style/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/v2/dotclear/admin/style/farbtastic/marker.png b/v2/dotclear/admin/style/farbtastic/marker.png
deleted file mode 100644
index db7da55..0000000
Binary files a/v2/dotclear/admin/style/farbtastic/marker.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/farbtastic/mask.png b/v2/dotclear/admin/style/farbtastic/mask.png
deleted file mode 100644
index b0a4d40..0000000
Binary files a/v2/dotclear/admin/style/farbtastic/mask.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/farbtastic/wheel.png b/v2/dotclear/admin/style/farbtastic/wheel.png
deleted file mode 100644
index 97b343d..0000000
Binary files a/v2/dotclear/admin/style/farbtastic/wheel.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/grid.png b/v2/dotclear/admin/style/grid.png
deleted file mode 100644
index cf9402d..0000000
Binary files a/v2/dotclear/admin/style/grid.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/head-bg.png b/v2/dotclear/admin/style/head-bg.png
deleted file mode 100644
index d3f91a3..0000000
Binary files a/v2/dotclear/admin/style/head-bg.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/iesucks.css b/v2/dotclear/admin/style/iesucks.css
deleted file mode 100644
index 654a3f3..0000000
--- a/v2/dotclear/admin/style/iesucks.css
+++ /dev/null
@@ -1,46 +0,0 @@
-#content {zoom:1;}
-label .maximal, textarea.maximal, input.maximal {
- width : 98% !important;
-}
-.area textarea {
- width : 98% !important;
-}
-textarea {
- padding : 0 !important;
-}
-legend {
- margin-bottom: 1em !important;
-}
-
-p.area {
- width: 98% !important;
-}
-p.area textarea {
- width: 100% !important;
-}
-
-tr.line input {
- vertical-align: baseline !important;
-}
-
-#dashboard .col {
- width: 48% !important;
-}
-
-td.status img, tr.line img.expand {
- margin-bottom: 0 !important;
-}
-
-.wysiwygIframe {
- width: 98% !important;
-}
-
-div.media-list .media-item {
- width: 48% !important;
-}
-a.media-icon {
- border-bottom:none !important;
-}
-#dashboard-main #icons p {
- display: inline;
-}
diff --git a/v2/dotclear/admin/style/info.png b/v2/dotclear/admin/style/info.png
deleted file mode 100644
index 200c448..0000000
Binary files a/v2/dotclear/admin/style/info.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/install.css b/v2/dotclear/admin/style/install.css
deleted file mode 100644
index 31e2fa9..0000000
--- a/v2/dotclear/admin/style/install.css
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- loader.css
- Simple CSS rules for NetInstall
-
- (c) 2008 - Olivier Meunier & contributors - All rights reserved.
- Please see http://dotclear.net/ for more details.
-*/
-body.install {
- font: 0.875em Helvetica,Arial,sans-serif;
- color: #000;
- background-color: #fff;
- line-height: 1.5em;
-}
-body.install #content {
- width:32em;
- margin:1em auto;
-}
-body.install #main {
- padding:1em 2em;
- border:1px #ccc solid;
- -moz-border-radius:8px;
- -webkit-border-radius:8px;
- border-radius: 8px;
-}
-body.install h1,h2 {
- font-family: Helvetica,arial,sans-serif;
-}
-body.install h1 {
- background: url(install/w-logo.png) no-repeat top center;
- font-size:1.8em;
- font-weight:normal;
- text-align:center;
- color: #666;
- padding-top: 70px;
- margin: 0 0 0.75em 0;
-}
-body.install h2 {
- color: #ff6000;
-}
-body.install h3 {
- margin-top:0;
-}
-body.install label {
- color: #555;
-}
-
-body.install .msg {
- padding:10px 10px 10px 60px;
- border-radius:8px;
- -moz-border-radius:8px;
- -webkit-border-radius:8px;
-}
-body.install .warning {
- background: #ffc url(install/important.png) no-repeat 10px 10px;
-}
-body.install .notice {
- background: #eef url(install/note.png) no-repeat 10px 10px;
-}
-a, a:link, a:visited {
- color: #2373A8;
- text-decoration: none;
- border-bottom: 1px dotted #f90;
-}
-a:hover, a:active, a:focus {
- text-decoration: underline;
-}
-
-div.error, p.error, div.message, p.message, div.static-msg, p.static-msg {
- padding: 0.5em 0.5em 0.5em 60px;
- margin-bottom: 1em;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
-}
-p.error, p.message, p.static-msg {
- padding-top: 1em;
- padding-bottom: 1em;
-}
-div.error, p.error {
- background: #e5bfbf url(install/process_warning.png) no-repeat 5px 5px;
- color: #600;
-}
-div.message, p.message, div.static-msg, p.static-msg {
- background: #666 url(install/note.png) no-repeat 5px 5px;
- color: #fff;
-}
-div.message a, p.message a, div.static-msg a, p.static-msg a {
- color: #fff;
-}
-label {
- display : block;
-}
-label input, label select, label span {
- display : block;
-}
-
-label.required {
- font-weight : bold;
-}
-label.required abbr {
- color: #dd0000;
- font-size: 1.3em;
-}
-
-form {
- display : block;
- margin : 0;
- padding : 0;
-}
-
-fieldset {
- display : block;
- margin : 0 0 1em 0;
- padding : 1em 0.5em;
- border-width : 1px 0;
- border-style: solid;
- border-color: #ccc;
- background: #f5f5f5;
-}
-legend {
- font-weight : bold;
- padding: 0.2em 0.6em;
- border-width: 1px;
- border-style: solid;
- border-color: #ccc;
- background: #f5f5f5;
- margin-bottom: 0.5em;
-}
-a#obfus {
- color: #fff;
- background-color: #666;
- padding: 0 10px;
- border-radius: 2px;
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
-}
-
-input[type=submit]{
- font-size: 1.05em;
- display: inline-block;
- outline: none;
- cursor: pointer;
- text-align: center;
- text-decoration: none;
- padding: .1em .5em;
- text-shadow: 0 1px 1px rgba(0,0,0,.3);
- -webkit-border-radius: .2em;
- -moz-border-radius: .2em;
- border-radius: .2em;
- margin-bottom: .1em;
- color: #fff;
- border: 1px solid #2373A8;
- background: #2373A8;
- background: -webkit-gradient(linear, left top, left bottom, from(#2C8FD1), to(#2373A8));
- background: -moz-linear-gradient(top, #2C8FD1, #2373A8);
- width: 100%;
-}
-input[type=submit]:hover,
-input[type=submit]:focus {
- background: #2373A8;
- background: -webkit-gradient(linear, left top, left bottom, from(#2373A8), to(#2C8FD1));
- background: -moz-linear-gradient(top, #2373A8, #2C8FD1);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2373A8', endColorstr='#2C8FD1');
- border: 1px solid #2C8FD1;
-}
diff --git a/v2/dotclear/admin/style/install/important.png b/v2/dotclear/admin/style/install/important.png
deleted file mode 100644
index 01ad7d0..0000000
Binary files a/v2/dotclear/admin/style/install/important.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/install/note.png b/v2/dotclear/admin/style/install/note.png
deleted file mode 100644
index 3e841c9..0000000
Binary files a/v2/dotclear/admin/style/install/note.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/install/process_warning.png b/v2/dotclear/admin/style/install/process_warning.png
deleted file mode 100644
index b1dbe7d..0000000
Binary files a/v2/dotclear/admin/style/install/process_warning.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/install/w-logo.png b/v2/dotclear/admin/style/install/w-logo.png
deleted file mode 100644
index 7295297..0000000
Binary files a/v2/dotclear/admin/style/install/w-logo.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_bquote.png b/v2/dotclear/admin/style/jsToolBar/bt_bquote.png
deleted file mode 100644
index bb6be88..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_bquote.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_br.png b/v2/dotclear/admin/style/jsToolBar/bt_br.png
deleted file mode 100644
index 717ff6c..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_br.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_clean.png b/v2/dotclear/admin/style/jsToolBar/bt_clean.png
deleted file mode 100644
index 3973a2c..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_clean.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_code.png b/v2/dotclear/admin/style/jsToolBar/bt_code.png
deleted file mode 100644
index 40a149f..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_code.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_del.png b/v2/dotclear/admin/style/jsToolBar/bt_del.png
deleted file mode 100644
index 87c3c66..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_del.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_em.png b/v2/dotclear/admin/style/jsToolBar/bt_em.png
deleted file mode 100644
index cddfe87..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_em.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_img.png b/v2/dotclear/admin/style/jsToolBar/bt_img.png
deleted file mode 100644
index b991a52..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_img.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_img_select.png b/v2/dotclear/admin/style/jsToolBar/bt_img_select.png
deleted file mode 100644
index b5bc5bf..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_img_select.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_ins.png b/v2/dotclear/admin/style/jsToolBar/bt_ins.png
deleted file mode 100644
index f690b90..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_ins.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_link.png b/v2/dotclear/admin/style/jsToolBar/bt_link.png
deleted file mode 100644
index 07a2b0e..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_link.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_ol.png b/v2/dotclear/admin/style/jsToolBar/bt_ol.png
deleted file mode 100644
index 65d26e4..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_ol.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_paragraph.png b/v2/dotclear/admin/style/jsToolBar/bt_paragraph.png
deleted file mode 100644
index 5de086e..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_paragraph.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_post.png b/v2/dotclear/admin/style/jsToolBar/bt_post.png
deleted file mode 100644
index 69f0c6f..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_post.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_pre.png b/v2/dotclear/admin/style/jsToolBar/bt_pre.png
deleted file mode 100644
index b765759..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_pre.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_quote.png b/v2/dotclear/admin/style/jsToolBar/bt_quote.png
deleted file mode 100644
index 6cd98e1..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_quote.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_strong.png b/v2/dotclear/admin/style/jsToolBar/bt_strong.png
deleted file mode 100644
index d2ac922..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_strong.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/bt_ul.png b/v2/dotclear/admin/style/jsToolBar/bt_ul.png
deleted file mode 100644
index 158790a..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/bt_ul.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/jsToolBar/jsToolBar.css b/v2/dotclear/admin/style/jsToolBar/jsToolBar.css
deleted file mode 100644
index ce8f8c8..0000000
--- a/v2/dotclear/admin/style/jsToolBar/jsToolBar.css
+++ /dev/null
@@ -1,173 +0,0 @@
-.jstEditor {
- border-width : 0 1px 1px 1px;
- border-style : solid;
- border-color : #000 #ccc #ccc #000;
- padding-left: 5px;
- background : #f9f9f9;
-}
-.jstEditor textarea, .jstEditor iframe {
- margin: 0;
- border: 0;
-}
-
-.jstHandle {
- height: 8px;
- background: #ccc url(resize.png) no-repeat center center;
- font-size: 0.1em;
- cursor: s-resize;
- border-color: #ccc #ccc #ccc #000;
- border-width: 0 1px 1px 1px;
- border-style: solid;
-}
-
-.jstElements {
- padding: 3px 3px;
- border-width: 1px 1px 0 1px;
- border-style: solid;
- border-color: #000 #ccc #ccc #000;
- background: #dfdfdf;
-}
-
-.jstElements select, .jstElements button {
- vertical-align: middle;
-}
-.jstElements select {
- width: 12em;
-}
-.jstElements button {
- margin-right : 2px;
- width : 20px;
- height: 20px;
- padding: 0;
- border-style: solid;
- border-width: 1px;
- border-color: #dfdfdf;
- background-color : transparent;
- background-position : 50% 50%;
- background-repeat: no-repeat;
-}
-.jstElements button:hover {
- border-color : #ccc;
- background-color: #fff;
-}
-.jstElements button span {
- display : none;
-}
-.jstElements span {
- display : inline;
-}
-
-.jstSpacer {
- width : 0px;
- font-size: 1px;
- margin-right: 4px;
-}
-
-.jstSwitcher {
- display: block;
- list-style: none;
- margin: 0 0 0 -5px;
- padding: 0 0 5px 0;
- background: #dfdfdf;
- border-top: 1px solid #999;
- font-size: 90%;
- font-weight: bold;
-}
-.jstSwitcher li {
- display: inline;
- margin: 0 0 0 5px;
- padding: 2px 4px;
-}
-.jstSwitcher li.jstSwitcherCurrent {
- color: #fff;
- background: #999;
- -moz-border-radius: 0 0 2px 2px;
-}
-.jstSwitcher a {
- font-weight: normal;
- border-bottom: none !important;
-}
-
-/* Buttons
--------------------------------------------------------- */
-.jstb_strong {
- background-image: url(bt_strong.png);
-}
-.jstb_em {
- background-image: url(bt_em.png);
-}
-.jstb_ins {
- background-image: url(bt_ins.png);
-}
-.jstb_del {
- background-image: url(bt_del.png);
-}
-.jstb_quote {
- background-image: url(bt_quote.png);
-}
-.jstb_code {
- background-image: url(bt_code.png);
-}
-.jstb_paragraph {
- background-image: url(bt_paragraph.png);
-}
-.jstb_br {
- background-image: url(bt_br.png);
-}
-.jstb_blockquote {
- background-image: url(bt_bquote.png);
-}
-.jstb_pre {
- background-image: url(bt_pre.png);
-}
-.jstb_ul {
- background-image: url(bt_ul.png);
-}
-.jstb_ol {
- background-image: url(bt_ol.png);
-}
-.jstb_link {
- background-image: url(bt_link.png);
-}
-.jstb_img {
- background-image: url(bt_img.png);
-}
-.jstb_img_select {
- background-image: url(bt_img_select.png);
-}
-.jstb_post_link {
- background-image: url(bt_post.png);
-}
-.jstb_removeFormat {
- background-image: url(bt_clean.png);
-}
-
-
-/* WYSIWYG Iframe */
-.wysiwygIframe {
- border-width : 1px;
- border-style : solid;
- border-color : #000 #ccc #ccc #000;
- width : 100%;
-}
-
-/* WYSIWYG Document */
-body.wysiwygDoc {
- font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
- color : #000;
- background: #f9f9f9;
- margin: 0;
- padding : 2px;
- border: none;
-}
-.wysiwygDoc pre, .wysiwygDoc code, .wysiwygDoc kbd, .wysiwygDoc samp {
- font-family:"Courier New",Courier,monospace;
- font-size : 1.1em;
-}
-.wysiwygDoc code {
- color : #666;
- font-weight : bold;
-}
-body.wysiwygDoc > p:first-child {
- margin-top: 0;
-}
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/jsToolBar/resize.png b/v2/dotclear/admin/style/jsToolBar/resize.png
deleted file mode 100644
index 1b21270..0000000
Binary files a/v2/dotclear/admin/style/jsToolBar/resize.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/magnifier.png b/v2/dotclear/admin/style/magnifier.png
deleted file mode 100644
index 1578a8d..0000000
Binary files a/v2/dotclear/admin/style/magnifier.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/modal/close.png b/v2/dotclear/admin/style/modal/close.png
deleted file mode 100644
index 5386506..0000000
Binary files a/v2/dotclear/admin/style/modal/close.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/modal/loader.gif b/v2/dotclear/admin/style/modal/loader.gif
deleted file mode 100644
index e2a116c..0000000
Binary files a/v2/dotclear/admin/style/modal/loader.gif and /dev/null differ
diff --git a/v2/dotclear/admin/style/modal/modal.css b/v2/dotclear/admin/style/modal/modal.css
deleted file mode 100644
index 8524e7c..0000000
--- a/v2/dotclear/admin/style/modal/modal.css
+++ /dev/null
@@ -1,52 +0,0 @@
-div.jq-modal {
- line-height: 1;
- background: #fff;
-}
-div.jq-modal-container {
- padding: 1px;
- position: relative;
-}
-div.jq-modal-content {
- position: relative;
- overflow: auto;
-}
-div.jq-modal-closer {
- position: absolute;
- top: -12px;
- right: -12px;
- width: 25px;
- height: 25px;
-}
-div.jq-modal-closer a {
- display: block;
- text-indent: -5000px;
- width: 25px;
- height: 25px;
- outline: none;
- border: none;
-}
-
-/* modalImage */
-div.jq-modal-content img {
- display: block;
-}
-span.jq-modal-legend {
- display: block;
- padding: 3px 0;
-}
-a.jq-modal-next, a.jq-modal-prev {
- display: block;
- position: absolute;
- top: 0;
- width: 50%;
- bottom: 0;
- outline: none;
- border: none;
- text-indent: -5000px;
-}
-a.jq-modal-next {
- right: 0;
-}
-a.jq-modal-prev {
- left: 0;
-}
\ No newline at end of file
diff --git a/v2/dotclear/admin/style/msg-error.png b/v2/dotclear/admin/style/msg-error.png
deleted file mode 100644
index 43894f1..0000000
Binary files a/v2/dotclear/admin/style/msg-error.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/msg-std.png b/v2/dotclear/admin/style/msg-std.png
deleted file mode 100644
index 3b6e107..0000000
Binary files a/v2/dotclear/admin/style/msg-std.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/package.png b/v2/dotclear/admin/style/package.png
deleted file mode 100644
index f138df4..0000000
Binary files a/v2/dotclear/admin/style/package.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/page-bg.png b/v2/dotclear/admin/style/page-bg.png
deleted file mode 100644
index a048e81..0000000
Binary files a/v2/dotclear/admin/style/page-bg.png and /dev/null differ
diff --git a/v2/dotclear/admin/style/warning.png b/v2/dotclear/admin/style/warning.png
deleted file mode 100644
index 5765d0c..0000000
Binary files a/v2/dotclear/admin/style/warning.png and /dev/null differ
diff --git a/v2/dotclear/admin/trackbacks.php b/v2/dotclear/admin/trackbacks.php
deleted file mode 100644
index a922d40..0000000
--- a/v2/dotclear/admin/trackbacks.php
+++ /dev/null
@@ -1,150 +0,0 @@
-blog->getPosts($params);
-
- if ($post->isEmpty()) {
- $core->error->add(__('This entry does not exist or is not published'));
- $can_view_page = false;
- } else {
- $TB = new dcTrackback($core);
- $tb_excerpt = $post->post_excerpt_xhtml.' '.$post->post_content_xhtml;
- $post_title = $post->post_title;
- $post_url = $post->getURL();
- }
-}
-else
-{
- $core->error->add(__('This entry does not exist.'));
- $can_view_page = false;
-}
-
-# Change excerpt
-if (!empty($_POST['tb_excerpt'])) {
- $tb_excerpt = $_POST['tb_excerpt'];
-}
-
-# Sanitize excerpt
-$tb_excerpt = html::clean($tb_excerpt);
-$tb_excerpt = html::decodeEntities($tb_excerpt);
-$tb_excerpt = text::cutString(html::escapeHTML($tb_excerpt),255);
-$tb_excerpt = preg_replace('/\s+/ms',' ',$tb_excerpt);
-
-# Send pings
-if ($post && !$post->isEmpty() && !empty($_POST['tb_urls']))
-{
- $tb_urls = $_POST['tb_urls'];
- $tb_urls = str_replace("\r",'',$tb_urls);
-
- $post_title = html::escapeHTML(trim(html::clean($post_title)));
-
- foreach (explode("\n",$tb_urls) as $tb_url)
- {
- try {
- $TB->ping($tb_url,$id,$post_title,$tb_excerpt,$post_url);
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
- }
-
- if (!$core->error->flag()) {
- http::redirect('trackbacks.php?id='.$id.'&sent=1');
- }
-}
-
-$page_title = __('Ping blogs');
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open($page_title,dcPage::jsLoad('js/_trackbacks.js'));
-
-# Exit if we cannot view page
-if (!$can_view_page) {
- dcPage::close();
- exit;
-}
-
-if (!empty($_GET['sent'])) {
- echo '
'.__('All pings sent.').'
';
-}
-
-echo '
'.html::escapeHTML($core->blog->name).' › '.$page_title.' ';
-
-echo '
'.
- sprintf(__('Back to "%s"'),html::escapeHTML($post->post_title)).'
';
-
-echo
-'
'.
-html::escapeHTML($post->post_title).' '.
-'
'.
-($post->post_excerpt_xhtml ? $post->post_excerpt_xhtml.'
' : '').
-$post->post_content_xhtml.
-'';
-
-if (!empty($_GET['auto'])) {
- flush();
- $tb_urls = implode("\n",$TB->discover($post->post_excerpt_xhtml.' '.$post->post_content_xhtml));
-} else {
- $auto_link = ''.
- __('Auto discover ping URLs').' ';
-}
-
-echo
-'
'.__('Ping blogs').' '.
-'
';
-
-$pings = $TB->getPostPings($id);
-
-if (!$pings->isEmpty())
-{
- echo '
'.__('Previously sent pings').' ';
-
- echo '
';
- while ($pings->fetch()) {
- echo
- ''.dt::dt2str(__('%Y-%m-%d %H:%M'),$pings->ping_dt).' - '.
- $pings->ping_url.' ';
- }
- echo ' ';
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/update.php b/v2/dotclear/admin/update.php
deleted file mode 100644
index 4759c85..0000000
--- a/v2/dotclear/admin/update.php
+++ /dev/null
@@ -1,222 +0,0 @@
-Access denied';
- dcPage::close();
- exit;
-}
-
-$updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions');
-$new_v = $updater->check(DC_VERSION);
-$zip_file = $new_v ? DC_BACKUP_PATH.'/'.basename($updater->getFileURL()) : '';
-$version_info = $new_v ? $updater->getInfoURL() : '';
-
-# Hide "update me" message
-if (!empty($_GET['hide_msg'])) {
- $updater->setNotify(false);
- http::redirect('index.php');
-}
-
-$p_url = 'update.php';
-
-$step = isset($_GET['step']) ? $_GET['step'] : '';
-$step = in_array($step,array('check','download','backup','unzip')) ? $step : '';
-
-$archives = array();
-foreach (files::scanDir(DC_BACKUP_PATH) as $v) {
- if (preg_match('/backup-([0-9A-Za-z\.-]+).zip/',$v)) {
- $archives[] = $v;
- }
-}
-
-# Revert or delete backup file
-if (!empty($_POST['backup_file']) && in_array($_POST['backup_file'],$archives))
-{
- $b_file = $_POST['backup_file'];
-
- try
- {
- if (!empty($_POST['b_del']))
- {
- if (!@unlink(DC_BACKUP_PATH.'/'.$b_file)) {
- throw new Exception(sprintf(__('Unable to delete file %s'),html::escapeHTML($b_file)));
- }
- http::redirect($p_url);
- }
-
- if (!empty($_POST['b_revert']))
- {
- $zip = new fileUnzip(DC_BACKUP_PATH.'/'.$b_file);
- $zip->unzipAll(DC_BACKUP_PATH.'/');
- @unlink(DC_BACKUP_PATH.'/'.$b_file);
- http::redirect($p_url);
- }
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-# Upgrade process
-if ($new_v && $step)
-{
- try
- {
- $updater->setForcedFiles('inc/digests');
-
- switch ($step)
- {
- case 'check':
- $updater->checkIntegrity(DC_ROOT.'/inc/digests',DC_ROOT);
- http::redirect($p_url.'?step=download');
- break;
- case 'download':
- $updater->download($zip_file);
- if (!$updater->checkDownload($zip_file)) {
- throw new Exception(
- sprintf(__('Downloaded Dotclear archive seems to be corrupted. '.
- 'Try download it again.'),'href="'.$p_url.'?step=download"')
- );
- }
- http::redirect($p_url.'?step=backup');
- break;
- case 'backup':
- $updater->backup(
- $zip_file, 'dotclear/inc/digests',
- DC_ROOT, DC_ROOT.'/inc/digests',
- DC_BACKUP_PATH.'/backup-'.DC_VERSION.'.zip'
- );
- http::redirect($p_url.'?step=unzip');
- break;
- case 'unzip':
- $updater->performUpgrade(
- $zip_file, 'dotclear/inc/digests', 'dotclear',
- DC_ROOT, DC_ROOT.'/inc/digests'
- );
- break;
- }
- }
- catch (Exception $e)
- {
- $msg = $e->getMessage();
-
- if ($e->getCode() == dcUpdate::ERR_FILES_CHANGED)
- {
- $msg =
- __('The following files of your Dotclear installation '.
- 'have been modified so we won\'t try to update your installation. '.
- 'Please try to update manually .');
- }
- elseif ($e->getCode() == dcUpdate::ERR_FILES_UNREADABLE)
- {
- $msg =
- sprintf(__('The following files of your Dotclear installation are not readable. '.
- 'Please fix this or try to make a backup file named %s manually.'),
- 'backup-'.DC_VERSION.'.zip ');
- }
- elseif ($e->getCode() == dcUpdate::ERR_FILES_UNWRITALBE)
- {
- $msg =
- __('The following files of your Dotclear installation cannot be written. '.
- 'Please fix this or try to update manually .');
- }
-
- if (isset($e->bad_files)) {
- $msg .=
- '
'.
- implode(' ',$e->bad_files).
- ' ';
- }
-
- $core->error->add($msg);
-
- $core->callBehavior('adminDCUpdateException',$e);
- }
-}
-
-/* DISPLAY Main page
--------------------------------------------------------- */
-dcPage::open(__('Dotclear update'));
-
-if (!$core->error->flag()) {
- echo '
'.__('Dotclear update').' ';
-}
-
-if (!$step)
-{
- if (empty($new_v))
- {
- echo '
'.__('No newer Dotclear version available.').'
';
- }
- else
- {
- echo
- '
'.sprintf(__('Dotclear %s is available.'),$new_v).
- ($version_info ? ' ('.__('information about this version').') ' : '').
- '
'.
-
- '
'.__('To upgrade your Dotclear installation simply click on the following button. '.
- 'A backup file of your current installation will be created in your root directory.').'
'.
- '
';
- }
-
- if (!empty($archives))
- {
- echo
- '
'.__('Update backup files').' '.
- '
'.__('The following files are backups of previously updates. '.
- 'You can revert your previous installation or delete theses files.').'
';
-
- echo '
';
- }
-}
-elseif ($step == 'unzip' && !$core->error->flag())
-{
- echo
- '
'.
- __("Congratulations, you're one click away from the end of the update.").
- ' '.__('Finish the update.').' '.
- '
';
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/user.php b/v2/dotclear/admin/user.php
deleted file mode 100644
index 3af0c90..0000000
--- a/v2/dotclear/admin/user.php
+++ /dev/null
@@ -1,331 +0,0 @@
-auth->getInfo('user_lang');
-$user_tz = $core->auth->getInfo('user_tz');
-$user_post_status = '';
-
-$user_options = $core->userDefaults();
-
-foreach ($core->getFormaters() as $v) {
- $formaters_combo[$v] = $v;
-}
-
-foreach ($core->blog->getAllPostStatus() as $k => $v) {
- $status_combo[$v] = $k;
-}
-
-# Language codes
-$langs = l10n::getISOcodes(1,1);
-foreach ($langs as $k => $v) {
- $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v);
- $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : '');
-}
-
-# Get user if we have an ID
-if (!empty($_REQUEST['id']))
-{
- try {
- $rs = $core->getUser($_REQUEST['id']);
-
- $user_id = $rs->user_id;
- $user_super = $rs->user_super;
- $user_pwd = $rs->user_pwd;
- $user_change_pwd = $rs->user_change_pwd;
- $user_name = $rs->user_name;
- $user_firstname = $rs->user_firstname;
- $user_displayname = $rs->user_displayname;
- $user_email = $rs->user_email;
- $user_url = $rs->user_url;
- $user_lang = $rs->user_lang;
- $user_tz = $rs->user_tz;
- $user_post_status = $rs->user_post_status;
-
- $user_options = array_merge($user_options,$rs->options());
-
- $page_title = $user_id;
- } catch (Exception $e) {
- $core->error->add($e->getMessage());
- }
-}
-
-# Add or update user
-if (isset($_POST['user_name']))
-{
- try
- {
- if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
- throw new Exception(__('Password verification failed'));
- }
-
- $cur = $core->con->openCursor($core->prefix.'user');
-
- $cur->user_id = $_POST['user_id'];
- $cur->user_super = $user_super = !empty($_POST['user_super']) ? 1 : 0;
- $cur->user_name = $user_name = $_POST['user_name'];
- $cur->user_firstname = $user_firstname = $_POST['user_firstname'];
- $cur->user_displayname = $user_displayname = $_POST['user_displayname'];
- $cur->user_email = $user_email = $_POST['user_email'];
- $cur->user_url = $user_url = $_POST['user_url'];
- $cur->user_lang = $user_lang = $_POST['user_lang'];
- $cur->user_tz = $user_tz = $_POST['user_tz'];
- $cur->user_post_status = $user_post_status = $_POST['user_post_status'];
-
- if ($cur->user_id == $core->auth->userID() && $core->auth->isSuperAdmin()) {
- // force super_user to true if current user
- $cur->user_super = $user_super = true;
- }
- if ($core->auth->allowPassChange()) {
- $cur->user_change_pwd = !empty($_POST['user_change_pwd']) ? 1 : 0;
- }
-
- if (!empty($_POST['new_pwd'])) {
- if ($_POST['new_pwd'] != $_POST['new_pwd_c']) {
- throw new Exception(__("Passwords don't match"));
- } else {
- $cur->user_pwd = $_POST['new_pwd'];
- }
- }
-
- $user_options['post_format'] = $_POST['user_post_format'];
- $user_options['edit_size'] = (integer) $_POST['user_edit_size'];
-
- if ($user_options['edit_size'] < 1) {
- $user_options['edit_size'] = 10;
- }
-
- $cur->user_options = new ArrayObject($user_options);
-
- # Udate user
- if ($user_id)
- {
- # --BEHAVIOR-- adminBeforeUserUpdate
- $core->callBehavior('adminBeforeUserUpdate',$cur,$user_id);
-
- $new_id = $core->updUser($user_id,$cur);
-
- # --BEHAVIOR-- adminAfterUserUpdate
- $core->callBehavior('adminAfterUserUpdate',$cur,$new_id);
-
- if ($user_id == $core->auth->userID() &&
- $user_id != $new_id) {
- $core->session->destroy();
- }
-
- http::redirect('user.php?id='.$new_id.'&upd=1');
- }
- # Add user
- else
- {
- if ($core->getUsers(array('user_id' => $cur->user_id),true)->f(0) > 0) {
- throw new Exception(sprintf(__('User "%s" already exists.'),html::escapeHTML($cur->user_id)));
- }
-
- # --BEHAVIOR-- adminBeforeUserCreate
- $core->callBehavior('adminBeforeUserCreate',$cur);
-
- $new_id = $core->addUser($cur);
-
- # --BEHAVIOR-- adminAfterUserCreate
- $core->callBehavior('adminAfterUserCreate',$cur,$new_id);
-
- if (!empty($_POST['saveplus'])) {
- http::redirect('user.php?add=1');
- } else {
- http::redirect('user.php?id='.$new_id.'&add=1');
- }
- }
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
-}
-
-
-/* DISPLAY
--------------------------------------------------------- */
-dcPage::open($page_title,
- dcPage::jsConfirmClose('user-form').
-
- # --BEHAVIOR-- adminUserHeaders
- $core->callBehavior('adminUserHeaders')
-);
-
-if (!empty($_GET['upd'])) {
- echo '
'.__('User has been successfully updated.').'
';
-}
-
-if (!empty($_GET['add'])) {
- echo '
'.__('User has been successfully created.').'
';
-}
-
-echo '
';
-
-if ($user_id == $core->auth->userID()) {
- echo
- '
'.__('Warning:').' '.
- __('If you change your username, you will have to log in again.').'
';
-}
-
-echo
-'
';
-
-if ($user_id)
-{
- echo '
'.__('Permissions').' ';
-
- $permissions = $core->getUserPermissions($user_id);
- $perm_types = $core->auth->getPermissionsTypes();
-
- if (count($permissions) == 0)
- {
- echo '
'.__('No permissions.').'
';
- }
- else
- {
- foreach ($permissions as $k => $v)
- {
- if (count($v['p']) > 0)
- {
- echo '
';
-
- echo '
';
- foreach ($v['p'] as $p => $V) {
- if (isset($perm_types[$p])) {
- echo ''.__($perm_types[$p]).' ';
- }
- }
- echo ' ';
- }
- }
- }
-
- echo
- '
'.
- __('Add new permissions').'
'.
- '
';
-}
-
-dcPage::helpBlock('core_user');
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/users.php b/v2/dotclear/admin/users.php
deleted file mode 100644
index 2f61820..0000000
--- a/v2/dotclear/admin/users.php
+++ /dev/null
@@ -1,174 +0,0 @@
-callBehavior('adminBeforeUserDelete',$u);
- if ($u != $core->auth->userID()) {
- $core->delUser($u);
- }
- }
- catch (Exception $e)
- {
- $core->error->add($e->getMessage());
- }
- }
- if (!$core->error->flag()) {
- http::redirect('users.php?del=1');
- }
-}
-
-
-# Creating filter combo boxes
-$sortby_combo = array(
-__('Username') => 'U.user_id',
-__('Last Name') => 'user_name',
-__('First Name') => 'user_firstname',
-__('Display name') => 'user_displayname',
-__('Number of entries') => 'nb_post'
-);
-
-$order_combo = array(
-__('Descending') => 'desc',
-__('Ascending') => 'asc'
-);
-
-# Actions combo box
-$combo_action = array(
- __('Set permissions') => 'setpermissions',
- __('Delete') => 'deleteuser'
-);
-
-# --BEHAVIOR-- adminUsersActionsCombo
-$core->callBehavior('adminUsersActionsCombo',array(&$combo_action));
-
-
-# Get users
-$page = !empty($_GET['page']) ? $_GET['page'] : 1;
-$nb_per_page = 30;
-
-if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
- $nb_per_page = $_GET['nb'];
-}
-
-$q = !empty($_GET['q']) ? $_GET['q'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'user_id';
-$order = !empty($_GET['order']) ? $_GET['order'] : 'asc';
-
-$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
-
-$show_filters = false;
-
-# - Search filter
-if ($q) {
- $params['q'] = $q;
- $show_filters = true;
-}
-
-# - Sortby and order filter
-if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
- if ($order !== '' && in_array($order,$order_combo)) {
- $params['order'] = $sortby.' '.$order;
- $show_filters = true;
- }
-}
-
-try {
- $rs = $core->getUsers($params);
- $counter = $core->getUsers($params,1);
- $user_list = new adminUserList($core,$rs,$counter->f(0));
-} catch (Exception $e) {
- $core->error->add($e->getMessage());
-}
-
-
-/* DISPLAY
--------------------------------------------------------- */
-$starting_script = dcPage::jsLoad('js/_users.js');
-if (!$show_filters) {
- $starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
-
-dcPage::open(__('users'),$starting_script);
-
-if (!$core->error->flag())
-{
- if (!empty($_GET['del'])) {
- echo '
'.__('User has been successfully removed.').'
';
- }
-
- echo
- '
'.__('Users').' '.
- '
'.__('Create a new user').'
';
-
- if (!$show_filters) {
- echo '
'.__('Filters').'
';
- }
-
- echo
- '
';
-
- # Show users
- $user_list->display($page,$nb_per_page,
- '
'
- );
-}
-
-dcPage::close();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/admin/xmlrpc.php b/v2/dotclear/admin/xmlrpc.php
deleted file mode 100644
index 75195f3..0000000
--- a/v2/dotclear/admin/xmlrpc.php
+++ /dev/null
@@ -1,35 +0,0 @@
-plugins->loadModules(DC_PLUGINS_ROOT);
-
-# Start XML-RPC server
-$server = new dcXmlRpc($core,$blog_id);
-$server->serve();
-?>
\ No newline at end of file
diff --git a/v2/dotclear/cache/.htaccess b/v2/dotclear/cache/.htaccess
deleted file mode 100644
index 14249c5..0000000
--- a/v2/dotclear/cache/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
\ No newline at end of file
diff --git a/v2/dotclear/db/.htaccess b/v2/dotclear/db/.htaccess
deleted file mode 100644
index 14249c5..0000000
--- a/v2/dotclear/db/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
\ No newline at end of file
diff --git a/v2/dotclear/inc/.htaccess b/v2/dotclear/inc/.htaccess
deleted file mode 100644
index 14249c5..0000000
--- a/v2/dotclear/inc/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
\ No newline at end of file
diff --git a/v2/dotclear/inc/admin/class.dc.menu.php b/v2/dotclear/inc/admin/class.dc.menu.php
deleted file mode 100644
index 9a016dd..0000000
--- a/v2/dotclear/inc/admin/class.dc.menu.php
+++ /dev/null
@@ -1,88 +0,0 @@
-id = $id;
- $this->title = $title;
- $this->itemSpace = $itemSpace;
- $this->items = array();
- }
-
- public function addItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
- {
- if($show) {
- $this->items[] = $this->itemDef($title,$url,$img,$active,$id,$class);
- }
- }
-
- public function prependItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
- {
- if ($show) {
- array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id,$class));
- }
- }
-
- public function draw()
- {
- if (count($this->items) == 0) {
- return '';
- }
-
- $res =
- '
'.
- ($this->title ? '
'.$this->title.' ' : '').
- '
'."\n";
-
- for ($i=0; $iitems); $i++)
- {
- if ($i+1 < count($this->items) && $this->itemSpace != '') {
- $res .= preg_replace('|$|',$this->itemSpace.'',$this->items[$i]);
- $res .= "\n";
- } else {
- $res .= $this->items[$i]."\n";
- }
- }
-
- $res .= ' '."\n";
-
- return $res;
- }
-
- protected function itemDef($title,$url,$img,$active,$id=null,$class=null)
- {
- if (is_array($url)) {
- $link = $url[0];
- $ahtml = (!empty($url[1])) ? ' '.$url[1] : '';
- } else {
- $link = $url;
- $ahtml = '';
- }
-
- $img = dc_admin_icon_url($img);
-
- return
- '
'.
-
- ''.$title.' '."\n";
- }
-}
-?>
\ No newline at end of file
diff --git a/v2/dotclear/inc/admin/lib.dc.page.php b/v2/dotclear/inc/admin/lib.dc.page.php
deleted file mode 100644
index a3b013a..0000000
--- a/v2/dotclear/inc/admin/lib.dc.page.php
+++ /dev/null
@@ -1,709 +0,0 @@
-blog && $core->auth->check($permissions,$core->blog->id))
- {
- return;
- }
-
- if (session_id()) {
- $core->session->destroy();
- }
- http::redirect(DC_AUTH_PAGE);
- }
-
- # Check super admin
- public static function checkSuper()
- {
- global $core;
-
- if (!$core->auth->isSuperAdmin())
- {
- if (session_id()) {
- $core->session->destroy();
- }
- http::redirect(DC_AUTH_PAGE);
- }
- }
-
- # Top of admin page
- public static function open($title='', $head='')
- {
- global $core;
-
- # List of user's blogs
- if ($core->auth->blog_count == 1 || $core->auth->blog_count > 20)
- {
- $blog_box =
- __('Blog:').' '.
- html::escapeHTML($core->blog->name).' ';
-
- if ($core->auth->blog_count > 20) {
- $blog_box .= ' - '.__('Change blog').' ';
- }
- }
- else
- {
- $rs_blogs = $core->getBlogs(array('order'=>'LOWER(blog_name)','limit'=>20));
- $blogs = array();
- while ($rs_blogs->fetch()) {
- $blogs[html::escapeHTML($rs_blogs->blog_name.' - '.$rs_blogs->blog_url)] = $rs_blogs->blog_id;
- }
- $blog_box =
- ''.
- __('Blogs:').' '.
- $core->formNonce().
- form::combo('switchblog',$blogs,$core->blog->id).
- ' '.
- '
';
- }
-
- $safe_mode = isset($_SESSION['sess_safe_mode']) && $_SESSION['sess_safe_mode'];
-
- # Display
- header('Content-Type: text/html; charset=UTF-8');
- echo
- ''."\n".
- 'auth->getInfo('user_lang').'" '.
- 'lang="'.$core->auth->getInfo('user_lang').'">'."\n".
- "
\n".
- ' '."\n".
- '
'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.' '."\n".
-
- ' '."\n".
- ' '."\n".
-
- self::jsLoadIE7().
- ' '."\n";
- if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') {
- echo
- ' '."\n";
- }
-
- $core->auth->user_prefs->addWorkspace('interface');
- $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
- if (!$user_ui_hide_std_favicon) {
- echo ' ';
- }
-
- echo
- self::jsCommon().
- $head;
-
- # --BEHAVIOR-- adminPageHTMLHead
- $core->callBehavior('adminPageHTMLHead');
-
- echo
- "\n".
- '