diff options
author | Silvio <silvio@devlet.com.br> | 2011-11-21 14:21:50 -0200 |
---|---|---|
committer | Silvio <silvio@devlet.com.br> | 2011-11-21 14:21:50 -0200 |
commit | 33218fe4ba437700032d413cef0fbcf3a15fbcaf (patch) | |
tree | e542b4b8fb2f2b6969981feb14d97bdb50a3c1b7 | |
parent | 4e6902f5c54d69c351d618a6d8c3273d3b35e3b5 (diff) | |
download | imagecache_auto-master.tar.gz imagecache_auto-master.tar.bz2 |
-rw-r--r-- | LICENSE.txt | 274 | ||||
-rw-r--r-- | README.txt | 17 | ||||
-rw-r--r-- | imagecache_auto.admin.inc | 43 | ||||
-rw-r--r-- | imagecache_auto.inc | 142 | ||||
-rw-r--r-- | imagecache_auto.info | 7 | ||||
-rw-r--r-- | imagecache_auto.module | 65 |
6 files changed, 1 insertions, 547 deletions
diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 2c095c8..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,274 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - - Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, -Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute -verbatim copies of this license document, but changing it is not allowed. - - Preamble - -The licenses for most software are designed to take away your freedom to -share and change it. By contrast, the GNU General Public License is -intended to guarantee your freedom to share and change free software--to -make sure the software is free for all its users. This General Public License -applies to most of the Free Software Foundation's software and to any other -program whose authors commit to using it. (Some other Free Software -Foundation software is covered by the GNU Library General Public License -instead.) You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the -freedom to distribute copies of free software (and charge for this service if -you wish), that you receive source code or can get it if you want it, that you -can change the software or use pieces of it in new free programs; and that -you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to -deny you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of the -software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for -a fee, you must give the recipients all the rights that you have. You must make -sure that they, too, receive or can get the source code. And you must show -them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients -to know that what they have is not the original, so that any problems -introduced by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will individually -obtain patent licenses, in effect making the program proprietary. To prevent -this, we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND - MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms -of this General Public License. The "Program", below, refers to any such -program or work, and a "work based on the Program" means either the -Program or any derivative work under copyright law: that is to say, a work -containing the Program or a portion of it, either verbatim or with -modifications and/or translated into another language. (Hereinafter, translation -is included without limitation in the term "modification".) Each licensee is -addressed as "you". - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running the Program is -not restricted, and the output from the Program is covered only if its contents -constitute a work based on the Program (independent of having been made -by running the Program). Whether that is true depends on what the Program -does. - -1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you -may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, -thus forming a work based on the Program, and copy and distribute such -modifications or work under the terms of Section 1 above, provided that you -also meet all of these conditions: - -a) You must cause the modified files to carry prominent notices stating that -you changed the files and the date of any change. - -b) You must cause any work that you distribute or publish, that in whole or in -part contains or is derived from the Program or any part thereof, to be -licensed as a whole at no charge to all third parties under the terms of this -License. - -c) If the modified program normally reads commands interactively when run, -you must cause it, when started running for such interactive use in the most -ordinary way, to print or display an announcement including an appropriate -copyright notice and a notice that there is no warranty (or else, saying that -you provide a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally print such -an announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be -reasonably considered independent and separate works in themselves, then -this License, and its terms, do not apply to those sections when you distribute -them as separate works. But when you distribute the same sections as part -of a whole which is a work based on the Program, the distribution of the -whole must be on the terms of this License, whose permissions for other -licensees extend to the entire whole, and thus to each and every part -regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to -work written entirely by you; rather, the intent is to exercise the right to -control the distribution of derivative or collective works based on the -Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of a -storage or distribution medium does not bring the other work under the scope -of this License. - -3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 -and 2 above provided that you also do one of the following: - -a) Accompany it with the complete corresponding machine-readable source -code, which must be distributed under the terms of Sections 1 and 2 above -on a medium customarily used for software interchange; or, - -b) Accompany it with a written offer, valid for at least three years, to give -any third party, for a charge no more than your cost of physically performing -source distribution, a complete machine-readable copy of the corresponding -source code, to be distributed under the terms of Sections 1 and 2 above on -a medium customarily used for software interchange; or, - -c) Accompany it with the information you received as to the offer to distribute -corresponding source code. (This alternative is allowed only for -noncommercial distribution and only if you received the program in object -code or executable form with such an offer, in accord with Subsection b -above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source code -means all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation and -installation of the executable. However, as a special exception, the source -code distributed need not include anything that is normally distributed (in -either source or binary form) with the major components (compiler, kernel, -and so on) of the operating system on which the executable runs, unless that -component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to -copy from a designated place, then offering equivalent access to copy the -source code from the same place counts as distribution of the source code, -even though third parties are not compelled to copy the source along with the -object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, -modify, sublicense or distribute the Program is void, and will automatically -terminate your rights under this License. However, parties who have received -copies, or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. -However, nothing else grants you permission to modify or distribute the -Program or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the -Program (or any work based on the Program), you indicate your acceptance -of this License to do so, and all its terms and conditions for copying, -distributing or modifying the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these terms and -conditions. You may not impose any further restrictions on the recipients' -exercise of the rights granted herein. You are not responsible for enforcing -compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), conditions -are imposed on you (whether by court order, agreement or otherwise) that -contradict the conditions of this License, they do not excuse you from the -conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose -that choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original copyright -holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In such -case, this License incorporates the limitation as if written in the body of this -License. - -9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will be -similar in spirit to the present version, but may differ in detail to address new -problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies -a version number of this License which applies to it and "any later version", -you have the option of following the terms and conditions either of that -version or of any later version published by the Free Software Foundation. If -the Program does not specify a version number of this License, you may -choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software -Foundation, write to the Free Software Foundation; we sometimes make -exceptions for this. Our decision will be guided by the two goals of -preserving the free status of all derivatives of our free software and of -promoting the sharing and reuse of software generally. - - NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT -PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR -AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR -ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE -LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, -SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OR INABILITY TO USE THE -PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA -OR DATA BEING RENDERED INACCURATE OR LOSSES -SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE -PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN -IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF -THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS @@ -1,16 +1 @@ -ImageCache Auto -=============== - -This module creates imagecache presets on the fly in two modes of -operation by providing: - - 1. An internal API for creating or removing multiple ImageCache presets - at once. - - 2. A public API for creating ImageCache presets upon requests to paths like - http://yoursite/<file path>/imagecache_auto/<width>/<height>/<filename>, - which will automatically create a resize and crop profile with the given - dimensions and return the filename. - -This module is specially useful when building websites that need to display -pictures according to the user's screen dimensions. +See major version branches. diff --git a/imagecache_auto.admin.inc b/imagecache_auto.admin.inc deleted file mode 100644 index 29b0fa7..0000000 --- a/imagecache_auto.admin.inc +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * @file - * Administration page callbacks. - */ - -/** - * Form builder. Configure ImageCache Auto. - * - * @ingroup forms - * @see system_settings_form() - */ -function imagecache_auto_admin_settings() { - $form['imagecache_auto_max_width'] = array( - '#type' => 'textfield', - '#title' => t('Maximum preset width (pixels)'), - '#default_value' => variable_get('imagecache_auto_max_width', '10000'), - '#size' => 10, - '#maxlength' => 64, - '#description' => t('The maximum width an automatically created ImageCache preset can have.'), - ); - - $form['imagecache_auto_max_height'] = array( - '#type' => 'textfield', - '#title' => t('Maximum preset height (pixels)'), - '#default_value' => variable_get('imagecache_auto_max_height', '10000'), - '#size' => 10, - '#maxlength' => 64, - '#description' => t('The maximum height an automatically created ImageCache preset can have.'), - ); - - $form['imagecache_auto_max_presets'] = array( - '#type' => 'textfield', - '#title' => t('Maximum number of presets'), - '#default_value' => variable_get('imagecache_auto_max_presets', '250'), - '#size' => 10, - '#maxlength' => 64, - '#description' => t('The maximum number of total imagecache presets before ImageCache auto refuses to create additional presets. This might prevent abuses from malicious clients.'), - ); - - return system_settings_form($form); -} - diff --git a/imagecache_auto.inc b/imagecache_auto.inc deleted file mode 100644 index 78c5751..0000000 --- a/imagecache_auto.inc +++ /dev/null @@ -1,142 +0,0 @@ -<?php -/** - * @file - * ImageCache functions. - */ - -/** - * Create ImageCache profiles for common display resolutions. - */ -function imagecache_auto_create_presets() { - $presets = imagecache_auto_presets(); - foreach ($presets as $options) { - imagecache_auto_create_preset($options); - } -} - -/** - * Create an ImageCache preset. - * - * @param $options - * Preset options. - * - * @see http://drupal.org/node/558664 - */ -function imagecache_auto_create_preset($options) { - // Set preset name - if (isset($options['name'])) { - $name = $options['name']; - } - else { - $name = $options['width'] .'x'. $options['height']; - } - - // Check if preset already exists. - $preset = imagecache_preset_by_name($name); - if (!empty($preset)) { - return; - } - - // Check if maximum number of presets was reached. - $max_presets = (int) variable_get('imagecache_auto_max_presets', '250'); - if (imagecache_auto_count_presets() + 1 > $max_presets) { - $message = 'Maximum number of imagecache presets reached. Please consider increasing the max number of presets.'; - watchdog('imagecache_auto', $message, array(), WATCHDOG_ERROR); - return; - } - - // Create a preset. - $preset = imagecache_preset_save(array('presetname' => $name)); - - // Set operation name. - if (isset($options['action'])) { - $operation = $options['action']; - } - else { - $operation = 'imagecache_scale_and_crop'; - } - - // Add preset actions. - $action = new stdClass(); - $action->presetid = $preset['presetid']; - $action->module = 'imagecache'; - $action->action = $operation; - $action->data = array('width' => $options['width'], 'height' => $options['height']); - drupal_write_record('imagecache_action', $action); -} - -/** - * Delete an ImageCache preset. - * - * @param $options - * Preset options. - */ -function imagecache_auto_delete_preset($options) { - // Set preset name. - if (isset($options['name'])) { - $name = $options['name']; - } - else { - $name = $options['width'] .'x'. $options['height']; - } - - // Check if preset exists. - $preset = imagecache_preset_by_name($name); - if (!empty($preset)) { - imagecache_preset_delete(imagecache_preset_by_name($name)); - } -} - -/** - * Update imagecache presets. - * - * @param $old - * Old presets to be deleted. - * - * @param $new - * New presets to be created. - */ -function imagecache_auto_presets_update($old = array(), $new = NULL) { - // Remove old presets. - foreach ($old as $options) { - imagecache_auto_delete_preset($options); - } - - if ($new == NULL) { - imagecache_auto_create_presets(); - } - else { - // Create new presets. - foreach ($new as $options) { - imagecache_auto_create_preset($options); - } - } -} - -/** - * Return an array of presets. - * - * @see http://en.wikipedia.org/wiki/List_of_common_resolutions - */ -function imagecache_auto_presets() { - $presets = array(); - foreach (module_implements('imagecache_auto_presets') as $module) { - $presets = array_merge($presets, module_invoke($module, 'imagecache_auto_presets')); - } - - return $presets; -} - -/** - * Count number of existing imagecache presets. - * - * @return - * Number of existing presets. - */ -function imagecache_auto_count_presets() { - $query = 'SELECT COUNT(presetid) AS count FROM {imagecache_preset}'; - $result = db_query($query); - $count = db_fetch_object($result); - return $count->count; -} - diff --git a/imagecache_auto.info b/imagecache_auto.info deleted file mode 100644 index 5d0cebe..0000000 --- a/imagecache_auto.info +++ /dev/null @@ -1,7 +0,0 @@ -name = ImageCache Auto -description = Creates ImageCache presets on the fly. -core = 6.x -package = ImageCache -version = "6.x-0.1" -dependencies[] = imagecache - diff --git a/imagecache_auto.module b/imagecache_auto.module deleted file mode 100644 index 47a3690..0000000 --- a/imagecache_auto.module +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * @file - * ImageCache Auto. - * - * Create ImageCache presets on the fly. - */ - -/** - * Implements hook_menu() - */ -function imagecache_auto_menu() { - $items = array(); - - $items['admin/build/imagecache/auto'] = array( - 'title' => 'ImageCache Auto', - 'description' => 'ImageCache Auto settings.', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('imagecache_auto_admin_settings'), - 'access arguments' => array('administer site configuration'), - 'type' => MENU_LOCAL_TASK, - 'file' => 'imagecache_auto.admin.inc', - ); - - $items[file_directory_path() . '/imagecache_auto'] = array( - 'page callback' => 'imagecache_auto', - 'access callback' => TRUE, - 'type' => MENU_CALLBACK, - ); - - return $items; -} - -/** - * Automatically create ImageCache presets. - */ -function imagecache_auto() { - include_once('imagecache_auto.inc'); - - $max_width = (int) variable_get('imagecache_auto_max_width', '10000'); - $max_height = (int) variable_get('imagecache_auto_max_height', '10000'); - $args = func_get_args(); - $options = array( - 'width' => (int) check_plain(array_shift($args)), - 'height' => (int) check_plain(array_shift($args)), - 'path' => implode('/', $args), - ); - - // Validation. - if ($options['width'] == NULL || $options['width'] < 0 || $options['width'] > $max_width) { - drupal_not_found(); - } - elseif ($options['height'] == NULL || $options['height'] < 0 || $options['height'] > $max_height) { - drupal_not_found(); - } - - // Make sure that the preset exists. - imagecache_auto_create_preset($options); - - // Redirect to the image cache image version. - $preset = $options['width'] . 'x' . $options['height']; - $path = file_directory_path() . '/imagecache/'. $preset . '/' . $options['path']; - drupal_goto($path); -} - |