WordPress.org

Plugin Directory

Changeset 565891


Ignore:
Timestamp:
07/01/12 00:43:12 (22 months ago)
Author:
toppa
Message:

version 3.2.4

Location:
shashin/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • shashin/trunk/Admin/ShashinMenuActionHandlerPhotos.php

    r559216 r565891  
    5959    } 
    6060} 
     61// 610-316-5890 
  • shashin/trunk/Admin/ShashinSynchronizerPicasa.php

    r559216 r565891  
    2727        // Google Plus - an individual album 
    2828        // https://plus.google.com/photos/100291303544453276374/albums/5725071897625277617 
    29         if (preg_match('#^https://plus\.google\.com/photos/(\d+)/albums/(\d+)#', $this->request['userUrl'], $matches) == 1) { 
     29        // https://plus.google.com/u/0/photos/111831862730326767526/albums/5758674999667643409 
     30        if (preg_match('#^https://plus\.google\.com/.*photos/(\d+)/albums/(\d+)(.*)#', $this->request['userUrl'], $matches) == 1) { 
    3031            $jsonUrl = 'https://picasaweb.google.com/data/feed/api/user/' 
    3132                . $matches[1] 
     
    3334                . $matches[2] 
    3435                . '?alt=json&kind=photo'; 
     36            $jsonUrl .= $this->addAuthKeyIfNeeded($matches[3]); 
    3537        } 
    3638 
    3739        // Google Plus - all of a user's albums 
    3840        // https://plus.google.com/100291303544453276374/photos 
    39         else if (preg_match('#^https://plus.google.com/photos/(\d+)#', $this->request['userUrl'], $matches) == 1) { 
     41        // https://plus.google.com/u/0/photos/111831862730326767526/albums 
     42        else if (preg_match('#^https://plus.google.com/.*photos/(\d+)(.*)#', $this->request['userUrl'], $matches) == 1) { 
    4043            $jsonUrl = 'https://picasaweb.google.com/data/feed/api/user/' 
    4144                . $matches[1] 
    4245                . '?alt=json&kind=album'; 
     46            $jsonUrl .= $this->addAuthKeyIfNeeded($matches[2]); 
    4347        } 
    4448 
    4549        // Picasa - an individual album 
    46         elseif (preg_match('#^https://picasaweb\..+/\w+/\w+#', $this->request['userUrl'], $matches) == 1) { 
     50        elseif (preg_match('#^https://picasaweb\..+/.+/(.+)#', $this->request['userUrl'], $matches) == 1) { 
    4751            $rssUrl = $this->retrievePicasaRssUrl(); 
    4852            $jsonUrl = str_replace('/base/', '/api/', $rssUrl); 
    4953            $jsonUrl = str_replace('alt=rss', 'alt=json', $jsonUrl); 
     54            $jsonUrl .= $this->addAuthKeyIfNeeded($matches[1]); 
    5055        } 
    5156 
    5257        // Picasa - all of a user's albums 
    53         else if (preg_match('#^(https://picasaweb\..+)/(\w+)#', $this->request['userUrl'], $matches) == 1) { 
     58        else if (preg_match('#^(https://picasaweb\..+)/(.+)#', $this->request['userUrl'], $matches) == 1) { 
    5459            $jsonUrl = $matches[1] 
    5560                . '/data/feed/api/user/' 
    5661                . $matches[2] 
    5762                . '?alt=json&kind=album'; 
     63            $jsonUrl .= $this->addAuthKeyIfNeeded($matches[2]); 
    5864        } 
    5965 
     
    8490 
    8591        return $rssUrl; 
     92    } 
     93 
     94    public function addAuthKeyIfNeeded($urlMatch = null) { 
     95        if (!isset($urlMatch)) { 
     96            return null; 
     97        } 
     98 
     99        if (preg_match('/(authkey=\w+)/', $urlMatch, $authKeyMatches) != 1) { 
     100            return null; 
     101        } 
     102 
     103        return '&' . $authKeyMatches[1]; 
    86104    } 
    87105 
  • shashin/trunk/Lib/ShashinAlbum.php

    r515082 r565891  
    66    public function __construct( 
    77      ToppaDatabaseFacade $dbFacade, 
    8       Lib_ShashinAlbumRefData $refData, 
    98      Lib_ShashinPhoto $clonablePhoto) { 
     9 
     10        $this->refData = array( 
     11            'id' => array( 
     12                'db' => array( 
     13                    'type' => 'smallint unsigned', 
     14                    'not_null' => true, 
     15                    'primary_key' => true, 
     16                    'other' => 'AUTO_INCREMENT')), 
     17            'sourceId' => array( 
     18                'db' => array( 
     19                    'type' => 'varchar', 
     20                    'length' => '255', 
     21                    'not_null' => true, 
     22                    'unique_key' => true), 
     23                'picasa' => array('gphoto$id', '$t'), 
     24                'twitpic' => array('twitter_id'), 
     25                'youtube' => array('id', '$t'), 
     26                'flickr' => array('link')), 
     27            'albumType' => array( 
     28                'db' => array( 
     29                    'type' => 'varchar', 
     30                    'length' => '20', 
     31                    'not_null' => true)), 
     32            'dataUrl' => array( 
     33                'db' => array( 
     34                    'type' => 'varchar', 
     35                    'length' => '255', 
     36                    'not_null' => true), 
     37                'picasa' => array('link', 0, 'href'), 
     38                'youtube' => array('id', '$t'), 
     39                'input' => array( 
     40                    'type' => 'text', 
     41                    'size' => 100)), 
     42            'user' => array( 
     43                'db' => array( 
     44                    'type' => 'varchar', 
     45                    'length' => '255', 
     46                    'not_null' => true), 
     47                'picasa' => array('gphoto$user', '$t'), 
     48                'twitpic' => array('username'), 
     49                'youtube' => array('author', 0, 'name', '$t')), 
     50            'name' => array( 
     51                'db' => array( 
     52                    'type' => 'varchar', 
     53                    'length' => '255', 
     54                    'not_null' => true), 
     55                'picasa' => array('gphoto$nickname', '$t'), 
     56                'twitpic' => array('name'), 
     57                'youtube' => array('author', 0, 'name', '$t')), 
     58            'linkUrl' => array( 
     59                'db' => array( 
     60                    'type' => 'varchar', 
     61                    'length' => '255', 
     62                    'not_null' => true), 
     63                'picasa' => array('link', 1, 'href'), 
     64                'youtube' => array('link', 1, 'href'), 
     65                'flickr' => array('link', 1, 'href')), 
     66            'title' => array( 
     67                'db' => array( 
     68                    'type' => 'varchar', 
     69                    'length' => '255', 
     70                    'not_null' => true), 
     71                'picasa' => array('title', '$t'), 
     72                'youtube' => array('title', '$t'), 
     73                'flickr' => array('title')), 
     74            'description' => array( 
     75                'db' => array( 
     76                    'type' => 'text'), 
     77                'picasa' => array('subtitle', '$t'), 
     78                'flickr' => array('description')), 
     79            'location' => array( 
     80                'db' => array( 
     81                    'type' => 'varchar', 
     82                    'length' => '255'), 
     83                'picasa' => array('gphoto$location', '$t'), 
     84                'twitpic' => array('location')), 
     85            'coverPhotoUrl' => array( 
     86                'db' => array( 
     87                    'type' => 'varchar', 
     88                    'length' => '255'), 
     89                'picasa' => array('icon', '$t'), 
     90                'twitpic' => array('avatar_url'), 
     91                'youtube' => array('logo', '$t')), 
     92            'width' => array( 
     93                'db' => array( 
     94                    'type' => 'smallint unsigned')), 
     95            'height' => array( 
     96                'db' => array( 
     97                    'type' => 'smallint unsigned')), 
     98            'lastSync' => array( 
     99                'db' => array( 
     100                    'type' => 'int unsigned')), 
     101            'photoCount' => array( 
     102                'db' => array( 
     103                    'type' => 'smallint unsigned', 
     104                    'not_null' => true), 
     105                'picasa' => array('gphoto$numphotos', '$t'), 
     106                'twitpic' => array('photo_count'), 
     107                'youtube' => array('openSearch$totalResults', '$t')), 
     108            'pubDate' => array( 
     109                'db' => array( 
     110                    'type' => 'int unsigned', 
     111                    'not_null' => true), 
     112                'picasa' => array('gphoto$timestamp', '$t'), 
     113                'twitpic' => array('timestamp'), 
     114                'youtube' => array('updated', '$t')), 
     115            'geoPos' => array( 
     116                'db' => array( 
     117                    'type' => 'varchar', 
     118                    'length' => '25'), 
     119                'picasa' => array('georss$where', 'gml$Point', 'gml$pos', '$t')), 
     120            'includeInRandom' => array( 
     121                'db' => array( 
     122                    'type' => 'char', 
     123                    'length' => '1', 
     124                    'other' => "default 'Y'"), 
     125                'input' => array( 
     126                    'type' => 'radio', 
     127                    'subgroup' => array('Y' => 'Yes', 'N' => 'No'))), 
     128        ); 
    10129 
    11130        $this->clonablePhoto = $clonablePhoto; 
     
    13132        $this->tableName = $dbFacade->getTableNamePrefix() . $this->baseTableName; 
    14133 
    15         parent::__construct($dbFacade, $refData); 
     134        parent::__construct($dbFacade); 
    16135    } 
    17136 
  • shashin/trunk/Lib/ShashinContainer.php

    r559281 r565891  
    4848        if (!isset($this->clonablePhoto)) { 
    4949            $this->getDatabaseFacade(); 
    50             $this->getPhotoRefData(); 
    51             $this->clonablePhoto = new Lib_ShashinPhoto($this->dbFacade, $this->photoRefData); 
     50            $this->clonablePhoto = new Lib_ShashinPhoto($this->dbFacade); 
    5251        } 
    5352 
     
    9493        if (!isset($this->clonableAlbum)) { 
    9594            $this->getDatabaseFacade(); 
    96             $this->getAlbumRefData(); 
    9795            $this->getClonablePhoto();; 
    98             $this->clonableAlbum = new Lib_ShashinAlbum($this->dbFacade, $this->albumRefData, $this->clonablePhoto); 
     96            $this->clonableAlbum = new Lib_ShashinAlbum($this->dbFacade, $this->clonablePhoto); 
    9997        } 
    10098 
  • shashin/trunk/Lib/ShashinDataObject.php

    r515082 r565891  
    99    protected $videoFileTypes = array('mpg', 'mod', 'mmv', 'tod', 'wmv', 'asf', 'avi', 'divx', 'mov', 'm4v', '3gp', '3g2', 'mp4', 'm2t', 'm2ts', 'mts', 'mkv'); 
    1010 
    11     public function __construct(ToppaDatabaseFacade $dbFacade, Lib_ShashinDataObjectRefData $refData) { 
     11    public function __construct(ToppaDatabaseFacade $dbFacade) { 
    1212        $this->dbFacade = $dbFacade; 
    13         $this->refData = $refData; 
    1413    } 
    1514 
    1615    public function getRefData() { 
    17         return $this->refData->getRefData(); 
     16        return $this->refData; 
    1817    } 
    1918 
     
    3130        } 
    3231 
    33         elseif (array_key_exists($name, $this->getRefData())) { 
     32        elseif (array_key_exists($name, $this->refData)) { 
    3433            return null; 
    3534        } 
     
    3938 
    4039    public function __set($name, $value) { 
    41         if (array_key_exists($name, $this->getRefData())) { 
     40        if (array_key_exists($name, $this->refData)) { 
    4241            $this->data[$name] = $value; 
    4342            return true; 
     
    5453        $intTypes = $this->dbFacade->getIntTypes(); 
    5554 
    56         foreach ($this->getRefData() as $k=>$v) { 
     55        foreach ($this->refData as $k=>$v) { 
    5756            // needed for compatibility with mySql on Windows 
    5857            if (in_array($v['db']['type'], $intTypes) && array_key_exists($k, $fields)) { 
  • shashin/trunk/Lib/ShashinPhoto.php

    r515082 r565891  
    22 
    33class Lib_ShashinPhoto extends Lib_ShashinDataObject { 
    4     public function __construct(ToppaDatabaseFacade $dbFacade, Lib_ShashinPhotoRefData $refData) { 
     4    public function __construct(ToppaDatabaseFacade $dbFacade) { 
     5        $this->refData = array( 
     6            'id' => array( 
     7                'db' => array( 
     8                    'type' => 'int unsigned', 
     9                    'not_null' => true, 
     10                    'primary_key' => true, 
     11                    'other' => 'AUTO_INCREMENT')), 
     12            'sourceId' => array( 
     13                'db' => array( 
     14                    'type' => 'varchar', 
     15                    'length' => '255', 
     16                    'not_null' => true, 
     17                    'unique_key' => true), 
     18                'picasa' => array('gphoto$id', '$t'), 
     19                'twitpic' => array('short_id'), 
     20                'youtube' => array('id', '$t')), 
     21            'albumId' => array( 
     22                'db' => array( 
     23                    'type' => 'smallint unsigned', 
     24                    'not_null' => true)), 
     25            'albumType' => array( 
     26                'db' => array( 
     27                    'type' => 'varchar', 
     28                    'length' => '20', 
     29                    'not_null' => true)), 
     30            'filename' => array( 
     31                'db' => array( 
     32                    'type' => 'varchar', 
     33                    'length' => '255'), 
     34                'picasa' => array('title', '$t')), 
     35            'description' => array( 
     36                'db' => array( 
     37                    'type' => 'text'), 
     38                'picasa' => array('summary', '$t'), 
     39                'twitpic' => array('message'), 
     40                'youtube' => array('title', '$t')), 
     41            'linkUrl' => array( 
     42                'db' => array( 
     43                    'type' => 'text', 
     44                    'not_null' => true), 
     45                'picasa' => array('link', '1', 'href'), 
     46                'youtube' => array('link', '0', 'href')), 
     47            'contentUrl' => array( 
     48                'db' => array( 
     49                    'type' => 'text', 
     50                    'not_null' => true), 
     51                'picasa' => array('media$group', 'media$content', 0, 'url'), 
     52                'youtube' => array('media$group', 'media$thumbnail', 0, 'url')), 
     53            'contentType' => array( 
     54                'db' => array( 
     55                    'type' => 'varchar', 
     56                    'length' => '255', 
     57                    'not_null' => true), 
     58                'picasa' => array('media$group', 'media$content', 0, 'type'), 
     59                'twitpic' => array('type')), 
     60            'width' => array( 
     61                'db' => array( 
     62                    'type' => 'smallint unsigned', 
     63                    'not_null' => true), 
     64                'picasa' => array('media$group', 'media$content', 0, 'width'), 
     65                'twitpic' => array('width'), 
     66                'youtube' => array('media$group', 'media$thumbnail', 0, 'width')), 
     67            'height' => array( 
     68                'db' => array( 
     69                    'type' => 'smallint unsigned', 
     70                    'not_null' => true), 
     71                'picasa' => array('media$group', 'media$content', 0, 'height'), 
     72                'twitpic' => array('height'), 
     73                'youtube' => array('media$group', 'media$thumbnail', 0, 'height')), 
     74            'videoUrl' => array( 
     75                'db' => array( 
     76                    'type' => 'text', 
     77                    'not_null' => true), 
     78                'picasa' => array('media$group', 'media$content', 2, 'url'), 
     79                'youtube' => array('media$group', 'media$content', 0, 'url')), 
     80            'videoType' => array( 
     81                'db' => array( 
     82                    'type' => 'varchar', 
     83                    'length' => '255', 
     84                    'not_null' => true), 
     85                'picasa' => array('media$group', 'media$content', 2, 'type'), 
     86                'youtube' => array('media$group', 'media$content', 0, 'type')), 
     87            'videoWidth' => array( 
     88                'db' => array( 
     89                    'type' => 'smallint unsigned', 
     90                    'not_null' => true), 
     91                'picasa' => array('media$group', 'media$content', 2, 'width'), 
     92                'youtube' => array('media$group', 'media$thumbnail', 0, 'width')), 
     93            'videoHeight' => array( 
     94                'db' => array( 
     95                    'type' => 'smallint unsigned', 
     96                    'not_null' => true), 
     97                'picasa' => array('media$group', 'media$content', 2, 'height'), 
     98                'youtube' => array('media$group', 'media$thumbnail', 0, 'height')), 
     99            'takenTimestamp' => array( 
     100                'db' => array( 
     101                    'type' => 'int unsigned', 
     102                    'not_null' => true), 
     103                'picasa' => array('exif$tags', 'exif$time', '$t'), 
     104                'twitpic' => array('timestamp'), 
     105                'youtube' => array('yt$recorded', '$t')), 
     106            'uploadedTimestamp' => array( 
     107                'db' => array( 
     108                    'type' => 'int unsigned', 
     109                    'not_null' => true), 
     110                'picasa' => array('published', '$t'), 
     111                'twitpic' => array('timestamp'), 
     112                'youtube' => array('published', '$t')), 
     113            'tags' => array( 
     114                'db' => array( 
     115                    'type' => 'text'), 
     116                'picasa' => array('media$keywords', '$t'), 
     117                'twitpic' => array('tags')), 
     118            'lastSync' => array( 
     119                'db' => array( 
     120                    'type' => 'int unsigned')), 
     121            'includeInRandom' => array( 
     122                'db' => array( 
     123                    'type' => 'char', 
     124                    'length' => '1', 
     125                    'other' => "default 'Y'"), 
     126                'input' => array( 
     127                    'type' => 'radio', 
     128                    'subgroup' => array('Y' => 'Yes', 'N' => 'No'))), 
     129            'sourceOrder' => array( 
     130                'db' => array( 
     131                    'type' => 'int unsigned')), 
     132            'fstop' => array( 
     133                'db' => array( 
     134                    'type' => 'varchar', 
     135                    'length' => '10'), 
     136                'picasa' => array('exif$tags', 'exif$fstop', '$t')), 
     137            'make' => array( 
     138                'db' => array( 
     139                    'type' => 'varchar', 
     140                    'length' => '100'), 
     141                'picasa' => array('exif$tags', 'exif$make', '$t')), 
     142            'model' => array( 
     143                'db' => array( 
     144                    'type' => 'varchar', 
     145                    'length' => '100'), 
     146                'picasa' => array('exif$tags', 'exif$model', '$t')), 
     147            'exposure' => array( 
     148                'db' => array( 
     149                    'type' => 'varchar', 
     150                    'length' => '10'), 
     151                'picasa' => array('exif$tags', 'exif$exposure', '$t')), 
     152            'focalLength' => array( 
     153                'db' => array( 
     154                    'type' => 'varchar', 
     155                    'length' => '10'), 
     156                'picasa' => array('exif$tags', 'exif$focallength', '$t')), 
     157            'iso' => array( 
     158                'db' => array( 
     159                    'type' => 'varchar', 
     160                    'length' => '10'), 
     161                'picasa' => array('exif$tags', 'exif$iso', '$t')), 
     162        ); 
    5163        $this->baseTableName = 'shashin_photo'; 
    6164        $this->tableName = $dbFacade->getTableNamePrefix() . $this->baseTableName; 
    7         parent::__construct($dbFacade, $refData); 
     165        parent::__construct($dbFacade); 
    8166    } 
    9167 
  • shashin/trunk/ShashinWp.php

    r559378 r565891  
    22 
    33class ShashinWp { 
    4     private $version = '3.2.3'; 
     4    private $version = '3.2.4'; 
    55 
    66    public function __construct() { 
     
    3030        add_action('admin_menu', array($this, 'initToolsMenu')); 
    3131        add_action('admin_menu', array($this, 'initSettingsMenu')); 
    32         add_action('template_redirect', array($this, 'displayPublicHeadTags')); 
     32        add_action('wp_enqueue_scripts', array($this, 'displayPublicHeadTags')); 
    3333        add_shortcode('shashin', array($this, 'handleShortcode')); 
    3434        add_action('wp_ajax_nopriv_displayAlbumPhotos', array($this, 'ajaxDisplayAlbumPhotos')); 
  • shashin/trunk/readme.txt

    r559378 r565891  
    44Tags: Picasa, Fancybox, Twitpic, Youtube, image, images, photo, photos, picture, pictures, gallery, widget, widgets, video 
    55Requires at least: 3.0 
    6 Tested up to: 3.4 
    7 Stable tag: 3.2.3 
     6Tested up to: 3.4.1 
     7Stable tag: 3.2.4 
    88License: GPLv2 or later 
    99 
     
    1818* More user friendly UI for adding albums, photos, and videos (uses jQuery tabs menu) 
    1919* Accepts Google+ URLs for adding albums 
     20* "Limited view" album support for Picasa albums (works with Picasa URLs only, not Google+) 
    2021 
    2122**Overview** 
     
    8485 
    8586== Changelog == 
     87 
     88= 3.2.4 = 
     89* Add support for limited view Picasa albums (works with Picasa URLs only, not Google+) 
     90* Bug fix: setup to enqueue scripts and styles with wp_enqueue_scripts() (not template_redirect) 
     91* Start refactoring unit tests 
    8692 
    8793= 3.2.3 = Remove explicit depedency on Fancybox stylesheet when loading the Shashin stylesheet (to facilitate support of other photo viewers) 
  • shashin/trunk/start.php

    r559378 r565891  
    55Description: A plugin for integrating photos and videos from Picasa, YouTube, and Twitpic in WordPress. 
    66Author: Michael Toppa 
    7 Version: 3.2.3 
     7Version: 3.2.4 
    88Author URI: http://www.toppa.com 
    99License: GPLv2 or later 
Note: See TracChangeset for help on using the changeset viewer.