Advertisement
Guest User

dynpicwatermark.php

a guest
Dec 17th, 2011
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 23.68 KB | None | 0 0
  1. <?php
  2. /*
  3. Plugin Name: DynPicWaterMark
  4. Plugin URI: http://wordpress.org/extend/plugins/dynpicwatermark
  5. Description: DynPicWaterMark Plugin creates dynamic watermarks without changing original uploaded images
  6. Version: 1.22
  7. Author: Rafael Batista Lorenzoni (v1.22 by David Steel)
  8. Author URI: https://sites.google.com/site/rlorenzoni/
  9. License: GPL2
  10. */
  11. /*  Copyright 2010  Rafael Batista Lorenzoni  (email : r.lorenzoni@gmail.com)
  12.  
  13.     This program is free software; you can redistribute it and/or modify
  14.     it under the terms of the GNU General Public License, version 2, as
  15.     published by the Free Software Foundation.
  16.  
  17.     This program is distributed in the hope that it will be useful,
  18.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.     GNU General Public License for more details.
  21.  
  22.     You should have received a copy of the GNU General Public License
  23.     along with this program; if not, write to the Free Software
  24.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  25. */
  26.  
  27. function dynpicwatermark_scape_regex_specials($string_to_scape_chars) {
  28.     return preg_replace("/([\/\\\.\[\]\^\$])/i", "\\\\$1", $string_to_scape_chars);
  29. }
  30.  
  31. function dynpicwatermark_wp_option_upload_path_get(){
  32.     if (get_option('upload_path') == false) {
  33.         $dynpicwatermark_wp_option_upload_path = 'wp-content/uploads';
  34.     } else {
  35.         $dynpicwatermark_wp_option_upload_path = get_option('upload_path');
  36.     }
  37.     return $dynpicwatermark_wp_option_upload_path;
  38. }
  39.  
  40. function dynpicwatermark_get_attached_file($file){
  41.     $pattern     = "/(" .dynpicwatermark_scape_regex_specials(dynpicwatermark_wp_option_upload_path_get()). "\/)([^\.]*\.)(jpg|gif|jpeg|png)/i";
  42.     $replacement = 'wp-content/plugins/dynpicwatermark/DynPicWaterMark_ImageViewer.php?path=$2$3';
  43.  
  44.     $file = preg_replace($pattern, $replacement, $file);
  45.     return $file;
  46. }
  47.  
  48. add_filter('get_attached_file', 'dynpicwatermark_get_attached_file',0);
  49.  
  50. function dynpicwatermark_autoredirect_watermark ($content) {
  51.  
  52.     if (get_option('upload_path') == false) {
  53.         $dynpicwatermark_wp_option_upload_path = 'wp-content/uploads';
  54.     } else {
  55.         $dynpicwatermark_wp_option_upload_path = get_option('upload_path');
  56.     }
  57.  
  58.     if (get_option('dynpicwatermark_mark_any_image') == 'true') {
  59.         $pattern     = "/(<img[^>]*src=\"" . dynpicwatermark_scape_regex_specials(get_option('siteurl')) . "\/)(" .dynpicwatermark_scape_regex_specials($dynpicwatermark_wp_option_upload_path). "\/)([^\.]*\.)(jpg|jpeg|png)/i";
  60.         $replacement = '$1wp-content/plugins/dynpicwatermark/DynPicWaterMark_ImageViewer.php?path=$3$4';
  61.     } else {
  62.         $pattern     = "/(<a[^>]*href=)([^>]*wp-content\/plugins\/dynpicwatermark\/DynPicWaterMark_ImageViewer.php)(\?position=)?([N|T|M|B]+[N|L|C|R]+)?(&amp;|\?|&)+(path=[^\"]*\")([^>]*>[^<]*<img[^>]*src=)(\"[^\"]*\")([^>]*>)/i";
  63.         $replacement = '$1$2$3$4$5$6$7$2?position=$4&$6$9';
  64.     }
  65.  
  66.     $content = preg_replace($pattern, $replacement, $content);
  67.     $content = str_replace("plugins/DynPicWaterMark/DynPicWaterMark_ImageViewer", "plugins/dynpicwatermark/DynPicWaterMark_ImageViewer", $content);
  68.  
  69.     return $content;
  70. }
  71.  
  72. add_filter('get_the_content', 'dynpicwatermark_autoredirect_watermark', 999,1);
  73. add_filter('the_content', 'dynpicwatermark_autoredirect_watermark', 999,1);
  74. add_filter('the_excerpt', 'dynpicwatermark_autoredirect_watermark', 999,1);
  75. add_filter('the_editor_content', 'dynpicwatermark_autoredirect_watermark', 1);
  76. add_filter('the_editor', 'dynpicwatermark_autoredirect_watermark', 1);
  77. add_filter('post_thumbnail_html', 'dynpicwatermark_autoredirect_watermark', 999);
  78.  
  79. function dynpicwatermark_image_attachment_fields_to_edit_get_alert_msg() {
  80.     $message = '';
  81.     if (get_option('dynpicwatermark_force_default_position') == 'true'){
  82.         $message = '<b>Note:</b> The Force default position option is active!<br>The positional options shown above will only take effect when this is turned off.';
  83.     }
  84. return $message;
  85. }
  86.  
  87. function dynpicwatermark_image_attachment_fields_to_edit($form_fields, $post) {
  88.  
  89.     if (get_option('upload_path') == false) {
  90.         $dynpicwatermark_wp_option_upload_path = 'wp-content/uploads';
  91.     } else {
  92.         $dynpicwatermark_wp_option_upload_path = get_option('upload_path');
  93.     }
  94.  
  95.     if ( isset( $post->ID ) ) {
  96.         if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
  97.             $alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
  98.             if ( empty($alt) )
  99.                 $alt = '';
  100.  
  101.             $form_fields['dynpicwatermark_marklocation'] = array(
  102.                 'label' => 'Watermark:',
  103.                 'input' => 'html',
  104.                 'html'  => "
  105.                 <table><tr>
  106.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='XX'>No watermark</td>
  107.                     <td><input type='radio' checked=yes onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='NN'>Default Position</td>
  108.                     <td>&nbsp;</td>
  109.                 </tr><tr>
  110.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='TL'>Top-Left</td>
  111.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='TC'>Top-Centre</td>
  112.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='TR'>Top-Right</td>
  113.                     </tr><tr>
  114.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='ML'>Middle-Left</td>
  115.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='MC'>Middle-Centre</td>
  116.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='MR'>Middle-Right</td>
  117.                     </tr><tr>
  118.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='BL'>Bottom-Left</td>
  119.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='BC'>Bottom-Centre</td>
  120.                     <td><input type='radio' onClick='dynpicwatermark_marklocation_change_pos$post->ID(this.value);' name='dynpicwatermark_marklocation_change_pos_rb_$post->ID' value='BR'>Bottom-Right</td>
  121.                 </tr><tr>
  122.                     <td colspan=3>
  123.                         <div style='color:rgb(255,0,0);'>
  124.                         " . dynpicwatermark_image_attachment_fields_to_edit_get_alert_msg() . "
  125.                         </div>
  126.                         <!--div style='cursor:pointer; color:rgb(0,0,204); overflow:hidden; text-decoration:underline;' name='dynpicwatermark_Show_image_preview_link$post->ID' onclick='dynpicwatermark_Show_image_preview_link_f$post->ID();'>
  127.                             Show marked image preview
  128.                         </div>
  129.                         <div name='dynpicwatermark_hide_image_preview_link$post->ID' style='overflow:hidden; height:1px; visibility:hidden;'>
  130.                             <div style='cursor:pointer; color:rgb(0,0,204); text-decoration:underline;' onclick='dynpicwatermark_hide_image_preview_link_f$post->ID();'>Hide marked image preview</div>
  131.                                 <img style='width:300px' name='dynpicwatermark_Show_image_preview_pic$post->ID' src=''>
  132.                         </div-->
  133.                         <div name='dynpicwatermark_Show_image_preview_link$post->ID'>
  134.                             <a class='button' onclick='dynpicwatermark_Show_image_preview_link_f$post->ID();'>Show Preview</a>
  135.                         </div>
  136.                         <div name='dynpicwatermark_hide_image_preview_link$post->ID' style='height:1px; visibility:hidden;'>
  137.                             <a class='button' onclick='dynpicwatermark_hide_image_preview_link_f$post->ID();'>Hide Preview</a><p>
  138.                             <img style='width:300px' name='dynpicwatermark_Show_image_preview_pic$post->ID' src=''>
  139.                         </div>
  140.                     </td>
  141.                 </tr></table>
  142.                 <script type='text/javascript'>
  143.  
  144.                     function dynpicwatermark_Show_image_preview_link_f$post->ID(newpos) {
  145.                         var dynpicwatermark_Show_image_preview_link=document.getElementsByName('dynpicwatermark_Show_image_preview_link$post->ID').item(0);
  146.                         var dynpicwatermark_Hide_image_preview_link=document.getElementsByName('dynpicwatermark_hide_image_preview_link$post->ID').item(0);
  147.                         dynpicwatermark_Show_image_preview_link.style.visibility='hidden';
  148.                         dynpicwatermark_Show_image_preview_link.style.height='1px';
  149.                         dynpicwatermark_Hide_image_preview_link.style.visibility='visible';
  150.                         dynpicwatermark_Hide_image_preview_link.style.height='auto';
  151.                     }
  152.  
  153.                     function dynpicwatermark_hide_image_preview_link_f$post->ID(newpos) {
  154.                         var dynpicwatermark_Show_image_preview_link=document.getElementsByName('dynpicwatermark_Show_image_preview_link$post->ID').item(0);
  155.                         var dynpicwatermark_Hide_image_preview_link=document.getElementsByName('dynpicwatermark_hide_image_preview_link$post->ID').item(0);
  156.                         dynpicwatermark_Show_image_preview_link.style.visibility='visible';
  157.                         dynpicwatermark_Show_image_preview_link.style.height='auto';
  158.                         dynpicwatermark_Hide_image_preview_link.style.visibility='hidden';
  159.                         dynpicwatermark_Hide_image_preview_link.style.height='1px';
  160.                     }
  161.  
  162.                     function dynpicwatermark_marklocation_change_pos$post->ID(newpos) {
  163.                        var dynpicwatermark_marklocation_url=document.getElementsByName('attachments[$post->ID][url]').item(0);
  164.                        var dynpicwatermark_image_preview_pic=document.getElementsByName('dynpicwatermark_Show_image_preview_pic$post->ID').item(0);
  165.                        if (newpos == 'XX') {
  166.                            dynpicwatermark_marklocation_url.value=dynpicwatermark_marklocation_url.value.replace(/([&?])position=../i,'$1position=XX');
  167.                            dynpicwatermark_marklocation_url.value=dynpicwatermark_marklocation_url.value.replace('wp-content/plugins/dynpicwatermark/DynPicWaterMark_ImageViewer.php?position=XX&path=','" . $dynpicwatermark_wp_option_upload_path . "/');
  168.                        } else {
  169.                            dynpicwatermark_marklocation_url.value=dynpicwatermark_marklocation_url.value.replace('" . $dynpicwatermark_wp_option_upload_path . "/','wp-content/plugins/dynpicwatermark/DynPicWaterMark_ImageViewer.php?position=NN&path=');
  170.                            dynpicwatermark_marklocation_url.value=dynpicwatermark_marklocation_url.value.replace(/([&?])position=../i,'$1position='+newpos);
  171.                        }
  172.                        dynpicwatermark_image_preview_pic.src=dynpicwatermark_marklocation_url.value;
  173.                     }
  174.                     dynpicwatermark_marklocation_change_pos$post->ID('NN');
  175.                 </script>
  176.                 "
  177.             );
  178.  
  179.         }
  180.     }
  181.     fclose($fh);
  182.     return $form_fields;
  183. }
  184.  
  185. add_filter('attachment_fields_to_edit', 'dynpicwatermark_image_attachment_fields_to_edit', 10, 2);
  186.  
  187. add_action('admin_menu', 'dynpicwatermark_plugin_menu');
  188.  
  189. function dynpicwatermark_plugin_menu() {
  190.     add_options_page('DynPicWatermark Options', 'DynPicWatermark', 'administrator', __FILE__, 'dynpicwatermark_plugin_options', plugins_url('/water.png', __FILE__));
  191.  
  192.     //call register settings function
  193.     add_action( 'admin_init', 'dynpicwatermark_register_mysettings' );
  194. }
  195.  
  196. function dynpicwatermark_register_mysettings() {
  197.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_watermark_file' );
  198.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_size_type' );
  199.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_size_value' );
  200.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_default_position' );
  201.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_force_default_position' );
  202.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_mark_any_image' );
  203.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_memory_limit' );
  204.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_offset' );
  205.     register_setting( 'dynpicwatermark_group', 'dynpicwatermark_debugmode' );
  206. }
  207.  
  208. function dynpicwatermark_plugin_options() {
  209. ?>
  210. <div class="wrap">
  211. <div id="icon-options-general" class="icon32"><br /></div>
  212. <h2>DynPicWatermark</h2>
  213. <?php
  214. if (get_option('upload_path') == false) {
  215.         $dynpicwatermark_wp_option_upload_path = 'wp-content/uploads';
  216.     } else {
  217.         $dynpicwatermark_wp_option_upload_path = get_option('upload_path');
  218.     }
  219.  
  220. if (isset($arquivo)) // Verificamos se a vari�vel "arquivo" existe
  221. {
  222. $nome = rand(00,9999); // Aqui criamos um n�mero rand�mico, para utilizarmos como nome do arquivo
  223. $dir="up/"; //Esse � o diret�rio onde ficar� os arquivos enviados, lembre-se de cri�-lo. Este script n�o cria diret�rios
  224.  
  225. if (is_uploaded_file($arquivo)) // Verificamos se existe algum arquivo na vari�vel "Arquivo"
  226. { move_uploaded_file($arquivo,$dir.$nome.$arquivo_name); // Aqui, efetuamos o upload, propriamente dito
  227.  echo "Enviado<br>"; // Caso d� tudo certo, imprimi na tela "enviado"
  228. }else{
  229.  echo "erro"; // Caso ocorra algum erro, imprimi na tela "erro"
  230. }
  231. }
  232.  
  233. ?> DynPicWatermark plugin (amended by David Steel, October 2011) <span class="description">Image upload path:<code><?php echo $dynpicwatermark_wp_option_upload_path; ?></code></span>
  234.  
  235. <script type='text/javascript'>
  236.     function dynpicwatermark_watermark_preview_refresh(newmark) {
  237.         var dynpicwatermark_watermark_preview_image=document.getElementsByName('dynpicwatermark_watermark_preview').item(0);
  238.         dynpicwatermark_watermark_preview_image.src='<?php echo get_option('siteurl'); ?>/wp-content/plugins/dynpicwatermark/watermarks/'+newmark;
  239.         var dynpicwatermark_watermark_preview_label_div=document.getElementsByName('dynpicwatermark_watermark_preview_label').item(0);
  240.         dynpicwatermark_watermark_preview_label_div.innerHTML=newmark;
  241.  
  242.     }
  243. </script>
  244.  
  245. <form method="post" action="options.php">
  246.     <?php settings_fields( 'dynpicwatermark_group' ); ?>
  247.     <table class="form-table">
  248.         <tr valign="top">
  249.         <th scope="row">Watermark Pictures</th>
  250.         <td>
  251.         <span class="description">Note: watermark images should be manualy uploaded to <code>wp-content/plugins/dynpicwatermark/watermarks</code></span>
  252.         <div style='width:700px;'>
  253.             <div style='border: 2px black solid; text-align:center; width:320px; float:left;'>
  254.                 <div style='height:20px'>
  255.                 Current Watermark Picture
  256.                 </div>
  257.                 <img style='width:200px' src="<?php echo get_option('siteurl'); ?>/wp-content/plugins/dynpicwatermark/watermarks/<?php echo get_option('dynpicwatermark_watermark_file');?>"><br>
  258.                 <span class="description"><?php echo get_option('dynpicwatermark_watermark_file');?></span>
  259.             </div>
  260.             <div style='border: 2px black solid; text-align:center; width:320px; float:right;'>
  261.                 <div style='height:20px'>
  262.                 Preview selected new watermark: <select name="dynpicwatermark_watermark_file" onchange='dynpicwatermark_watermark_preview_refresh(this.value);'>
  263.  
  264.                 <?php
  265.                     $dynpicwatermark_watermark_file_dir = dir(dirname(__FILE__).'/watermarks/');
  266.                     while (false !== ($dynpicwatermark_watermark_file_dir_entry = $dynpicwatermark_watermark_file_dir->read())) {
  267.                         if ($dynpicwatermark_watermark_file_dir_entry <> '..' and $dynpicwatermark_watermark_file_dir_entry <> '.' and
  268.                             $dynpicwatermark_watermark_file_dir_entry <> preg_replace("/(png)$/i",'',$dynpicwatermark_watermark_file_dir_entry) ){
  269.                         ?>
  270.                         <option value="<?php echo $dynpicwatermark_watermark_file_dir_entry; ?>"<?php if (get_option('dynpicwatermark_watermark_file') == $dynpicwatermark_watermark_file_dir_entry) { echo ' Selected';} ?>><?php echo $dynpicwatermark_watermark_file_dir_entry; ?></option>
  271.                         <?php
  272.                         }
  273.                     }
  274.                     $dynpicwatermark_watermark_file_dir->close();
  275.                 ?>
  276.  
  277.                 </select>
  278.                 </div>
  279.                 <img style='width:200px' id='dynpicwatermark_watermark_preview' name='dynpicwatermark_watermark_preview' src="<?php echo get_option('siteurl'); ?>/wp-content/plugins/dynpicwatermark/watermarks/<?php echo get_option('dynpicwatermark_watermark_file');?>"><br>
  280.                 <span class="description"><div name="dynpicwatermark_watermark_preview_label" id="dynpicwatermark_watermark_preview_label"><?php echo get_option('dynpicwatermark_watermark_file');?></div></span>
  281.             </div>
  282.         </div>
  283.         </td>
  284.  
  285.         </tr>
  286.         <tr valign="top">
  287.         <th scope="row">Watermark size type</th>
  288.         <td><select name="dynpicwatermark_size_type">
  289.             <option value="W"<?php if (get_option('dynpicwatermark_size_type') == 'W') { echo ' Selected';} ?>>Fixed Width</option>
  290.             <option value="W%"<?php if (get_option('dynpicwatermark_size_type') == 'W%') { echo ' Selected';} ?>>% of Image Width</option>
  291.             <option value="H"<?php if (get_option('dynpicwatermark_size_type') == 'H') { echo ' Selected';} ?>>Fixed Height</option>
  292.             <option value="H%"<?php if (get_option('dynpicwatermark_size_type') == 'H%') { echo ' Selected';} ?>>% of Image Height</option>
  293.             <option value="O"<?php if (get_option('dynpicwatermark_size_type') == 'O') { echo ' Selected';} ?>>Watermark Original size</option>
  294.         </select></td>
  295.         </tr>
  296.         <tr valign="top">
  297.         <th scope="row">Watermark size value</th>
  298.         <td><input type="text" name="dynpicwatermark_size_value" maxlength="4" size="4" value="<?php echo get_option('dynpicwatermark_size_value'); ?>" />
  299.         <span class="description">This depends on the Watermark size type and <u>must</u> be a pixel value or a percentage (without the '%' sign!).<br>
  300.         Only leave blank if Watermark size type is set to 'Watermark original size'.</span>
  301.         </td>
  302.         </tr>
  303.         <tr valign="top">
  304.         <th scope="row">Watermark default position</th>
  305.         <td><select name="dynpicwatermark_default_position">
  306.             <option value="TL"<?php if (get_option('dynpicwatermark_default_position') == 'TL') { echo ' Selected';} ?>>Top-Left</option>
  307.             <option value="TC"<?php if (get_option('dynpicwatermark_default_position') == 'TC') { echo ' Selected';} ?>>Top-Centre</option>
  308.             <option value="TR"<?php if (get_option('dynpicwatermark_default_position') == 'TR') { echo ' Selected';} ?>>Top-Right</option>
  309.             <option value="ML"<?php if (get_option('dynpicwatermark_default_position') == 'ML') { echo ' Selected';} ?>>Middle-Left</option>
  310.             <option value="MC"<?php if (get_option('dynpicwatermark_default_position') == 'MC') { echo ' Selected';} ?>>Middle-Centre</option>
  311.             <option value="MR"<?php if (get_option('dynpicwatermark_default_position') == 'MR') { echo ' Selected';} ?>>Middle-Right</option>
  312.             <option value="BL"<?php if (get_option('dynpicwatermark_default_position') == 'BL') { echo ' Selected';} ?>>Bottom-Left</option>
  313.             <option value="BC"<?php if (get_option('dynpicwatermark_default_position') == 'BC') { echo ' Selected';} ?>>Bottom-Centre</option>
  314.             <option value="BR"<?php if (get_option('dynpicwatermark_default_position') == 'BR') { echo ' Selected';} ?>>Bottom-Right</option>
  315.         </select></td>
  316.         </tr>
  317.  
  318.         <tr valign="top">
  319.         <th scope="row">Watermark offset value</th>
  320.         <td><input type="text" name="dynpicwatermark_offset" maxlength="3" size="3" value="<?php echo get_option('dynpicwatermark_offset'); ?>" />
  321.         <span class="description">This is the number of pixels that a watermark is offset from the edge of the image (max 100).</span>
  322.         </td>
  323.         </tr>
  324.  
  325.         <tr valign="top">
  326.         <th scope="row">Force default position?</th>
  327.         <td><select name="dynpicwatermark_force_default_position">
  328.             <option width="30" style="width: 30px" value="true"<?php if (get_option('dynpicwatermark_force_default_position') == 'true') { echo ' Selected';} ?>>Yes</option>
  329.             <option value="false"<?php if (get_option('dynpicwatermark_force_default_position') == 'false') { echo ' Selected';} ?>>No</option>
  330.         </select>
  331.         <span class="description">When set to Yes, the defined Watermark default position will be used and this will override the position selected on initial image insertion.</span>
  332.         </td>
  333.         </tr>
  334.         <tr valign="top">
  335.         <th scope="row">Watermark all images?</th>
  336.         <td><select name="dynpicwatermark_mark_any_image">
  337.             <option width="30" style="width: 30px" value="true"<?php if (get_option('dynpicwatermark_mark_any_image') == 'true') { echo ' Selected';} ?>>Yes</option>
  338.             <option value="false"<?php if (get_option('dynpicwatermark_mark_any_image') == 'false') { echo ' Selected';} ?>>No</option>
  339.         </select>
  340.         <span class="description">By default, a watermark is only added to images where a watermark was specified on initial image insertion. Enabling this will watermark every image of every post.</span>
  341.         </td>
  342.         </tr>
  343.         <tr valign="top">
  344.             <th scope="row">Debug mode</th>
  345.             <td><select name="dynpicwatermark_debugmode"
  346.                     <?php
  347.                         $logfolder = WP_PLUGIN_DIR."/dynpicwatermark/logs";
  348.                         if (!is_dir($logfolder) || !is_writable($logfolder)) {
  349.                             echo ' Disabled';
  350.                             }
  351.                     ?>
  352.                 >
  353.                 <option width="30" style="width: 30px" value="true"<?php if (get_option('dynpicwatermark_debugmode') == 'true') { echo ' Selected';} ?>>On</option>
  354.                 <option value="false"<?php if (get_option('dynpicwatermark_debugmode') == 'false') { echo ' Selected';} ?>>Off</option>
  355.                 </select>
  356.                 <span class="description">
  357.                     <?php
  358.                         $logfolder = WP_PLUGIN_DIR."/dynpicwatermark/logs";
  359.                         if (!is_dir($logfolder) || !is_writable($logfolder)) {
  360.                             echo 'Option unavailable as plugins/dynpicwatermark/logs folder is not writeable - chmod this to 777';
  361.                         } else {
  362.                             echo 'When set to On, a trace.log file is created in the plugins/dynpicwatermark/logs folder.';
  363.                         }
  364.                     ?>
  365.                 </span>
  366.             </td>
  367.         </tr>
  368.         <tr valign="top">
  369.         <th scope="row">Memory limit (Mb):</th>
  370.         <td><select name="dynpicwatermark_memory_limit">
  371.             <option width="140" style="width: 140px" value="0"<?php if (get_option('dynpicwatermark_memory_limit')+0 == 0) { echo ' Selected';} ?>>General Php.ini value</option>
  372.             <option value="16"<?php if (get_option('dynpicwatermark_memory_limit')+0 == 16) { echo ' Selected';} ?>>16</option>
  373.             <option value="32"<?php if (get_option('dynpicwatermark_memory_limit')+0 == 32) { echo ' Selected';} ?>>32</option>
  374.             <option value="64"<?php if (get_option('dynpicwatermark_memory_limit')+0 == 64) { echo ' Selected';} ?>>64</option>
  375.             <option value="128"<?php if (get_option('dynpicwatermark_memory_limit')+0 == 128) { echo ' Selected';} ?>>128</option>
  376.         </select><br>
  377.         <?php
  378.             $dynpicwatermark_memory_limit_value = get_option('dynpicwatermark_memory_limit')+0;
  379.             if ($dynpicwatermark_memory_limit_value == 0){
  380.                 unlink(dirname(__FILE__).'/php.ini');
  381.             } else {
  382.                 $dynpicwatermark_local_phpini_file = fopen(dirname(__FILE__).'/php.ini', 'w');
  383.                 fwrite($dynpicwatermark_local_phpini_file, '[PHP]');
  384.                 fwrite($dynpicwatermark_local_phpini_file, 'memory_limit = ' . $dynpicwatermark_memory_limit_value . 'M');
  385.                 fclose($dynpicwatermark_local_phpini_file);
  386.             }
  387.         ?>
  388.  
  389.             <span class="description"> General php.ini memory configuration: <?php echo ini_get("memory_limit"); ?> <br>
  390.                 <div  style="width:100%; height:25px;">DynPicWaterMark Viewer php.ini Configuration:<iframe scrolling="no" frameborder=0 marginheight=0 marginwidth=0 class="description" style="width:70px; height:25px; overflow:hidden;" src="<?php  echo get_option('siteurl').'/wp-content/plugins/dynpicwatermark/dynpicwatermark_memory_limit.php';?>"> </iframe><div>
  391.                 Only adjust memory limits if you have problems and you have checked everything else.
  392.                 Also, check if your server configuration permits having individual php.ini files for specific folders.
  393.                 Note that, in php, images are created pixel by pixel and this may result in file sizes that are larger size than the original image file size.
  394.             </span>
  395.         </td>
  396.         </tr>
  397.     </table>
  398.  
  399.     <p class="submit">
  400.     <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
  401.     </p>
  402.  
  403. </form>
  404. </div>
  405. <?php }
  406. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement