mirror of
https://github.com/YunoHost-Apps/piwigo_ynh.git
synced 2024-09-03 20:06:03 +02:00
update to piwigo 2.8.2
This commit is contained in:
parent
50a0dab601
commit
11fd179d6d
1145 changed files with 37044 additions and 19747 deletions
339
sources/LICENSE.txt
Normal file
339
sources/LICENSE.txt
Normal file
|
@ -0,0 +1,339 @@
|
|||
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.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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.
|
||||
|
||||
<signature of Ty Coon>, 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.
|
52
sources/README.md
Normal file
52
sources/README.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
[![Piwigo](http://piwigo.org/screenshots/logos/piwigo@280.png)](http://piwigo.org)
|
||||
---------
|
||||
|
||||
Piwigo is photo gallery software for the web, built by an active community of users and developers.
|
||||
|
||||
Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and open source.
|
||||
|
||||
![screenshot](http://piwigo.org/screenshots/github-screenshot.jpg)
|
||||
|
||||
* [piwigo.org](http://piwigo.org)
|
||||
* [Demo](http://piwigo.org/demo)
|
||||
* [Downloads](http://piwigo.org/basics/downloads)
|
||||
* [User guide](http://piwigo.org/doc)
|
||||
* [Plugins and themes](http://piwigo.org/ext)
|
||||
* [Forum](http://piwigo.org/forum)
|
||||
* [News](http://piwigo.org/news)
|
||||
|
||||
## Requirements
|
||||
|
||||
* A webserver (Apache or nginx recommended)
|
||||
* PHP 5.2 or greater
|
||||
* MySQL 5 or greater or MariaDB equivalent
|
||||
* ImageMagick (recommended) or PHP GD
|
||||
|
||||
## Quick start install
|
||||
|
||||
### NetInstall
|
||||
|
||||
* Download the [NetInstall script](http://piwigo.org/download/dlcounter.php?code=netinstall)
|
||||
* Transfer the script to your web space with any FTP client
|
||||
* Open the script in you web browser (for example http://example.com/piwigo-netinstall.php) and follow the steps
|
||||
|
||||
[More information](http://piwigo.org/basics/installation_netinstall)
|
||||
|
||||
### Manual
|
||||
|
||||
* Download the [latest stable version](http://piwigo.org/download/dlcounter.php?code=latest) and unzip it
|
||||
* Transfer everything to your web space with any FTP client
|
||||
* Open your website (for example http://example.com/piwigo) and follow the steps
|
||||
|
||||
[More information](http://piwigo.org/basics/installation_manual)
|
||||
|
||||
If you do not have your own server, consider the [piwigo.com](http://piwigo.com/) hosting solution.
|
||||
|
||||
## Contributing
|
||||
|
||||
Piwigo is widely driven by its community; if you want to improve the code, fork this repo and submit your changes to the `master` branch.
|
||||
|
||||
## License
|
||||
|
||||
Piwigo is released under the GPL v2 license.
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -57,11 +57,34 @@ function do_error( $code, $str )
|
|||
exit();
|
||||
}
|
||||
|
||||
if ($conf['enable_formats'] and isset($_GET['format']))
|
||||
{
|
||||
check_input_parameter('format', $_GET, false, PATTERN_ID);
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
*
|
||||
FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE format_id = '.$_GET['format'].'
|
||||
;';
|
||||
$formats = query2array($query);
|
||||
|
||||
if (count($formats) == 0)
|
||||
{
|
||||
do_error(400, 'Invalid request - format');
|
||||
}
|
||||
|
||||
$format = $formats[0];
|
||||
|
||||
$_GET['id'] = $format['image_id'];
|
||||
$_GET['part'] = 'f'; // "f" for "format"
|
||||
}
|
||||
|
||||
|
||||
if (!isset($_GET['id'])
|
||||
or !is_numeric($_GET['id'])
|
||||
or !isset($_GET['part'])
|
||||
or !in_array($_GET['part'], array('e','r') ) )
|
||||
or !in_array($_GET['part'], array('e','r','f') ) )
|
||||
{
|
||||
do_error(400, 'Invalid request - id/part');
|
||||
}
|
||||
|
@ -77,6 +100,8 @@ if ( empty($element_info) )
|
|||
do_error(404, 'Requested id not found');
|
||||
}
|
||||
|
||||
$src_image = new SrcImage($element_info);
|
||||
|
||||
// $filter['visible_categories'] and $filter['visible_images']
|
||||
// are not used because it's not necessary (filter <> restriction)
|
||||
$query='
|
||||
|
@ -103,9 +128,9 @@ $file='';
|
|||
switch ($_GET['part'])
|
||||
{
|
||||
case 'e':
|
||||
if ( !$user['enabled_high'] )
|
||||
{
|
||||
$deriv = new DerivativeImage(IMG_XXLARGE, new SrcImage($element_info));
|
||||
if ( $src_image->is_original() and !$user['enabled_high'] )
|
||||
{// we have a photo and the user has no access to HD
|
||||
$deriv = new DerivativeImage(IMG_XXLARGE, $src_image);
|
||||
if ( !$deriv->same_as_source() )
|
||||
{
|
||||
do_error(401, 'Access denied e');
|
||||
|
@ -116,6 +141,10 @@ switch ($_GET['part'])
|
|||
case 'r':
|
||||
$file = original_to_representative( get_element_path($element_info), $element_info['representative_ext'] );
|
||||
break;
|
||||
case 'f' :
|
||||
$file = original_to_format(get_element_path($element_info), $format['ext']);
|
||||
$element_info['file'] = get_filename_wo_extension($element_info['file']).'.'.$format['ext'];
|
||||
break;
|
||||
}
|
||||
|
||||
if ( empty($file) )
|
||||
|
@ -130,6 +159,10 @@ else if ($_GET['part'] == 'e')
|
|||
{
|
||||
pwg_log($_GET['id'], 'other');
|
||||
}
|
||||
else if ($_GET['part'] == 'f')
|
||||
{
|
||||
pwg_log($_GET['id'], 'high', $format['format_id']);
|
||||
}
|
||||
|
||||
$http_headers = array();
|
||||
|
||||
|
@ -155,7 +188,7 @@ if (!url_is_remote($file))
|
|||
// HTTP/1.1 only
|
||||
$http_headers[] = 'Cache-Control: private, must-revalidate, max-age='.$max_age;*/
|
||||
|
||||
if ( isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
|
||||
if ('f' != $_GET['part'] and isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
|
||||
{
|
||||
set_status_header(304);
|
||||
foreach ($http_headers as $header)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -240,6 +240,19 @@ if ($nb_photos_in_caddie > 0)
|
|||
);
|
||||
}
|
||||
|
||||
// any orphan photo?
|
||||
$nb_orphans = count(get_orphans());
|
||||
|
||||
if ($nb_orphans > 0)
|
||||
{
|
||||
$template->assign(
|
||||
array(
|
||||
'NB_ORPHANS' => $nb_orphans,
|
||||
'U_ORPHANS' => $link_start.'batch_manager&filter=prefilter-no_album',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Plugin menu |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -46,7 +46,7 @@ $page['cat'] = $category['id'];
|
|||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// info by email to an access granted group of category informations
|
||||
if (isset($_POST['submitEmail']) and !empty($_POST['group']))
|
||||
if (isset($_POST['submitEmail']))
|
||||
{
|
||||
set_make_full_url();
|
||||
|
||||
|
@ -54,6 +54,8 @@ if (isset($_POST['submitEmail']) and !empty($_POST['group']))
|
|||
is empty find child representative_picture_id */
|
||||
if (!empty($category['representative_picture_id']))
|
||||
{
|
||||
$img = array();
|
||||
|
||||
$query = '
|
||||
SELECT id, file, path, representative_ext
|
||||
FROM '.IMAGES_TABLE.'
|
||||
|
@ -65,56 +67,124 @@ SELECT id, file, path, representative_ext
|
|||
{
|
||||
$element = pwg_db_fetch_assoc($result);
|
||||
|
||||
$img_url = '<a href="'.
|
||||
make_picture_url(array(
|
||||
'image_id' => $element['id'],
|
||||
'image_file' => $element['file'],
|
||||
'category' => $category
|
||||
))
|
||||
.'" class="thumblnk"><img src="'.DerivativeImage::url(IMG_THUMB, $element).'"></a>';
|
||||
$img = array(
|
||||
'link' => make_picture_url(
|
||||
array(
|
||||
'image_id' => $element['id'],
|
||||
'image_file' => $element['file'],
|
||||
'category' => $category
|
||||
)
|
||||
),
|
||||
'src' => DerivativeImage::url(IMG_THUMB, $element),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($img_url))
|
||||
{
|
||||
$img_url = '';
|
||||
}
|
||||
|
||||
pwg_mail_group(
|
||||
$_POST['group'],
|
||||
array(
|
||||
'subject' => l10n('[%s] Visit album %s', $conf['gallery_title'], trigger_change('render_category_name', $category['name'], 'admin_cat_list')),
|
||||
// TODO : change this language variable to 'Visit album %s'
|
||||
// TODO : 'language_selected' => ....
|
||||
),
|
||||
array(
|
||||
'filename' => 'cat_group_info',
|
||||
'assign' => array(
|
||||
'IMG_URL' => $img_url,
|
||||
'CAT_NAME' => trigger_change('render_category_name', $category['name'], 'admin_cat_list'),
|
||||
'LINK' => make_index_url(array(
|
||||
'category' => array(
|
||||
'id' => $category['id'],
|
||||
'name' => trigger_change('render_category_name', $category['name'], 'admin_cat_list'),
|
||||
'permalink' => $category['permalink']
|
||||
)
|
||||
)),
|
||||
'CPL_CONTENT' => empty($_POST['mail_content']) ? '' : stripslashes($_POST['mail_content']),
|
||||
)
|
||||
$args = array(
|
||||
'subject' => l10n('[%s] Visit album %s', $conf['gallery_title'], trigger_change('render_category_name', $category['name'], 'admin_cat_list')),
|
||||
// TODO : change this language variable to 'Visit album %s'
|
||||
// TODO : 'language_selected' => ....
|
||||
);
|
||||
|
||||
$tpl = array(
|
||||
'filename' => 'cat_group_info',
|
||||
'assign' => array(
|
||||
'IMG' => $img,
|
||||
'CAT_NAME' => trigger_change('render_category_name', $category['name'], 'admin_cat_list'),
|
||||
'LINK' => make_index_url(
|
||||
array(
|
||||
'category' => array(
|
||||
'id' => $category['id'],
|
||||
'name' => trigger_change('render_category_name', $category['name'], 'admin_cat_list'),
|
||||
'permalink' => $category['permalink']
|
||||
)
|
||||
)
|
||||
),
|
||||
'CPL_CONTENT' => empty($_POST['mail_content']) ? '' : stripslashes($_POST['mail_content']),
|
||||
)
|
||||
);
|
||||
|
||||
unset_make_full_url();
|
||||
if ('users' == $_POST['who'] and isset($_POST['users']) and count($_POST['users']) > 0)
|
||||
{
|
||||
check_input_parameter('users', $_POST, true, PATTERN_ID);
|
||||
|
||||
$query = '
|
||||
// TODO code very similar to function pwg_mail_group. We'd better create
|
||||
// a function pwg_mail_users that could be called from here and from
|
||||
// pwg_mail_group
|
||||
|
||||
// TODO to make checks even better, we should check that theses users
|
||||
// have access to this album. No real privacy issue here, even if we
|
||||
// send the email to a user without permission.
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
ui.user_id,
|
||||
ui.status,
|
||||
ui.language,
|
||||
u.'.$conf['user_fields']['email'].' AS email,
|
||||
u.'.$conf['user_fields']['username'].' AS username
|
||||
FROM '.USER_INFOS_TABLE.' AS ui
|
||||
JOIN '.USERS_TABLE.' AS u ON u.'.$conf['user_fields']['id'].' = ui.user_id
|
||||
WHERE ui.user_id IN ('.implode(',', $_POST['users']).')
|
||||
;';
|
||||
$users = query2array($query);
|
||||
$usernames = array();
|
||||
|
||||
foreach ($users as $u)
|
||||
{
|
||||
$usernames[] = $u['username'];
|
||||
|
||||
$authkey = create_user_auth_key($u['user_id'], $u['status']);
|
||||
|
||||
$user_tpl = $tpl;
|
||||
|
||||
if ($authkey !== false)
|
||||
{
|
||||
$user_tpl['assign']['LINK'] = add_url_params($tpl['assign']['LINK'], array('auth' => $authkey['auth_key']));
|
||||
|
||||
if (isset($user_tpl['assign']['IMG']['link']))
|
||||
{
|
||||
$user_tpl['assign']['IMG']['link'] = add_url_params(
|
||||
$user_tpl['assign']['IMG']['link'],
|
||||
array('auth' => $authkey['auth_key'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$user_args = $args;
|
||||
if (isset($authkey))
|
||||
{
|
||||
$user_args['auth_key'] = $authkey['auth_key'];
|
||||
}
|
||||
|
||||
switch_lang_to($u['language']);
|
||||
pwg_mail($u['email'], $user_args, $user_tpl);
|
||||
switch_lang_back();
|
||||
}
|
||||
|
||||
$message = l10n_dec('%d mail was sent.', '%d mails were sent.', count($users));
|
||||
$message.= ' ('.implode(', ', $usernames).')';
|
||||
|
||||
$page['infos'][] = $message;
|
||||
}
|
||||
elseif ('group' == $_POST['who'] and !empty($_POST['group']))
|
||||
{
|
||||
check_input_parameter('group', $_POST, false, PATTERN_ID);
|
||||
|
||||
pwg_mail_group($_POST['group'], $args, $tpl);
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
name
|
||||
FROM '.GROUPS_TABLE.'
|
||||
WHERE id = '.$_POST['group'].'
|
||||
;';
|
||||
list($group_name) = pwg_db_fetch_row(pwg_query($query));
|
||||
list($group_name) = pwg_db_fetch_row(pwg_query($query));
|
||||
|
||||
$page['infos'][] = l10n('An information email was sent to group "%s"', $group_name);
|
||||
$page['infos'][] = l10n('An information email was sent to group "%s"', $group_name);
|
||||
}
|
||||
|
||||
unset_make_full_url();
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -135,6 +205,19 @@ $template->assign(
|
|||
)
|
||||
);
|
||||
|
||||
if ($conf['auth_key_duration'] > 0)
|
||||
{
|
||||
$template->assign(
|
||||
'auth_key_duration',
|
||||
time_since(
|
||||
strtotime('now -'.$conf['auth_key_duration'].' second'),
|
||||
'second',
|
||||
null,
|
||||
false
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | form construction |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -189,6 +272,64 @@ SELECT
|
|||
}
|
||||
}
|
||||
|
||||
// all users with status != guest and permitted to this this album (for a
|
||||
// perfect search, we should also check that album is not only filled with
|
||||
// private photos)
|
||||
$query = '
|
||||
SELECT
|
||||
user_id
|
||||
FROM '.USER_INFOS_TABLE.'
|
||||
WHERE status != \'guest\'
|
||||
;';
|
||||
$all_user_ids = query2array($query, null, 'user_id');
|
||||
|
||||
if ('private' == $category['status'])
|
||||
{
|
||||
$user_ids_access_indirect = array();
|
||||
|
||||
if (isset($group_ids) and count($group_ids) > 0)
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
user_id
|
||||
FROM '.USER_GROUP_TABLE.'
|
||||
WHERE group_id IN ('.implode(',', $group_ids).')
|
||||
';
|
||||
$user_ids_access_indirect = query2array($query, null, 'user_id');
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
user_id
|
||||
FROM '.USER_ACCESS_TABLE.'
|
||||
WHERE cat_id = '.$category['id'].'
|
||||
;';
|
||||
$user_ids_access_direct = query2array($query, null, 'user_id');
|
||||
|
||||
$user_ids_access = array_unique(array_merge($user_ids_access_direct, $user_ids_access_indirect));
|
||||
|
||||
$user_ids = array_intersect($user_ids_access, $all_user_ids);
|
||||
}
|
||||
else
|
||||
{
|
||||
$user_ids = $all_user_ids;
|
||||
}
|
||||
|
||||
if (count($user_ids) > 0)
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
'.$conf['user_fields']['id'].' AS id,
|
||||
'.$conf['user_fields']['username'].' AS username
|
||||
FROM '.USERS_TABLE.'
|
||||
WHERE id IN ('.implode(',', $user_ids).')
|
||||
;';
|
||||
|
||||
$users = query2array($query, 'id', 'username');
|
||||
|
||||
$template->assign('user_options', $users);
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | sending html code |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -63,6 +63,21 @@ DELETE FROM '.CADDIE_TABLE.'
|
|||
|
||||
redirect(get_root_url().'admin.php?page='.$_GET['page']);
|
||||
}
|
||||
|
||||
if ('delete_orphans' == $_GET['action'])
|
||||
{
|
||||
$deleted_count = delete_elements(get_orphans(), true);
|
||||
|
||||
if ($deleted_count > 0)
|
||||
{
|
||||
$_SESSION['page_infos'][] = l10n_dec(
|
||||
'%d photo was deleted', '%d photos were deleted',
|
||||
$deleted_count
|
||||
);
|
||||
|
||||
redirect(get_root_url().'admin.php?page='.$_GET['page']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -323,15 +338,7 @@ SELECT id
|
|||
break;
|
||||
|
||||
case 'no_album':
|
||||
$query = '
|
||||
SELECT
|
||||
id
|
||||
FROM '.IMAGES_TABLE.'
|
||||
LEFT JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
WHERE category_id is null
|
||||
;';
|
||||
$filter_sets[] = query2array($query, null, 'id');
|
||||
|
||||
$filter_sets[] = get_orphans();
|
||||
break;
|
||||
|
||||
case 'no_tag':
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -44,7 +44,6 @@ trigger_notify('loc_begin_element_set_global');
|
|||
|
||||
check_input_parameter('del_tags', $_POST, true, PATTERN_ID);
|
||||
check_input_parameter('associate', $_POST, false, PATTERN_ID);
|
||||
check_input_parameter('move', $_POST, false, PATTERN_ID);
|
||||
check_input_parameter('dissociate', $_POST, false, PATTERN_ID);
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -173,7 +172,7 @@ DELETE
|
|||
|
||||
else if ('move' == $action)
|
||||
{
|
||||
move_images_to_categories($collection, array($_POST['move']));
|
||||
move_images_to_categories($collection, array($_POST['associate']));
|
||||
|
||||
$_SESSION['page_infos'] = array(
|
||||
l10n('Information data registered in database')
|
||||
|
@ -187,7 +186,7 @@ DELETE
|
|||
|
||||
else if ('no_virtual_album' == $page['prefilter'])
|
||||
{
|
||||
$category_info = get_cat_info($_POST['move']);
|
||||
$category_info = get_cat_info($_POST['associate']);
|
||||
if (empty($category_info['dir']))
|
||||
{
|
||||
$redirect = true;
|
||||
|
@ -430,7 +429,7 @@ $prefilters = array(
|
|||
array('ID' => 'caddie', 'NAME' => l10n('Caddie')),
|
||||
array('ID' => 'favorites', 'NAME' => l10n('Your favorites')),
|
||||
array('ID' => 'last_import', 'NAME' => l10n('Last import')),
|
||||
array('ID' => 'no_album', 'NAME' => l10n('With no album')),
|
||||
array('ID' => 'no_album', 'NAME' => l10n('With no album').' ('.l10n('Orphans').')'),
|
||||
array('ID' => 'no_tag', 'NAME' => l10n('With no tag')),
|
||||
array('ID' => 'duplicates', 'NAME' => l10n('Duplicates')),
|
||||
array('ID' => 'all_photos', 'NAME' => l10n('All'))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -281,7 +281,7 @@ SELECT id, name, id_uppercat
|
|||
}
|
||||
else
|
||||
{
|
||||
$sort[] = $row['name'];
|
||||
$sort[] = remove_accents($row['name']);
|
||||
}
|
||||
|
||||
$categories[] = array(
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -172,21 +172,6 @@ UPDATE '.CATEGORIES_TABLE.'
|
|||
$_SESSION['page_infos'][] = l10n('Album updated successfully');
|
||||
$redirect = true;
|
||||
}
|
||||
elseif (isset($_POST['set_random_representant']))
|
||||
{
|
||||
set_random_representant(array($_GET['cat_id']));
|
||||
$redirect = true;
|
||||
}
|
||||
elseif (isset($_POST['delete_representant']))
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET representative_picture_id = NULL
|
||||
WHERE id = '.$_GET['cat_id'].'
|
||||
;';
|
||||
pwg_query($query);
|
||||
$redirect = true;
|
||||
}
|
||||
|
||||
if (isset($redirect))
|
||||
{
|
||||
|
@ -336,8 +321,7 @@ else
|
|||
}
|
||||
|
||||
// representant management
|
||||
if ($category['has_images']
|
||||
or !empty($category['representative_picture_id']))
|
||||
if ($category['has_images'] or !empty($category['representative_picture_id']))
|
||||
{
|
||||
$tpl_representant = array();
|
||||
|
||||
|
@ -345,20 +329,7 @@ if ($category['has_images']
|
|||
// representant ?
|
||||
if (!empty($category['representative_picture_id']))
|
||||
{
|
||||
$query = '
|
||||
SELECT id,representative_ext,path
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$category['representative_picture_id'].'
|
||||
;';
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
$src = DerivativeImage::thumb_url($row);
|
||||
$url = get_root_url().'admin.php?page=photo-'.$category['representative_picture_id'];
|
||||
|
||||
$tpl_representant['picture'] =
|
||||
array(
|
||||
'SRC' => $src,
|
||||
'URL' => $url
|
||||
);
|
||||
$tpl_representant['picture'] = get_category_representant_properties($category['representative_picture_id']);
|
||||
}
|
||||
|
||||
// can the admin choose to set a new random representant ?
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -578,7 +578,7 @@ switch ($page['section'])
|
|||
$position = 'bottomright';
|
||||
}
|
||||
|
||||
if ($wm->xrepeat != 0)
|
||||
if ($wm->xrepeat != 0 || $wm->yrepeat != 0)
|
||||
{
|
||||
$position = 'custom';
|
||||
}
|
||||
|
@ -592,6 +592,7 @@ switch ($page['section'])
|
|||
'xpos' => $wm->xpos,
|
||||
'ypos' => $wm->ypos,
|
||||
'xrepeat' => $wm->xrepeat,
|
||||
'yrepeat' => $wm->yrepeat,
|
||||
'opacity' => $wm->opacity,
|
||||
'position' => $position,
|
||||
)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -45,38 +45,6 @@ if (!isset($_GET['cat_id']) or !is_numeric($_GET['cat_id']))
|
|||
|
||||
$page['category_id'] = $_GET['cat_id'];
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | functions |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
/**
|
||||
* save the rank depending on given images order
|
||||
*
|
||||
* The list of ordered images id is supposed to be in the same parent
|
||||
* category
|
||||
*
|
||||
* @param array categories
|
||||
* @return void
|
||||
*/
|
||||
function save_images_order($category_id, $images)
|
||||
{
|
||||
$current_rank = 0;
|
||||
$datas = array();
|
||||
foreach ($images as $id)
|
||||
{
|
||||
$datas[] = array(
|
||||
'category_id' => $category_id,
|
||||
'image_id' => $id,
|
||||
'rank' => ++$current_rank,
|
||||
);
|
||||
}
|
||||
$fields = array(
|
||||
'primary' => array('image_id', 'category_id'),
|
||||
'update' => array('rank')
|
||||
);
|
||||
mass_updates(IMAGE_CATEGORY_TABLE, $fields, $datas);
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | global mode form submission |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -50,7 +50,7 @@ else
|
|||
$page['start'] = 0;
|
||||
}
|
||||
|
||||
$types = array('none', 'picture', 'high', 'other');
|
||||
$types = array_merge(array('none'), get_enums(HISTORY_TABLE, 'image_type'));
|
||||
|
||||
$display_thumbnails = array('no_display_thumbnail' => l10n('No display'),
|
||||
'display_thumbnail_classic' => l10n('Classic display'),
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
class c13y_internal
|
||||
{
|
||||
function c13y_internal()
|
||||
function __construct()
|
||||
{
|
||||
add_event_handler('list_check_integrity', array(&$this, 'c13y_version'));
|
||||
add_event_handler('list_check_integrity', array(&$this, 'c13y_exif'));
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -27,7 +27,7 @@ class check_integrity
|
|||
var $retrieve_list;
|
||||
var $build_ignore_list;
|
||||
|
||||
function check_integrity()
|
||||
function __construct()
|
||||
{
|
||||
$this->ignore_list = array();
|
||||
$this->retrieve_list = array();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -126,6 +126,7 @@ if (count($errors) == 0)
|
|||
$watermark->xpos = intval($pwatermark['xpos']);
|
||||
$watermark->ypos = intval($pwatermark['ypos']);
|
||||
$watermark->xrepeat = intval($pwatermark['xrepeat']);
|
||||
$watermark->yrepeat = intval($pwatermark['yrepeat']);
|
||||
$watermark->opacity = intval($pwatermark['opacity']);
|
||||
$watermark->min_size = array(intval($pwatermark['minw']),intval($pwatermark['minh']));
|
||||
|
||||
|
@ -135,6 +136,7 @@ if (count($errors) == 0)
|
|||
|| $watermark->xpos != $old_watermark->xpos
|
||||
|| $watermark->ypos != $old_watermark->ypos
|
||||
|| $watermark->xrepeat != $old_watermark->xrepeat
|
||||
|| $watermark->yrepeat != $old_watermark->yrepeat
|
||||
|| $watermark->opacity != $old_watermark->opacity;
|
||||
|
||||
// save the new watermark configuration
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -180,6 +180,25 @@ function delete_element_files($ids)
|
|||
}
|
||||
|
||||
$new_ids = array();
|
||||
$formats_of = array();
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
image_id,
|
||||
ext
|
||||
FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE image_id IN ('.implode(',', $ids).')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
if (!isset($formats_of[ $row['image_id'] ]))
|
||||
{
|
||||
$formats_of[ $row['image_id'] ] = array();
|
||||
}
|
||||
|
||||
$formats_of[ $row['image_id'] ][] = $row['ext'];
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
|
@ -205,6 +224,14 @@ SELECT
|
|||
$files[] = original_to_representative( $files[0], $row['representative_ext']);
|
||||
}
|
||||
|
||||
if (isset($formats_of[ $row['id'] ]))
|
||||
{
|
||||
foreach ($formats_of[ $row['id'] ] as $format_ext)
|
||||
{
|
||||
$files[] = original_to_format($files[0], $format_ext);
|
||||
}
|
||||
}
|
||||
|
||||
$ok = true;
|
||||
if (!isset($conf['never_delete_originals']))
|
||||
{
|
||||
|
@ -277,6 +304,13 @@ DELETE FROM '.IMAGE_CATEGORY_TABLE.'
|
|||
;';
|
||||
pwg_query($query);
|
||||
|
||||
// destruction of the formats
|
||||
$query = '
|
||||
DELETE FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE image_id IN ('. $ids_str .')
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
// destruction of the links between images and tags
|
||||
$query = '
|
||||
DELETE FROM '.IMAGE_TAG_TABLE.'
|
||||
|
@ -358,6 +392,7 @@ function delete_user($user_id)
|
|||
CADDIE_TABLE,
|
||||
// deletion of piwigo specific informations
|
||||
USER_INFOS_TABLE,
|
||||
USER_AUTH_KEYS_TABLE
|
||||
);
|
||||
|
||||
foreach ($tables as $table)
|
||||
|
@ -370,11 +405,7 @@ DELETE FROM '.$table.'
|
|||
}
|
||||
|
||||
// purge of sessions
|
||||
$query = '
|
||||
DELETE FROM '.SESSIONS_TABLE.'
|
||||
WHERE data LIKE \'pwg_uid|i:'.(int)$user_id.';%\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
delete_user_sessions($user_id);
|
||||
|
||||
// destruction of the user
|
||||
$query = '
|
||||
|
@ -540,6 +571,7 @@ function get_fs_directories($path, $recursive = true)
|
|||
'.', '..', '.svn',
|
||||
'thumbnail', 'pwg_high',
|
||||
'pwg_representative',
|
||||
'pwg_format',
|
||||
)
|
||||
);
|
||||
$exclude_folders = array_flip($exclude_folders);
|
||||
|
@ -886,6 +918,25 @@ SELECT uppercats
|
|||
return $uppercats;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
function get_category_representant_properties($image_id)
|
||||
{
|
||||
$query = '
|
||||
SELECT id,representative_ext,path
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$image_id.'
|
||||
;';
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
$src = DerivativeImage::thumb_url($row);
|
||||
$url = get_root_url().'admin.php?page=photo-'.$image_id;
|
||||
|
||||
return array(
|
||||
'src' => $src,
|
||||
'url' => $url
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a new random representant to the categories.
|
||||
*
|
||||
|
@ -2025,6 +2076,8 @@ function cat_admin_access($category_id)
|
|||
*/
|
||||
function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_agent='Piwigo', $step=0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
// Try to retrieve data from local file?
|
||||
if (!url_is_remote($src))
|
||||
{
|
||||
|
@ -2060,6 +2113,17 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
|
|||
if (function_exists('curl_init') && function_exists('curl_exec'))
|
||||
{
|
||||
$ch = @curl_init();
|
||||
|
||||
if (isset($conf['use_proxy']) && $conf['use_proxy'])
|
||||
{
|
||||
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
|
||||
@curl_setopt($ch, CURLOPT_PROXY, $conf['proxy_server']);
|
||||
if (isset($conf['proxy_auth']) && !empty($conf['proxy_auth']))
|
||||
{
|
||||
@curl_setopt($ch, CURLOPT_PROXYUSERPWD, $conf['proxy_auth']);
|
||||
}
|
||||
}
|
||||
|
||||
@curl_setopt($ch, CURLOPT_URL, $src);
|
||||
@curl_setopt($ch, CURLOPT_HEADER, 1);
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
|
||||
|
@ -2775,4 +2839,51 @@ SELECT CONCAT(
|
|||
}
|
||||
|
||||
return $keys;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the list of image ids associated to no album
|
||||
*
|
||||
* @return int[] $image_ids
|
||||
*/
|
||||
function get_orphans()
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
id
|
||||
FROM '.IMAGES_TABLE.'
|
||||
LEFT JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
WHERE category_id is null
|
||||
;';
|
||||
|
||||
return query2array($query, null, 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* save the rank depending on given images order
|
||||
*
|
||||
* The list of ordered images id is supposed to be in the same parent
|
||||
* category
|
||||
*
|
||||
* @param int category_id
|
||||
* @param int[] images
|
||||
* @return void
|
||||
*/
|
||||
function save_images_order($category_id, $images)
|
||||
{
|
||||
$current_rank = 0;
|
||||
$datas = array();
|
||||
foreach ($images as $id)
|
||||
{
|
||||
$datas[] = array(
|
||||
'category_id' => $category_id,
|
||||
'image_id' => $id,
|
||||
'rank' => ++$current_rank,
|
||||
);
|
||||
}
|
||||
$fields = array(
|
||||
'primary' => array('image_id', 'category_id'),
|
||||
'update' => array('rank')
|
||||
);
|
||||
mass_updates(IMAGE_CATEGORY_TABLE, $fields, $datas);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -68,20 +68,7 @@ function get_sync_iptc_data($file)
|
|||
|
||||
if (isset($iptc['keywords']))
|
||||
{
|
||||
// official keywords separator is the comma
|
||||
$iptc['keywords'] = preg_replace('/[.;]/', ',', $iptc['keywords']);
|
||||
$iptc['keywords'] = preg_replace('/,+/', ',', $iptc['keywords']);
|
||||
$iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']);
|
||||
|
||||
$iptc['keywords'] = implode(
|
||||
',',
|
||||
array_unique(
|
||||
explode(
|
||||
',',
|
||||
$iptc['keywords']
|
||||
)
|
||||
)
|
||||
);
|
||||
$iptc['keywords'] = metadata_normalize_keywords_string($iptc['keywords']);
|
||||
}
|
||||
|
||||
foreach ($iptc as $pwg_key => $value)
|
||||
|
@ -122,6 +109,12 @@ function get_sync_exif_data($file)
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (in_array($pwg_key, array('keywords', 'tags')))
|
||||
{
|
||||
$exif[$pwg_key] = metadata_normalize_keywords_string($exif[$pwg_key]);
|
||||
}
|
||||
|
||||
$exif[$pwg_key] = addslashes($exif[$pwg_key]);
|
||||
}
|
||||
|
||||
|
@ -180,8 +173,24 @@ function get_sync_metadata($infos)
|
|||
|
||||
$infos['filesize'] = floor($fs/1024);
|
||||
|
||||
$is_tiff = false;
|
||||
|
||||
if (isset($infos['representative_ext']))
|
||||
{
|
||||
if ($image_size = @getimagesize($file))
|
||||
{
|
||||
$type = $image_size[2];
|
||||
|
||||
if (IMAGETYPE_TIFF_MM == $type or IMAGETYPE_TIFF_II == $type)
|
||||
{
|
||||
// in case of TIFF files, we want to use the original file and not
|
||||
// the representative for EXIF/IPTC, but we need the representative
|
||||
// for width/height (to compute the multiple size dimensions)
|
||||
$is_tiff = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$file = original_to_representative($file, $infos['representative_ext']);
|
||||
}
|
||||
|
||||
|
@ -191,6 +200,12 @@ function get_sync_metadata($infos)
|
|||
$infos['height'] = $image_size[1];
|
||||
}
|
||||
|
||||
if ($is_tiff)
|
||||
{
|
||||
// back to original file
|
||||
$file = PHPWG_ROOT_PATH.$infos['path'];
|
||||
}
|
||||
|
||||
if ($conf['use_exif'])
|
||||
{
|
||||
$exif = get_sync_exif_data($file);
|
||||
|
@ -351,4 +366,31 @@ SELECT id, path, representative_ext
|
|||
return hash_from_query($query, 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of keywords (future tags) correctly separated with
|
||||
* commas. Other separators are converted into commas.
|
||||
*
|
||||
* @param string $keywords_string
|
||||
* @return string
|
||||
*/
|
||||
function metadata_normalize_keywords_string($keywords_string)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$keywords_string = preg_replace($conf['metadata_keyword_separator_regex'], ',', $keywords_string);
|
||||
$keywords_string = preg_replace('/,+/', ',', $keywords_string);
|
||||
$keywords_string = preg_replace('/^,+|,+$/', '', $keywords_string);
|
||||
|
||||
$keywords_string = implode(
|
||||
',',
|
||||
array_unique(
|
||||
explode(
|
||||
',',
|
||||
$keywords_string
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $keywords_string;
|
||||
}
|
||||
?>
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -125,12 +125,12 @@ select
|
|||
U.'.$conf['user_fields']['username'].' as username,
|
||||
U.'.$conf['user_fields']['email'].' as mail_address,
|
||||
N.enabled,
|
||||
N.last_send
|
||||
from
|
||||
'.USER_MAIL_NOTIFICATION_TABLE.' as N,
|
||||
'.USERS_TABLE.' as U
|
||||
where
|
||||
N.user_id = U.'.$conf['user_fields']['id'];
|
||||
N.last_send,
|
||||
UI.status
|
||||
from '.USER_MAIL_NOTIFICATION_TABLE.' as N
|
||||
JOIN '.USERS_TABLE.' as U on N.user_id = U.'.$conf['user_fields']['id'].'
|
||||
JOIN '.USER_INFOS_TABLE.' as UI on UI.user_id = N.user_id
|
||||
where 1=1';
|
||||
|
||||
if ($action == 'send')
|
||||
{
|
||||
|
@ -159,7 +159,7 @@ order by';
|
|||
else
|
||||
{
|
||||
$query .= '
|
||||
username;';
|
||||
username';
|
||||
}
|
||||
|
||||
$query .= ';';
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -174,10 +174,7 @@ UPDATE '.PREFIX_TABLE.'user_infos
|
|||
// Deactivate all templates
|
||||
function deactivate_templates()
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.PREFIX_TABLE.'config
|
||||
SET value = \''. array() .'\'
|
||||
WHERE param = \'extents_for_templates\';';
|
||||
conf_update_param('extents_for_templates', array());
|
||||
}
|
||||
|
||||
// Check access rights
|
||||
|
@ -322,4 +319,4 @@ function upgrade_db_connect()
|
|||
my_error(l10n($e->getMessage()), true);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -268,104 +268,19 @@ SELECT
|
|||
}
|
||||
@chmod($file_path, 0644);
|
||||
|
||||
if ($is_tiff and pwg_image::get_library() == 'ext_imagick')
|
||||
{
|
||||
// move the uploaded file to pwg_representative sub-directory
|
||||
$representative_file_path = dirname($file_path).'/pwg_representative/';
|
||||
$representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
|
||||
// handle the uploaded file type by potentially making a
|
||||
// pwg_representative file.
|
||||
$representative_ext = trigger_change('upload_file', null, $file_path);
|
||||
|
||||
$representative_ext = $conf['tiff_representative_ext'];
|
||||
$representative_file_path.= $representative_ext;
|
||||
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$exec = $conf['ext_imagick_dir'].'convert';
|
||||
|
||||
if ('jpg' == $conf['tiff_representative_ext'])
|
||||
{
|
||||
$exec .= ' -quality 98';
|
||||
}
|
||||
|
||||
$exec .= ' "'.realpath($file_path).'"';
|
||||
|
||||
$dest = pathinfo($representative_file_path);
|
||||
$exec .= ' "'.realpath($dest['dirname']).'/'.$dest['basename'].'"';
|
||||
|
||||
$exec .= ' 2>&1';
|
||||
@exec($exec, $returnarray);
|
||||
|
||||
// sometimes ImageMagick creates file-0.jpg (full size) + file-1.jpg
|
||||
// (thumbnail). I don't know how to avoid it.
|
||||
$representative_file_abspath = realpath($dest['dirname']).'/'.$dest['basename'];
|
||||
if (!file_exists($representative_file_abspath))
|
||||
{
|
||||
$first_file_abspath = preg_replace(
|
||||
'/\.'.$representative_ext.'$/',
|
||||
'-0.'.$representative_ext,
|
||||
$representative_file_abspath
|
||||
);
|
||||
|
||||
if (file_exists($first_file_abspath))
|
||||
{
|
||||
rename($first_file_abspath, $representative_file_abspath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// generate pwg_representative in case of video
|
||||
//
|
||||
$ffmpeg_video_exts = array( // extensions tested with FFmpeg
|
||||
'wmv','mov','mkv','mp4','mpg','flv','asf','xvid','divx','mpeg',
|
||||
'avi','rm',
|
||||
);
|
||||
global $logger;
|
||||
$logger->info("Handling " . (string)$file_path . " got " . (string)$representative_ext);
|
||||
|
||||
if (isset($original_extension) and in_array($original_extension, $ffmpeg_video_exts))
|
||||
{
|
||||
$representative_file_path = dirname($file_path).'/pwg_representative/';
|
||||
$representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
|
||||
|
||||
$representative_ext = 'jpg';
|
||||
$representative_file_path.= $representative_ext;
|
||||
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$second = 1;
|
||||
|
||||
$ffmpeg = $conf['ffmpeg_dir'].'ffmpeg';
|
||||
$ffmpeg.= ' -i "'.$file_path.'"';
|
||||
$ffmpeg.= ' -an -ss '.$second;
|
||||
$ffmpeg.= ' -t 1 -r 1 -y -vcodec mjpeg -f mjpeg';
|
||||
$ffmpeg.= ' "'.$representative_file_path.'"';
|
||||
|
||||
// file_put_contents('/tmp/ffmpeg.log', "\n==== ".date('c')."\n".__FUNCTION__.' : '.$ffmpeg."\n", FILE_APPEND);
|
||||
|
||||
@exec($ffmpeg);
|
||||
|
||||
if (!file_exists($representative_file_path))
|
||||
{
|
||||
$representative_ext = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($original_extension) and 'pdf' == $original_extension and pwg_image::get_library() == 'ext_imagick')
|
||||
{
|
||||
$representative_file_path = dirname($file_path).'/pwg_representative/';
|
||||
$representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
|
||||
|
||||
$representative_ext = 'jpg';
|
||||
$representative_file_path.= $representative_ext;
|
||||
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$exec = $conf['ext_imagick_dir'].'convert';
|
||||
$exec.= ' -quality 98';
|
||||
$exec.= ' "'.realpath($file_path).'"[0]';
|
||||
|
||||
$dest = pathinfo($representative_file_path);
|
||||
$exec.= ' "'.realpath($dest['dirname']).'/'.$dest['basename'].'"';
|
||||
$exec.= ' 2>&1';
|
||||
@exec($exec, $returnarray);
|
||||
// If it is set to either true (the file didn't need a
|
||||
// representative generated) or false (the generation of the
|
||||
// representative failed), set it to null because we have no
|
||||
// representative file.
|
||||
if (is_bool($representative_ext)) {
|
||||
$representative_ext = null;
|
||||
}
|
||||
|
||||
if (pwg_image::get_library() != 'gd')
|
||||
|
@ -492,6 +407,168 @@ SELECT
|
|||
return $image_id;
|
||||
}
|
||||
|
||||
add_event_handler('upload_file', 'upload_file_pdf');
|
||||
function upload_file_pdf($representative_ext, $file_path)
|
||||
{
|
||||
global $logger, $conf;
|
||||
|
||||
$logger->info(__FUNCTION__.', $file_path = '.$file_path.', $representative_ext = '.$representative_ext);
|
||||
|
||||
if (isset($representative_ext))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
if (pwg_image::get_library() != 'ext_imagick')
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
if (!in_array(strtolower(get_extension($file_path)), array('pdf')))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
$ext = conf_get_param('pdf_representative_ext', 'jpg');
|
||||
$jpg_quality = conf_get_param('pdf_jpg_quality', 90);
|
||||
|
||||
// move the uploaded file to pwg_representative sub-directory
|
||||
$representative_file_path = original_to_representative($file_path, $ext);
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$exec = $conf['ext_imagick_dir'].'convert';
|
||||
if ('jpg' == $ext)
|
||||
{
|
||||
$exec.= ' -quality '.$jpg_quality;
|
||||
}
|
||||
$exec.= ' "'.realpath($file_path).'"[0]';
|
||||
$exec.= ' "'.$representative_file_path.'"';
|
||||
$exec.= ' 2>&1';
|
||||
@exec($exec, $returnarray);
|
||||
|
||||
// Return the extension (if successful) or false (if failed)
|
||||
if (file_exists($representative_file_path))
|
||||
{
|
||||
$representative_ext = $ext;
|
||||
}
|
||||
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
add_event_handler('upload_file', 'upload_file_tiff');
|
||||
function upload_file_tiff($representative_ext, $file_path)
|
||||
{
|
||||
global $logger, $conf;
|
||||
|
||||
$logger->info(__FUNCTION__.', $file_path = '.$file_path.', $representative_ext = '.$representative_ext);
|
||||
|
||||
if (isset($representative_ext))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
if (pwg_image::get_library() != 'ext_imagick')
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
if (!in_array(strtolower(get_extension($file_path)), array('tif', 'tiff')))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
// move the uploaded file to pwg_representative sub-directory
|
||||
$representative_file_path = dirname($file_path).'/pwg_representative/';
|
||||
$representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
|
||||
|
||||
$representative_ext = $conf['tiff_representative_ext'];
|
||||
$representative_file_path.= $representative_ext;
|
||||
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$exec = $conf['ext_imagick_dir'].'convert';
|
||||
|
||||
if ('jpg' == $conf['tiff_representative_ext'])
|
||||
{
|
||||
$exec .= ' -quality 98';
|
||||
}
|
||||
|
||||
$exec .= ' "'.realpath($file_path).'"';
|
||||
|
||||
$dest = pathinfo($representative_file_path);
|
||||
$exec .= ' "'.realpath($dest['dirname']).'/'.$dest['basename'].'"';
|
||||
|
||||
$exec .= ' 2>&1';
|
||||
@exec($exec, $returnarray);
|
||||
|
||||
// sometimes ImageMagick creates file-0.jpg (full size) + file-1.jpg
|
||||
// (thumbnail). I don't know how to avoid it.
|
||||
$representative_file_abspath = realpath($dest['dirname']).'/'.$dest['basename'];
|
||||
if (!file_exists($representative_file_abspath))
|
||||
{
|
||||
$first_file_abspath = preg_replace(
|
||||
'/\.'.$representative_ext.'$/',
|
||||
'-0.'.$representative_ext,
|
||||
$representative_file_abspath
|
||||
);
|
||||
|
||||
if (file_exists($first_file_abspath))
|
||||
{
|
||||
rename($first_file_abspath, $representative_file_abspath);
|
||||
}
|
||||
}
|
||||
|
||||
return get_extension($representative_file_abspath);
|
||||
}
|
||||
|
||||
add_event_handler('upload_file', 'upload_file_video');
|
||||
function upload_file_video($representative_ext, $file_path)
|
||||
{
|
||||
global $logger, $conf;
|
||||
|
||||
$logger->info(__FUNCTION__.', $file_path = '.$file_path.', $representative_ext = '.$representative_ext);
|
||||
|
||||
if (isset($representative_ext))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
$ffmpeg_video_exts = array( // extensions tested with FFmpeg
|
||||
'wmv','mov','mkv','mp4','mpg','flv','asf','xvid','divx','mpeg',
|
||||
'avi','rm', 'm4v', 'ogg', 'ogv', 'webm', 'webmv',
|
||||
);
|
||||
|
||||
if (!in_array(strtolower(get_extension($file_path)), $ffmpeg_video_exts))
|
||||
{
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
$representative_file_path = dirname($file_path).'/pwg_representative/';
|
||||
$representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
|
||||
|
||||
$representative_ext = 'jpg';
|
||||
$representative_file_path.= $representative_ext;
|
||||
|
||||
prepare_directory(dirname($representative_file_path));
|
||||
|
||||
$second = 1;
|
||||
|
||||
$ffmpeg = $conf['ffmpeg_dir'].'ffmpeg';
|
||||
$ffmpeg.= ' -i "'.$file_path.'"';
|
||||
$ffmpeg.= ' -an -ss '.$second;
|
||||
$ffmpeg.= ' -t 1 -r 1 -y -vcodec mjpeg -f mjpeg';
|
||||
$ffmpeg.= ' "'.$representative_file_path.'"';
|
||||
|
||||
@exec($ffmpeg);
|
||||
|
||||
if (!file_exists($representative_file_path))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return $representative_ext;
|
||||
}
|
||||
|
||||
function prepare_directory($directory)
|
||||
{
|
||||
if (!is_dir($directory)) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -621,6 +621,8 @@ class image_ext_imagick implements imageInterface
|
|||
|
||||
function write($destination_filepath)
|
||||
{
|
||||
global $logger;
|
||||
|
||||
$this->add_command('interlace', 'line'); // progressive rendering
|
||||
// use 4:2:2 chroma subsampling (reduce file size by 20-30% with "almost" no human perception)
|
||||
//
|
||||
|
@ -648,13 +650,13 @@ class image_ext_imagick implements imageInterface
|
|||
|
||||
$dest = pathinfo($destination_filepath);
|
||||
$exec .= ' "'.realpath($dest['dirname']).'/'.$dest['basename'].'" 2>&1';
|
||||
$logger->debug($exec, 'i.php');
|
||||
@exec($exec, $returnarray);
|
||||
|
||||
if (function_exists('ilog')) ilog($exec);
|
||||
if (is_array($returnarray) && (count($returnarray)>0) )
|
||||
{
|
||||
if (function_exists('ilog')) ilog('ERROR', $returnarray);
|
||||
foreach($returnarray as $line)
|
||||
$logger->error('', 'i.php', $returnarray);
|
||||
foreach ($returnarray as $line)
|
||||
trigger_error($line, E_USER_WARNING);
|
||||
}
|
||||
return is_array($returnarray);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -30,7 +30,7 @@ class languages
|
|||
/**
|
||||
* Initialize $fs_languages and $db_languages
|
||||
*/
|
||||
function languages($target_charset = null)
|
||||
function __construct($target_charset = null)
|
||||
{
|
||||
$this->get_fs_languages($target_charset);
|
||||
}
|
||||
|
@ -408,4 +408,4 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
return strcmp(strtolower($a['extension_name']), strtolower($b['extension_name']));
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -59,7 +59,7 @@ class MySQLDump {
|
|||
* @param boolean $compress It defines if the output file is compress (gzip) or not
|
||||
* @param boolean $hexValue It defines if the outup values are base-16 or not
|
||||
*/
|
||||
function MYSQLDump($db = null, $filepath = 'dump.sql', $compress = false, $hexValue = false){
|
||||
function __construct($db = null, $filepath = 'dump.sql', $compress = false, $hexValue = false){
|
||||
$this->compress = $compress;
|
||||
if ( !$this->setOutputFile($filepath) )
|
||||
return false;
|
||||
|
@ -418,4 +418,4 @@ class MySQLDump {
|
|||
@fclose($file);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -212,7 +212,7 @@
|
|||
// Note that no real action is taken, if the archive does not exist it is not
|
||||
// created. Use create() for that.
|
||||
// --------------------------------------------------------------------------------
|
||||
function PclZip($p_zipname)
|
||||
function __construct($p_zipname)
|
||||
{
|
||||
|
||||
// ----- Tests the zlib
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -25,25 +25,10 @@
|
|||
// | Photo selection |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
$upload_max_filesize = min(
|
||||
get_ini_size('upload_max_filesize'),
|
||||
get_ini_size('post_max_size')
|
||||
);
|
||||
|
||||
if ($upload_max_filesize == get_ini_size('upload_max_filesize'))
|
||||
{
|
||||
$upload_max_filesize_shorthand = get_ini_size('upload_max_filesize', false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$upload_max_filesize_shorthand = get_ini_size('post_max_filesize', false);
|
||||
}
|
||||
|
||||
$template->assign(
|
||||
array(
|
||||
'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL,
|
||||
'upload_max_filesize' => $upload_max_filesize,
|
||||
'upload_max_filesize_shorthand' => $upload_max_filesize_shorthand,
|
||||
'chunk_size' => $conf['upload_form_chunk_size'],
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -221,6 +206,16 @@ if (!isset($_SESSION['upload_hide_warnings']))
|
|||
get_ini_size('post_max_size', false)
|
||||
);
|
||||
}
|
||||
|
||||
if (get_ini_size('upload_max_filesize') < $conf['upload_form_chunk_size']*1024)
|
||||
{
|
||||
$setup_warnings[] = sprintf(
|
||||
'Piwigo setting upload_form_chunk_size (%ukB) should be smaller than PHP configuration setting upload_max_filesize (%ukB)',
|
||||
$conf['upload_form_chunk_size'],
|
||||
ceil(get_ini_size('upload_max_filesize') / 1024)
|
||||
);
|
||||
}
|
||||
|
||||
$template->assign(
|
||||
array(
|
||||
'setup_warnings' => $setup_warnings,
|
||||
|
@ -229,4 +224,4 @@ if (!isset($_SESSION['upload_hide_warnings']))
|
|||
);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -69,7 +69,7 @@ class plugins
|
|||
/**
|
||||
* Initialize $fs_plugins and $db_plugins_by_id
|
||||
*/
|
||||
function plugins()
|
||||
function __construct()
|
||||
{
|
||||
$this->get_fs_plugins();
|
||||
|
||||
|
@ -716,4 +716,4 @@ DELETE FROM '. PLUGINS_TABLE .'
|
|||
$this->fs_plugins = $active_plugins + $inactive_plugins + $not_installed;
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -33,7 +33,7 @@ class tabsheet
|
|||
$name is the tabsheet's name inside the template .tpl file
|
||||
$titlename in the template is affected by $titlename value
|
||||
*/
|
||||
function tabsheet($name = 'TABSHEET', $titlename = 'TABSHEET_TITLE')
|
||||
function __construct($name = 'TABSHEET', $titlename = 'TABSHEET_TITLE')
|
||||
{
|
||||
$this->sheets = array();
|
||||
$this->uniqid = null;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -60,7 +60,7 @@ class themes
|
|||
/**
|
||||
* Initialize $fs_themes and $db_themes_by_id
|
||||
*/
|
||||
function themes()
|
||||
function __construct()
|
||||
{
|
||||
$this->get_fs_themes();
|
||||
|
||||
|
@ -736,4 +736,4 @@ SELECT
|
|||
}
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -135,15 +135,33 @@ class updates
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$servers = array();
|
||||
|
||||
foreach ($pem_exts as $ext)
|
||||
{
|
||||
if (isset($ext_to_check[$ext['extension_id']]))
|
||||
{
|
||||
$server = 'server_'.$ext_to_check[$ext['extension_id']];
|
||||
$this->$ext_to_check[$ext['extension_id']]->$server += array($ext['extension_id'] => $ext);
|
||||
$type = $ext_to_check[$ext['extension_id']];
|
||||
|
||||
if (!isset($servers[$type]))
|
||||
{
|
||||
$servers[$type] = array();
|
||||
}
|
||||
|
||||
$servers[$type][ $ext['extension_id'] ] = $ext;
|
||||
|
||||
unset($ext_to_check[$ext['extension_id']]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($servers as $server_type => $extension_list)
|
||||
{
|
||||
$server_string = 'server_'.$server_type;
|
||||
|
||||
$this->$server_type->$server_string = $extension_list;
|
||||
}
|
||||
|
||||
$this->check_missing_extensions($ext_to_check);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -109,6 +109,46 @@ DELETE
|
|||
case 'sessions' :
|
||||
{
|
||||
pwg_session_gc();
|
||||
|
||||
// delete all sessions associated to invalid user ids (it should never happen)
|
||||
$query = '
|
||||
SELECT
|
||||
id,
|
||||
data
|
||||
FROM '.SESSIONS_TABLE.'
|
||||
;';
|
||||
$sessions = query2array($query);
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
'.$conf['user_fields']['id'].' AS id
|
||||
FROM '.USERS_TABLE.'
|
||||
;';
|
||||
$all_user_ids = query2array($query, 'id', null);
|
||||
|
||||
$sessions_to_delete = array();
|
||||
|
||||
foreach ($sessions as $session)
|
||||
{
|
||||
if (preg_match('/pwg_uid\|i:(\d+);/', $session['data'], $matches))
|
||||
{
|
||||
if (!isset($all_user_ids[ $matches[1] ]))
|
||||
{
|
||||
$sessions_to_delete[] = $session['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($sessions_to_delete) > 0)
|
||||
{
|
||||
$query = '
|
||||
DELETE
|
||||
FROM '.SESSIONS_TABLE.'
|
||||
WHERE id IN (\''.implode("','", $sessions_to_delete).'\')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 'feeds' :
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -289,13 +289,24 @@ function do_action_send_mail_notification($action = 'list_to_send', $check_key_l
|
|||
|
||||
if ($is_action_send)
|
||||
{
|
||||
$auth = null;
|
||||
$add_url_params = array();
|
||||
|
||||
$auth_key = create_user_auth_key($nbm_user['user_id'], $nbm_user['status']);
|
||||
|
||||
if ($auth_key !== false)
|
||||
{
|
||||
$auth = $auth_key['auth_key'];
|
||||
$add_url_params['auth'] = $auth;
|
||||
}
|
||||
|
||||
set_make_full_url();
|
||||
// Fill return list of "treated" check_key for 'send'
|
||||
$return_list[] = $nbm_user['check_key'];
|
||||
|
||||
if ($conf['nbm_send_detailed_content'])
|
||||
{
|
||||
$news = news($nbm_user['last_send'], $dbnow, false, $conf['nbm_send_html_mail']);
|
||||
$news = news($nbm_user['last_send'], $dbnow, false, $conf['nbm_send_html_mail'], $auth);
|
||||
$exist_data = count($news) > 0;
|
||||
}
|
||||
else
|
||||
|
@ -362,7 +373,7 @@ function do_action_send_mail_notification($action = 'list_to_send', $check_key_l
|
|||
array
|
||||
(
|
||||
'TITLE' => get_title_recent_post_date($date_detail),
|
||||
'HTML_DATA' => get_html_description_recent_post_date($date_detail)
|
||||
'HTML_DATA' => get_html_description_recent_post_date($date_detail, $auth)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -373,7 +384,7 @@ function do_action_send_mail_notification($action = 'list_to_send', $check_key_l
|
|||
array
|
||||
(
|
||||
'GOTO_GALLERY_TITLE' => $conf['gallery_title'],
|
||||
'GOTO_GALLERY_URL' => get_gallery_home_url(),
|
||||
'GOTO_GALLERY_URL' => add_url_params(get_gallery_home_url(), $add_url_params),
|
||||
'SEND_AS_NAME' => $env_nbm['send_as_name'],
|
||||
)
|
||||
);
|
||||
|
@ -389,6 +400,7 @@ function do_action_send_mail_notification($action = 'list_to_send', $check_key_l
|
|||
'email_format' => $env_nbm['email_format'],
|
||||
'content' => $env_nbm['mail_template']->parse('notification_by_mail', true),
|
||||
'content_format' => $env_nbm['email_format'],
|
||||
'auth_key' => $auth,
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -707,6 +719,20 @@ switch ($page['mode'])
|
|||
}
|
||||
}
|
||||
$template->assign($page['mode'], $tpl_var);
|
||||
|
||||
if ($conf['auth_key_duration'] > 0)
|
||||
{
|
||||
$template->assign(
|
||||
'auth_key_duration',
|
||||
time_since(
|
||||
strtotime('now -'.$conf['auth_key_duration'].' second'),
|
||||
'second',
|
||||
null,
|
||||
false
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -306,6 +306,25 @@ SELECT
|
|||
$intro_vars['stats'].= ', '.sprintf(l10n('Rated %d times, score : %.2f'), $row['nb_rates'], $row['rating_score']);
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT *
|
||||
FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE image_id = '.$row['id'].'
|
||||
;';
|
||||
$formats = query2array($query);
|
||||
|
||||
if (!empty($formats))
|
||||
{
|
||||
$format_strings = array();
|
||||
|
||||
foreach ($formats as $format)
|
||||
{
|
||||
$format_strings[] = sprintf('%s (%.2fMB)', $format['ext'], $format['filesize']/1024);
|
||||
}
|
||||
|
||||
$intro_vars['formats'] = l10n('Formats: %s', implode(', ', $format_strings));
|
||||
}
|
||||
|
||||
$template->assign('INTRO', $intro_vars);
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -65,4 +65,4 @@ else
|
|||
{
|
||||
die('Missing file '.$filename);
|
||||
}
|
||||
?>
|
||||
?>
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -27,7 +27,7 @@ class LocalSiteReader
|
|||
|
||||
var $site_url;
|
||||
|
||||
function LocalSiteReader($url)
|
||||
function __construct($url)
|
||||
{
|
||||
$this->site_url = $url;
|
||||
global $conf;
|
||||
|
@ -100,14 +100,19 @@ function get_elements($path)
|
|||
{
|
||||
$representative_ext = $this->get_representative_ext($path, $filename_wo_ext);
|
||||
}
|
||||
$fs[ $path.'/'.$node ] = array(
|
||||
'representative_ext' => $representative_ext,
|
||||
);
|
||||
|
||||
$fs[ $path.'/'.$node ] = array('representative_ext' => $representative_ext);
|
||||
|
||||
if ($conf['enable_formats'])
|
||||
{
|
||||
$fs[ $path.'/'.$node ]['formats'] = $this->get_formats($path, $filename_wo_ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (is_dir($path.'/'.$node)
|
||||
and $node != 'pwg_high'
|
||||
and $node != 'pwg_representative'
|
||||
and $node != 'pwg_format'
|
||||
and $node != 'thumbnail' )
|
||||
{
|
||||
$subdirs[] = $node;
|
||||
|
@ -182,6 +187,26 @@ function get_representative_ext($path, $filename_wo_ext)
|
|||
return null;
|
||||
}
|
||||
|
||||
function get_formats($path, $filename_wo_ext)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$formats = array();
|
||||
|
||||
$base_test = $path.'/pwg_format/'.$filename_wo_ext.'.';
|
||||
|
||||
foreach ($conf['format_ext'] as $ext)
|
||||
{
|
||||
$test = $base_test.$ext;
|
||||
|
||||
if (is_file($test))
|
||||
{
|
||||
$formats[$ext] = floor(filesize($test) / 1024);
|
||||
}
|
||||
}
|
||||
|
||||
return $formats;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -457,6 +457,7 @@ if (isset($_POST['submit']) and $_POST['sync'] == 'files'
|
|||
$start= $start_files;
|
||||
|
||||
$fs = $site_reader->get_elements($basedir);
|
||||
|
||||
$template->append('footer_elements', '<!-- get_elements: '
|
||||
. get_elapsed_time($start, get_moment())
|
||||
. ' -->' );
|
||||
|
@ -486,6 +487,8 @@ SELECT id, path
|
|||
|
||||
$inserts = array();
|
||||
$insert_links = array();
|
||||
$insert_formats = array();
|
||||
$formats_to_delete = array();
|
||||
|
||||
foreach (array_diff(array_keys($fs), $db_elements) as $path)
|
||||
{
|
||||
|
@ -535,20 +538,119 @@ SELECT id, path
|
|||
'info' => l10n('added')
|
||||
);
|
||||
|
||||
if ($conf['enable_formats'])
|
||||
{
|
||||
foreach ($fs[$path]['formats'] as $ext => $filesize)
|
||||
{
|
||||
$insert_formats[] = array(
|
||||
'image_id' => $insert['id'],
|
||||
'ext' => $ext,
|
||||
'filesize' => $filesize,
|
||||
);
|
||||
|
||||
$infos[] = array(
|
||||
'path' => $insert['path'],
|
||||
'info' => l10n('format %s added', $ext)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$caddiables[] = $insert['id'];
|
||||
}
|
||||
|
||||
if (count($inserts) > 0)
|
||||
// search new/removed formats on photos already registered in database
|
||||
if ($conf['enable_formats'])
|
||||
{
|
||||
if (!$simulate)
|
||||
$db_elements_flip = array_flip($db_elements);
|
||||
|
||||
$existing_ids = array();
|
||||
|
||||
foreach (array_intersect_key($fs, $db_elements_flip) as $path => $existing)
|
||||
{
|
||||
$existing_ids[] = $db_elements_flip[$path];
|
||||
}
|
||||
|
||||
$logger->debug('existing_ids', 'sync', $existing_ids);
|
||||
|
||||
if (count($existing_ids) > 0)
|
||||
{
|
||||
$db_formats = array();
|
||||
|
||||
// find formats for existing photos (already in database)
|
||||
$query = '
|
||||
SELECT *
|
||||
FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE image_id IN ('.implode(',', $existing_ids).')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
if (!isset($db_formats[$row['image_id']]))
|
||||
{
|
||||
$db_formats[$row['image_id']] = array();
|
||||
}
|
||||
|
||||
$db_formats[$row['image_id']][$row['ext']] = $row['format_id'];
|
||||
}
|
||||
|
||||
// first we search the formats that were removed
|
||||
foreach ($db_formats as $image_id => $formats)
|
||||
{
|
||||
$image_formats_to_delete = array_diff_key($formats, $fs[ $db_elements[$image_id] ]['formats']);
|
||||
$logger->debug('image_formats_to_delete', 'sync', $image_formats_to_delete);
|
||||
foreach ($image_formats_to_delete as $ext => $format_id)
|
||||
{
|
||||
$formats_to_delete[] = $format_id;
|
||||
|
||||
$infos[] = array(
|
||||
'path' => $db_elements[$image_id],
|
||||
'info' => l10n('format %s removed', $ext)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// then we search for new formats on existing photos
|
||||
foreach ($existing_ids as $image_id)
|
||||
{
|
||||
$path = $db_elements[$image_id];
|
||||
|
||||
$formats = array();
|
||||
if (isset($db_formats[$image_id]))
|
||||
{
|
||||
$formats = $db_formats[$image_id];
|
||||
}
|
||||
|
||||
$image_formats_to_insert = array_diff_key($fs[$path]['formats'], $formats);
|
||||
$logger->debug('image_formats_to_insert', 'sync', $image_formats_to_insert);
|
||||
foreach ($image_formats_to_insert as $ext => $filesize)
|
||||
{
|
||||
$insert_formats[] = array(
|
||||
'image_id' => $image_id,
|
||||
'ext' => $ext,
|
||||
'filesize' => $filesize,
|
||||
);
|
||||
|
||||
$infos[] = array(
|
||||
'path' => $db_elements[$image_id],
|
||||
'info' => l10n('format %s added', $ext)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!$simulate)
|
||||
{
|
||||
// inserts all new elements
|
||||
if (count($inserts) > 0)
|
||||
{
|
||||
// inserts all new elements
|
||||
mass_inserts(
|
||||
IMAGES_TABLE,
|
||||
array_keys($inserts[0]),
|
||||
$inserts
|
||||
);
|
||||
|
||||
|
||||
// inserts all links between new elements and their storage category
|
||||
mass_inserts(
|
||||
IMAGE_CATEGORY_TABLE,
|
||||
|
@ -562,9 +664,30 @@ SELECT id, path
|
|||
fill_caddie($caddiables);
|
||||
}
|
||||
}
|
||||
$counts['new_elements'] = count($inserts);
|
||||
|
||||
// inserts all formats
|
||||
if (count($insert_formats) > 0)
|
||||
{
|
||||
mass_inserts(
|
||||
IMAGE_FORMAT_TABLE,
|
||||
array_keys($insert_formats[0]),
|
||||
$insert_formats
|
||||
);
|
||||
}
|
||||
|
||||
if (count($formats_to_delete) > 0)
|
||||
{
|
||||
$query = '
|
||||
DELETE
|
||||
FROM '.IMAGE_FORMAT_TABLE.'
|
||||
WHERE format_id IN ('.implode(',', $formats_to_delete).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
}
|
||||
|
||||
$counts['new_elements'] = count($inserts);
|
||||
|
||||
// delete elements that are in database but not in the filesystem
|
||||
$to_delete_elements = array();
|
||||
foreach (array_diff($db_elements, array_keys($fs)) as $path)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -11,7 +11,7 @@ webfont pack. Details available in LICENSE.txt file.
|
|||
- If your project is open-source, usually, it will be ok to make LICENSE.txt
|
||||
file publically available in your repository.
|
||||
|
||||
- Fonts, used in Fontello, don't require to make clickable links on your site.
|
||||
- Fonts, used in Fontello, don't require a clickable link on your site.
|
||||
But any kind of additional authors crediting is welcome.
|
||||
================================================================================
|
||||
|
||||
|
@ -29,8 +29,8 @@ Comments on archive content
|
|||
|
||||
- LICENSE.txt - license info about source fonts, used to build your one.
|
||||
|
||||
- config.json - keeps your settings. You can import it back to fontello anytime,
|
||||
to continue your work
|
||||
- config.json - keeps your settings. You can import it back into fontello
|
||||
anytime, to continue your work
|
||||
|
||||
|
||||
Why so many CSS files ?
|
||||
|
@ -38,17 +38,17 @@ Why so many CSS files ?
|
|||
|
||||
Because we like to fit all your needs :)
|
||||
|
||||
- basic file, <your_font_name>.css - is usually enougth, in contains @font-face
|
||||
and character codes definition
|
||||
- basic file, <your_font_name>.css - is usually enough, it contains @font-face
|
||||
and character code definitions
|
||||
|
||||
- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
|
||||
directly into html
|
||||
|
||||
- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
|
||||
rules, but still wish to benefit of css generation. That can be very
|
||||
convenient for automated assets build systems. When you need to update font -
|
||||
no needs to manually edit files, just override old version with archive
|
||||
content. See fontello source codes for example.
|
||||
rules, but still wish to benefit from css generation. That can be very
|
||||
convenient for automated asset build systems. When you need to update font -
|
||||
no need to manually edit files, just override old version with archive
|
||||
content. See fontello source code for examples.
|
||||
|
||||
- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
|
||||
CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
|
||||
|
@ -63,11 +63,11 @@ Because we like to fit all your needs :)
|
|||
Attention for server setup
|
||||
--------------------------
|
||||
|
||||
You MUST setup server to reply with proper `mime-types` for font files. In other
|
||||
case, some browsers will fail to show fonts.
|
||||
You MUST setup server to reply with proper `mime-types` for font files -
|
||||
otherwise some browsers will fail to show fonts.
|
||||
|
||||
Usually, `apache` already has necessary settings, but `nginx` and other
|
||||
webservers should be tuned. Here is list of mime types for our file extentions:
|
||||
webservers should be tuned. Here is list of mime types for our file extensions:
|
||||
|
||||
- `application/vnd.ms-fontobject` - eot
|
||||
- `application/x-font-woff` - woff
|
||||
|
|
|
@ -384,6 +384,12 @@
|
|||
"code": 59407,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "862129f833b09f3d34ae39acf8484a7b",
|
||||
"css": "heart-broken",
|
||||
"code": 59429,
|
||||
"src": "mfglabs"
|
||||
},
|
||||
{
|
||||
"uid": "05ef9b5e8742971aa85b23cfcbe71594",
|
||||
"css": "users",
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
.icon-cancel:before { content: '\e822'; } /* '' */
|
||||
.icon-plus:before { content: '\e823'; } /* '' */
|
||||
.icon-ok-circled:before { content: '\e824'; } /* '' */
|
||||
.icon-heart-broken:before { content: '\e825'; } /* '' */
|
||||
.icon-zoom-in:before { content: '\e827'; } /* '' */
|
||||
.icon-zoom-out:before { content: '\e828'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -50,6 +50,7 @@
|
|||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.eot?80487531');
|
||||
src: url('../font/fontello.eot?80487531#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff?80487531') format('woff'),
|
||||
url('../font/fontello.ttf?80487531') format('truetype'),
|
||||
url('../font/fontello.svg?80487531#fontello') format('svg');
|
||||
src: url('../font/fontello.eot?38260160');
|
||||
src: url('../font/fontello.eot?38260160#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff?38260160') format('woff'),
|
||||
url('../font/fontello.ttf?38260160') format('truetype'),
|
||||
url('../font/fontello.svg?38260160#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
|||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?80487531#fontello') format('svg');
|
||||
src: url('../font/fontello.svg?38260160#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -37,7 +37,7 @@
|
|||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
|
@ -48,6 +48,10 @@
|
|||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
@ -103,6 +107,7 @@
|
|||
.icon-cancel:before { content: '\e822'; } /* '' */
|
||||
.icon-plus:before { content: '\e823'; } /* '' */
|
||||
.icon-ok-circled:before { content: '\e824'; } /* '' */
|
||||
.icon-heart-broken:before { content: '\e825'; } /* '' */
|
||||
.icon-zoom-in:before { content: '\e827'; } /* '' */
|
||||
.icon-zoom-out:before { content: '\e828'; } /* '' */
|
||||
.icon-tasks:before { content: '\f0ae'; } /* '' */
|
||||
|
|
|
@ -227,8 +227,54 @@ body {
|
|||
.i-code {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="css/fontello.css">
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('./font/fontello.eot?58887028');
|
||||
src: url('./font/fontello.eot?58887028#iefix') format('embedded-opentype'),
|
||||
url('./font/fontello.woff?58887028') format('woff'),
|
||||
url('./font/fontello.ttf?58887028') format('truetype'),
|
||||
url('./font/fontello.svg?58887028#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.demo-icon
|
||||
{
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: none;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* You can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/fontello-ie7.css"><![endif]-->
|
||||
<script>
|
||||
function toggleCodes(on) {
|
||||
|
@ -255,104 +301,105 @@ body {
|
|||
</div>
|
||||
<div id="icons" class="container">
|
||||
<div class="row">
|
||||
<div title="Code: 0x2605" class="the-icons span3"><i class="icon-star"></i> <span class="i-name">icon-star</span><span class="i-code">0x2605</span></div>
|
||||
<div title="Code: 0x2606" class="the-icons span3"><i class="icon-star-empty"></i> <span class="i-name">icon-star-empty</span><span class="i-code">0x2606</span></div>
|
||||
<div title="Code: 0x2699" class="the-icons span3"><i class="icon-cog"></i> <span class="i-name">icon-cog</span><span class="i-code">0x2699</span></div>
|
||||
<div title="Code: 0x26ef" class="the-icons span3"><i class="icon-cog-alt"></i> <span class="i-name">icon-cog-alt</span><span class="i-code">0x26ef</span></div>
|
||||
<div title="Code: 0x2605" class="the-icons span3"><i class="demo-icon icon-star">★</i> <span class="i-name">icon-star</span><span class="i-code">0x2605</span></div>
|
||||
<div title="Code: 0x2606" class="the-icons span3"><i class="demo-icon icon-star-empty">☆</i> <span class="i-name">icon-star-empty</span><span class="i-code">0x2606</span></div>
|
||||
<div title="Code: 0x2699" class="the-icons span3"><i class="demo-icon icon-cog">⚙</i> <span class="i-name">icon-cog</span><span class="i-code">0x2699</span></div>
|
||||
<div title="Code: 0x26ef" class="the-icons span3"><i class="demo-icon icon-cog-alt">⛯</i> <span class="i-name">icon-cog-alt</span><span class="i-code">0x26ef</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x2709" class="the-icons span3"><i class="icon-mail"></i> <span class="i-name">icon-mail</span><span class="i-code">0x2709</span></div>
|
||||
<div title="Code: 0x270e" class="the-icons span3"><i class="icon-pencil"></i> <span class="i-name">icon-pencil</span><span class="i-code">0x270e</span></div>
|
||||
<div title="Code: 0x2795" class="the-icons span3"><i class="icon-plus-circled"></i> <span class="i-name">icon-plus-circled</span><span class="i-code">0x2795</span></div>
|
||||
<div title="Code: 0xe0ad" class="the-icons span3"><i class="icon-asl"></i> <span class="i-name">icon-asl</span><span class="i-code">0xe0ad</span></div>
|
||||
<div title="Code: 0x2709" class="the-icons span3"><i class="demo-icon icon-mail">✉</i> <span class="i-name">icon-mail</span><span class="i-code">0x2709</span></div>
|
||||
<div title="Code: 0x270e" class="the-icons span3"><i class="demo-icon icon-pencil">✎</i> <span class="i-name">icon-pencil</span><span class="i-code">0x270e</span></div>
|
||||
<div title="Code: 0x2795" class="the-icons span3"><i class="demo-icon icon-plus-circled">➕</i> <span class="i-name">icon-plus-circled</span><span class="i-code">0x2795</span></div>
|
||||
<div title="Code: 0xe0ad" class="the-icons span3"><i class="demo-icon icon-asl"></i> <span class="i-name">icon-asl</span><span class="i-code">0xe0ad</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe70a" class="the-icons span3"><i class="icon-eye"></i> <span class="i-name">icon-eye</span><span class="i-code">0xe70a</span></div>
|
||||
<div title="Code: 0xe70d" class="the-icons span3"><i class="icon-tags"></i> <span class="i-name">icon-tags</span><span class="i-code">0xe70d</span></div>
|
||||
<div title="Code: 0xe720" class="the-icons span3"><i class="icon-chat"></i> <span class="i-name">icon-chat</span><span class="i-code">0xe720</span></div>
|
||||
<div title="Code: 0xe729" class="the-icons span3"><i class="icon-trash"></i> <span class="i-name">icon-trash</span><span class="i-code">0xe729</span></div>
|
||||
<div title="Code: 0xe70a" class="the-icons span3"><i class="demo-icon icon-eye"></i> <span class="i-name">icon-eye</span><span class="i-code">0xe70a</span></div>
|
||||
<div title="Code: 0xe70d" class="the-icons span3"><i class="demo-icon icon-tags"></i> <span class="i-name">icon-tags</span><span class="i-code">0xe70d</span></div>
|
||||
<div title="Code: 0xe720" class="the-icons span3"><i class="demo-icon icon-chat"></i> <span class="i-name">icon-chat</span><span class="i-code">0xe720</span></div>
|
||||
<div title="Code: 0xe729" class="the-icons span3"><i class="demo-icon icon-trash"></i> <span class="i-name">icon-trash</span><span class="i-code">0xe729</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe73d" class="the-icons span3"><i class="icon-basket"></i> <span class="i-name">icon-basket</span><span class="i-code">0xe73d</span></div>
|
||||
<div title="Code: 0xe7b6" class="the-icons span3"><i class="icon-puzzle"></i> <span class="i-name">icon-puzzle</span><span class="i-code">0xe7b6</span></div>
|
||||
<div title="Code: 0xe800" class="the-icons span3"><i class="icon-language"></i> <span class="i-name">icon-language</span><span class="i-code">0xe800</span></div>
|
||||
<div title="Code: 0xe801" class="the-icons span3"><i class="icon-signal"></i> <span class="i-name">icon-signal</span><span class="i-code">0xe801</span></div>
|
||||
<div title="Code: 0xe73d" class="the-icons span3"><i class="demo-icon icon-basket"></i> <span class="i-name">icon-basket</span><span class="i-code">0xe73d</span></div>
|
||||
<div title="Code: 0xe7b6" class="the-icons span3"><i class="demo-icon icon-puzzle"></i> <span class="i-name">icon-puzzle</span><span class="i-code">0xe7b6</span></div>
|
||||
<div title="Code: 0xe800" class="the-icons span3"><i class="demo-icon icon-language"></i> <span class="i-name">icon-language</span><span class="i-code">0xe800</span></div>
|
||||
<div title="Code: 0xe801" class="the-icons span3"><i class="demo-icon icon-signal"></i> <span class="i-name">icon-signal</span><span class="i-code">0xe801</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe802" class="the-icons span3"><i class="icon-users"></i> <span class="i-name">icon-users</span><span class="i-code">0xe802</span></div>
|
||||
<div title="Code: 0xe803" class="the-icons span3"><i class="icon-tools"></i> <span class="i-name">icon-tools</span><span class="i-code">0xe803</span></div>
|
||||
<div title="Code: 0xe804" class="the-icons span3"><i class="icon-arrows-cw"></i> <span class="i-name">icon-arrows-cw</span><span class="i-code">0xe804</span></div>
|
||||
<div title="Code: 0xe805" class="the-icons span3"><i class="icon-exchange"></i> <span class="i-name">icon-exchange</span><span class="i-code">0xe805</span></div>
|
||||
<div title="Code: 0xe802" class="the-icons span3"><i class="demo-icon icon-users"></i> <span class="i-name">icon-users</span><span class="i-code">0xe802</span></div>
|
||||
<div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-tools"></i> <span class="i-name">icon-tools</span><span class="i-code">0xe803</span></div>
|
||||
<div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-arrows-cw"></i> <span class="i-name">icon-arrows-cw</span><span class="i-code">0xe804</span></div>
|
||||
<div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-exchange"></i> <span class="i-name">icon-exchange</span><span class="i-code">0xe805</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe806" class="the-icons span3"><i class="icon-folder-open"></i> <span class="i-name">icon-folder-open</span><span class="i-code">0xe806</span></div>
|
||||
<div title="Code: 0xe807" class="the-icons span3"><i class="icon-brush"></i> <span class="i-name">icon-brush</span><span class="i-code">0xe807</span></div>
|
||||
<div title="Code: 0xe808" class="the-icons span3"><i class="icon-flow-branch"></i> <span class="i-name">icon-flow-branch</span><span class="i-code">0xe808</span></div>
|
||||
<div title="Code: 0xe809" class="the-icons span3"><i class="icon-menu"></i> <span class="i-name">icon-menu</span><span class="i-code">0xe809</span></div>
|
||||
<div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-folder-open"></i> <span class="i-name">icon-folder-open</span><span class="i-code">0xe806</span></div>
|
||||
<div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-brush"></i> <span class="i-name">icon-brush</span><span class="i-code">0xe807</span></div>
|
||||
<div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-flow-branch"></i> <span class="i-name">icon-flow-branch</span><span class="i-code">0xe808</span></div>
|
||||
<div title="Code: 0xe809" class="the-icons span3"><i class="demo-icon icon-menu"></i> <span class="i-name">icon-menu</span><span class="i-code">0xe809</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe80a" class="the-icons span3"><i class="icon-code"></i> <span class="i-name">icon-code</span><span class="i-code">0xe80a</span></div>
|
||||
<div title="Code: 0xe80b" class="the-icons span3"><i class="icon-user-add"></i> <span class="i-name">icon-user-add</span><span class="i-code">0xe80b</span></div>
|
||||
<div title="Code: 0xe80c" class="the-icons span3"><i class="icon-cw"></i> <span class="i-name">icon-cw</span><span class="i-code">0xe80c</span></div>
|
||||
<div title="Code: 0xe80d" class="the-icons span3"><i class="icon-group"></i> <span class="i-name">icon-group</span><span class="i-code">0xe80d</span></div>
|
||||
<div title="Code: 0xe80a" class="the-icons span3"><i class="demo-icon icon-code"></i> <span class="i-name">icon-code</span><span class="i-code">0xe80a</span></div>
|
||||
<div title="Code: 0xe80b" class="the-icons span3"><i class="demo-icon icon-user-add"></i> <span class="i-name">icon-user-add</span><span class="i-code">0xe80b</span></div>
|
||||
<div title="Code: 0xe80c" class="the-icons span3"><i class="demo-icon icon-cw"></i> <span class="i-name">icon-cw</span><span class="i-code">0xe80c</span></div>
|
||||
<div title="Code: 0xe80d" class="the-icons span3"><i class="demo-icon icon-group"></i> <span class="i-name">icon-group</span><span class="i-code">0xe80d</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe80e" class="the-icons span3"><i class="icon-home"></i> <span class="i-name">icon-home</span><span class="i-code">0xe80e</span></div>
|
||||
<div title="Code: 0xe80f" class="the-icons span3"><i class="icon-equalizer"></i> <span class="i-name">icon-equalizer</span><span class="i-code">0xe80f</span></div>
|
||||
<div title="Code: 0xe810" class="the-icons span3"><i class="icon-mail-1"></i> <span class="i-name">icon-mail-1</span><span class="i-code">0xe810</span></div>
|
||||
<div title="Code: 0xe811" class="the-icons span3"><i class="icon-search"></i> <span class="i-name">icon-search</span><span class="i-code">0xe811</span></div>
|
||||
<div title="Code: 0xe80e" class="the-icons span3"><i class="demo-icon icon-home"></i> <span class="i-name">icon-home</span><span class="i-code">0xe80e</span></div>
|
||||
<div title="Code: 0xe80f" class="the-icons span3"><i class="demo-icon icon-equalizer"></i> <span class="i-name">icon-equalizer</span><span class="i-code">0xe80f</span></div>
|
||||
<div title="Code: 0xe810" class="the-icons span3"><i class="demo-icon icon-mail-1"></i> <span class="i-name">icon-mail-1</span><span class="i-code">0xe810</span></div>
|
||||
<div title="Code: 0xe811" class="the-icons span3"><i class="demo-icon icon-search"></i> <span class="i-name">icon-search</span><span class="i-code">0xe811</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe812" class="the-icons span3"><i class="icon-move"></i> <span class="i-name">icon-move</span><span class="i-code">0xe812</span></div>
|
||||
<div title="Code: 0xe813" class="the-icons span3"><i class="icon-upload"></i> <span class="i-name">icon-upload</span><span class="i-code">0xe813</span></div>
|
||||
<div title="Code: 0xe814" class="the-icons span3"><i class="icon-upload-cloud"></i> <span class="i-name">icon-upload-cloud</span><span class="i-code">0xe814</span></div>
|
||||
<div title="Code: 0xe815" class="the-icons span3"><i class="icon-key"></i> <span class="i-name">icon-key</span><span class="i-code">0xe815</span></div>
|
||||
<div title="Code: 0xe812" class="the-icons span3"><i class="demo-icon icon-move"></i> <span class="i-name">icon-move</span><span class="i-code">0xe812</span></div>
|
||||
<div title="Code: 0xe813" class="the-icons span3"><i class="demo-icon icon-upload"></i> <span class="i-name">icon-upload</span><span class="i-code">0xe813</span></div>
|
||||
<div title="Code: 0xe814" class="the-icons span3"><i class="demo-icon icon-upload-cloud"></i> <span class="i-name">icon-upload-cloud</span><span class="i-code">0xe814</span></div>
|
||||
<div title="Code: 0xe815" class="the-icons span3"><i class="demo-icon icon-key"></i> <span class="i-name">icon-key</span><span class="i-code">0xe815</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe816" class="the-icons span3"><i class="icon-network"></i> <span class="i-name">icon-network</span><span class="i-code">0xe816</span></div>
|
||||
<div title="Code: 0xe817" class="the-icons span3"><i class="icon-info-circled-1"></i> <span class="i-name">icon-info-circled-1</span><span class="i-code">0xe817</span></div>
|
||||
<div title="Code: 0xe818" class="the-icons span3"><i class="icon-calendar"></i> <span class="i-name">icon-calendar</span><span class="i-code">0xe818</span></div>
|
||||
<div title="Code: 0xe819" class="the-icons span3"><i class="icon-ok"></i> <span class="i-name">icon-ok</span><span class="i-code">0xe819</span></div>
|
||||
<div title="Code: 0xe816" class="the-icons span3"><i class="demo-icon icon-network"></i> <span class="i-name">icon-network</span><span class="i-code">0xe816</span></div>
|
||||
<div title="Code: 0xe817" class="the-icons span3"><i class="demo-icon icon-info-circled-1"></i> <span class="i-name">icon-info-circled-1</span><span class="i-code">0xe817</span></div>
|
||||
<div title="Code: 0xe818" class="the-icons span3"><i class="demo-icon icon-calendar"></i> <span class="i-name">icon-calendar</span><span class="i-code">0xe818</span></div>
|
||||
<div title="Code: 0xe819" class="the-icons span3"><i class="demo-icon icon-ok"></i> <span class="i-name">icon-ok</span><span class="i-code">0xe819</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe81a" class="the-icons span3"><i class="icon-help-circled"></i> <span class="i-name">icon-help-circled</span><span class="i-code">0xe81a</span></div>
|
||||
<div title="Code: 0xe81b" class="the-icons span3"><i class="icon-logout"></i> <span class="i-name">icon-logout</span><span class="i-code">0xe81b</span></div>
|
||||
<div title="Code: 0xe81c" class="the-icons span3"><i class="icon-flag"></i> <span class="i-name">icon-flag</span><span class="i-code">0xe81c</span></div>
|
||||
<div title="Code: 0xe81d" class="the-icons span3"><i class="icon-spin6 animate-spin"></i> <span class="i-name">icon-spin6</span><span class="i-code">0xe81d</span></div>
|
||||
<div title="Code: 0xe81a" class="the-icons span3"><i class="demo-icon icon-help-circled"></i> <span class="i-name">icon-help-circled</span><span class="i-code">0xe81a</span></div>
|
||||
<div title="Code: 0xe81b" class="the-icons span3"><i class="demo-icon icon-logout"></i> <span class="i-name">icon-logout</span><span class="i-code">0xe81b</span></div>
|
||||
<div title="Code: 0xe81c" class="the-icons span3"><i class="demo-icon icon-flag"></i> <span class="i-name">icon-flag</span><span class="i-code">0xe81c</span></div>
|
||||
<div title="Code: 0xe81d" class="the-icons span3"><i class="demo-icon icon-spin6 animate-spin"></i> <span class="i-name">icon-spin6</span><span class="i-code">0xe81d</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe81e" class="the-icons span3"><i class="icon-hourglass"></i> <span class="i-name">icon-hourglass</span><span class="i-code">0xe81e</span></div>
|
||||
<div title="Code: 0xe81f" class="the-icons span3"><i class="icon-check"></i> <span class="i-name">icon-check</span><span class="i-code">0xe81f</span></div>
|
||||
<div title="Code: 0xe820" class="the-icons span3"><i class="icon-check-empty"></i> <span class="i-name">icon-check-empty</span><span class="i-code">0xe820</span></div>
|
||||
<div title="Code: 0xe821" class="the-icons span3"><i class="icon-cancel-circled"></i> <span class="i-name">icon-cancel-circled</span><span class="i-code">0xe821</span></div>
|
||||
<div title="Code: 0xe81e" class="the-icons span3"><i class="demo-icon icon-hourglass"></i> <span class="i-name">icon-hourglass</span><span class="i-code">0xe81e</span></div>
|
||||
<div title="Code: 0xe81f" class="the-icons span3"><i class="demo-icon icon-check"></i> <span class="i-name">icon-check</span><span class="i-code">0xe81f</span></div>
|
||||
<div title="Code: 0xe820" class="the-icons span3"><i class="demo-icon icon-check-empty"></i> <span class="i-name">icon-check-empty</span><span class="i-code">0xe820</span></div>
|
||||
<div title="Code: 0xe821" class="the-icons span3"><i class="demo-icon icon-cancel-circled"></i> <span class="i-name">icon-cancel-circled</span><span class="i-code">0xe821</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe822" class="the-icons span3"><i class="icon-cancel"></i> <span class="i-name">icon-cancel</span><span class="i-code">0xe822</span></div>
|
||||
<div title="Code: 0xe823" class="the-icons span3"><i class="icon-plus"></i> <span class="i-name">icon-plus</span><span class="i-code">0xe823</span></div>
|
||||
<div title="Code: 0xe824" class="the-icons span3"><i class="icon-ok-circled"></i> <span class="i-name">icon-ok-circled</span><span class="i-code">0xe824</span></div>
|
||||
<div title="Code: 0xe827" class="the-icons span3"><i class="icon-zoom-in"></i> <span class="i-name">icon-zoom-in</span><span class="i-code">0xe827</span></div>
|
||||
<div title="Code: 0xe822" class="the-icons span3"><i class="demo-icon icon-cancel"></i> <span class="i-name">icon-cancel</span><span class="i-code">0xe822</span></div>
|
||||
<div title="Code: 0xe823" class="the-icons span3"><i class="demo-icon icon-plus"></i> <span class="i-name">icon-plus</span><span class="i-code">0xe823</span></div>
|
||||
<div title="Code: 0xe824" class="the-icons span3"><i class="demo-icon icon-ok-circled"></i> <span class="i-name">icon-ok-circled</span><span class="i-code">0xe824</span></div>
|
||||
<div title="Code: 0xe825" class="the-icons span3"><i class="demo-icon icon-heart-broken"></i> <span class="i-name">icon-heart-broken</span><span class="i-code">0xe825</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xe828" class="the-icons span3"><i class="icon-zoom-out"></i> <span class="i-name">icon-zoom-out</span><span class="i-code">0xe828</span></div>
|
||||
<div title="Code: 0xf0ae" class="the-icons span3"><i class="icon-tasks"></i> <span class="i-name">icon-tasks</span><span class="i-code">0xf0ae</span></div>
|
||||
<div title="Code: 0xf0b0" class="the-icons span3"><i class="icon-filter"></i> <span class="i-name">icon-filter</span><span class="i-code">0xf0b0</span></div>
|
||||
<div title="Code: 0xf0e0" class="the-icons span3"><i class="icon-mail-alt"></i> <span class="i-name">icon-mail-alt</span><span class="i-code">0xf0e0</span></div>
|
||||
<div title="Code: 0xe827" class="the-icons span3"><i class="demo-icon icon-zoom-in"></i> <span class="i-name">icon-zoom-in</span><span class="i-code">0xe827</span></div>
|
||||
<div title="Code: 0xe828" class="the-icons span3"><i class="demo-icon icon-zoom-out"></i> <span class="i-name">icon-zoom-out</span><span class="i-code">0xe828</span></div>
|
||||
<div title="Code: 0xf0ae" class="the-icons span3"><i class="demo-icon icon-tasks"></i> <span class="i-name">icon-tasks</span><span class="i-code">0xf0ae</span></div>
|
||||
<div title="Code: 0xf0b0" class="the-icons span3"><i class="demo-icon icon-filter"></i> <span class="i-name">icon-filter</span><span class="i-code">0xf0b0</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0xf0e8" class="the-icons span3"><i class="icon-sitemap"></i> <span class="i-name">icon-sitemap</span><span class="i-code">0xf0e8</span></div>
|
||||
<div title="Code: 0xf125" class="the-icons span3"><i class="icon-crop"></i> <span class="i-name">icon-crop</span><span class="i-code">0xf125</span></div>
|
||||
<div title="Code: 0x1f304" class="the-icons span3"><i class="icon-picture"></i> <span class="i-name">icon-picture</span><span class="i-code">0x1f304</span></div>
|
||||
<div title="Code: 0x1f464" class="the-icons span3"><i class="icon-user"></i> <span class="i-name">icon-user</span><span class="i-code">0x1f464</span></div>
|
||||
<div title="Code: 0xf0e0" class="the-icons span3"><i class="demo-icon icon-mail-alt"></i> <span class="i-name">icon-mail-alt</span><span class="i-code">0xf0e0</span></div>
|
||||
<div title="Code: 0xf0e8" class="the-icons span3"><i class="demo-icon icon-sitemap"></i> <span class="i-name">icon-sitemap</span><span class="i-code">0xf0e8</span></div>
|
||||
<div title="Code: 0xf125" class="the-icons span3"><i class="demo-icon icon-crop"></i> <span class="i-name">icon-crop</span><span class="i-code">0xf125</span></div>
|
||||
<div title="Code: 0x1f304" class="the-icons span3"><i class="demo-icon icon-picture">🌄</i> <span class="i-name">icon-picture</span><span class="i-code">0x1f304</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x1f500" class="the-icons span3"><i class="icon-shuffle"></i> <span class="i-name">icon-shuffle</span><span class="i-code">0x1f500</span></div>
|
||||
<div title="Code: 0x1f512" class="the-icons span3"><i class="icon-lock"></i> <span class="i-name">icon-lock</span><span class="i-code">0x1f512</span></div>
|
||||
<div title="Code: 0x1f517" class="the-icons span3"><i class="icon-link"></i> <span class="i-name">icon-link</span><span class="i-code">0x1f517</span></div>
|
||||
<div title="Code: 0x1f527" class="the-icons span3"><i class="icon-wrench"></i> <span class="i-name">icon-wrench</span><span class="i-code">0x1f527</span></div>
|
||||
<div title="Code: 0x1f464" class="the-icons span3"><i class="demo-icon icon-user">👤</i> <span class="i-name">icon-user</span><span class="i-code">0x1f464</span></div>
|
||||
<div title="Code: 0x1f500" class="the-icons span3"><i class="demo-icon icon-shuffle">🔀</i> <span class="i-name">icon-shuffle</span><span class="i-code">0x1f500</span></div>
|
||||
<div title="Code: 0x1f512" class="the-icons span3"><i class="demo-icon icon-lock">🔒</i> <span class="i-name">icon-lock</span><span class="i-code">0x1f512</span></div>
|
||||
<div title="Code: 0x1f517" class="the-icons span3"><i class="demo-icon icon-link">🔗</i> <span class="i-name">icon-link</span><span class="i-code">0x1f517</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div title="Code: 0x1f554" class="the-icons span3"><i class="icon-clock"></i> <span class="i-name">icon-clock</span><span class="i-code">0x1f554</span></div>
|
||||
<div title="Code: 0x1f6ab" class="the-icons span3"><i class="icon-block"></i> <span class="i-name">icon-block</span><span class="i-code">0x1f6ab</span></div>
|
||||
<div title="Code: 0x1f527" class="the-icons span3"><i class="demo-icon icon-wrench">🔧</i> <span class="i-name">icon-wrench</span><span class="i-code">0x1f527</span></div>
|
||||
<div title="Code: 0x1f554" class="the-icons span3"><i class="demo-icon icon-clock">🕔</i> <span class="i-name">icon-clock</span><span class="i-code">0x1f554</span></div>
|
||||
<div title="Code: 0x1f6ab" class="the-icons span3"><i class="demo-icon icon-block">🚫</i> <span class="i-name">icon-block</span><span class="i-code">0x1f6ab</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
|
||||
|
|
Binary file not shown.
|
@ -1,77 +1,78 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata>
|
||||
<metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="fontello" horiz-adv-x="1000" >
|
||||
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="star" unicode="★" d="m0 489q0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26 0-12-15-27l-203-197 48-279q1-4 1-12 0-11-6-19t-17-9q-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="star-empty" unicode="☆" d="m0 489q0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26 0-12-15-27l-203-197 48-279q1-4 1-12 0-28-23-28-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27z m123-34l171-165-41-235 211 111 211-111-41 235 171 165-235 35-106 213-105-213z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="cog" unicode="⚙" d="m0 289v124q0 7 5 13t10 7l104 16q8 25 22 51-23 32-60 77-6 7-6 14 0 5 5 12 15 20 55 60t53 40q7 0 15-5l77-60q24 13 50 21 9 76 17 104 3 15 20 15h124q7 0 13-4t7-12l15-103q28-9 50-21l80 60q5 5 13 5 7 0 14-5 72-67 92-95 4-5 4-13 0-6-4-12-9-12-29-38t-30-39q14-28 23-55l102-15q7-1 12-7t4-13v-124q0-7-4-13t-11-7l-104-16q-10-30-21-51 19-28 59-77 6-6 6-14t-5-12q-15-21-55-61t-53-39q-7 0-14 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16h-124q-8 0-14 5t-6 12l-16 103q-27 9-50 20l-79-59q-6-5-14-5-8 0-14 6-70 63-92 94-4 5-4 12 0 7 5 13 8 12 28 37t30 40q-15 28-23 55l-102 15q-7 1-11 7t-5 13z m286 61q0-59 42-101t101-42 101 42 41 101-41 101-101 42-101-42-42-101z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="cog-alt" unicode="⛯" d="m0 299v103q0 6 4 11t9 6l86 14q7 19 18 42-19 27-50 64-4 6-4 11 0 7 4 12 12 16 46 49t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 3 13 16 13h104q6 0 11-4t6-10l13-85q19-6 41-17l66 49q5 4 11 4 7 0 12-4 81-75 81-90 0-5-4-10-7-9-24-30t-25-34q13-27 19-46l85-12q5-2 9-6t4-11v-103q0-6-4-11t-9-6l-86-14q-6-19-18-42 19-27 50-64 4-6 4-11 0-7-4-11-13-17-46-50t-44-33q-6 0-11 4l-64 50q-21-11-43-17-6-60-13-87-4-13-17-13h-104q-6 0-11 4t-5 10l-13 85q-19 6-42 18l-66-50q-4-4-11-4-6 0-12 4-80 75-80 90 0 5 4 10 5 8 23 30t26 34q-13 24-20 46l-85 13q-5 1-9 5t-4 11z m214 51q0-59 42-101t101-42 101 42 42 101-42 101-101 42-101-42-42-101z m429-325v78q0 9 83 18 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 1 17 1t17-1q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-9 83-18v-78q0-9-83-17-6-15-16-29 28-63 28-77 0-2-2-4-68-40-69-40-5 0-26 27t-29 37q-11-1-17-1t-17 1q-7-11-29-37t-25-27q-1 0-69 40-3 2-3 4 0 14 29 77-10 14-17 29-83 8-83 17z m0 572v78q0 9 83 17 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 2 17 2t17-2q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-8 83-17v-78q0-9-83-18-6-15-16-29 28-63 28-77 0-2-2-4-68-39-69-39-5 0-26 26t-29 38q-11-1-17-1t-17 1q-7-12-29-38t-25-26q-1 0-69 39-3 2-3 4 0 14 29 77-10 14-17 29-83 9-83 18z m143-533q0-29 21-50t50-21 51 21 21 50q0 29-22 51t-50 21-50-21-21-51z m0 572q0-30 21-51t50-21 51 21 21 51q0 29-22 50t-50 21-50-21-21-50z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="mail" unicode="✉" d="m0 11v607q0 37 26 63t63 26h822q37 0 63-26t26-63v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63z m71 0q0-8 6-13t12-5h822q7 0 12 5t6 13v428q-18-20-39-37-149-114-238-188-28-24-46-38t-48-27-57-13h-2q-26 0-57 13t-48 27-46 38q-88 74-238 188-21 17-39 37v-428z m0 607q0-94 82-159 108-84 224-176 4-3 20-17t25-21 25-17 28-16 24-5h2q11 0 24 5t28 16 25 17 25 21 20 17q116 92 224 176 30 24 56 65t26 73v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="pencil" unicode="✎" d="m0-79v233l464 464 232-232-464-465h-232z m71 143h72v-71h60l50 51-131 131-51-51v-60z m95 143q0-12 13-12 5 0 9 4l303 302q3 4 3 10 0 12-12 12-5 0-9-4l-303-302q-4-4-4-10z m334 447l93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51 0-29-20-50l-93-93z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="plus-circled" unicode="➕" d="m0 350q0 117 58 215t155 156 216 58 215-58 156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215z m179-36q0-14 10-25t25-10h143v-143q0-15 11-25t25-11h71q15 0 25 11t11 25v143h143q14 0 25 10t11 25v72q0 14-11 25t-25 10h-143v143q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-143h-143q-14 0-25-10t-10-25v-72z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="star" unicode="★" d="m929 489q0-12-15-27l-203-197 48-279q1-4 1-12 0-11-6-19t-17-9q-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="star-empty" unicode="☆" d="m634 290l171 165-235 35-106 213-105-213-236-35 171-165-41-235 211 111 211-111z m295 199q0-12-15-27l-203-197 48-279q1-4 1-12 0-28-23-28-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="cog" unicode="⚙" d="m571 350q0 59-41 101t-101 42-101-42-42-101 42-101 101-42 101 42 41 101z m286 61v-124q0-7-4-13t-11-7l-104-16q-10-30-21-51 19-27 59-77 6-6 6-13t-5-13q-15-21-55-61t-53-39q-7 0-14 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16h-124q-8 0-14 5t-6 12l-16 103q-27 9-50 21l-79-60q-6-5-14-5-8 0-14 6-70 64-92 94-4 5-4 13 0 6 5 12 8 12 28 37t30 40q-15 28-23 55l-102 15q-7 1-11 7t-5 13v124q0 7 5 13t10 7l104 16q8 25 22 51-23 32-60 77-6 7-6 14 0 5 5 12 15 20 55 60t53 40q7 0 15-5l77-60q24 13 50 21 9 76 17 104 3 15 20 15h124q7 0 13-4t7-12l15-103q28-9 50-21l80 60q5 5 13 5 7 0 14-5 72-67 92-95 4-5 4-13 0-6-4-12-9-12-29-38t-30-39q14-28 23-55l102-15q7-1 12-7t4-13z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="cog-alt" unicode="⛯" d="m500 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m429-286q0 29-22 51t-50 21-50-21-21-51q0-29 21-50t50-21 51 21 21 50z m0 572q0 29-22 50t-50 21-50-21-21-50q0-30 21-51t50-21 51 21 21 51z m-215-235v-103q0-6-4-11t-9-6l-86-14q-6-19-18-42 19-27 50-64 4-6 4-11 0-7-4-11-13-17-46-50t-44-33q-6 0-11 4l-64 50q-21-11-43-17-6-60-13-87-4-13-17-13h-104q-6 0-11 4t-5 10l-13 85q-19 6-42 18l-66-50q-4-4-11-4-6 0-12 4-80 75-80 90 0 5 4 10 5 8 23 30t26 34q-13 24-20 46l-85 13q-5 1-9 5t-4 11v103q0 6 4 11t9 6l86 14q7 19 18 42-19 27-50 64-4 6-4 11 0 7 4 11 12 17 46 50t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 3 13 16 13h104q6 0 11-4t6-10l13-85q19-6 41-17l66 49q5 4 11 4 7 0 12-4 81-75 81-90 0-5-4-10-7-9-24-30t-25-34q13-27 19-46l85-12q5-2 9-6t4-11z m357-298v-78q0-9-83-17-6-15-16-29 28-63 28-77 0-2-2-4-68-40-69-40-5 0-26 27t-29 37q-11-1-17-1t-17 1q-7-11-29-37t-25-27q-1 0-69 40-3 2-3 4 0 14 29 77-10 14-17 29-83 8-83 17v78q0 9 83 18 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 1 17 1t17-1q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-9 83-18z m0 572v-78q0-9-83-18-6-15-16-29 28-63 28-77 0-2-2-4-68-39-69-39-5 0-26 26t-29 38q-11-1-17-1t-17 1q-7-12-29-38t-25-26q-1 0-69 39-3 2-3 4 0 14 29 77-10 14-17 29-83 9-83 18v78q0 9 83 17 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 2 17 2t17-2q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-8 83-17z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="mail" unicode="✉" d="m929 11v428q-18-20-39-37-149-114-238-188-28-24-46-38t-48-27-57-13h-2q-26 0-57 13t-48 27-46 38q-88 74-238 188-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 82-159 108-85 224-177 4-2 20-16t25-21 25-18 28-15 24-5h2q11 0 24 5t28 15 25 18 25 21 20 16q116 92 224 177 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="pencil" unicode="✎" d="m203-7l50 51-131 131-51-51v-60h72v-71h60z m291 518q0 12-12 12-5 0-9-4l-303-302q-4-4-4-10 0-12 13-12 5 0 9 4l303 302q3 4 3 10z m-30 107l232-232-464-465h-232v233z m381-54q0-29-20-50l-93-93-232 233 93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="plus-circled" unicode="➕" d="m679 314v72q0 14-11 25t-25 10h-143v143q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-143h-143q-14 0-25-10t-10-25v-72q0-14 10-25t25-11h143v-142q0-15 11-25t25-11h71q15 0 25 11t11 25v142h143q14 0 25 11t11 25z m178 36q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="asl" unicode="" d="m1 700q-4 37 15 53t45 5 35-38l53-184q-15-29-14-64 6-30 36-204 7-52 32-82t65-29q47 0 74 37 34-39 83-37t74 41q27-37 71-41t73 27q12 16 20 32t11 37 5 33 1 40l0 38q26-10 61 24 49 45 109 78t98 8q33-24 31-59t-35-55q-61-25-104-82t-67-112-58-117-78-93q-21-18-66-18l-350 0q-84 6-105 118z m181-234q-6 45 21 65t56 8 37-48l21-209q4-41-17-63t-46-15-37 45z m155 70q2 41 32 56t62-1 36-49l8-248q0-59-28-76t-57 4-30 62z m175 4q4 43 37 55t62-7 30-52l-6-254q-5-47-34-66t-54 1-29 67z" horiz-adv-x="979" />
|
||||
<glyph glyph-name="eye" unicode="" d="m0 314q0 19 11 39 78 128 210 205t279 78 279-78 210-205q11-20 11-39t-11-38q-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38z m71 0q75-114 187-182t242-68 242 68 187 182q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197z m259 72q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19-8 19-19 7q-70 0-120-50t-50-119z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="tags" unicode="" d="m0 475v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50 0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65z m107 125q0-30 21-50t51-21 50 21 21 50-21 51-50 20-51-20-21-51z m286 179h125q29 0 65-15t57-36l399-399q21-21 21-50 0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="chat" unicode="" d="m0 421q0 78 53 144t143 104 197 38 197-38 143-104 53-144-53-143-143-104-197-38q-48 0-98 9-70-50-155-72-21-5-48-9h-2q-6 0-12 5t-6 11q-1 2-1 4t1 4 1 3l1 3t2 3 2 3 3 2 2 3q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125z m344-354q32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128q0-67-40-126t-108-98q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-13-4q-27 4-48 9-85 23-155 72-50-9-98-9-151 0-263 74z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="trash" unicode="" d="m0 582v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13z m143-547q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22v529h-500v-529z m71 83v321q0 8 5 13t13 5h36q8 0 13-5t5-13v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13z m54 518h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m89-518v321q0 8 5 13t13 5h36q8 0 13-5t5-13v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13z m143 0v321q0 8 5 13t13 5h36q7 0 12-5t5-13v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="basket" unicode="" d="m0 671q0 15 11 26t25 10h143q9 0 16-3t11-9 7-14 4-15 3-16 3-14h670q14 0 25-11t11-25v-286q0-13-9-24t-23-12l-583-68q1-3 3-12t3-14 1-13q0-9-13-35h513q15 0 26-11t10-25-10-25-26-11h-571q-14 0-25 11t-11 25q0 8 6 22t17 33 11 21l-98 460h-114q-15 0-25 10t-11 25z m214-678q0 29 21 50t51 21 50-21 21-50-21-51-50-21-51 21-21 51z m500 0q0 29 21 50t51 21 50-21 21-50-21-51-50-21-51 21-21 51z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="eye" unicode="" d="m929 314q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 242 68 187 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-12 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="tags" unicode="" d="m250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z m215 0q0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15h125q29 0 65-15t57-36l399-399q21-21 21-50z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="chat" unicode="" d="m786 421q0-77-53-143t-143-104-197-38q-48 0-98 9-70-49-155-72-21-5-48-9h-2q-6 0-12 5t-6 12q-1 1-1 3t1 4 1 3l1 3t2 3 2 3 3 3 2 2q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125q0 78 53 144t143 104 197 38 197-38 143-104 53-144z m214-142q0-67-40-126t-108-98q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-13-4q-27 4-48 9-85 23-155 72-50-9-98-9-151 0-263 74 32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="trash" unicode="" d="m286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="basket" unicode="" d="m357-7q0-29-21-50t-50-22-50 22-22 50 22 50 50 21 50-21 21-50z m500 0q0-29-21-50t-50-22-51 22-21 50 21 50 51 21 50-21 21-50z m72 607v-286q0-13-10-23t-22-12l-583-68q7-34 7-40 0-8-13-35h513q15 0 26-11t10-25-10-25-26-11h-571q-14 0-25 11t-11 25q0 6 5 18t9 20 12 22 8 16l-98 460h-114q-15 0-25 10t-11 25 11 26 25 10h143q9 0 16-3t10-9 8-14 4-14 3-17 3-14h670q14 0 25-11t11-25z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="puzzle" unicode="" d="m586 402q-37 0-64-34t-27-82 27-84 64-34q22 0 43 13 26 17 37 11t12-24l0-144q0-31-24-54t-55-23l-143 0q-16 0-23 9t2 31q21 25 21 51 0 38-34 64t-83 26-83-26-35-64q0-22 13-44 17-26 12-37t-25-10l-143 0q-33 0-55 23t-23 54l0 144q0 16 9 23t31-3q24-20 51-20 38 0 65 34t27 84-27 82-65 34q-21 0-42-13-26-17-38-12t-11 25l0 91q0 33 23 56t55 23l143 0q19 0 25 10t-11 37q-14 20-14 44 0 38 35 64t83 26 83-26 34-64q0-26-21-51-10-21-2-31t23-9l143 0q31 0 55-23t24-56l0-91q0-16-10-23t-30 3q-24 20-52 20z" horiz-adv-x="678" />
|
||||
<glyph glyph-name="language" unicode="" d="m988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z" horiz-adv-x="1001" />
|
||||
<glyph glyph-name="signal" unicode="" d="m0-61v107q0 8 5 13t13 5h107q8 0 13-5t5-13v-107q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13z m214 0v179q0 8 5 13t13 5h107q8 0 13-5t5-13v-179q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13z m215 0v322q0 8 5 13t12 5h108q7 0 12-5t5-13v-322q0-8-5-13t-12-5h-108q-7 0-12 5t-5 13z m214 0v536q0 8 5 13t13 5h107q8 0 13-5t5-13v-536q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13z m214 0v822q0 8 5 13t13 5h107q8 0 13-5t5-13v-822q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="signal" unicode="" d="m143 46v-107q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v107q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 72v-179q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v179q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 143v-322q0-8-5-13t-12-5h-108q-7 0-12 5t-5 13v322q0 8 5 13t12 5h108q7 0 12-5t5-13z m215 214v-536q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v536q0 8 5 13t13 5h107q8 0 13-5t5-13z m214 286v-822q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v822q0 8 5 13t13 5h107q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="users" unicode="" d="m0 49q20 7 60 22t69 26 50 22q37 19 57 56t21 76q0 27-31 64-19 21-33 60-45 18-45 76 0 43 14 61-5 39-9 82-5 55 26 108t84 84 110 32q43 0 85-19t73-50 48-72 14-83q-4-55-8-82 14-19 14-61 0-58-45-76-15-41-32-60-32-37-32-64 0-39 20-76t58-56q29-15 92-38t113-43 66-38q18-17 28-47t10-51l1-21h-878v168z m705 299q0 34 12 50-5 32-7 67-4 45 21 89t69 72 90 27 89-27 69-72 22-89q-2-35-8-67 12-16 12-50 0-48-36-62-12-33-27-50-9-10-13-16t-9-16-4-20q0-32 17-62t47-46q17-9 42-19t60-22 50-19v-135h-254q0 4 0 11t-3 26-7 36-15 38-23 33q-23 25-53 44t-79 37q27 34 27 78 0 10-5 20t-8 16-12 16q-14 15-27 49-37 16-37 63z" horiz-adv-x="1201.2" />
|
||||
<glyph glyph-name="tools" unicode="" d="m155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="arrows-cw" unicode="" d="m0-7v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-37 90-57t105-20q74 0 139 37t104 99q6 10 29 66 5 13 17 13h107q8 0 13-6t5-12q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25z m10 446v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="exchange" unicode="" d="m0 136q0 8 5 13l179 178q5 5 12 5 8 0 13-5t5-13v-107h768q7 0 13-5t5-13v-107q0-7-5-12t-13-6h-768v-107q0-7-5-12t-13-6q-6 0-13 6l-178 178q-5 5-5 13z m0 303v107q0 8 5 13t13 5h768v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13t-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-768q-7 0-13 6t-5 12z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="folder-open" unicode="" d="m0 118v536q0 51 37 88t88 37h179q51 0 88-37t37-88v-18h303q51 0 88-37t37-88v-90h-464q-53 0-110-26t-92-67l-188-221-2-3q0 2-1 7t0 7z m41-94q0 17 17 37l188 221q24 28 67 48t80 20h607q19 0 34-7t15-24q0-18-18-37l-187-221q-24-28-67-48t-81-20h-607q-19 0-33 7t-15 24z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="arrows-cw" unicode="" d="m843 261q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-37 90-57t105-20q74 0 139 37t104 99q6 10 29 66 5 13 17 13h107q8 0 13-6t5-12z m14 446v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="exchange" unicode="" d="m1000 189v-107q0-7-5-12t-13-6h-768v-107q0-7-5-12t-13-6q-6 0-13 6l-178 178q-5 5-5 13 0 8 5 13l179 178q5 5 12 5 8 0 13-5t5-13v-107h768q7 0 13-5t5-13z m0 304q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-768q-7 0-13 6t-5 12v107q0 8 5 13t13 5h768v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="folder-open" unicode="" d="m1049 319q0-18-18-37l-187-221q-24-28-67-48t-81-20h-607q-19 0-33 7t-15 24q0 17 17 37l188 221q24 28 67 48t80 20h607q19 0 34-7t15-24z m-192 192v-90h-464q-53 0-110-26t-92-67l-188-221-2-3q0 2-1 7t0 7v536q0 51 37 88t88 37h179q51 0 88-37t37-88v-18h303q51 0 88-37t37-88z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="brush" unicode="" d="m118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z" horiz-adv-x="962" />
|
||||
<glyph glyph-name="flow-branch" unicode="" d="m640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
|
||||
<glyph glyph-name="menu" unicode="" d="m0 29v71q0 15 11 25t25 11h785q15 0 26-11t10-25v-71q0-15-10-26t-26-10h-785q-15 0-25 10t-11 26z m0 285v72q0 14 11 25t25 10h785q15 0 26-10t10-25v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25z m0 286v71q0 15 11 26t25 10h785q15 0 26-10t10-26v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="code" unicode="" d="m25 314q0 8 6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13t-6-12l-219-220 219-219q6-6 6-13t-6-13l-28-28q-5-5-12-5t-13 5l-260 260q-6 6-6 13z m372-350l208 720q3 8 9 11t13 2l35-10q7-2 11-9t1-13l-208-721q-2-7-9-11t-13-1l-34 9q-8 3-11 9t-2 14z m325 118q0 7 5 13l219 219-219 220q-5 5-5 12t5 13l28 28q6 6 13 6t13-6l260-260q5-5 5-13t-5-13l-260-260q-6-5-13-5t-13 5l-28 28q-5 6-5 13z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="menu" unicode="" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="code" unicode="" d="m344 69l-28-28q-5-5-12-5t-13 5l-260 260q-6 6-6 13t6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13t-6-12l-219-220 219-219q6-6 6-13t-6-13z m330 596l-208-721q-2-7-9-11t-13-1l-34 9q-8 3-11 9t-2 14l208 720q3 8 9 11t13 2l35-10q7-2 11-9t1-13z m367-364l-260-260q-6-5-13-5t-13 5l-28 28q-5 6-5 13t5 13l219 219-219 220q-5 5-5 12t5 13l28 28q6 6 13 6t13-6l260-260q5-5 5-13t-5-13z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="user-add" unicode="" d="m620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="cw" unicode="" d="m0 350q0 87 34 166t92 137 136 92 167 34q82 0 158-31t137-88l72 72q16 18 39 8 22-9 22-33v-250q0-14-10-25t-26-11h-250q-23 0-32 23-10 22 7 38l77 77q-82 77-194 77-58 0-111-23t-91-61-62-91-22-111 22-111 62-91 91-61 111-23q66 0 125 29t100 82q4 6 13 7 8 0 14-5l76-77q5-4 6-11t-5-13q-60-74-147-114t-182-41q-87 0-167 34t-136 92-92 137-34 166z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="cw" unicode="" d="m857 707v-250q0-14-10-25t-26-11h-250q-23 0-32 23-10 22 7 38l77 77q-82 77-194 77-58 0-111-23t-91-61-62-91-22-111 22-111 62-91 91-61 111-23q66 0 125 29t100 82q4 6 13 7 8 0 14-5l76-77q5-4 6-11t-5-13q-60-74-147-114t-182-41q-87 0-167 34t-136 92-92 137-34 166 34 166 92 137 136 92 167 34q82 0 158-31t137-88l72 72q16 18 39 8 22-9 22-33z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="group" unicode="" d="m0 106l0 134q0 26 18 32l171 80q-66 39-68 131 0 56 35 103 37 41 90 43 31 0 63-19-49-125 23-237-12-11-25-19l-114-55q-48-23-52-84l0-143-114 0q-25 0-27 34z m193-59l0 168q0 27 22 37l152 70 57 28q-37 23-60 66t-22 94q0 76 46 130t110 54 109-54 45-130q0-106-78-158l61-30 146-70q24-10 24-37l0-168q-2-37-37-41l-541 0q-14 2-24 14t-10 27z m473 330q68 106 22 231 31 19 66 21 49 0 90-43 35-41 35-103 0-82-65-131l168-80q18-10 18-32l0-134q0-32-27-34l-118 0 0 143q0 57-50 84l-110 53q-15 8-29 25z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="home" unicode="" d="m888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
|
||||
<glyph glyph-name="equalizer" unicode="" d="m576 239l0-112-55 0 0-167q0-23-17-40t-39-17-39 17-17 40l0 167-56 0 0 112 56 0 0 503q0 24 17 39t38 16q24 0 41-16t16-39l0-503 55 0z m335 335l0-112-55 0 0-502q0-23-16-40t-41-17q-23 0-39 17t-16 40l0 502-56 0 0 112 56 0 0 168q0 24 16 39t39 16 41-16 16-39l0-168 55 0z m-670-112l0-111-55 0 0-391q0-23-16-40t-40-17q-23 0-39 17t-17 40l0 391-56 0 0 111 56 0 0 280q0 24 16 39t40 16 40-16 16-39l0-280 55 0z" horiz-adv-x="928" />
|
||||
<glyph glyph-name="mail-1" unicode="" d="m467 366l-449 210 0 109 893 0 0-109z m0-123l444 210 0-437-893 0 0 438z" horiz-adv-x="928" />
|
||||
<glyph glyph-name="search" unicode="" d="m772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" />
|
||||
<glyph glyph-name="move" unicode="" d="m0 350q0 15 11 25l143 143q10 11 25 11t25-11 10-25v-72h215v215h-72q-14 0-25 10t-11 25 11 26l143 142q11 11 25 11t25-11l143-142q11-11 11-26t-11-25-25-10h-72v-215h215v72q0 14 10 25t25 11 26-11l142-143q11-10 11-25t-11-25l-142-143q-11-11-26-11t-25 11-10 25v72h-215v-215h72q14 0 25-10t11-25-11-26l-143-142q-10-11-25-11t-25 11l-143 142q-11 11-11 26t11 25 25 10h72v215h-215v-72q0-14-10-25t-25-11-26 11l-142 143q-11 11-11 25z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="move" unicode="" d="m1000 350q0-14-11-25l-142-143q-11-11-26-11t-25 11-10 25v72h-215v-215h72q14 0 25-10t11-25-11-26l-143-142q-10-11-25-11t-25 11l-143 142q-11 11-11 26t11 25 25 10h72v215h-215v-72q0-14-10-25t-25-11-26 11l-142 143q-11 11-11 25t11 25l142 143q11 11 26 11t25-11 10-25v-72h215v215h-72q-14 0-25 10t-11 25 11 26l143 142q11 11 25 11t25-11l143-142q11-11 11-26t-11-25-25-10h-72v-215h215v72q0 14 10 25t25 11 26-11l142-143q11-10 11-25z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="upload" unicode="" d="m500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="upload-cloud" unicode="" d="m760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="key" unicode="" d="m774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />
|
||||
<glyph glyph-name="network" unicode="" d="m224 504q-22 0-42-10-48 52-92 128 54 74 128 118 92-38 152-82-6-16-6-32 0-6 4-22-62-48-116-104-16 4-28 4z m-98-98q0-34 20-60-60-114-80-232-66 106-66 236 0 110 50 206 38-62 84-112-8-24-8-38z m336 318q-28 0-50-14-58 42-114 70 84 30 162 30 120 0 230-62-76-14-162-50-26 26-66 26z m146-460q-160 24-290 112 4 20 4 30 0 24-14 52 38 44 98 90 26-20 56-20 14 0 38 8 94-108 134-240-16-14-26-32z m128-132q38 14 54 60 58 4 108 18-46-146-166-232 6 48 6 98 0 10-1 28t-1 28z m-150 66q-190-96-304-272-90 36-158 110 12 144 80 274 6-2 20-2 30 0 52 14 142-98 310-124z m184 492q150-136 150-340 0-22-4-66-64-18-130-24-24 56-88 60-48 146-148 264 10 20 10 42l0 10q100 42 210 54z m-136-544q14-10 32-18 2-18 2-52 0-80-14-144-86-42-194-42-58 0-112 12 110 160 286 244z" horiz-adv-x="920" />
|
||||
<glyph glyph-name="info-circled-1" unicode="" d="m454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z" horiz-adv-x="920" />
|
||||
<glyph glyph-name="calendar" unicode="" d="m0-79v715q0 29 21 50t50 21h72v54q0 36 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 36 27 63t63 26h35q37 0 63-26t27-63v-54h71q29 0 50-21t22-50v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50z m71 0h161v161h-161v-161z m0 197h161v178h-161v-178z m0 214h161v161h-161v-161z m143 268q0-7 6-13t12-5h36q7 0 12 5t6 13v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161z m54-679h178v161h-178v-161z m0 197h178v178h-178v-178z m0 214h178v161h-178v-161z m214-411h179v161h-179v-161z m0 197h179v178h-179v-178z m0 214h179v161h-179v-161z m161 268q0-7 5-13t13-5h35q8 0 13 5t5 13v161q0 7-5 12t-13 6h-35q-8 0-13-6t-5-12v-161z m53-679h161v161h-161v-161z m0 197h161v178h-161v-178z m0 214h161v161h-161v-161z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="ok" unicode="" d="m68 332q0 22 15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38t-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="calendar" unicode="" d="m71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-8 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 36 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 36 27 63t63 26h35q37 0 63-26t27-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="ok" unicode="" d="m932 534q0-22-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="help-circled" unicode="" d="m454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" />
|
||||
<glyph glyph-name="logout" unicode="" d="m0 154v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-27t-27-63v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114z m214 89v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25t-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="logout" unicode="" d="m357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-27t-27-63v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="flag" unicode="" d="m874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z" horiz-adv-x="900" />
|
||||
<glyph glyph-name="spin6" unicode="" d="m855 9c-189-190-520-172-705 13-190 190-200 494-28 695 11 13 21 26 35 34 36 23 85 18 117-13 30-31 35-76 16-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 542 34 106 122 142 297 77 451-83 198-305 291-510 222l0 1c236 82 492-24 588-252 71-167 37-355-72-493-11-15-23-29-36-42z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="hourglass" unicode="" d="m560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" />
|
||||
<glyph glyph-name="check" unicode="" d="m0 154v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-2 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114z m143 267q0 19 14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="check-empty" unicode="" d="m0 154v464q0 66 47 113t114 48h464q66 0 114-48t47-113v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114z m71 0q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26h-464q-37 0-63-26t-27-63v-464z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="cancel-circled" unicode="" d="m0 350q0 117 58 215t155 156 216 58 215-58 156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215z m216-126q0-15 11-26l50-50q10-11 25-11 15 0 26 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26 0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-26 11-15 0-25-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="cancel" unicode="" d="m61 112q0 23 16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38t-15-38l-76-76q-16-15-38-15t-38 15l-164 164-164-164q-16-15-38-15t-38 15l-76 76q-16 16-16 38z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="plus" unicode="" d="m0 332v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q22 0 38-16t16-38v-107q0-22-16-38t-38-16h-232v-232q0-22-16-38t-38-15h-107q-22 0-38 15t-15 38v232h-232q-23 0-38 16t-16 38z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="ok-circled" unicode="" d="m0 350q0 117 58 215t155 156 216 58 215-58 156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215z m141-11q0-15 10-25l202-202q10-10 25-10 15 0 25 10l303 303q11 10 11 25 0 16-11 26l-50 50q-11 11-25 11t-26-11l-227-227-126 126q-11 11-25 11t-26-11l-50-50q-10-10-10-26z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="zoom-in" unicode="" d="m0 386q0 80 31 152t84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51t-21-50-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 83-84 126-31 153z m143 0q0-103 73-177t177-73 176 73 74 177-74 176-176 74-177-74-73-176z m71-18v36q0 7 6 12t12 5h125v125q0 8 5 13t13 5h36q7 0 12-5t6-13v-125h125q7 0 12-5t5-12v-36q0-7-5-13t-12-5h-125v-125q0-7-6-13t-12-5h-36q-7 0-13 5t-5 13v125h-125q-7 0-12 5t-6 13z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="zoom-out" unicode="" d="m0 386q0 80 31 152t84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51t-21-50-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 83-84 126-31 153z m143 0q0-103 73-177t177-73 176 73 74 177-74 176-176 74-177-74-73-176z m71-18v36q0 7 6 12t12 5h322q7 0 12-5t5-12v-36q0-7-5-13t-12-5h-322q-7 0-12 5t-6 13z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="tasks" unicode="" d="m0 29v142q0 15 11 26t25 10h928q15 0 25-10t11-26v-142q0-15-11-26t-25-10h-928q-15 0-25 10t-11 26z m0 285v143q0 15 11 25t25 11h928q15 0 25-11t11-25v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25z m0 286v143q0 14 11 25t25 11h928q15 0 25-11t11-25v-143q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25z m357-250h572v71h-572v-71z m214-286h358v72h-358v-72z m143 572h215v71h-215v-71z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="filter" unicode="" d="m3 685q9 22 33 22h714q23 0 33-22 9-23-8-39l-275-275v-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-10 10-10 25v271l-275 275q-18 16-8 39z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="mail-alt" unicode="" d="m0 11v443q25-28 56-49 202-137 278-192 32-24 51-37t53-27 61-13h2q28 0 61 13t53 27 51 37q95 68 278 192 32 22 56 49v-443q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63z m0 595q0 43 23 72t66 29h822q36 0 62-26t27-63q0-44-27-84t-68-69q-210-146-262-181-5-4-23-17t-30-22-29-18-33-15-27-5h-2q-12 0-27 5t-33 15-29 18-30 22-23 17q-51 35-147 101t-114 80q-35 23-65 64t-31 77z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="sitemap" unicode="" d="m0-25v179q0 22 16 38t38 15h53v107q0 29 21 51t51 21h285v107h-53q-23 0-38 15t-16 38v179q0 22 16 38t38 16h178q23 0 38-16t16-38v-179q0-22-16-38t-38-15h-53v-107h285q29 0 51-21t21-51v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q22 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="crop" unicode="" d="m0 511v107q0 8 5 13t13 5h125v125q0 7 5 12t13 5h107q8 0 13-5t5-12v-125h475l137 138q5 5 13 5t13-5q5-6 5-13t-5-13l-138-137v-475h125q8 0 13-5t5-13v-107q0-8-5-13t-13-5h-125v-125q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v125h-482q-8 0-13 5t-5 13v482h-125q-8 0-13 5t-5 13z m286-350l332 332h-332v-332z m25-25h332v332z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="picture" unicode="🌄" d="m0 11v678q0 37 26 63t63 27h893q37 0 63-27t26-63v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63z m71 0q0-8 6-13t12-5h893q7 0 13 5t5 13v678q0 8-5 13t-13 5h-893q-7 0-12-5t-6-13v-678z m72 53v107l178 179 90-89 285 285 233-232v-250h-786z m0 465q0 44 31 75t76 32 76-32 31-75-31-76-76-32-76 32-31 76z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="user" unicode="👤" d="m0 66q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q5 0 24-12t41-27 60-27 75-12 74 12 61 27 41 27 24 12q34 0 62-11t48-30 34-45 24-55 15-60 8-61 2-58q0-67-41-106t-108-39h-488q-67 0-108 39t-41 106z m179 498q0 89 62 152t152 63 151-63 63-152-63-151-151-63-152 63-62 151z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="shuffle" unicode="🔀" d="m0 82v107q0 8 5 13t13 5h125q27 0 48 9t39 25 28 34 26 43q17 35 43 96 16 36 28 62t30 58 36 56 41 46 50 38 59 24 72 9h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13t-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-143q-27 0-49-8t-38-25-29-35-25-43q-18-34-43-95-16-37-28-62t-30-59-36-55-41-47-50-38-60-23-71-10h-125q-8 0-13 5t-5 13z m0 500v107q0 8 5 13t13 5h125q139 0 229-125-34-52-77-153-12 25-20 41t-23 35-28 32-36 19-45 8h-125q-8 0-13 5t-5 13z m415-392q33 52 76 152 12-25 20-40t23-36 28-31 35-20 46-8h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13t-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107q-18 0-48 0t-45-1-41 1-39 3-36 6-35 10-32 16-33 22-31 30-31 39z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="lock" unicode="🔒" d="m0 46v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37z m179 375h285v108q0 59-42 101t-101 41-101-41-41-101v-108z" horiz-adv-x="642.9" />
|
||||
<glyph glyph-name="link" unicode="🔗" d="m9 600q0 67 47 113l82 82q47 46 114 46 67 0 114-47l114-116q47-46 47-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114t-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114z m107 0q0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 10-8 12-12 11-11q18 17 18 41 0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37z m392-393q0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q15 16 15 37 0 23-15 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="wrench" unicode="🔧" d="m12-7q0 29 21 51l380 380q22-55 64-97t97-64l-381-381q-21-20-50-20-29 0-51 20l-59 61q-21 20-21 50z m131 36q0-15 10-26t26-10 25 10 10 26-10 25-25 10-26-10-10-25z m286 500q0 103 73 176t177 74q32 0 67-10t60-26q9-6 9-15t-9-16l-163-94v-125l108-60q2 2 44 27t75 45 40 20q8 0 13-5t4-14q0-22-12-60-27-74-92-121t-144-47q-104 0-177 74t-73 176z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="clock" unicode="🕔" d="m0 350q0 117 58 215t155 156 216 58 215-58 156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215z m125 0q0-83 41-152t110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41-153-41-110-111-41-152z m161-54v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="block" unicode="🚫" d="m0 352q0 87 34 167t91 137 137 91 167 34 166-34 137-91 91-137 34-167-34-168-91-137-137-92-166-34-167 34-137 92-91 137-34 168z m125 0q0-91 50-167l421 421q-75 50-167 50-83 0-153-40t-110-112-41-152z m138-256q76-50 166-50 62 0 118 25t96 65 65 97 24 119q0 90-48 164z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="check" unicode="" d="m786 331v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-2 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31t14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="check-empty" unicode="" d="m625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="cancel-circled" unicode="" d="m641 224q0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-26 11-15 0-25-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25 0-15 11-26l50-50q10-11 25-11 15 0 26 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26z m216 126q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="cancel" unicode="" d="m724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="plus" unicode="" d="m786 439v-107q0-22-16-38t-38-15h-232v-233q0-22-16-37t-38-16h-107q-22 0-38 16t-15 37v233h-232q-23 0-38 15t-16 38v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q22 0 38-16t16-38z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="ok-circled" unicode="" d="m717 440q0 16-11 26l-50 50q-11 11-25 11t-26-11l-227-227-126 126q-11 11-25 11t-26-11l-50-50q-10-10-10-26 0-15 10-25l202-202q10-10 25-10 15 0 25 10l303 303q11 10 11 25z m140-90q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="heart-broken" unicode="" d="m0 530q0 103 73 176t177 73q81 0 147-47l-14-250q0-12 9-20t21-9h10q12 0 18-8t3-20l-57-172q-4-12-2-13t9 8l194 267q7 9 4 16t-16 7h-77q-12 0-17 8t-1 18l82 183q57 32 124 32 103 0 177-73t73-176q0-94-63-166l-343-403q-25-30-62-30t-63 30l-342 403q-64 72-64 166z" horiz-adv-x="937.5" />
|
||||
<glyph glyph-name="zoom-in" unicode="" d="m571 404v-36q0-7-5-13t-12-5h-125v-125q0-7-6-13t-12-5h-36q-7 0-13 5t-5 13v125h-125q-7 0-12 5t-6 13v36q0 7 6 12t12 5h125v125q0 8 5 13t13 5h36q7 0 12-5t6-13v-125h125q7 0 12-5t5-12z m72-18q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="zoom-out" unicode="" d="m571 404v-36q0-7-5-13t-12-5h-322q-7 0-12 5t-6 13v36q0 7 6 12t12 5h322q7 0 12-5t5-12z m72-18q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="tasks" unicode="" d="m571 64h358v72h-358v-72z m-214 286h572v71h-572v-71z m357 286h215v71h-215v-71z m286-465v-142q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v142q0 15 11 26t25 10h928q15 0 25-10t11-26z m0 286v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25v143q0 15 11 25t25 11h928q15 0 25-11t11-25z m0 286v-143q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v143q0 14 11 25t25 11h928q15 0 25-11t11-25z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="filter" unicode="" d="m783 685q9-23-8-39l-275-275v-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-10 10-10 25v271l-275 275q-18 16-8 39 9 22 33 22h714q23 0 33-22z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="mail-alt" unicode="" d="m1000 454v-443q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v443q25-28 56-49 202-137 278-192 32-24 51-37t53-27 61-13h2q28 0 61 13t53 27 51 37q95 68 278 192 32 22 56 49z m0 164q0-44-27-84t-68-69q-210-146-262-181-5-4-23-17t-30-22-29-18-33-15-27-5h-2q-12 0-27 5t-33 15-29 18-30 22-23 17q-51 35-147 101t-114 80q-35 23-65 64t-31 77q0 43 23 72t66 29h822q36 0 62-26t27-63z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="sitemap" unicode="" d="m1000 154v-179q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q22 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107q0 29 21 51t51 21h285v107h-53q-23 0-38 15t-16 38v179q0 22 16 38t38 16h178q23 0 38-16t16-38v-179q0-22-16-38t-38-15h-53v-107h285q29 0 51-21t21-51v-107h53q23 0 38-15t16-38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="crop" unicode="" d="m311 136h332v332z m-25 25l332 332h-332v-332z m643-43v-107q0-8-5-13t-13-5h-125v-125q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v125h-482q-8 0-13 5t-5 13v482h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125v125q0 7 5 12t13 5h107q8 0 13-5t5-12v-125h475l137 138q5 5 13 5t13-5q5-6 5-13t-5-13l-138-137v-475h125q8 0 13-5t5-13z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="picture" unicode="🌄" d="m357 529q0-45-31-76t-76-32-76 32-31 76 31 75 76 32 76-32 31-75z m572-215v-250h-786v107l178 179 90-89 285 285z m53 393h-893q-7 0-12-5t-6-13v-678q0-8 6-13t12-5h893q7 0 13 5t5 13v678q0 7-5 13t-13 5z m89-18v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63v678q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1071.4" />
|
||||
<glyph glyph-name="user" unicode="👤" d="m786 66q0-67-41-106t-108-39h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q5 0 24-12t41-27 60-27 75-12 74 12 61 27 41 27 24 12q34 0 62-11t48-30 34-45 24-55 15-60 8-61 2-58z m-179 498q0-88-63-151t-151-63-152 63-62 151 62 152 152 63 151-63 63-152z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="shuffle" unicode="🔀" d="m372 582q-34-52-77-153-12 25-20 41t-23 35-28 32-36 19-45 8h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q139 0 229-125z m628-446q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107q-18 0-48 0t-45-1-41 1-39 3-36 6-35 10-32 16-33 22-31 30-31 39q33 52 76 152 12-25 20-40t23-36 28-31 35-20 46-8h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z m0 500q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-143q-27 0-49-8t-38-25-29-35-25-43q-18-34-43-95-16-37-28-62t-30-59-36-55-41-47-50-38-60-23-71-10h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q27 0 48 9t39 25 28 34 26 43q17 35 43 96 16 36 28 62t30 58 36 56 41 46 50 38 59 24 72 9h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="lock" unicode="🔒" d="m179 421h285v108q0 59-42 101t-101 41-101-41-41-101v-108z m464-53v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38z" horiz-adv-x="642.9" />
|
||||
<glyph glyph-name="link" unicode="🔗" d="m812 171q0 23-15 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40 0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q15 16 15 37z m-392 394q0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 10-8 12-12 11-11q18 17 18 41z m500-394q0-67-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114t47 113l82 82q47 46 114 46 67 0 114-47l114-116q47-46 47-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="wrench" unicode="🔧" d="m214 29q0 14-10 25t-25 10-26-10-10-25 10-26 26-10 25 10 10 26z m360 234l-381-381q-21-20-50-20-29 0-51 20l-59 61q-21 20-21 50 0 29 21 51l380 380q22-55 64-97t97-64z m353 243q0-22-12-59-27-75-92-122t-144-46q-104 0-177 73t-73 177 73 176 177 74q32 0 67-10t60-26q9-6 9-15t-9-16l-163-94v-125l108-60q2 2 44 27t75 45 40 20q8 0 13-5t4-14z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="clock" unicode="🕔" d="m500 546v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13z m232-196q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="block" unicode="🚫" d="m732 352q0 90-48 164l-421-420q76-50 166-50 62 0 118 25t96 65 65 97 24 119z m-557-167l421 421q-75 50-167 50-83 0-153-40t-110-112-41-152q0-91 50-167z m682 167q0-88-34-168t-91-137-137-92-166-34-167 34-137 92-91 137-34 168 34 167 91 137 137 91 167 34 166-34 137-91 91-137 34-167z" horiz-adv-x="857.1" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
Binary file not shown.
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -95,7 +95,7 @@ jQuery(document).ready(function() {
|
|||
$('ul.thumbnails').enableShiftClick();
|
||||
});
|
||||
|
||||
jQuery("a.preview-box").colorbox();
|
||||
jQuery("a.preview-box").colorbox( {photo: true} );
|
||||
|
||||
jQuery('.thumbnails img').tipTip({
|
||||
'delay' : 0,
|
||||
|
|
|
@ -41,6 +41,9 @@ $('#menubar').lightAccordion({
|
|||
<li><a href="{$U_BATCH}"><i class="icon-pencil"></i>{'Batch Manager'|@translate}</a></li>
|
||||
{if $NB_PHOTOS_IN_CADDIE > 0}
|
||||
<li><a href="{$U_CADDIE}"><i class="icon-flag"></i>{'Caddie'|@translate}<span class="adminMenubarCounter">{$NB_PHOTOS_IN_CADDIE}</span></a></li>
|
||||
{/if}
|
||||
{if $NB_ORPHANS > 0}
|
||||
<li><a href="{$U_ORPHANS}"><i class="icon-heart-broken"></i>{'Orphans'|@translate}<span class="adminMenubarCounter">{$NB_ORPHANS}</span></a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</dd>
|
||||
|
|
|
@ -1,3 +1,59 @@
|
|||
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
|
||||
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
|
||||
|
||||
{footer_script}
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("select[name=who]").change(function () {
|
||||
checkWhoOptions();
|
||||
});
|
||||
|
||||
checkWhoOptions();
|
||||
|
||||
function checkWhoOptions() {
|
||||
var option = jQuery("select[name=who] option:selected").val();
|
||||
jQuery(".who_option").hide();
|
||||
jQuery(".who_" + option).show();
|
||||
}
|
||||
|
||||
jQuery(".who_option select").selectize({
|
||||
plugins: ['remove_button']
|
||||
});
|
||||
|
||||
jQuery("form#categoryNotify").submit(function(e) {
|
||||
var who_selected = false;
|
||||
var who_option = jQuery("select[name=who] option:selected").val();
|
||||
|
||||
if (jQuery(".who_" + who_option + " select").length > 0) {
|
||||
if (jQuery(".who_" + who_option + " select option:selected").length > 0) {
|
||||
who_selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!who_selected) {
|
||||
jQuery(".actionButtons .errors").show();
|
||||
e.preventDefault();
|
||||
}
|
||||
else {
|
||||
jQuery(".actionButtons .errors").hide();
|
||||
console.log("form can be submited");
|
||||
}
|
||||
});
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
{html_style}
|
||||
.who_option {
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
span.errors {
|
||||
background-image:none;
|
||||
padding:2px 5px;
|
||||
margin:0;
|
||||
border-radius:5px;
|
||||
}
|
||||
{/html_style}
|
||||
|
||||
<div class="titrePage">
|
||||
<h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> › {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
|
||||
</div>
|
||||
|
@ -5,36 +61,58 @@
|
|||
<form action="{$F_ACTION}" method="post" id="categoryNotify">
|
||||
|
||||
<fieldset id="emailCatInfo">
|
||||
<legend>{'Send an information email to group members'|@translate}</legend>
|
||||
|
||||
{if isset($group_mail_options)}
|
||||
<legend>{'Send mail to users'|@translate}</legend>
|
||||
|
||||
<p>
|
||||
<strong>{'Group'|@translate}</strong>
|
||||
<br>
|
||||
<select name="group">
|
||||
{html_options options=$group_mail_options}
|
||||
<strong>{'Recipients'|@translate}</strong>
|
||||
<select name="who">
|
||||
<option value="group">{'Group'|translate}</option>
|
||||
<option value="users">{'Users'|translate}</option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<p class="who_option who_group">
|
||||
{if isset($group_mail_options)}
|
||||
<select name="group" placeholder="{'Type in a search term'|translate}" style="width:524px;">
|
||||
{html_options options=$group_mail_options}
|
||||
</select>
|
||||
{elseif isset($no_group_in_gallery) and $no_group_in_gallery}
|
||||
{'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a>
|
||||
{else}
|
||||
{'No group is permitted to see this private album'|@translate}.
|
||||
<a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p class="who_option who_users">
|
||||
{if isset($user_options)}
|
||||
<select name="users[]" multiple placeholder="{'Type in a search term'|translate}" style="width:524px;">
|
||||
{html_options options=$user_options selected=$user_options_selected}
|
||||
</select>
|
||||
{else}
|
||||
{'No user is permitted to see this private album'|@translate}.
|
||||
<a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>{'Complementary mail content'|@translate}</strong>
|
||||
<br>
|
||||
<textarea cols="50" rows="5" name="mail_content" id="mail_content" class="description">{$MAIL_CONTENT}</textarea>
|
||||
</p>
|
||||
|
||||
{if isset($auth_key_duration)}
|
||||
<p>
|
||||
<input class="submit" type="submit" value="{'Send'|@translate}" name="submitEmail">
|
||||
</p>
|
||||
|
||||
{elseif isset($no_group_in_gallery) and $no_group_in_gallery}
|
||||
<p>{'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a></p>
|
||||
{else}
|
||||
<p>
|
||||
{'No group is permitted to see this private album'|@translate}.
|
||||
<a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
|
||||
{'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration}
|
||||
<br>{'For security reason, authentication keys do not work for administrators.'|translate}
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<p class="actionButtons">
|
||||
<input class="submit" type="submit" value="{'Send'|@translate}" name="submitEmail">
|
||||
<span class="errors" style="display:none">✘ {'No recipient selected'|translate}</span>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
|
|
@ -134,7 +134,13 @@ $(document).ready(function() {
|
|||
|
||||
$("select[name=selectAction]").change(function () {
|
||||
$("[id^=action_]").hide();
|
||||
$("#action_"+$(this).prop("value")).show();
|
||||
|
||||
var action = $(this).prop("value");
|
||||
if (action == 'move') {
|
||||
action = 'associate';
|
||||
}
|
||||
|
||||
$("#action_"+action).show();
|
||||
|
||||
if ($(this).val() != -1) {
|
||||
$("#applyActionBlock").show();
|
||||
|
@ -268,6 +274,7 @@ $(document).ready(function() {
|
|||
jQuery("select[name=filter_prefilter]").change(function() {
|
||||
jQuery("#empty_caddie").toggle(jQuery(this).val() == "caddie");
|
||||
jQuery("#duplicates_options").toggle(jQuery(this).val() == "duplicates");
|
||||
jQuery("#delete_orphans").toggle(jQuery(this).val() == "no_album");
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -329,10 +336,15 @@ var sliders = {
|
|||
{'Predefined filter'|@translate}
|
||||
<select name="filter_prefilter">
|
||||
{foreach from=$prefilters item=prefilter}
|
||||
<option value="{$prefilter.ID}" {if isset($filter.prefilter) && $filter.prefilter eq $prefilter.ID}selected="selected"{/if}>{$prefilter.NAME}</option>
|
||||
{assign 'optionClass' ''}
|
||||
{if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if}
|
||||
{if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if}
|
||||
|
||||
<option value="{$prefilter.ID}" class="{$optionClass}" {if isset($filter.prefilter) && $filter.prefilter eq $prefilter.ID}selected="selected"{/if}>{$prefilter.NAME}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<a id="empty_caddie" href="admin.php?page=batch_manager&action=empty_caddie" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'caddie'}display:none{/if}">{'Empty caddie'|translate}</a>
|
||||
<a id="delete_orphans" href="admin.php?page=batch_manager&action=delete_orphans" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_album'}display:none{/if}">{'Delete %d orphan photos'|translate:$NB_ORPHANS}</a>
|
||||
|
||||
<span id="duplicates_options" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'duplicates'}display:none{/if}">
|
||||
{'based on'|translate}
|
||||
|
@ -584,21 +596,13 @@ UL.thumbnails SPAN.wrap2 {ldelim}
|
|||
<p><label><input type="checkbox" name="confirm_deletion" value="1"> {'Are you sure?'|@translate}</label></p>
|
||||
</div>
|
||||
|
||||
<!-- associate -->
|
||||
<!-- associate -->{* also used for "move" action *}
|
||||
<div id="action_associate" class="bulkAction">
|
||||
<select data-selectize="categories" data-default="first" name="associate" style="width:600px"></select>
|
||||
<br>{'... or '|@translate}
|
||||
<a href="#" data-add-album="associate" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
|
||||
</div>
|
||||
|
||||
<!-- move -->
|
||||
<div id="action_move" class="bulkAction">
|
||||
<select data-selectize="categories" data-default="first" name="move" style="width:600px"></select>
|
||||
<br>{'... or '|@translate}
|
||||
<a href="#" data-add-album="move" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- dissociate -->
|
||||
<div id="action_dissociate" class="bulkAction">
|
||||
<select data-selectize="categories" placeholder="{'Type in a search term'|translate}"
|
||||
|
@ -627,15 +631,13 @@ UL.thumbnails SPAN.wrap2 {ldelim}
|
|||
<!-- author -->
|
||||
<div id="action_author" class="bulkAction">
|
||||
<label><input type="checkbox" name="remove_author"> {'remove author'|@translate}</label><br>
|
||||
{assign var='authorDefaultValue' value='Type here the author name'|@translate}
|
||||
<input type="text" class="large" name="author" value="{$authorDefaultValue}" onfocus="this.value=(this.value=='{$authorDefaultValue|@escape:javascript}') ? '' : this.value;" onblur="this.value=(this.value=='') ? '{$authorDefaultValue|@escape:javascript}' : this.value;">
|
||||
<input type="text" class="large" name="author" placeholder="{'Type here the author name'|@translate}">
|
||||
</div>
|
||||
|
||||
<!-- title -->
|
||||
<div id="action_title" class="bulkAction">
|
||||
<label><input type="checkbox" name="remove_title"> {'remove title'|@translate}</label><br>
|
||||
{assign var='titleDefaultValue' value='Type here the title'|@translate}
|
||||
<input type="text" class="large" name="title" value="{$titleDefaultValue}" onfocus="this.value=(this.value=='{$titleDefaultValue|@escape:javascript}') ? '' : this.value;" onblur="this.value=(this.value=='') ? '{$titleDefaultValue|@escape:javascript}' : this.value;">
|
||||
<input type="text" class="large" name="title" placeholder="{'Type here the title'|@translate}">
|
||||
</div>
|
||||
|
||||
<!-- date_creation -->
|
||||
|
|
|
@ -29,7 +29,9 @@ jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *}
|
|||
});
|
||||
|
||||
{* <!-- THUMBNAILS --> *}
|
||||
jQuery("a.preview-box").colorbox();
|
||||
jQuery("a.preview-box").colorbox( {
|
||||
photo: true
|
||||
});
|
||||
}());
|
||||
{/footer_script}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue