WordPress.org

Plugin Directory

Changeset 608584


Ignore:
Timestamp:
10/05/12 16:38:06 (19 months ago)
Author:
tmoorewp
Message:

Publicize UI: First pass at a new UI.

Location:
jetpack/branches/publicize/modules/publicize
Files:
12 added
2 edited

Legend:

Unmodified
Added
Removed
  • jetpack/branches/publicize/modules/publicize/publicize.php

    r608011 r608584  
    178178        ), menu_page_url( 'sharing', false ) ); 
    179179    } 
     180 
     181    function get_services() { 
     182        return array( 
     183            'facebook' => array(), 
     184            'twitter'  => array(), 
     185            'yahoo'    => array(), 
     186            'tumblr'   => array(), 
     187            'linkedin' => array(), 
     188        ); 
     189    } 
    180190     
    181191} 
  • jetpack/branches/publicize/modules/publicize/ui.php

    r608558 r608584  
    99    function __construct() { 
    1010        $this->publicize = new Publicize; 
    11          
     11 
     12        add_action( 'load-settings_page_sharing', array( $this, 'load_assets' ) ); 
     13 
    1214        //pre_admin_screen_sharing 
    13         add_action( 'pre_admin_screen_sharing', array( &$this, 'admin_page' ) ); 
     15        add_action( 'pre_admin_screen_sharing', array( $this, 'admin_page' ) ); 
    1416    } 
    15      
    16     function admin_page() { ?> 
    17         <form action="" id="publicize-form"> 
    18         <h3 id="publicize"><?php _e( 'Publicize', 'jetpack' ) ?></h3> 
    19         <p><?php _e( 'Connect your blog to popular social networking sites and automatically share new posts with your friends.', 'jetpack' ) ?></p> 
    20          
    21         <p> 
    22             <a href="<?php echo esc_url( $this->publicize->connect_url( 'twitter' ) ); ?>"><?php _e( 'Connect to Twitter', 'jetpack' ); ?></a> |  
    23             <a href="<?php echo esc_url( $this->publicize->connect_url( 'facebook' ) ); ?>"><?php _e( 'Connect to Facebook', 'jetpack' ); ?></a> | 
    24             <a href="<?php echo esc_url( $this->publicize->connect_url( 'tumblr' ) ); ?>"><?php _e( 'Connect to Tumblr', 'jetpack' ); ?></a> |  
    25             <a href="<?php echo esc_url( $this->publicize->connect_url( 'linkedin' ) ); ?>"><?php _e( 'Connect to LinkedIn', 'jetpack' ); ?></a> | 
    26             <a href="<?php echo esc_url( $this->publicize->connect_url( 'yahoo' ) ); ?>"><?php _e( 'Connect to Yahoo!', 'jetpack' ); ?></a> 
    27         </p> 
    2817 
    29         <p><a href="<?php echo esc_url( $this->publicize->refresh_url() ); ?>">Refresh Connections</a></p> 
    30          
    31         <?php 
    32             $all_connections = Jetpack::get_option( 'publicize_connections' ); 
    33              
    34             if ( $all_connections ) { 
    35                 foreach( $all_connections as $service_name => $connections ) { 
    36                      
    37                     echo "<h2>" . esc_html( $service_name ) . "</h2>"; 
    38                     foreach( $connections as $id => $connection ) { 
    39                         ?> 
    40                             <p><strong><?php echo esc_html( $connection['external_display'] ); ?></strong> 
    41                             <p><a href="<?php echo esc_url( $this->publicize->disconnect_url( $service_name, $id ) ); ?>">Disconnect</a></p> 
    42                         <?php if ( $connection['connection_data']['user_id'] > 0 ) { ?> 
    43                             <p><a href="<?php echo esc_url( $this->publicize->globalize_url( $service_name, $id, 'globalize' ) ); ?>">Globalize</a></p> 
    44                         <?php } else { ?> 
    45                             <p><a href="<?php echo esc_url( $this->publicize->globalize_url( $service_name, $id, 'unglobalize' ) ); ?>">Unglobalize</a></p> 
    46                         <?php }  
    47                          
    48                         // the below is an example of how we would detect if we need an options popup 
    49                         // see "temporary_options_example" in admin_page_load() for how the xml-rpc request works 
    50                         if ( isset( $connection['connection_data']['meta']['options_responses'] ) ) { 
    51                             $option_responses = $connection['connection_data']['meta']['options_responses']; 
    52                             if ( is_array( $option_responses ) ) { 
    53                                 echo "Detected Options Cache - User Options Selection Should Show."; 
    54                                  
    55                                 if ( 'tumblr' == $service_name ) { 
    56                                     $blogs = $option_responses[0]['response']['user']['blogs']; 
    57                                  
    58                                     foreach ( $blogs as $blog ) { 
    59                                         if ( $blog['primary'] ) 
    60                                             $blog_selected = parse_url( $blog['url'], PHP_URL_HOST ); 
    61                                     } ?> 
    62                                      
    63                                     <p><a href="<?php echo esc_url( $this->publicize->temporary_options_example_url( $service_name, $id, $blog_selected ) ); ?>">Example Options Set: Set Primary Blog</a></p> 
    64                                  
    65                                     <?php 
    66                                 }        
    67                             } 
    68                         }                
    69                          
    70                         // there should be checks here that only allow a user to delete their own connection 
    71                     } 
    72                      
    73                 } 
    74             } 
    75              
    76             echo "<pre>"; print_r($all_connections); echo "</pre>"; 
     18    /** 
     19    * styling for the sharing screen and popups 
     20    * JS for the options and switching 
     21    */ 
     22    function load_assets() { 
     23        wp_enqueue_script( 
     24            'publicize', 
     25            plugins_url( 'assets/publicize.js', __FILE__ ), 
     26            array( 'jquery', 'thickbox' ), 
     27            '20120925' 
     28        ); 
     29 
     30        wp_enqueue_style( 
     31            'publicize', 
     32            plugins_url( 'assets/publicize.css', __FILE__ ), 
     33            array(), 
     34            '20120925' 
     35        ); 
     36    } 
     37 
     38    /** 
     39    * Lists the current user's publicized accounts for the blog 
     40    * looks exactly like Publicize v1 for now, UI and functionality updates will come after the move to keyring 
     41    */ 
     42    function admin_page() { 
     43        $_blog_id = get_current_blog_id(); 
     44 
    7745        ?> 
    78          
    79         </form> <?php 
     46 
     47        <form action="" id="publicize-form"> 
     48            <h3 id="publicize"><?php _e( 'Publicize' ) ?></h3> 
     49            <p> 
     50                <?php esc_html_e( 'Connect your blog to popular social networking sites and automatically share new posts with your friends.' ) ?> 
     51                <?php esc_html_e( 'You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.' ); ?> 
     52            </p> 
     53 
     54            <div id="publicize-services-block"> 
     55                <?php 
     56                $all_services = $this->publicize->get_services(); 
     57                $connected_services = Jetpack::get_option( 'publicize_connections' ); 
     58                $connected_services = array_merge( $all_services, $connected_services ); 
     59 
     60                if ( $connected_services ) : 
     61                    foreach ( $connected_services as $service_name => $connections ) :  
     62                    ?> 
     63                        <div class="publicize-service-entry"> 
     64                            <div id="<?php echo esc_attr( $service_name ); ?>" class="publicize-service-left"> 
     65                                <a href="<?php echo esc_url( $this->publicize->connect_url( $service_name ) ); ?>"><span class="pub-logos" id="<?php echo esc_attr( $service_name ); ?>">&nbsp;</span></a> 
     66                            </div> 
     67 
     68                            <div class="publicize-service-right"> 
     69                                <?php if ( $connections ) : ?> 
     70                                    <ul> 
     71                                        <?php 
     72                                        foreach( $connections as $id => $connection ) : 
     73 
     74                                            // if ( 'facebook' == $service->get_name() && isset( $cmeta->meta['facebook_page_token'] ) ) { 
     75                                            //  $response = $service->request( 'https://graph.facebook.com/' . $cmeta->meta['facebook_page'] ); 
     76 
     77                                            //  $connection_display = $response->name; 
     78                                            //  $profile_link = $response->link; 
     79                                            // } elseif ( 'tumblr' == $service->get_name() && isset( $cmeta->meta['tumblr_base_hostname'] ) ) { 
     80                                            //  $connection_display = $cmeta->meta['tumblr_base_hostname']; 
     81                                            //  $profile_link = $service->get_profile_link( $c ); 
     82                                            // } else { 
     83                                                // $profile_link = $service->get_profile_link( $c ); 
     84                                                $connection_display = $connection['external_display']; 
     85                                                if ( empty( $connection_display ) ) 
     86                                                    $connection_display = $connection['external_name']; 
     87                                            // } 
     88 
     89                                            ?> 
     90                                            <li> 
     91                                                <a class="publicize-profile-link" href="<?php //echo esc_attr( $profile_link ); ?>"> 
     92                                                    <?php echo esc_attr( $connection_display );?> 
     93                                                </a> 
     94 
     95                                                <?php if ( 0 == $connection['connection_data']['user_id'] ) : ?> 
     96                                                    <small>(Shared)</small> 
     97                                                <?php endif; ?> 
     98                                                 
     99                                                <a class="pub-disconnect-button" title="<?php esc_html_e( 'Disconnect' ); ?>" href="<?php echo esc_url( $this->publicize->disconnect_url( $service_name, $id ) ); ?>">×</a> 
     100 
     101                                            </li> 
     102 
     103                                            <?php  
     104                                        endforeach; 
     105                                        ?> 
     106                                    </ul> 
     107                                <?php endif; ?> 
     108                                <a id="<?php echo esc_attr( $name ); ?>" class="publicize-add-connection" href="<?php echo esc_url( $this->publicize->connect_url( $service_name ) ); ?>"><?php esc_html_e( sprintf( __( 'Add new %s connection.' ), ucwords( $service_name ) ) ); ?></a> 
     109                            </div> 
     110                        </div> 
     111                    <?php endforeach; ?> 
     112                <?php endif; ?> 
     113            </div> 
     114 
     115            <?php wp_nonce_field( "wpas_posts_{$_blog_id}", "_wpas_posts_{$_blog_id}_nonce" ); ?> 
     116            <input type="hidden" id="wpas_ajax_blog_id" name="wpas_ajax_blog_id" value="<?php echo $_blog_id; ?>" /> 
     117        </form><?php 
     118 
    80119    } 
    81120     
Note: See TracChangeset for help on using the changeset viewer.