WordPress.org

GlotPress

Ticket #14: glotpress-profile.2.patch

File glotpress-profile.2.patch, 5.2 KB (added by joostdevalk, 6 years ago)

Version 2, using user_meta

  • gp-templates/profile.php

     
     1<?php  
     2gp_title( __('Profile &lt; GlotPress') ); 
     3gp_breadcrumb( array( __('Profile') ) ); 
     4gp_tmpl_header(); 
     5 
     6$per_page = GP::$user->get_meta('per_page'); 
     7if ( 0 == $per_page ) 
     8        $per_page = 15; 
     9         
     10?> 
     11<h2><?php _e( "Profile" ); ?></h2> 
     12<form method="post"> 
     13        <label for="per_page"><?php _e( "Number of items per page:" ); ?></label> 
     14        <input type="number" id="per_page" name="per_page" value="<?php echo $per_page ?>"/><br> 
     15        <input type="submit" value="<?php _e("Change Settings"); ?>"> 
     16</form> 
     17 No newline at end of file 
  • gp-templates/header.php

     
    2222                        if (GP::$user->logged_in()): 
    2323                                $user = GP::$user->current(); 
    2424                                 
    25                                 printf( __('Hi, %s.'), $user->user_login ); 
     25                                printf( __('Hi, %s.'), '<a href="'.gp_url( '/profile' ).'">'.$user->user_login.'</a>' ); 
    2626                                ?> 
    2727                                <a href="<?php echo gp_url('/logout')?>"><?php _e('Log out'); ?></a> 
    2828                        <?php else: ?> 
  • gp-includes/routes/profile.php

     
     1<?php 
     2class GP_Route_Profile extends GP_Route_Main { 
     3        function profile_get() { 
     4                gp_tmpl_load( 'profile', array() ); 
     5        } 
     6 
     7        function profile_post() { 
     8                if ( isset( $_POST['per_page'] ) ) { 
     9                        $per_page = (int) $_POST['per_page']; 
     10                        GP::$user->set_meta( 'per_page', $per_page ); 
     11                } 
     12                 
     13                $this->redirect( gp_url( '/profile' ) ); 
     14        } 
     15} 
  • gp-includes/things/translation.php

     
    155155                } 
    156156 
    157157                $sql_sort = sprintf( $sort_by, $sort_how ); 
    158                 $limit = $this->sql_limit_for_paging( $page ); 
     158 
     159                $per_page = GP::$user->get_meta('per_page'); 
     160                if ( 0 == $per_page ) 
     161                        $per_page = $this->per_page; 
     162                         
     163                $limit = $this->sql_limit_for_paging( $page, $per_page ); 
     164 
    159165                $rows = $this->many_no_map( " 
    160166                    SELECT SQL_CALC_FOUND_ROWS t.*, o.*, t.id as id, o.id as original_id, t.status as translation_status, o.status as original_status, t.date_added as translation_added, o.date_added as original_added 
    161167                    FROM $gpdb->originals as o 
  • gp-includes/things/user.php

     
    112112        } 
    113113         
    114114        function get_meta( $key ) { 
    115                 global $wp_users_object; 
    116                 if ( !$user = $wp_users_object->get_user( $this->id ) ) { 
    117                         return; 
    118                 } 
     115                $user = $this->current(); 
    119116 
    120117                $key = gp_sanitize_meta_key( $key ); 
    121118                if ( !isset( $user->$key ) ) { 
     
    125122        } 
    126123         
    127124        function set_meta( $key, $value ) { 
    128                 return gp_update_meta( $this->id, $key, $value, 'user' ); 
     125                $user = $this->current(); 
     126                return gp_update_meta( $user->id, $key, $value, 'user' ); 
    129127        } 
    130128         
    131129        function delete_meta( $key ) { 
    132                 return gp_delete_meta( $this->id, $key, '', 'user' ); 
     130                $user = $this->current(); 
     131                return gp_delete_meta( $user->id, $key, '', 'user' ); 
    133132        } 
    134133         
    135134         
  • gp-includes/thing.php

     
    383383                $per_page = is_null( $per_page )? $this->per_page : $per_page; 
    384384                if ( 'no-limit' == $per_page || 'no-limit' == $page ) return ''; 
    385385                $page = intval( $page )? intval( $page ) : 1; 
    386                 return sprintf( "LIMIT %d OFFSET %d", $this->per_page, ($page-1)*$this->per_page ); 
     386                return sprintf( "LIMIT %d OFFSET %d", $per_page, ($page-1)*$per_page ); 
    387387        } 
    388388         
    389389        function found_rows() { 
  • gp-includes/router.php

     
    4444                        'get:/login' => array('GP_Route_Login', 'login_get'), 
    4545                        'post:/login' => array('GP_Route_Login', 'login_post'), 
    4646                        'get:/logout' => array('GP_Route_Login', 'logout'), 
     47                         
     48                        'get:/profile' => array('GP_Route_Profile', 'profile_get'), 
     49                        'post:/profile' => array('GP_Route_Profile', 'profile_post'), 
    4750 
    4851                        "get:/$project/import-originals" => array('GP_Route_Project', 'import_originals_get'), 
    4952                        "post:/$project/import-originals" => array('GP_Route_Project', 'import_originals_post'), 
  • gp-includes/meta.php

     
    1717 */ 
    1818function gp_update_meta( $object_id = 0, $meta_key, $meta_value, $type, $global = false ) { 
    1919        global $gpdb; 
    20         if ( !is_numeric( $object_id ) || empty( $object_id ) && !$global ) { 
     20 
     21        if ( !is_numeric( $object_id ) || empty( $object_id ) ) { 
    2122                return false; 
    2223        } 
    2324        $cache_object_id = $object_id = (int) $object_id;