Make WordPress Core

Ticket #1834: iu.diff

File iu.diff, 40.5 KB (added by skeltoac, 18 years ago)
  • wp-includes/registration-functions.php

     
    5353        clean_user_cache($user_login);
    5454
    5555        update_usermeta( $user_id, 'first_name', $first_name);
    56         update_usermeta( $user_id, 'middle_name', $middle_name);
    5756        update_usermeta( $user_id, 'last_name', $last_name);
    5857        update_usermeta( $user_id, 'nickname', $nickname );
    5958        update_usermeta( $user_id, 'description', $description );
    6059        update_usermeta( $user_id, 'jabber', $jabber );
    6160        update_usermeta( $user_id, 'aim', $aim );
    6261        update_usermeta( $user_id, 'yim', $yim );
    63         update_usermeta( $user_id, 'flickr_username', $flickr_username );
    6462       
    65        
    6663        if ( !$update ) {
    6764                $user = new WP_User($user_id);
    6865                $user->set_role(get_settings('default_role'));
     
    9289                $plaintext_pass = $userdata['user_pass'];
    9390                $userdata['user_pass'] = md5($userdata['user_pass']);
    9491        }
    95        
     92
    9693        // Merge old and new fields with new fields overwriting old ones.
    9794        $userdata = array_merge($user, $userdata);
    9895        $user_id = wp_insert_user($userdata);
     
    125122}
    126123
    127124
    128 ?>
    129  No newline at end of file
     125?>
  • wp-admin/inline-uploading.php

     
    184184        <div id='popup$i' class='popup'>
    185185                <a id="L$i" onclick="toggleLink($i);return false;" href="javascript:void();">$__subpost_on</a>
    186186                <a id="I$i" onclick="if($thumb)toggleImage($i);else alert('$__nothumb');return false;" href="javascript:void();">$thumbtext</a>
    187                 <a onclick="return confirm('$__confirmdelete')" href="image-uploading.php?action=delete&amp;object=$object&amp;all=$all&amp;start=$start&amp;post=$post">$__delete</a>
     187                <a onclick="return confirm('$__confirmdelete')" href="<?php echo basename(__FILE__); ?>?action=delete&amp;object=$object&amp;all=$all&amp;start=$start&amp;post=$post">$__delete</a>
    188188                <a onclick="popup.style.display='none';return false;" href="javascript:void()">$__close</a>
    189189        </div>
    190190        <a id="link$i" class="imagelink" href="$href" onclick="imagePopup($i);return false;" title="{$image['post_title']}">
     
    200200
    201201break;
    202202
    203 case 'flickr':
    204 
    205 require_once ABSPATH . WPINC . '/class-snoopy.php';
    206 
    207 function flickr_api_call($method, $params = '') {
    208         $api_key = '7cd7b7dea9c9d3069caf99d12471008e';  // An API key reserved for WordPress
    209         $searchurl = 'http://www.flickr.com/services/rest/?method=' . $method . '&api_key=' . $api_key . '&' . $params;
    210         $client = new Snoopy();
    211         $client->agent = 'WordPress/Flickr Browser';
    212         $client->read_timeout = 2;
    213         $client->use_gzip = true;
    214         @$client->fetch($searchurl);
    215         return $client->results;
    216 }
    217 
    218 // How many images do we show? How many do we query?
    219 $num = 5;
    220 $double = $num * 2;
    221 
    222 $flickr_user_id = get_user_option('flickr_userid');
    223 if($flickr_user_id == '') {
    224         $flickr_username = get_user_option('flickr_username');
    225         $user_xml = flickr_api_call('flickr.people.findByUsername', "username={$flickr_username}");
    226         if(preg_match('/nsid="(.*?)">/', $user_xml, $matches)) {
    227                 $flickr_user_id = $matches[1];
    228         }
    229         else die("Failed to find Flickr ID for '$flickr_username'"); // Oh, dear - no Flickr user_id!
    230 
    231         // Store the found Flickr user_id in usermeta...
    232         // Don't forget on the options page to update the user_id along with the username!
    233         update_user_option($current_user->id, 'flickr_userid', $flickr_user_id, true);
    234 }
    235 
    236 // Fetch photo list from Flickr
    237 $ustart = $start + 1;
    238 //$photos_xml = flickr_api_call('flickr.photos.search', array('per_page' => $num,  'user_id' => $flickr_user_id));
    239 if($flickrtag == '') {
    240         $all = '0';
    241         $photos_xml = flickr_api_call('flickr.people.getPublicPhotos', "per_page={$num}&user_id={$flickr_user_id}&page={$ustart}");
    242 }
    243 else {
    244         $photos_xml = flickr_api_call('flickr.photos.search', "per_page={$num}&user_id={$flickr_user_id}&page={$ustart}&tags={$flickrtag}");
    245         $all = '0&flickrtag=' . $flickrtag;
    246 }
    247 //echo "<pre>" . htmlentities($photos_xml) . "</pre>";  // Displays the XML returned by Flickr for the photo list
    248 
    249 //Get Page Count
    250 preg_match('/<photos.*pages="([0-9]+)"/', $photos_xml, $page_counta);
    251 $page_count = $page_counta[1];
    252 if($page_count == 0) {
    253         $back = false;
    254         $next = false;
    255         break;
    256 }
    257 if($start < $page_count) $next = $start + 1; else $next = false;
    258 if($start > 0) $back = $start - 1; else $back = false;
    259 if($last != '') {
    260         $photos_xml = flickr_api_call('flickr.people.getPublicPhotos', "per_page={$num}&user_id={$flickr_user_id}&page={$page_count}");
    261         $back = $page_count -1;
    262         $next = false;
    263 }
    264 
    265 //Get Photos
    266 preg_match_all('/<photo.*?id="([0-9]+)".*?secret="([0-9a-f]+)".*?server="([0-9]+)".*?title="([^"]*)".*?\/>/', $photos_xml, $matches, PREG_SET_ORDER);
    267 foreach($matches as $match) {
    268         $img['post_title'] = $match[4];
    269 
    270         $sizes_xml = flickr_api_call('flickr.photos.getSizes', "photo_id={$match[1]}");
    271         preg_match_all('/<size.*?label="([^"]+)".*?width="([0-9]+)".*?height="([0-9]+)".*?source="([^"]+)".*?\/>/', $sizes_xml, $sizes, PREG_SET_ORDER);
    272 
    273         $max_size = '';
    274         foreach($sizes as $size) {
    275                 $img_size[$size[1]]['width'] = $size[2];
    276                 $img_size[$size[1]]['height'] = $size[3];
    277                 $img_size[$size[1]]['url'] = $size[4];
    278                 if($max_size == '' || $img_size[$size[1]]['width'] > $img_size[$max_size]['width']) {
    279                         $max_size = $size[1];
    280                 }
    281         }
    282 
    283         $images[] = array(
    284                 'post_title' => $match[4],
    285                 'thumbnail' => $img_size['Thumbnail']['url'],
    286                 'full' => $img_size[$max_size]['url'],
    287                 'href' => "http://flickr.com/photos/{$flickr_user_id}/{$match[1]}/",
    288                 'width' => $img_size['Thumbnail']['width'],
    289                 'height' => $img_size['Thumbnail']['height'],
    290                 'size_info' => $img_size,
    291         );
    292 }
    293 
    294 $current_flickr = ' class="current"';
    295 
    296 $__use_size = __('Use %s');
    297 $__close = __('CLOSE');
    298 
    299 $images_script .= "var flickr_src = new Array();\n";
    300 
    301 $i=0;
    302 foreach($images as $image) {
    303                 list($uwidth, $uheight) = get_udims($image['width'], $image['height']);
    304                 $xpadding = (128 - $uwidth) / 2;
    305                 $ypadding = (96 - $uheight) / 2;
    306                 $height_width = 'height="'.$uheight.'" width="'.$uwidth.'"';
    307                 $images_style .= "#target$i img { padding: {$ypadding}px {$xpadding}px; }\n";
    308                 $images_html .= "
    309                         <div id='target$i' class='imagewrap left'>
    310                                 <div id='popup$i' class='popup'>
    311                 ";
    312 
    313                 $images_script .= "flickr_src[$i] = new Array();\n";
    314                 foreach($image['size_info'] as $szkey => $size) {
    315                         $images_script .= "flickr_src[$i]['{$szkey}']= '{$size['url']}';\n";
    316                         $use = sprintf($__use_size, $szkey);
    317                         $prefix = ($szkey == 'Thumbnail') ? '<strong>':'';
    318                         $postfix = ($szkey == 'Thumbnail') ? '</strong>':'';
    319                         $images_html .= "<a id=\"I{$i}_{$szkey}\" onclick=\"toggleSize($i,'$szkey');return false;\" href=\"javascript:void();\">{$prefix}{$use}{$postfix}</a>\n";
    320                 }
    321                 $images_html .= "
    322                                         <a onclick=\"popup.style.display='none';return false;\" href=\"javascript:void()\">$__close</a>
    323                                 </div>
    324                                 <a id=\"link$i\" class=\"imagelink\" href=\"{$image['href']}\" onclick=\"imagePopup($i);return false;\" title=\"{$image['post_title']}\">
    325                                         <img id=\"image$i\" src=\"{$image['thumbnail']}\" alt=\"{$image['post_title']}\" $height_width />
    326                                 </a>
    327                         </div>
    328                 ";
    329                 $i++;
    330 }
    331 
    332 $images_width = ( count($images) * 133 ) + 5;
    333 
    334 break;
    335 
    336203default:
    337204die('This script was not meant to be called directly.');
    338205}
     
    395262                oi.innerHTML = thumbnailon;
    396263        }
    397264}
    398 function toggleSize(n,sz) {
    399         o = document.getElementById('image'+n);
    400         oi = document.getElementById('popup'+n);
    401         o.src = flickr_src[n][sz];
    402         if (!document.getElementsByTagName) return;
    403         var anchors = document.getElementsByTagName("a");
    404         var re_id = 'I'+n+'_'; // /i[0-9]+_.+/i;
    405         var re_strip = /<.*?>/i;
    406         for (var i=0; i< anchors.length; i++) {
    407                 var anchor = anchors[i];
    408                 if (anchor.getAttribute("href") && anchor.id.match(re_id))
    409                         anchor.innerHTML = anchor.innerHTML.replace(re_strip, '');
    410         }
    411         var anchor = document.getElementById('I'+n+'_'+sz);
    412         anchor.innerHTML = '<strong>' + anchor.innerHTML + '</strong>';
    413 }
    414265</script>
    415266<style type="text/css">
    416267body {
     
    547398background-color: #fff;
    548399color: #000;
    549400}
    550 #flickrtags {
    551         display: inline;
    552 }
    553 #flickrtags input {
    554         border:0px;
    555 }
    556 input#flickrtag {
    557         background-color: white;
    558         color: black;
    559         width:65px;
    560 }
    561 input#flickrsubmit {
    562         background-color: #dfe8f1;
    563         color: black;
    564 }
    565401</style>
    566402</head>
    567403<body onload="init()">
    568404<ul id="menu">
    569 <li<?php echo $current_1; ?>><a href="image-uploading.php?action=upload&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>">Upload Photo</a></li>
    570 <li<?php echo $current_flickr; ?>><a href="image-uploading.php?action=flickr&amp;post=<?php echo $post; ?>">Browse Flickr</a></li>
    571 <li<?php echo $current_2; ?>><a href="image-uploading.php?action=view&amp;post=<?php echo $post; ?>">Browse Attached</a></li>
    572 <li<?php echo $current_3; ?>><a href="image-uploading.php?action=view&amp;post=<?php echo $post; ?>&amp;all=true">Browse All</a></li>
     405<li<?php echo $current_1; ?>><a href="<?php echo basename(__FILE__); ?>?action=upload&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>"><?php _e('Upload File'); ?></a></li>
     406<li<?php echo $current_2; ?>><a href="<?php echo basename(__FILE__); ?>?action=view&amp;post=<?php echo $post; ?>"><?php _e('Browse Attached'); ?></a></li>
     407<li<?php echo $current_3; ?>><a href="<?php echo basename(__FILE__); ?>?action=view&amp;post=<?php echo $post; ?>&amp;all=true"><?php _e('Browse All'); ?></a></li>
    573408<li> </li>
    574409<?php if ( false !== $back ) : ?>
    575 <li class="spacer"><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=0" title="First">|&lt;</a></li>
    576 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $back; ?>" title="Back">&lt;&lt;</a></li>
     410<li class="spacer"><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=0" title="<?php _e('First'); ?>">|&lt;</a></li>
     411<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $back; ?>" title="<?php _e('Back'); ?>">&lt;&lt;</a></li>
    577412<?php else : ?>
    578413<li class="inactive spacer">|&lt;</li>
    579414<li class="inactive">&lt;&lt;</li>
    580415<?php endif; ?>
    581 
    582 <?php if($action == 'flickr') : ?>
    583 <form id="flickrtags" method="get"><?php echo sprintf(__('Tag: %s'), '<input type="text" id="flickrtag" name="flickrtag" value="' . $flickrtag . '" />'); ?><input id="flickrsubmit" type="submit" value="Filter" /><?php
    584 parse_str($_SERVER['QUERY_STRING'], $formquery);
    585 foreach($formquery as $k=>$v) if($k!='flickrtag') echo "<input type=\"hidden\" name=\"$k\" value=\"$v\" />";
    586 ?></form>
    587 <?php endif; ?>
    588 
    589416<?php if ( false !== $next ) : ?>
    590 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $next; ?>" title="Next">&gt;&gt;</a></li>
    591 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;last=true" title="Last">&gt;|</a></li>
     417<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $next; ?>" title="<?php _e('Next'); ?>">&gt;&gt;</a></li>
     418<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;last=true" title="<?php _e('Last'); ?>">&gt;|</a></li>
    592419<?php else : ?>
    593420<li class="inactive">&gt;&gt;</li>
    594421<li class="inactive">&gt;|</li>
    595422<?php endif; ?>
    596423</ul>
    597 <?php if ( $action == 'view' || $action == 'flickr' ) : ?>
     424<?php if ( $action == 'view' ) : ?>
    598425<span class="left tip"><?php _e('Drag and drop photos to post'); ?></span>
    599426<span class="right tip"><?php _e('Click photos for more options'); ?></span>
    600427<div id="wrap">
     
    603430</div>
    604431</div>
    605432<?php elseif ( $action == 'upload' ) : ?>
    606 <div class="center tip">Duplicated filenames will be numbered (photo.jpg, photo1.jpg, etc.)</div>
    607 <form enctype="multipart/form-data" id="uploadForm" method="POST" action="image-uploading.php" onsubmit="return validateImageName()">
    608 <label for="upload">Image:</label><input type="file" id="upload" name="image" onchange="validateImageName()" />
    609 <label for="title">Title:</label><input type="text" id="title" name="imgtitle" />
    610 <label for="descr">Description:</label><input type="textarea" name="descr" id="descr" value="" />
     433<div class="tip"></div>
     434<form enctype="multipart/form-data" id="uploadForm" method="POST" action="<?php echo basename(__FILE__); ?>" onsubmit="return validateImageName()">
     435<label for="upload"><?php _e('Image:'); ?></label><input type="file" id="upload" name="image" onchange="validateImageName()" />
     436<label for="title"><?php _e('Title:'); ?></label><input type="text" id="title" name="imgtitle" />
     437<label for="descr"><?php _e('Description:'); ?></label><input type="textarea" name="descr" id="descr" value="" />
    611438<input type="hidden" name="action" value="save" />
    612439<input type="hidden" name="post" value="<?php echo $post; ?>" />
    613440<input type="hidden" name="all" value="<?php echo $all; ?>" />
    614441<div id="buttons">
    615 <input type="submit" value="Upload" />
    616 <input type="button" value="Cancel" onclick="cancelUpload()" />
     442<input type="submit" value="<?php _e('Upload'); ?>" />
     443<input type="button" value="<?php _e('Cancel'); ?>" onclick="cancelUpload()" />
    617444</div>
    618445</form>
    619446<?php endif; ?>
  • wp-admin/wp-admin.css

     
    157157        padding: 3px;
    158158}
    159159
    160 #imageup {
     160#uploading {
    161161        border-style: none;
    162162        padding: 0px;
    163163        margin-bottom: 16px;
  • wp-admin/edit-page-form.php

     
    148148</p>
    149149
    150150<?php
    151 $frame_src = 'image-uploading.php?action=view&amp;post=' . ((0 == $post_ID) ? $temp_ID : $post_ID);
    152 $frame_src = apply_filters('upload_frame_src', $frame_src, ((0 == $post_ID) ? $temp_ID : $post_ID));
     151$uploading_iframe_ID = (0 == $post_ID ? $temp_ID : $post_ID);
     152$uploading_iframe_src = "inline-uploading.php?action=view&amp;post=$uploading_iframe_ID";
     153$uploading_iframe_src = apply_filters('uploading_iframe_src', $uploading_iframe_src);
     154if ( false != $uploading_iframe_src )
     155        echo '<iframe id="uploading" border="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
    153156?>
    154 <iframe border="0" src="<?php echo $frame_src; ?>" id="imageup"><?php _e('This feature requires iframe support.'); ?></iframe>
    155157
    156158<div id="advancedstuff" class="dbx-group">
    157159
  • wp-admin/edit-form-advanced.php

     
    3838        $pings .= '</ul>';
    3939}
    4040
    41 $saveasdraft = '<input name="save" type="submit" id="save" tabindex="6" value="' . __('Save and Continue Editing') . '" />';
     41$saveasdraft = '<input name="save" type="submit" id="save" tabindex="3" value="' . __('Save and Continue Editing') . '" />';
    4242
    4343if (empty($post->post_status)) $post->post_status = 'draft';
    4444
     
    150150edCanvas = document.getElementById('content');
    151151//-->
    152152</script>
     153<?php else : ?>
     154<script type="text/javascript">
     155<!--
     156// This code is meant to allow tabbing from Title to Post (TinyMCE).
     157if ( tinyMCE.isMSIE )
     158        document.getElementById('title').onkeydown = function (e)
     159                {
     160                        e = e ? e : window.event;
     161                        if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
     162                                var i = tinyMCE.selectedInstance;
     163                                if(typeof i ==  'undefined')
     164                                        return true;
     165                                tinyMCE.execCommand("mceStartTyping");
     166                                this.blur();
     167                                i.contentWindow.focus();
     168                                e.returnValue = false;
     169                                return false;
     170                        }
     171                }
     172else
     173        document.getElementById('title').onkeypress = function (e)
     174                {
     175                        e = e ? e : window.event;
     176                        if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
     177                                var i = tinyMCE.selectedInstance;
     178                                if(typeof i ==  'undefined')
     179                                        return true;
     180                                tinyMCE.execCommand("mceStartTyping");
     181                                this.blur();
     182                                i.contentWindow.focus();
     183                                e.returnValue = false;
     184                                return false;
     185                        }
     186                }
     187
     188//-->
     189</script>
    153190<?php endif; ?>
    154191
    155192<?php echo $form_pingback ?>
     
    158195
    159196<p class="submit"><?php echo $saveasdraft; ?> <input type="submit" name="submit" value="<?php _e('Save') ?>" style="font-weight: bold;" tabindex="4" />
    160197<?php
    161 if ( 'publish' != $post->post_status || 0 == $post_ID ) {
     198if ('publish' != $post_status || 0 == $post_ID) {
    162199?>
    163200<?php if ( current_user_can('publish_posts') ) : ?>
    164         <input name="publish" type="submit" id="publish" tabindex="6" accesskey="p" value="<?php _e('Publish') ?>" />
     201        <input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
    165202<?php endif; ?>
    166203<?php
    167204}
     
    171208
    172209<?php do_action('edit_form_advanced'); ?>
    173210
    174 <iframe border="0" src="image-uploading.php?action=view&amp;post=<?php echo 0 == $post_ID ? $temp_ID : $post_ID; ?>" id="imageup">This feature requires iframe support.</iframe>
     211<?php
     212$uploading_iframe_ID = (0 == $post_ID ? $temp_ID : $post_ID);
     213$uploading_iframe_src = "inline-uploading.php?action=view&amp;post=$uploading_iframe_ID";
     214$uploading_iframe_src = apply_filters('uploading_iframe_src', $uploading_iframe_src);
     215if ( false != $uploading_iframe_src )
     216        echo '<iframe id="uploading" border="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
     217?>
    175218
    176219<div id="advancedstuff" class="dbx-group" >
    177220
    178221<fieldset id="postexcerpt" class="dbx-box">
    179222<h3 class="dbx-handle"><?php _e('Optional Excerpt') ?></h3>
    180 <div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="7" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div>
     223<div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div>
    181224</fieldset>
    182225
    183226<fieldset class="dbx-box">
  • wp-admin/profile.php

     
    3333<p><label><?php _e('First name:') ?><br />
    3434<input type="text" name="first_name" value="<?php echo $profiledata->first_name ?>" /></label></p>
    3535
    36 <p><label><?php _e('Middle name:') ?><br />
    37 <input type="text" name="middle_name" value="<?php echo $profiledata->middle_name ?>" /></label></p>
    38 
    3936<p><label><?php _e('Last name:') ?><br />
    4037<input type="text" name="last_name"  value="<?php echo $profiledata->last_name ?>" /></label></p>
    4138
     
    5653<?php if ( !empty( $profiledata->first_name ) && !empty( $profiledata->last_name ) ) : ?>
    5754<option value="<?php echo $profiledata->first_name." ".$profiledata->last_name ?>"><?php echo $profiledata->first_name." ".$profiledata->last_name ?></option>
    5855<option value="<?php echo $profiledata->last_name." ".$profiledata->first_name ?>"><?php echo $profiledata->last_name." ".$profiledata->first_name ?></option>
    59 <?php if ( !empty( $profiledata->middle_name ) ) : ?>
    60 <option value="<?php echo $n = $profiledata->first_name." ".$profiledata->middle_name." ".$profiledata->last_name ?>"><?php echo $n ?></option>
    6156<?php endif; ?>
    62 <?php endif; ?>
    6357</select></label></p>
    6458</fieldset>
    6559
     
    7367<input type="text" name="url" value="<?php echo $profiledata->user_url ?>" />
    7468</label></p>
    7569
    76 <p><label><?php _e('Flickr Username:') ?><br />
    77 <input type="text" name="flickr_username" value="<?php echo $profiledata->flickr_username ?>" />
    78 </label></p>
    79 
    8070<p><label><?php _e('AIM:') ?><br />
    8171<input type="text" name="aim" value="<?php echo $profiledata->aim ?>" />
    8272</label></p>
  • wp-admin/image-uploading.php

     
    1 <?php
    2 
    3 require_once('admin.php');
    4 
    5 if (!current_user_can('edit_posts'))
    6         die(__('You do not have permission to edit posts.'));
    7 
    8 $wpvarstoreset = array('action', 'post', 'all', 'last', 'link', 'sort', 'start', 'imgtitle', 'descr', 'object', 'flickrtag');
    9 
    10 for ($i=0; $i<count($wpvarstoreset); $i += 1) {
    11         $wpvar = $wpvarstoreset[$i];
    12         if (!isset($$wpvar)) {
    13                 if (empty($_POST["$wpvar"])) {
    14                         if (empty($_GET["$wpvar"])) {
    15                                 $$wpvar = '';
    16                         } else {
    17                         $$wpvar = $_GET["$wpvar"];
    18                         }
    19                 } else {
    20                         $$wpvar = $_POST["$wpvar"];
    21                 }
    22         }
    23 }
    24 
    25 $post = (int) $post;
    26 $images_width = 1;
    27 
    28 function get_udims($width, $height) {
    29         if ( $height <= 96 && $width <= 128 )
    30                 return array($width, $height);
    31         elseif ( $width / $height > 4 / 3 )
    32                 return array(128, (int) ($height / $width * 128));
    33         else
    34                 return array((int) ($width / $height * 96), 96);
    35 }
    36 
    37 switch($action) {
    38 case 'delete':
    39 
    40 wp_delete_object($object);
    41 
    42 header("Location: ".basename(__FILE__)."?post=$post&all=$all&action=view&start=$start");
    43 die;
    44 
    45 case 'save':
    46 
    47 $overrides = array('action'=>'save');
    48 
    49 $file = wp_handle_upload($_FILES['image'], $overrides);
    50 
    51 if ( isset($file['error']) )
    52         die($file['error'] . '<a href="' . basename(__FILE__) . '?action=upload&post="' . $post . '">Back to Image Uploading</a>');
    53 
    54 $url = $file['url'];
    55 $file = $file['file'];
    56 $filename = basename($file);
    57 
    58 // Construct the object array
    59 $object = array(
    60         'post_title' => $imgtitle ? $imgtitle : $filename,
    61         'post_content' => $descr,
    62         'post_status' => 'object',
    63         'post_parent' => $post,
    64         'post_type' => $_FILES['image']['type'],
    65         'guid' => $url
    66         );
    67 
    68 // Save the data
    69 $id = wp_attach_object($object, $post);
    70 
    71 // Generate the object's postmeta.
    72 $imagesize = getimagesize($file);
    73 $imagedata['width'] = $imagesize['0'];
    74 $imagedata['height'] = $imagesize['1'];
    75 list($uwidth, $uheight) = get_udims($imagedata['width'], $imagedata['height']);
    76 $imagedata['hwstring_small'] = "height='$uheight' width='$uwidth'";
    77 $imagedata['file'] = $file;
    78 $imagedata['thumb'] = "thumb-$filename";
    79 
    80 add_post_meta($id, 'imagedata', $imagedata);
    81 
    82 if ( $imagedata['width'] * $imagedata['height'] < 3 * 1024 * 1024 ) {
    83         if ( $imagedata['width'] > 128 && $imagedata['width'] >= $imagedata['height'] * 4 / 3 )
    84                 $error = wp_create_thumbnail($file['file'], 128);
    85         elseif ( $imagedata['height'] > 96 )
    86                 $error = wp_create_thumbnail($file, 96);
    87 }
    88 
    89 header("Location: ".basename(__FILE__)."?post=$post&all=$all&action=view&last=true");
    90 die;
    91 
    92 case 'upload':
    93 
    94 $current_1 = ' class="current"';
    95 $back = $next = false;
    96 break;
    97 
    98 case 'view':
    99 
    100 // How many images do we show? How many do we query?
    101 $num = 5;
    102 $double = $num * 2;
    103 
    104 if ( $post && empty($all) ) {
    105         $and_post = "AND post_parent = '$post'";
    106         $current_2 = ' class="current"';
    107 } else {
    108         $current_3 = ' class="current"';
    109 }
    110 
    111 if ( $last )
    112         $start = $wpdb->get_var("SELECT count(ID) FROM $wpdb->posts WHERE post_status = 'object' AND left(post_type, 5) = 'image' $and_post") - $num;
    113 else
    114         $start = (int) $start;
    115 
    116 if ( $start < 0 )
    117         $start = 0;
    118 
    119 if ( '' == $sort )
    120         $sort = "ID";
    121 
    122 $images = $wpdb->get_results("SELECT ID, post_date, post_title, guid FROM $wpdb->posts WHERE post_status = 'object' AND left(post_type, 5) = 'image' $and_post ORDER BY $sort LIMIT $start, $double", ARRAY_A);
    123 
    124 if ( count($images) > $num ) {
    125         $next = $start + count($images) - $num;
    126 } else {
    127         $next = false;
    128 }
    129 
    130 if ( $start > 0 ) {
    131         $back = $start - $num;
    132         if ( $back < 1 )
    133                 $back = '0';
    134 } else {
    135         $back = false;
    136 }
    137 
    138 $i = 0;
    139 $uwidth_sum = 0;
    140 $images_html = '';
    141 $images_style = '';
    142 $images_script = '';
    143 if ( count($images) > 0 ) {
    144         $images = array_slice( $images, 0, $num );
    145         $__delete = __('DELETE');
    146         $__subpost_on = __('SUBPOST <strong>ON</strong>');
    147         $__subpost_off = __('SUBPOST <strong>OFF</strong>');
    148         $__thumbnail_on = __('THUMBNAIL <strong>ON</strong>');
    149         $__thumbnail_off = __('THUMBNAIL <strong>OFF</strong>');
    150         $__no_thumbnail = __('<del>THUMBNAIL</del>');
    151         $__close = __('CLOSE');
    152         $__confirmdelete = __('Delete this photo from the server?');
    153         $__nothumb = __('There is no thumbnail associated with this photo.');
    154         $images_script .= "subposton = '$__subpost_on';\nsubpostoff = '$__subpost_off';\n";
    155         $images_script .= "thumbnailon = '$__thumbnail_on';\nthumbnailoff = '$__thumbnail_off';\n";
    156         foreach ( $images as $key => $image ) {
    157                 $meta = get_post_meta($image['ID'], 'imagedata', true);
    158                 if (!is_array($meta)) {
    159                         wp_delete_object($image['ID']);
    160                         continue;
    161                 }
    162                 $image = array_merge($image, $meta);
    163                 if ( ($image['width'] > 128 || $image['height'] > 96) && !empty($image['thumb']) && file_exists(dirname($image['file']).'/'.$image['thumb']) ) {
    164                         $src = str_replace(basename($image['guid']), '', $image['guid']) . $image['thumb'];
    165                         $images_script .= "src".$i."a = '$src';\nsrc".$i."b = '".$image['guid']."';\n";
    166                         $thumb = 'true';
    167                         $thumbtext = $__thumbnail_on;
    168                 } else {
    169                         $src = $image['guid'];
    170                         $thumb = 'false';
    171                         $thumbtext = $__no_thumbnail;
    172                 }
    173                 list($image['uwidth'], $image['uheight']) = get_udims($image['width'], $image['height']);
    174                 $height_width = 'height="'.$image['uheight'].'" width="'.$image['uwidth'].'"';
    175                 $uwidth_sum += 128;
    176                 $xpadding = (128 - $image['uwidth']) / 2;
    177                 $ypadding = (96 - $image['uheight']) / 2;
    178                 $object = $image['ID'];
    179                 $images_style .= "#target$i img { padding: {$ypadding}px {$xpadding}px; }\n";
    180                 $href = get_subpost_link($object);
    181                 $images_script .= "href".$i."a = '$href';\nhref".$i."b = '{$image['guid']}';\n";
    182                 $images_html .= <<<HERE
    183 <div id='target$i' class='imagewrap left'>
    184         <div id='popup$i' class='popup'>
    185                 <a id="L$i" onclick="toggleLink($i);return false;" href="javascript:void();">$__subpost_on</a>
    186                 <a id="I$i" onclick="if($thumb)toggleImage($i);else alert('$__nothumb');return false;" href="javascript:void();">$thumbtext</a>
    187                 <a onclick="return confirm('$__confirmdelete')" href="image-uploading.php?action=delete&amp;object=$object&amp;all=$all&amp;start=$start&amp;post=$post">$__delete</a>
    188                 <a onclick="popup.style.display='none';return false;" href="javascript:void()">$__close</a>
    189         </div>
    190         <a id="link$i" class="imagelink" href="$href" onclick="imagePopup($i);return false;" title="{$image['post_title']}">
    191                 <img id='image$i' src='$src' alt='{$image['post_title']}' $height_width />
    192         </a>
    193 </div>
    194 HERE;
    195                 $i++;
    196         }
    197 }
    198 
    199 $images_width = $uwidth_sum + ( count($images) * 5 ) + 30;
    200 
    201 break;
    202 
    203 case 'flickr':
    204 
    205 require_once ABSPATH . WPINC . '/class-snoopy.php';
    206 
    207 function flickr_api_call($method, $params = '') {
    208         $api_key = '7cd7b7dea9c9d3069caf99d12471008e';  // An API key reserved for WordPress
    209         $searchurl = 'http://www.flickr.com/services/rest/?method=' . $method . '&api_key=' . $api_key . '&' . $params;
    210         $client = new Snoopy();
    211         $client->agent = 'WordPress/Flickr Browser';
    212         $client->read_timeout = 2;
    213         $client->use_gzip = true;
    214         @$client->fetch($searchurl);
    215         return $client->results;
    216 }
    217 
    218 // How many images do we show? How many do we query?
    219 $num = 5;
    220 $double = $num * 2;
    221 
    222 $flickr_user_id = get_user_option('flickr_userid');
    223 if($flickr_user_id == '') {
    224         $flickr_username = get_user_option('flickr_username');
    225         $user_xml = flickr_api_call('flickr.people.findByUsername', "username={$flickr_username}");
    226         if(preg_match('/nsid="(.*?)">/', $user_xml, $matches)) {
    227                 $flickr_user_id = $matches[1];
    228         }
    229         else die("Failed to find Flickr ID for '$flickr_username'"); // Oh, dear - no Flickr user_id!
    230 
    231         // Store the found Flickr user_id in usermeta...
    232         // Don't forget on the options page to update the user_id along with the username!
    233         update_user_option($current_user->id, 'flickr_userid', $flickr_user_id, true);
    234 }
    235 
    236 // Fetch photo list from Flickr
    237 $ustart = $start + 1;
    238 //$photos_xml = flickr_api_call('flickr.photos.search', array('per_page' => $num,  'user_id' => $flickr_user_id));
    239 if($flickrtag == '') {
    240         $all = '0';
    241         $photos_xml = flickr_api_call('flickr.people.getPublicPhotos', "per_page={$num}&user_id={$flickr_user_id}&page={$ustart}");
    242 }
    243 else {
    244         $photos_xml = flickr_api_call('flickr.photos.search', "per_page={$num}&user_id={$flickr_user_id}&page={$ustart}&tags={$flickrtag}");
    245         $all = '0&flickrtag=' . $flickrtag;
    246 }
    247 //echo "<pre>" . htmlentities($photos_xml) . "</pre>";  // Displays the XML returned by Flickr for the photo list
    248 
    249 //Get Page Count
    250 preg_match('/<photos.*pages="([0-9]+)"/', $photos_xml, $page_counta);
    251 $page_count = $page_counta[1];
    252 if($page_count == 0) {
    253         $back = false;
    254         $next = false;
    255         break;
    256 }
    257 if($start < $page_count) $next = $start + 1; else $next = false;
    258 if($start > 0) $back = $start - 1; else $back = false;
    259 if($last != '') {
    260         $photos_xml = flickr_api_call('flickr.people.getPublicPhotos', "per_page={$num}&user_id={$flickr_user_id}&page={$page_count}");
    261         $back = $page_count -1;
    262         $next = false;
    263 }
    264 
    265 //Get Photos
    266 preg_match_all('/<photo.*?id="([0-9]+)".*?secret="([0-9a-f]+)".*?server="([0-9]+)".*?title="([^"]*)".*?\/>/', $photos_xml, $matches, PREG_SET_ORDER);
    267 foreach($matches as $match) {
    268         $img['post_title'] = $match[4];
    269 
    270         $sizes_xml = flickr_api_call('flickr.photos.getSizes', "photo_id={$match[1]}");
    271         preg_match_all('/<size.*?label="([^"]+)".*?width="([0-9]+)".*?height="([0-9]+)".*?source="([^"]+)".*?\/>/', $sizes_xml, $sizes, PREG_SET_ORDER);
    272 
    273         $max_size = '';
    274         foreach($sizes as $size) {
    275                 $img_size[$size[1]]['width'] = $size[2];
    276                 $img_size[$size[1]]['height'] = $size[3];
    277                 $img_size[$size[1]]['url'] = $size[4];
    278                 if($max_size == '' || $img_size[$size[1]]['width'] > $img_size[$max_size]['width']) {
    279                         $max_size = $size[1];
    280                 }
    281         }
    282 
    283         $images[] = array(
    284                 'post_title' => $match[4],
    285                 'thumbnail' => $img_size['Thumbnail']['url'],
    286                 'full' => $img_size[$max_size]['url'],
    287                 'href' => "http://flickr.com/photos/{$flickr_user_id}/{$match[1]}/",
    288                 'width' => $img_size['Thumbnail']['width'],
    289                 'height' => $img_size['Thumbnail']['height'],
    290                 'size_info' => $img_size,
    291         );
    292 }
    293 
    294 $current_flickr = ' class="current"';
    295 
    296 $__use_size = __('Use %s');
    297 $__close = __('CLOSE');
    298 
    299 $images_script .= "var flickr_src = new Array();\n";
    300 
    301 $i=0;
    302 foreach($images as $image) {
    303                 list($uwidth, $uheight) = get_udims($image['width'], $image['height']);
    304                 $xpadding = (128 - $uwidth) / 2;
    305                 $ypadding = (96 - $uheight) / 2;
    306                 $height_width = 'height="'.$uheight.'" width="'.$uwidth.'"';
    307                 $images_style .= "#target$i img { padding: {$ypadding}px {$xpadding}px; }\n";
    308                 $images_html .= "
    309                         <div id='target$i' class='imagewrap left'>
    310                                 <div id='popup$i' class='popup'>
    311                 ";
    312 
    313                 $images_script .= "flickr_src[$i] = new Array();\n";
    314                 foreach($image['size_info'] as $szkey => $size) {
    315                         $images_script .= "flickr_src[$i]['{$szkey}']= '{$size['url']}';\n";
    316                         $use = sprintf($__use_size, $szkey);
    317                         $prefix = ($szkey == 'Thumbnail') ? '<strong>':'';
    318                         $postfix = ($szkey == 'Thumbnail') ? '</strong>':'';
    319                         $images_html .= "<a id=\"I{$i}_{$szkey}\" onclick=\"toggleSize($i,'$szkey');return false;\" href=\"javascript:void();\">{$prefix}{$use}{$postfix}</a>\n";
    320                 }
    321                 $images_html .= "
    322                                         <a onclick=\"popup.style.display='none';return false;\" href=\"javascript:void()\">$__close</a>
    323                                 </div>
    324                                 <a id=\"link$i\" class=\"imagelink\" href=\"{$image['href']}\" onclick=\"imagePopup($i);return false;\" title=\"{$image['post_title']}\">
    325                                         <img id=\"image$i\" src=\"{$image['thumbnail']}\" alt=\"{$image['post_title']}\" $height_width />
    326                                 </a>
    327                         </div>
    328                 ";
    329                 $i++;
    330 }
    331 
    332 $images_width = ( count($images) * 133 ) + 5;
    333 
    334 break;
    335 
    336 default:
    337 die('This script was not meant to be called directly.');
    338 }
    339 
    340 ?>
    341 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    342 <html xmlns="http://www.w3.org/1999/xhtml">
    343 <head>
    344 <meta http-equiv="imagetoolbar" content="no" />
    345 <script type="text/javascript">
    346 /* Define any variables we'll need, such as alternate URLs. */
    347 <?php echo $images_script; ?>
    348 
    349 function validateImageName() {
    350 /* This is more for convenience than security. Server-side validation is very thorough.*/
    351 obj = document.getElementById('upload');
    352 r = /.jpg$|.gif$|.png$/i;
    353 if ( obj.value.match(r) )
    354 return true;
    355 alert('Please select a JPG, PNG or GIF file.');
    356 return false;
    357 }
    358 function cancelUpload() {
    359 o = document.getElementById('uploadForm');
    360 o.method = 'GET';
    361 o.action.value = 'view';
    362 o.submit();
    363 }
    364 function imagePopup(i) {
    365 if ( popup )
    366 popup.style.display = 'none';
    367 target = document.getElementById('target'+i);
    368 popup = document.getElementById('popup'+i);
    369 //popup.style.top = (target.offsetTop + 3) + 'px';
    370 popup.style.left = (target.offsetLeft) + 'px';
    371 popup.style.display = 'block';
    372 }
    373 function init() {
    374 popup = false;
    375 }
    376 function toggleLink(n) {
    377         o=document.getElementById('link'+n);
    378         oi=document.getElementById('L'+n);
    379         if ( oi.innerHTML == subposton ) {
    380                 o.href = eval('href'+n+'b');
    381                 oi.innerHTML = subpostoff;
    382         } else {
    383                 o.href = eval('href'+n+'a');
    384                 oi.innerHTML = subposton;
    385         }
    386 }
    387 function toggleImage(n) {
    388         o = document.getElementById('image'+n);
    389         oi = document.getElementById('I'+n);
    390         if ( oi.innerHTML == thumbnailon ) {
    391                 o.src = eval('src'+n+'b');
    392                 oi.innerHTML = thumbnailoff;
    393         } else {
    394                 o.src = eval('src'+n+'a');
    395                 oi.innerHTML = thumbnailon;
    396         }
    397 }
    398 function toggleSize(n,sz) {
    399         o = document.getElementById('image'+n);
    400         oi = document.getElementById('popup'+n);
    401         o.src = flickr_src[n][sz];
    402         if (!document.getElementsByTagName) return;
    403         var anchors = document.getElementsByTagName("a");
    404         var re_id = 'I'+n+'_'; // /i[0-9]+_.+/i;
    405         var re_strip = /<.*?>/i;
    406         for (var i=0; i< anchors.length; i++) {
    407                 var anchor = anchors[i];
    408                 if (anchor.getAttribute("href") && anchor.id.match(re_id))
    409                         anchor.innerHTML = anchor.innerHTML.replace(re_strip, '');
    410         }
    411         var anchor = document.getElementById('I'+n+'_'+sz);
    412         anchor.innerHTML = '<strong>' + anchor.innerHTML + '</strong>';
    413 }
    414 </script>
    415 <style type="text/css">
    416 body {
    417 font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana;
    418 border: none;
    419 margin: 0px;
    420 height: 150px;
    421 background: rgb(223, 232, 241);
    422 }
    423 form {
    424 margin: 6px 2px 0px 6px;
    425 }
    426 #wrap {
    427 clear: both;
    428 margin: 0px;
    429 padding: 0px;
    430 height: 133px;
    431 width: 100%;
    432 overflow: auto;
    433 }
    434 #images {
    435 clear: both;
    436 margin: 0px;
    437 padding: 5px 15px;
    438 height: 96px;
    439 white-space: nowrap;
    440 width: <?php echo $images_width; ?>px;
    441 }
    442 #images img {
    443 background-color: rgb(209, 226, 239);
    444 }
    445 <?php echo $images_style; ?>
    446 .imagewrap {
    447 margin-right: 5px;
    448 height: 96px;
    449 overflow: hidden;
    450 }
    451 .imagewrap * {
    452 margin: 0px;
    453 padding: 0px;
    454 border: 0px;
    455 }
    456 .imagewrap a, .imagewrap a img, .imagewrap a:hover img, .imagewrap a:visited img, .imagewrap a:active img {
    457 text-decoration: none;
    458 float: left;
    459 /*display: block;*/
    460 text-align: center;
    461 }
    462 #menu {
    463 margin: 0px;
    464 list-style: none;
    465 background: rgb(109, 166, 209);
    466 padding: 4px 0px 0px 8px;
    467 text-align: left;
    468 border-bottom: 3px solid rgb(68, 138, 189);
    469 }
    470 #menu li {
    471 display: inline;
    472 margin: 0px;
    473 }
    474 #menu a, #menu a:visited, #menu a:active {
    475 padding: 1px 3px 3px;
    476 text-decoration: none;
    477 color: #234;
    478 background: transparent;
    479 }
    480 #menu a:hover {
    481 background: rgb(203, 214, 228);
    482 color: #000;
    483 }
    484 #menu .current a, #menu .current a:hover, #menu .current a:visited, #menu .current a:active {
    485 background: rgb(223, 232, 241);
    486 padding-bottom: 3px;
    487 color: #000;
    488 border-right: 2px solid rgb(20, 86, 138);
    489 }
    490 .tip {
    491 color: rgb(68, 138, 189);
    492 padding: 1px 3px;
    493 }
    494 .inactive {
    495 color: #579;
    496 padding: 1px 3px;
    497 }
    498 .left {
    499 float: left;
    500 }
    501 .right {
    502 float: right;
    503 }
    504 .center {
    505 text-align: center;
    506 }
    507 #menu li.spacer {
    508 margin-left: 40px;
    509 }
    510 label {
    511 float: left;
    512 width: 18%;
    513 }
    514 #title, #descr {
    515 width: 80%;
    516 margin-top: 2px;
    517 }
    518 #descr {
    519 height: 35px;
    520 v-align: top;
    521 }
    522 #buttons {
    523 width: 98%;
    524 margin-top: 2px;
    525 text-align: right;
    526 }
    527 .popup {
    528 margin: 4px 4px;
    529 padding: 3px;
    530 position: absolute;
    531 width: 114px;
    532 height: 82px;
    533 display: none;
    534 background-color: rgb(223, 232, 241);
    535 opacity: .90;
    536 filter:alpha(opacity=90);
    537 text-align: center;
    538 }
    539 .popup a, .popup a:visited, .popup a:active {
    540 background-color: transparent;
    541 display: block;
    542 width: 100%;
    543 text-decoration: none;
    544 color: #246;
    545 }
    546 .popup a:hover {
    547 background-color: #fff;
    548 color: #000;
    549 }
    550 #flickrtags {
    551         display: inline;
    552 }
    553 #flickrtags input {
    554         border:0px;
    555 }
    556 input#flickrtag {
    557         background-color: white;
    558         color: black;
    559         width:65px;
    560 }
    561 input#flickrsubmit {
    562         background-color: #dfe8f1;
    563         color: black;
    564 }
    565 </style>
    566 </head>
    567 <body onload="init()">
    568 <ul id="menu">
    569 <li<?php echo $current_1; ?>><a href="image-uploading.php?action=upload&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>">Upload Photo</a></li>
    570 <li<?php echo $current_flickr; ?>><a href="image-uploading.php?action=flickr&amp;post=<?php echo $post; ?>">Browse Flickr</a></li>
    571 <li<?php echo $current_2; ?>><a href="image-uploading.php?action=view&amp;post=<?php echo $post; ?>">Browse Attached</a></li>
    572 <li<?php echo $current_3; ?>><a href="image-uploading.php?action=view&amp;post=<?php echo $post; ?>&amp;all=true">Browse All</a></li>
    573 <li> </li>
    574 <?php if ( false !== $back ) : ?>
    575 <li class="spacer"><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=0" title="First">|&lt;</a></li>
    576 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $back; ?>" title="Back">&lt;&lt;</a></li>
    577 <?php else : ?>
    578 <li class="inactive spacer">|&lt;</li>
    579 <li class="inactive">&lt;&lt;</li>
    580 <?php endif; ?>
    581 
    582 <?php if($action == 'flickr') : ?>
    583 <form id="flickrtags" method="get"><?php echo sprintf(__('Tag: %s'), '<input type="text" id="flickrtag" name="flickrtag" value="' . $flickrtag . '" />'); ?><input id="flickrsubmit" type="submit" value="Filter" /><?php
    584 parse_str($_SERVER['QUERY_STRING'], $formquery);
    585 foreach($formquery as $k=>$v) if($k!='flickrtag') echo "<input type=\"hidden\" name=\"$k\" value=\"$v\" />";
    586 ?></form>
    587 <?php endif; ?>
    588 
    589 <?php if ( false !== $next ) : ?>
    590 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $next; ?>" title="Next">&gt;&gt;</a></li>
    591 <li><a href="image-uploading.php?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;last=true" title="Last">&gt;|</a></li>
    592 <?php else : ?>
    593 <li class="inactive">&gt;&gt;</li>
    594 <li class="inactive">&gt;|</li>
    595 <?php endif; ?>
    596 </ul>
    597 <?php if ( $action == 'view' || $action == 'flickr' ) : ?>
    598 <span class="left tip"><?php _e('Drag and drop photos to post'); ?></span>
    599 <span class="right tip"><?php _e('Click photos for more options'); ?></span>
    600 <div id="wrap">
    601 <div id="images">
    602 <?php echo $images_html; ?>
    603 </div>
    604 </div>
    605 <?php elseif ( $action == 'upload' ) : ?>
    606 <div class="center tip">Duplicated filenames will be numbered (photo.jpg, photo1.jpg, etc.)</div>
    607 <form enctype="multipart/form-data" id="uploadForm" method="POST" action="image-uploading.php" onsubmit="return validateImageName()">
    608 <label for="upload">Image:</label><input type="file" id="upload" name="image" onchange="validateImageName()" />
    609 <label for="title">Title:</label><input type="text" id="title" name="imgtitle" />
    610 <label for="descr">Description:</label><input type="textarea" name="descr" id="descr" value="" />
    611 <input type="hidden" name="action" value="save" />
    612 <input type="hidden" name="post" value="<?php echo $post; ?>" />
    613 <input type="hidden" name="all" value="<?php echo $all; ?>" />
    614 <div id="buttons">
    615 <input type="submit" value="Upload" />
    616 <input type="button" value="Cancel" onclick="cancelUpload()" />
    617 </div>
    618 </form>
    619 <?php endif; ?>
    620 </body>
    621 </html>
    622 
    623 
    624