Ticket #1244: links.php.diff

File links.php.diff, 8.3 KB (added by MaThIbUs, 7 years ago)
  • wp-includes/links.php

     
    125125 **   before (default '')  - the html to output before the link 
    126126 **   after (default '<br />')  - the html to output after the link 
    127127 **   between (default ' ')  - the html to output between the link/image 
    128  **     and it's description. Not used if no image or show_images == true 
     128 **     and its description. Not used if no image or show_images == true 
    129129 **   show_images (default true) - whether to show images (if defined). 
    130130 **   orderby (default 'id') - the order to output the links. E.g. 'id', 'name', 
    131131 **     'url', 'description', or 'rating'. Or maybe owner. If you start the 
     
    138138 **   limit (default -1) - Limit to X entries. If not specified, all entries 
    139139 **     are shown. 
    140140 **   show_updated (default 0) - whether to show last updated timestamp 
     141 **   echo (default true) - whether to echo the results, or return them instead 
    141142 */ 
    142 function get_links($category = -1, $before = '', $after = '<br />', 
    143                    $between = ' ', $show_images = true, $orderby = 'name', 
    144                    $show_description = true, $show_rating = false, 
    145                    $limit = -1, $show_updated = 1, $echo = true) { 
    146  
    147     global $wpdb; 
    148  
    149     $direction = ' ASC'; 
    150     $category_query = ""; 
    151     if ($category != -1) { 
    152         $category_query = " AND link_category = $category "; 
    153     } 
    154     if (get_settings('links_recently_updated_time')) { 
    155         $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL ".get_settings('links_recently_updated_time')." MINUTE) >= NOW(), 1,0) as recently_updated "; 
    156     } else { 
     143function get_links($category = -1, 
     144                        $before = '', 
     145                        $after = '<br />', 
     146                        $between = ' ', 
     147                        $show_images = true, 
     148                        $orderby = 'name', 
     149                        $show_description = true, 
     150                        $show_rating = false, 
     151                        $limit = -1, 
     152                        $show_updated = 1, 
     153                        $echo = true) { 
     154 
     155        global $wpdb; 
     156 
     157        $direction = ' ASC'; 
     158        $category_query = ""; 
     159        if ($category != -1) { 
     160                $category_query = " AND link_category = $category "; 
     161        } 
     162        if (get_settings('links_recently_updated_time')) { 
     163                $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL " . get_settings('links_recently_updated_time') . " MINUTE) >= NOW(), 1,0) as recently_updated "; 
     164        } else { 
    157165                $recently_updated_test = ''; 
    158166        } 
    159     if ($show_updated) { 
    160         $get_updated = ", UNIX_TIMESTAMP(link_updated) AS link_updated_f "; 
    161     } 
    162  
    163     $orderby=strtolower($orderby); 
    164     if ($orderby == '') 
    165         $orderby = 'id'; 
    166     if (substr($orderby,0,1) == '_') { 
    167         $direction = ' DESC'; 
    168         $orderby = substr($orderby,1); 
    169     } 
    170  
    171     switch($orderby) { 
    172         case 'length': 
    173         $length = ",CHAR_LENGTH(link_name) AS length"; 
    174         break; 
    175         case 'rand': 
    176             $orderby = 'rand()'; 
    177             break; 
    178         default: 
    179             $orderby = " link_" . $orderby; 
    180     } 
    181  
    182     if (!isset($length)) { 
    183                 $length = ""; 
    184         } 
    185  
    186     $sql = "SELECT link_url, link_name, link_image, link_target, 
    187             link_description, link_rating, link_rel $length $recently_updated_test $get_updated 
    188             FROM $wpdb->links 
    189             WHERE link_visible = 'Y' " . 
    190            $category_query; 
    191     $sql .= ' ORDER BY ' . $orderby; 
    192     $sql .= $direction; 
    193     /* The next 2 lines implement LIMIT TO processing */ 
    194     if ($limit != -1) 
    195         $sql .= " LIMIT $limit"; 
    196     //echo $sql; 
    197     $results = $wpdb->get_results($sql); 
    198     if (!$results) { 
    199         return; 
    200     } 
    201      
    202     $output = ""; 
    203      
    204     foreach ($results as $row) { 
     167        if ($show_updated) { 
     168                $get_updated = ", UNIX_TIMESTAMP(link_updated) AS link_updated_f "; 
     169        } 
     170 
     171        $orderby = strtolower($orderby); 
     172        if ($orderby == '') 
     173                $orderby = 'id'; 
     174        if (substr($orderby, 0, 1) == '_') { 
     175                $direction = ' DESC'; 
     176                $orderby = substr($orderby, 1); 
     177        } 
     178 
     179        switch($orderby) { 
     180                case 'length': 
     181                $length = ", CHAR_LENGTH(link_name) AS length"; 
     182                break; 
     183                case 'rand': 
     184                        $orderby = 'rand()'; 
     185                        break; 
     186                default: 
     187                        $orderby = " link_" . $orderby; 
     188        } 
     189 
     190        if (!isset($length)) { 
     191                $length = ''; 
     192        } 
     193 
     194        $sql = "SELECT link_url, link_name, link_image, link_target, link_description, link_rating, link_rel $length $recently_updated_test $get_updated FROM $wpdb->links WHERE link_visible = 'Y' " . $category_query; 
     195        $sql .= ' ORDER BY ' . $orderby . $direction; 
     196        /* The next 2 lines implement LIMIT TO processing */ 
     197        if ($limit != -1) 
     198                $sql .= " LIMIT $limit"; 
     199        $results = $wpdb->get_results($sql); 
     200        if (!$results) { 
     201                return; 
     202        } 
     203 
     204        $output = ''; 
     205 
     206        foreach ($results as $row) { 
    205207                if (!isset($row->recently_updated)) $row->recently_updated = false; 
    206         $output .= ($before); 
    207          
    208         if ($show_updated && $row->recently_updated) { 
    209             $output .= get_settings('links_recently_updated_prepend'); 
    210         } 
    211          
    212         $the_link = '#'; 
    213          
    214         if ( !empty($row->link_url) ) 
    215             $the_link = wp_specialchars($row->link_url); 
    216         $rel = $row->link_rel; 
    217          
    218         if ($rel != '') { 
    219             $rel = " rel='$rel'"; 
    220         } 
    221          
    222         $desc = wp_specialchars($row->link_description, ENT_QUOTES); 
    223         $name = wp_specialchars($row->link_name, ENT_QUOTES); 
    224  
    225         $title = $desc; 
    226  
    227         if ($show_updated) { 
    228            if (substr($row->link_updated_f,0,2) != '00') { 
    229                 $title .= ' (Last updated ' . date(get_settings('links_updated_date_format'), $row->link_updated_f + (get_settings('gmt_offset') * 3600)) .')'; 
    230             } 
    231         } 
    232  
    233         if ('' != $title) { 
    234             $title = " title='$title'"; 
    235         } 
    236  
    237         $alt = " alt='$name'"; 
    238              
    239         $target = $row->link_target; 
    240         if ('' != $target) { 
    241             $target = " target='$target'"; 
    242         } 
    243          
    244         $output.= "<a href='$the_link'"; 
    245         $output.= $rel . $title . $target; 
    246         $output.= '>'; 
    247          
    248         if (($row->link_image != null) && $show_images) { 
     208                        $output .= $before; 
     209                if ($show_updated && $row->recently_updated) { 
     210                        $output .= get_settings('links_recently_updated_prepend'); 
     211                } 
     212 
     213                $the_link = '#'; 
     214                if (!empty($row->link_url)) 
     215                        $the_link = wp_specialchars($row->link_url); 
     216 
     217                $rel = $row->link_rel; 
     218                if ($rel != '') { 
     219                        $rel = ' rel="' . $rel . '"'; 
     220                } 
     221 
     222                $desc = wp_specialchars($row->link_description, ENT_QUOTES); 
     223                $name = wp_specialchars($row->link_name, ENT_QUOTES); 
     224                $title = $desc; 
     225 
     226                if ($show_updated) { 
     227                        if (substr($row->link_updated_f, 0, 2) != '00') { 
     228                                $title .= ' (Last updated ' . date(get_settings('links_updated_date_format'), $row->link_updated_f + (get_settings('gmt_offset') * 3600)) . ')'; 
     229                        } 
     230                } 
     231 
     232                if ('' != $title) { 
     233                        $title = ' title="' . $title . '"'; 
     234                } 
     235 
     236                $alt = ' alt="' . $name . '"'; 
     237 
     238                $target = $row->link_target; 
     239                if ('' != $target) { 
     240                        $target = ' target="' . $target . '"'; 
     241                } 
     242 
     243                $output .= '<a href="' . $the_link . '"' . $rel . $title . $target. '>'; 
     244 
     245                if (($row->link_image != null) && $show_images) { 
    249246                        if (strstr($row->link_image, 'http')) 
    250                                 $output.= "<img src='$row->link_image' $alt $title />"; 
     247                                $output .= "<img src=\"$row->link_image\" $alt $title />"; 
    251248                        else // If it's a relative path 
    252                 $output.= "<img src='" . get_settings('siteurl') . "$row->link_image' $alt $title />"; 
    253         } else { 
    254             $output.= $name; 
    255         } 
    256          
    257         $output.= '</a>'; 
    258          
    259         if ($show_updated && $row->recently_updated) { 
    260             $output.= get_settings('links_recently_updated_append'); 
    261         } 
    262  
    263         if ($show_description && ($desc != '')) { 
    264             $output.= $between.$desc; 
    265         } 
    266         $output.= "$after\n"; 
    267     } // end while 
    268      
    269     if($echo) { 
    270             echo $output; 
     249                                $output .= "<img src=\"" . get_settings('siteurl') . "$row->link_image\" $alt $title />"; 
     250                } else { 
     251                        $output .= $name; 
     252                } 
     253 
     254                $output .= '</a>'; 
     255 
     256                if ($show_updated && $row->recently_updated) { 
     257                        $output .= get_settings('links_recently_updated_append'); 
     258                } 
     259 
     260                if ($show_description && ($desc != '')) { 
     261                        $output .= $between . $desc; 
     262                } 
     263                $output .= "$after\n"; 
     264        } // end while 
     265 
     266        if ($echo) { 
     267                echo $output; 
    271268        } else { 
    272269                return $output; 
    273270        }