@@ -122,7 +122,7 @@ |
||
| 122 | 122 | |
| 123 | 123 | array('type' => 'sectionend', 'id' => 'general_options'),
|
| 124 | 124 | |
| 125 | -));/* General Options End*/ |
|
| 125 | +)); /* General Options End*/ |
|
| 126 | 126 | |
| 127 | 127 | /** |
| 128 | 128 | * Filter GD Google Analytic Settings array. |
@@ -16,87 +16,87 @@ discard block |
||
| 16 | 16 | */ |
| 17 | 17 | $general_options = apply_filters('geodir_general_options', array(
|
| 18 | 18 | |
| 19 | - array('name' => __('General', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'general_options'),
|
|
| 20 | - |
|
| 21 | - array('name' => __('General Options', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'general_options'),
|
|
| 22 | - |
|
| 23 | - array( |
|
| 24 | - 'name' => __('Sender name', 'geodirectory'),
|
|
| 25 | - 'desc' => __('(Name that will be shown as email sender when users receive emails from this site)', 'geodirectory'),
|
|
| 26 | - 'id' => 'site_email_name', |
|
| 27 | - 'type' => 'text', |
|
| 28 | - 'css' => 'min-width:300px;', |
|
| 29 | - 'std' => get_bloginfo('name') // Default value for the page title - changed in settings
|
|
| 30 | - ), |
|
| 31 | - |
|
| 32 | - array( |
|
| 33 | - 'name' => __('Email address', 'geodirectory'),
|
|
| 34 | - 'desc' => __('(Emails to users will be sent via this mail ID)', 'geodirectory'),
|
|
| 35 | - 'id' => 'site_email', |
|
| 36 | - 'type' => 'text', |
|
| 37 | - 'css' => 'min-width:300px;', |
|
| 38 | - 'std' => get_bloginfo('admin_email') // Default value for the page title - changed in settings
|
|
| 39 | - ), |
|
| 40 | - array( |
|
| 41 | - 'name' => __('Allow user to see wp-admin area', 'geodirectory'),
|
|
| 42 | - 'desc' => __('Yes', 'geodirectory'),
|
|
| 43 | - 'id' => 'geodir_allow_wpadmin', |
|
| 44 | - 'std' => '1', |
|
| 45 | - 'type' => 'radio', |
|
| 46 | - 'value' => '1', |
|
| 47 | - 'radiogroup' => 'start' |
|
| 48 | - ), |
|
| 49 | - array( |
|
| 50 | - 'name' => __('Allow user to see wp-admin area', 'geodirectory'),
|
|
| 51 | - 'desc' => __('No', 'geodirectory'),
|
|
| 52 | - 'id' => 'geodir_allow_wpadmin', |
|
| 53 | - 'std' => '0', |
|
| 54 | - 'type' => 'radio', |
|
| 55 | - 'value' => '0', |
|
| 56 | - 'radiogroup' => 'end' |
|
| 57 | - ), |
|
| 58 | - |
|
| 59 | - array( |
|
| 60 | - 'name' => __('Allow user to choose own password', 'geodirectory'),
|
|
| 61 | - 'desc' => __('Yes', 'geodirectory'),
|
|
| 62 | - 'id' => 'geodir_allow_cpass', |
|
| 63 | - 'std' => '1', |
|
| 64 | - 'type' => 'radio', |
|
| 65 | - 'value' => '1', |
|
| 66 | - 'radiogroup' => 'start' |
|
| 67 | - ), |
|
| 68 | - array( |
|
| 69 | - 'name' => __('Allow user to choose own password', 'geodirectory'),
|
|
| 70 | - 'desc' => __('No', 'geodirectory'),
|
|
| 71 | - 'id' => 'geodir_allow_cpass', |
|
| 72 | - 'std' => '0', |
|
| 73 | - 'type' => 'radio', |
|
| 74 | - 'value' => '0', |
|
| 75 | - 'radiogroup' => 'end' |
|
| 76 | - ), |
|
| 77 | - array( |
|
| 78 | - 'name' => __('Disable rating on comments', 'geodirectory'),
|
|
| 79 | - 'desc' => __('Disable rating without disabling comments on listings', 'geodirectory'),
|
|
| 80 | - 'id' => 'geodir_disable_rating', |
|
| 81 | - 'type' => 'checkbox', |
|
| 82 | - 'std' => '0' |
|
| 83 | - ), |
|
| 84 | - array( |
|
| 85 | - 'name' => __('User deleted posts go to trash', 'geodirectory'),
|
|
| 86 | - 'desc' => __('If checked a user deleted post will go to trash, otherwise it will be permanently deleted', 'geodirectory'),
|
|
| 87 | - 'id' => 'geodir_disable_perm_delete', |
|
| 88 | - 'type' => 'checkbox', |
|
| 89 | - 'std' => '1' |
|
| 90 | - ), |
|
| 91 | - array( |
|
| 92 | - 'name' => __('Max upload file size(in mb)', 'geodirectory'),
|
|
| 93 | - 'desc' => __('(Maximum upload file size in MB, 1 MB = 1024 KB. Must be greater then 0(ZERO), for ex: 2. This setting will overwrite the max upload file size limit in image/file upload & import listings for entire GeoDirectory core + GeoDirectory plugins.)', 'geodirectory'),
|
|
| 94 | - 'id' => 'geodir_upload_max_filesize', |
|
| 95 | - 'type' => 'text', |
|
| 96 | - 'css' => 'min-width:300px;', |
|
| 97 | - 'std' => '2' |
|
| 98 | - ), |
|
| 99 | - array('type' => 'sectionend', 'id' => 'general_options'),
|
|
| 19 | + array('name' => __('General', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'general_options'),
|
|
| 20 | + |
|
| 21 | + array('name' => __('General Options', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'general_options'),
|
|
| 22 | + |
|
| 23 | + array( |
|
| 24 | + 'name' => __('Sender name', 'geodirectory'),
|
|
| 25 | + 'desc' => __('(Name that will be shown as email sender when users receive emails from this site)', 'geodirectory'),
|
|
| 26 | + 'id' => 'site_email_name', |
|
| 27 | + 'type' => 'text', |
|
| 28 | + 'css' => 'min-width:300px;', |
|
| 29 | + 'std' => get_bloginfo('name') // Default value for the page title - changed in settings
|
|
| 30 | + ), |
|
| 31 | + |
|
| 32 | + array( |
|
| 33 | + 'name' => __('Email address', 'geodirectory'),
|
|
| 34 | + 'desc' => __('(Emails to users will be sent via this mail ID)', 'geodirectory'),
|
|
| 35 | + 'id' => 'site_email', |
|
| 36 | + 'type' => 'text', |
|
| 37 | + 'css' => 'min-width:300px;', |
|
| 38 | + 'std' => get_bloginfo('admin_email') // Default value for the page title - changed in settings
|
|
| 39 | + ), |
|
| 40 | + array( |
|
| 41 | + 'name' => __('Allow user to see wp-admin area', 'geodirectory'),
|
|
| 42 | + 'desc' => __('Yes', 'geodirectory'),
|
|
| 43 | + 'id' => 'geodir_allow_wpadmin', |
|
| 44 | + 'std' => '1', |
|
| 45 | + 'type' => 'radio', |
|
| 46 | + 'value' => '1', |
|
| 47 | + 'radiogroup' => 'start' |
|
| 48 | + ), |
|
| 49 | + array( |
|
| 50 | + 'name' => __('Allow user to see wp-admin area', 'geodirectory'),
|
|
| 51 | + 'desc' => __('No', 'geodirectory'),
|
|
| 52 | + 'id' => 'geodir_allow_wpadmin', |
|
| 53 | + 'std' => '0', |
|
| 54 | + 'type' => 'radio', |
|
| 55 | + 'value' => '0', |
|
| 56 | + 'radiogroup' => 'end' |
|
| 57 | + ), |
|
| 58 | + |
|
| 59 | + array( |
|
| 60 | + 'name' => __('Allow user to choose own password', 'geodirectory'),
|
|
| 61 | + 'desc' => __('Yes', 'geodirectory'),
|
|
| 62 | + 'id' => 'geodir_allow_cpass', |
|
| 63 | + 'std' => '1', |
|
| 64 | + 'type' => 'radio', |
|
| 65 | + 'value' => '1', |
|
| 66 | + 'radiogroup' => 'start' |
|
| 67 | + ), |
|
| 68 | + array( |
|
| 69 | + 'name' => __('Allow user to choose own password', 'geodirectory'),
|
|
| 70 | + 'desc' => __('No', 'geodirectory'),
|
|
| 71 | + 'id' => 'geodir_allow_cpass', |
|
| 72 | + 'std' => '0', |
|
| 73 | + 'type' => 'radio', |
|
| 74 | + 'value' => '0', |
|
| 75 | + 'radiogroup' => 'end' |
|
| 76 | + ), |
|
| 77 | + array( |
|
| 78 | + 'name' => __('Disable rating on comments', 'geodirectory'),
|
|
| 79 | + 'desc' => __('Disable rating without disabling comments on listings', 'geodirectory'),
|
|
| 80 | + 'id' => 'geodir_disable_rating', |
|
| 81 | + 'type' => 'checkbox', |
|
| 82 | + 'std' => '0' |
|
| 83 | + ), |
|
| 84 | + array( |
|
| 85 | + 'name' => __('User deleted posts go to trash', 'geodirectory'),
|
|
| 86 | + 'desc' => __('If checked a user deleted post will go to trash, otherwise it will be permanently deleted', 'geodirectory'),
|
|
| 87 | + 'id' => 'geodir_disable_perm_delete', |
|
| 88 | + 'type' => 'checkbox', |
|
| 89 | + 'std' => '1' |
|
| 90 | + ), |
|
| 91 | + array( |
|
| 92 | + 'name' => __('Max upload file size(in mb)', 'geodirectory'),
|
|
| 93 | + 'desc' => __('(Maximum upload file size in MB, 1 MB = 1024 KB. Must be greater then 0(ZERO), for ex: 2. This setting will overwrite the max upload file size limit in image/file upload & import listings for entire GeoDirectory core + GeoDirectory plugins.)', 'geodirectory'),
|
|
| 94 | + 'id' => 'geodir_upload_max_filesize', |
|
| 95 | + 'type' => 'text', |
|
| 96 | + 'css' => 'min-width:300px;', |
|
| 97 | + 'std' => '2' |
|
| 98 | + ), |
|
| 99 | + array('type' => 'sectionend', 'id' => 'general_options'),
|
|
| 100 | 100 | |
| 101 | 101 | ));/* General Options End*/ |
| 102 | 102 | |
@@ -108,96 +108,96 @@ discard block |
||
| 108 | 108 | */ |
| 109 | 109 | $google_analytic_settings = apply_filters('geodir_google_analytic_settings', array(
|
| 110 | 110 | |
| 111 | - array('name' => __('Google Analytics', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'google_analytic_settings'),
|
|
| 112 | - |
|
| 113 | - array('name' => __('Google Analytic Settings', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'google_analytic_settings'),
|
|
| 114 | - |
|
| 115 | - |
|
| 116 | - |
|
| 117 | - array( |
|
| 118 | - 'name' => __('Show business owner google analytics stats?', 'geodirectory'),
|
|
| 119 | - 'desc' => __('Yes', 'geodirectory'),
|
|
| 120 | - 'id' => 'geodir_ga_stats', |
|
| 121 | - 'std' => '0', |
|
| 122 | - 'type' => 'radio', |
|
| 123 | - 'value' => '1', |
|
| 124 | - 'radiogroup' => 'start' |
|
| 125 | - ), |
|
| 126 | - array( |
|
| 127 | - 'name' => __('Show business owner Google Analytics stats?', 'geodirectory'),
|
|
| 128 | - 'desc' => __('No', 'geodirectory'),
|
|
| 129 | - 'id' => 'geodir_ga_stats', |
|
| 130 | - 'std' => '1', |
|
| 131 | - 'type' => 'radio', |
|
| 132 | - 'value' => '0', |
|
| 133 | - 'radiogroup' => 'end' |
|
| 134 | - ), |
|
| 135 | - |
|
| 136 | - array( |
|
| 137 | - 'name' => __('Google analytics access', 'geodirectory'),
|
|
| 138 | - 'desc' => '', |
|
| 139 | - 'id' => 'geodir_ga_token', |
|
| 140 | - 'type' => 'google_analytics', |
|
| 141 | - 'css' => 'min-width:300px;', |
|
| 142 | - 'std' => '' // Default value for the page title - changed in settings |
|
| 143 | - ), |
|
| 144 | - |
|
| 145 | - array( |
|
| 146 | - 'name' => __('Google analytics Auth Code', 'geodirectory'),
|
|
| 147 | - 'desc' => __('You must save this setting before accounts will show.', 'geodirectory'),
|
|
| 148 | - 'id' => 'geodir_ga_auth_code', |
|
| 149 | - 'type' => 'text', |
|
| 150 | - 'css' => 'min-width:300px;', |
|
| 151 | - 'std' => '' // Default value for the page title - changed in settings |
|
| 152 | - ), |
|
| 153 | - |
|
| 154 | - array( |
|
| 155 | - 'name' => __('Analytics Account', 'geodirectory'),
|
|
| 156 | - 'desc' => __('Select the account that you setup for this site.', 'geodirectory'),
|
|
| 157 | - 'id' => 'geodir_ga_account_id', |
|
| 158 | - 'css' => 'min-width:300px;', |
|
| 159 | - 'std' => 'gridview_onehalf', |
|
| 160 | - 'type' => 'select', |
|
| 161 | - 'class' => 'chosen_select', |
|
| 162 | - 'options' => geodir_gd_accounts() |
|
| 163 | - ), |
|
| 164 | - |
|
| 165 | - |
|
| 166 | - array( |
|
| 167 | - 'name' => __('Add Google analytics tracking code to site?', 'geodirectory'),
|
|
| 168 | - 'desc' => __('Yes <small>(this will automatically add the correct tracking code to your site)</small>', 'geodirectory'),
|
|
| 169 | - 'id' => 'geodir_ga_add_tracking_code', |
|
| 170 | - 'std' => '0', |
|
| 171 | - 'type' => 'radio', |
|
| 172 | - 'value' => '1', |
|
| 173 | - 'radiogroup' => 'start' |
|
| 174 | - ), |
|
| 175 | - array( |
|
| 176 | - 'name' => __('Add Google analytics tracking code to site?', 'geodirectory'),
|
|
| 177 | - 'desc' => __('No <small>(if you already have tracking code added you should not add it again)</small>', 'geodirectory'),
|
|
| 178 | - 'id' => 'geodir_ga_add_tracking_code', |
|
| 179 | - 'std' => '1', |
|
| 180 | - 'type' => 'radio', |
|
| 181 | - 'value' => '0', |
|
| 182 | - 'radiogroup' => 'end' |
|
| 183 | - ), |
|
| 184 | - |
|
| 185 | - array( |
|
| 186 | - 'name' => __('Auto refresh active users?', 'geodirectory'),
|
|
| 187 | - 'desc' => __('If ticked it uses the auto refresh time below, if not it never refreshes unless the refresh button is clicked.', 'geodirectory'),
|
|
| 188 | - 'id' => 'geodir_ga_auto_refresh', |
|
| 189 | - 'type' => 'checkbox', |
|
| 190 | - 'std' => '0' |
|
| 191 | - ), |
|
| 192 | - array( |
|
| 193 | - 'name' => __('Time interval for auto refresh active users', 'geodirectory'),
|
|
| 194 | - 'desc' => __('Time interval in seconds to auto refresh active users. The active users will be auto refreshed after this time interval. Leave blank or use 0(zero) to disable auto refresh. Default: 5', 'geodirectory'),
|
|
| 195 | - 'id' => 'geodir_ga_refresh_time', |
|
| 196 | - 'type' => 'text', |
|
| 197 | - 'std' => '5' |
|
| 198 | - ), |
|
| 199 | - |
|
| 200 | - array('type' => 'sectionend', 'id' => 'google_analytic_settings'),
|
|
| 111 | + array('name' => __('Google Analytics', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'google_analytic_settings'),
|
|
| 112 | + |
|
| 113 | + array('name' => __('Google Analytic Settings', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'google_analytic_settings'),
|
|
| 114 | + |
|
| 115 | + |
|
| 116 | + |
|
| 117 | + array( |
|
| 118 | + 'name' => __('Show business owner google analytics stats?', 'geodirectory'),
|
|
| 119 | + 'desc' => __('Yes', 'geodirectory'),
|
|
| 120 | + 'id' => 'geodir_ga_stats', |
|
| 121 | + 'std' => '0', |
|
| 122 | + 'type' => 'radio', |
|
| 123 | + 'value' => '1', |
|
| 124 | + 'radiogroup' => 'start' |
|
| 125 | + ), |
|
| 126 | + array( |
|
| 127 | + 'name' => __('Show business owner Google Analytics stats?', 'geodirectory'),
|
|
| 128 | + 'desc' => __('No', 'geodirectory'),
|
|
| 129 | + 'id' => 'geodir_ga_stats', |
|
| 130 | + 'std' => '1', |
|
| 131 | + 'type' => 'radio', |
|
| 132 | + 'value' => '0', |
|
| 133 | + 'radiogroup' => 'end' |
|
| 134 | + ), |
|
| 135 | + |
|
| 136 | + array( |
|
| 137 | + 'name' => __('Google analytics access', 'geodirectory'),
|
|
| 138 | + 'desc' => '', |
|
| 139 | + 'id' => 'geodir_ga_token', |
|
| 140 | + 'type' => 'google_analytics', |
|
| 141 | + 'css' => 'min-width:300px;', |
|
| 142 | + 'std' => '' // Default value for the page title - changed in settings |
|
| 143 | + ), |
|
| 144 | + |
|
| 145 | + array( |
|
| 146 | + 'name' => __('Google analytics Auth Code', 'geodirectory'),
|
|
| 147 | + 'desc' => __('You must save this setting before accounts will show.', 'geodirectory'),
|
|
| 148 | + 'id' => 'geodir_ga_auth_code', |
|
| 149 | + 'type' => 'text', |
|
| 150 | + 'css' => 'min-width:300px;', |
|
| 151 | + 'std' => '' // Default value for the page title - changed in settings |
|
| 152 | + ), |
|
| 153 | + |
|
| 154 | + array( |
|
| 155 | + 'name' => __('Analytics Account', 'geodirectory'),
|
|
| 156 | + 'desc' => __('Select the account that you setup for this site.', 'geodirectory'),
|
|
| 157 | + 'id' => 'geodir_ga_account_id', |
|
| 158 | + 'css' => 'min-width:300px;', |
|
| 159 | + 'std' => 'gridview_onehalf', |
|
| 160 | + 'type' => 'select', |
|
| 161 | + 'class' => 'chosen_select', |
|
| 162 | + 'options' => geodir_gd_accounts() |
|
| 163 | + ), |
|
| 164 | + |
|
| 165 | + |
|
| 166 | + array( |
|
| 167 | + 'name' => __('Add Google analytics tracking code to site?', 'geodirectory'),
|
|
| 168 | + 'desc' => __('Yes <small>(this will automatically add the correct tracking code to your site)</small>', 'geodirectory'),
|
|
| 169 | + 'id' => 'geodir_ga_add_tracking_code', |
|
| 170 | + 'std' => '0', |
|
| 171 | + 'type' => 'radio', |
|
| 172 | + 'value' => '1', |
|
| 173 | + 'radiogroup' => 'start' |
|
| 174 | + ), |
|
| 175 | + array( |
|
| 176 | + 'name' => __('Add Google analytics tracking code to site?', 'geodirectory'),
|
|
| 177 | + 'desc' => __('No <small>(if you already have tracking code added you should not add it again)</small>', 'geodirectory'),
|
|
| 178 | + 'id' => 'geodir_ga_add_tracking_code', |
|
| 179 | + 'std' => '1', |
|
| 180 | + 'type' => 'radio', |
|
| 181 | + 'value' => '0', |
|
| 182 | + 'radiogroup' => 'end' |
|
| 183 | + ), |
|
| 184 | + |
|
| 185 | + array( |
|
| 186 | + 'name' => __('Auto refresh active users?', 'geodirectory'),
|
|
| 187 | + 'desc' => __('If ticked it uses the auto refresh time below, if not it never refreshes unless the refresh button is clicked.', 'geodirectory'),
|
|
| 188 | + 'id' => 'geodir_ga_auto_refresh', |
|
| 189 | + 'type' => 'checkbox', |
|
| 190 | + 'std' => '0' |
|
| 191 | + ), |
|
| 192 | + array( |
|
| 193 | + 'name' => __('Time interval for auto refresh active users', 'geodirectory'),
|
|
| 194 | + 'desc' => __('Time interval in seconds to auto refresh active users. The active users will be auto refreshed after this time interval. Leave blank or use 0(zero) to disable auto refresh. Default: 5', 'geodirectory'),
|
|
| 195 | + 'id' => 'geodir_ga_refresh_time', |
|
| 196 | + 'type' => 'text', |
|
| 197 | + 'std' => '5' |
|
| 198 | + ), |
|
| 199 | + |
|
| 200 | + array('type' => 'sectionend', 'id' => 'google_analytic_settings'),
|
|
| 201 | 201 | |
| 202 | 202 | )); // google_analytic_settings End |
| 203 | 203 | |
@@ -209,84 +209,84 @@ discard block |
||
| 209 | 209 | */ |
| 210 | 210 | $search_settings = apply_filters('geodir_search_settings', array(
|
| 211 | 211 | |
| 212 | - array('name' => __('Search', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'search_settings'),
|
|
| 213 | - |
|
| 214 | - array('name' => __('Search Settings', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'search_settings'),
|
|
| 215 | - |
|
| 216 | - array( |
|
| 217 | - 'name' => __('Limit squared distance area to X miles (helps improve search speed)', 'geodirectory'),
|
|
| 218 | - 'desc' => __('Enter whole number only ex. 40 (Tokyo is largest city in the world @40 sq miles) LEAVE BLANK FOR NO DISTANCE LIMIT', 'geodirectory'),
|
|
| 219 | - 'id' => 'geodir_search_dist', |
|
| 220 | - 'type' => 'text', |
|
| 221 | - 'css' => 'min-width:300px;', |
|
| 222 | - 'std' => '40' // Default value for the page title - changed in settings |
|
| 223 | - ), |
|
| 224 | - |
|
| 225 | - array( |
|
| 226 | - 'name' => __('Show search distances in miles or km', 'geodirectory'),
|
|
| 227 | - 'desc' => __('Miles', 'geodirectory'),
|
|
| 228 | - 'id' => 'geodir_search_dist_1', |
|
| 229 | - 'std' => 'miles', |
|
| 230 | - 'type' => 'radio', |
|
| 231 | - 'value' => 'miles', |
|
| 232 | - 'radiogroup' => 'start' |
|
| 233 | - ), |
|
| 234 | - array( |
|
| 235 | - 'name' => __('Show search distances in miles or km', 'geodirectory'),
|
|
| 236 | - 'desc' => __('Kilometers', 'geodirectory'),
|
|
| 237 | - 'id' => 'geodir_search_dist_1', |
|
| 238 | - 'std' => 'miles', |
|
| 239 | - 'type' => 'radio', |
|
| 240 | - 'value' => 'km', |
|
| 241 | - 'radiogroup' => 'end' |
|
| 242 | - ), |
|
| 243 | - |
|
| 244 | - array( |
|
| 245 | - 'name' => __('If distance is less than 0.01 show distance in meters or feet', 'geodirectory'),
|
|
| 246 | - 'desc' => __('Meters', 'geodirectory'),
|
|
| 247 | - 'id' => 'geodir_search_dist_2', |
|
| 248 | - 'std' => 'meters', |
|
| 249 | - 'type' => 'radio', |
|
| 250 | - 'value' => 'meters', |
|
| 251 | - 'radiogroup' => 'start' |
|
| 252 | - ), |
|
| 253 | - |
|
| 254 | - array( |
|
| 255 | - 'name' => __('If distance is less than 0.01 show distance in meters or feet', 'geodirectory'),
|
|
| 256 | - 'desc' => __('Feet', 'geodirectory'),
|
|
| 257 | - 'id' => 'geodir_search_dist_2', |
|
| 258 | - 'std' => 'meters', |
|
| 259 | - 'type' => 'radio', |
|
| 260 | - 'value' => 'feet', |
|
| 261 | - 'radiogroup' => 'end' |
|
| 262 | - ), |
|
| 263 | - |
|
| 264 | - array( |
|
| 265 | - 'name' => __('Add location specific text to (Near) search for Google', 'geodirectory'),
|
|
| 266 | - 'desc' => __('This is usefull if your directory is limted to one location such as: New York or Australia (this setting should be blank if using default country, regions etc with multilocation addon as it will automatically add them)', 'geodirectory'),
|
|
| 267 | - 'id' => 'geodir_search_near_addition', |
|
| 268 | - 'type' => 'text', |
|
| 269 | - 'css' => 'min-width:300px;', |
|
| 270 | - 'std' => '' |
|
| 271 | - ), |
|
| 272 | - array( |
|
| 273 | - 'name' => __('Individual word search limit', 'geodirectory'),
|
|
| 274 | - 'desc' => __('With this option you can limit individual words being searched for, for example searching for `Jo Brown` would return results with words like `Jones`, you can exclude these types of small character words if you wish.', 'geodirectory'),
|
|
| 275 | - 'id' => 'geodir_search_word_limit', |
|
| 276 | - 'css' => 'min-width:300px;', |
|
| 277 | - 'std' => 'gridview_onehalf', |
|
| 278 | - 'type' => 'select', |
|
| 279 | - 'class' => 'chosen_select', |
|
| 280 | - 'options' => array_unique(array( |
|
| 281 | - '0' => __('Disabled', 'geodirectory'),
|
|
| 282 | - '1' => __('1 Character words excluded', 'geodirectory'),
|
|
| 283 | - '2' => __('2 Character words and less excluded', 'geodirectory'),
|
|
| 284 | - '3' => __('3 Character words and less excluded', 'geodirectory'),
|
|
| 285 | - )) |
|
| 286 | - ), |
|
| 287 | - |
|
| 288 | - |
|
| 289 | - array('type' => 'sectionend', 'id' => 'search_settings'),
|
|
| 212 | + array('name' => __('Search', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'search_settings'),
|
|
| 213 | + |
|
| 214 | + array('name' => __('Search Settings', 'geodirectory'), 'type' => 'sectionstart', 'id' => 'search_settings'),
|
|
| 215 | + |
|
| 216 | + array( |
|
| 217 | + 'name' => __('Limit squared distance area to X miles (helps improve search speed)', 'geodirectory'),
|
|
| 218 | + 'desc' => __('Enter whole number only ex. 40 (Tokyo is largest city in the world @40 sq miles) LEAVE BLANK FOR NO DISTANCE LIMIT', 'geodirectory'),
|
|
| 219 | + 'id' => 'geodir_search_dist', |
|
| 220 | + 'type' => 'text', |
|
| 221 | + 'css' => 'min-width:300px;', |
|
| 222 | + 'std' => '40' // Default value for the page title - changed in settings |
|
| 223 | + ), |
|
| 224 | + |
|
| 225 | + array( |
|
| 226 | + 'name' => __('Show search distances in miles or km', 'geodirectory'),
|
|
| 227 | + 'desc' => __('Miles', 'geodirectory'),
|
|
| 228 | + 'id' => 'geodir_search_dist_1', |
|
| 229 | + 'std' => 'miles', |
|
| 230 | + 'type' => 'radio', |
|
| 231 | + 'value' => 'miles', |
|
| 232 | + 'radiogroup' => 'start' |
|
| 233 | + ), |
|
| 234 | + array( |
|
| 235 | + 'name' => __('Show search distances in miles or km', 'geodirectory'),
|
|
| 236 | + 'desc' => __('Kilometers', 'geodirectory'),
|
|
| 237 | + 'id' => 'geodir_search_dist_1', |
|
| 238 | + 'std' => 'miles', |
|
| 239 | + 'type' => 'radio', |
|
| 240 | + 'value' => 'km', |
|
| 241 | + 'radiogroup' => 'end' |
|
| 242 | + ), |
|
| 243 | + |
|
| 244 | + array( |
|
| 245 | + 'name' => __('If distance is less than 0.01 show distance in meters or feet', 'geodirectory'),
|
|
| 246 | + 'desc' => __('Meters', 'geodirectory'),
|
|
| 247 | + 'id' => 'geodir_search_dist_2', |
|
| 248 | + 'std' => 'meters', |
|
| 249 | + 'type' => 'radio', |
|
| 250 | + 'value' => 'meters', |
|
| 251 | + 'radiogroup' => 'start' |
|
| 252 | + ), |
|
| 253 | + |
|
| 254 | + array( |
|
| 255 | + 'name' => __('If distance is less than 0.01 show distance in meters or feet', 'geodirectory'),
|
|
| 256 | + 'desc' => __('Feet', 'geodirectory'),
|
|
| 257 | + 'id' => 'geodir_search_dist_2', |
|
| 258 | + 'std' => 'meters', |
|
| 259 | + 'type' => 'radio', |
|
| 260 | + 'value' => 'feet', |
|
| 261 | + 'radiogroup' => 'end' |
|
| 262 | + ), |
|
| 263 | + |
|
| 264 | + array( |
|
| 265 | + 'name' => __('Add location specific text to (Near) search for Google', 'geodirectory'),
|
|
| 266 | + 'desc' => __('This is usefull if your directory is limted to one location such as: New York or Australia (this setting should be blank if using default country, regions etc with multilocation addon as it will automatically add them)', 'geodirectory'),
|
|
| 267 | + 'id' => 'geodir_search_near_addition', |
|
| 268 | + 'type' => 'text', |
|
| 269 | + 'css' => 'min-width:300px;', |
|
| 270 | + 'std' => '' |
|
| 271 | + ), |
|
| 272 | + array( |
|
| 273 | + 'name' => __('Individual word search limit', 'geodirectory'),
|
|
| 274 | + 'desc' => __('With this option you can limit individual words being searched for, for example searching for `Jo Brown` would return results with words like `Jones`, you can exclude these types of small character words if you wish.', 'geodirectory'),
|
|
| 275 | + 'id' => 'geodir_search_word_limit', |
|
| 276 | + 'css' => 'min-width:300px;', |
|
| 277 | + 'std' => 'gridview_onehalf', |
|
| 278 | + 'type' => 'select', |
|
| 279 | + 'class' => 'chosen_select', |
|
| 280 | + 'options' => array_unique(array( |
|
| 281 | + '0' => __('Disabled', 'geodirectory'),
|
|
| 282 | + '1' => __('1 Character words excluded', 'geodirectory'),
|
|
| 283 | + '2' => __('2 Character words and less excluded', 'geodirectory'),
|
|
| 284 | + '3' => __('3 Character words and less excluded', 'geodirectory'),
|
|
| 285 | + )) |
|
| 286 | + ), |
|
| 287 | + |
|
| 288 | + |
|
| 289 | + array('type' => 'sectionend', 'id' => 'search_settings'),
|
|
| 290 | 290 | |
| 291 | 291 | )); //search_settings End |
| 292 | 292 | |
@@ -298,17 +298,17 @@ discard block |
||
| 298 | 298 | */ |
| 299 | 299 | $dummy_data_settings = apply_filters('geodir_dummy_data_settings', array(
|
| 300 | 300 | |
| 301 | - array('name' => __('Dummy Data', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'dummy_data_settings'),
|
|
| 302 | - |
|
| 303 | - array( |
|
| 304 | - 'name' => '', |
|
| 305 | - 'desc' => '', |
|
| 306 | - 'id' => 'geodir_dummy_data_installer', |
|
| 307 | - 'type' => 'dummy_installer', |
|
| 308 | - 'css' => 'min-width:300px;', |
|
| 309 | - 'std' => '40' // Default value for the page title - changed in settings |
|
| 310 | - ), |
|
| 311 | - array('type' => 'sectionend', 'id' => 'geodir_dummy_data_settings'),
|
|
| 301 | + array('name' => __('Dummy Data', 'geodirectory'), 'type' => 'title', 'desc' => '', 'id' => 'dummy_data_settings'),
|
|
| 302 | + |
|
| 303 | + array( |
|
| 304 | + 'name' => '', |
|
| 305 | + 'desc' => '', |
|
| 306 | + 'id' => 'geodir_dummy_data_installer', |
|
| 307 | + 'type' => 'dummy_installer', |
|
| 308 | + 'css' => 'min-width:300px;', |
|
| 309 | + 'std' => '40' // Default value for the page title - changed in settings |
|
| 310 | + ), |
|
| 311 | + array('type' => 'sectionend', 'id' => 'geodir_dummy_data_settings'),
|
|
| 312 | 312 | |
| 313 | 313 | )); //dummy_data_settings End |
| 314 | 314 | |
@@ -223,6 +223,9 @@ |
||
| 223 | 223 | * @param filter - the property to filter on |
| 224 | 224 | * @param limit - the number of items to get |
| 225 | 225 | * @param realtime - if the realtime api should be used |
| 226 | + * @param string $metric |
|
| 227 | + * @param string $startDate |
|
| 228 | + * @param string $endDate |
|
| 226 | 229 | * @return the specific metrics in array form |
| 227 | 230 | **/ |
| 228 | 231 | function getMetrics($metric, $startDate, $endDate, $dimensions = false, $sort = false, $filter = false, $limit = false, $realtime = false) |
@@ -34,138 +34,138 @@ discard block |
||
| 34 | 34 | require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php'; |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | - $this->client = new Google_Client(); |
|
| 38 | - $this->client->setApprovalPrompt("force"); |
|
| 39 | - $this->client->setAccessType('offline'); |
|
| 40 | - $this->client->setClientId(GEODIR_GA_CLIENTID); |
|
| 41 | - $this->client->setClientSecret(GEODIR_GA_CLIENTSECRET); |
|
| 42 | - $this->client->setRedirectUri(GEODIR_GA_REDIRECT); |
|
| 37 | + $this->client = new Google_Client(); |
|
| 38 | + $this->client->setApprovalPrompt("force"); |
|
| 39 | + $this->client->setAccessType('offline'); |
|
| 40 | + $this->client->setClientId(GEODIR_GA_CLIENTID); |
|
| 41 | + $this->client->setClientSecret(GEODIR_GA_CLIENTSECRET); |
|
| 42 | + $this->client->setRedirectUri(GEODIR_GA_REDIRECT); |
|
| 43 | 43 | |
| 44 | - $this->client->setScopes(array("https://www.googleapis.com/auth/analytics")); |
|
| 44 | + $this->client->setScopes(array("https://www.googleapis.com/auth/analytics")); |
|
| 45 | 45 | |
| 46 | - // Magic. Returns objects from the Analytics Service instead of associative arrays. |
|
| 47 | - $this->client->setUseObjects(true); |
|
| 46 | + // Magic. Returns objects from the Analytics Service instead of associative arrays. |
|
| 47 | + $this->client->setUseObjects(true); |
|
| 48 | 48 | |
| 49 | - try { |
|
| 50 | - $this->analytics = new Google_AnalyticsService($this->client); |
|
| 51 | - } |
|
| 52 | - catch (Google_ServiceException $e) |
|
| 53 | - { |
|
| 54 | - print '(cas:48) There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); |
|
| 49 | + try { |
|
| 50 | + $this->analytics = new Google_AnalyticsService($this->client); |
|
| 51 | + } |
|
| 52 | + catch (Google_ServiceException $e) |
|
| 53 | + { |
|
| 54 | + print '(cas:48) There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); |
|
| 55 | 55 | return false; |
| 56 | - } |
|
| 56 | + } |
|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | function checkLogin() |
| 60 | 60 | { |
| 61 | - $ga_google_authtoken = get_option('geodir_ga_auth_token'); |
|
| 61 | + $ga_google_authtoken = get_option('geodir_ga_auth_token'); |
|
| 62 | 62 | |
| 63 | - if (!empty($ga_google_authtoken)) |
|
| 64 | - { |
|
| 63 | + if (!empty($ga_google_authtoken)) |
|
| 64 | + { |
|
| 65 | 65 | try |
| 66 | - { |
|
| 67 | - $this->client->setAccessToken($ga_google_authtoken); |
|
| 66 | + { |
|
| 67 | + $this->client->setAccessToken($ga_google_authtoken); |
|
| 68 | 68 | } |
| 69 | 69 | catch( Google_AuthException $e ) |
| 70 | - { |
|
| 71 | - print '(cas:72) GeoDirectory was unable to authenticate you with |
|
| 70 | + { |
|
| 71 | + print '(cas:72) GeoDirectory was unable to authenticate you with |
|
| 72 | 72 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
| 73 | 73 | This could mean either you pasted the token wrong, or the time/date on your server is wrong, |
| 74 | 74 | or an SSL issue preventing Google from Authenticating. <br><br> |
| 75 | 75 | <br><br><strong>Tech Info </strong> ' . $e->getCode() . ':' . $e->getMessage(); |
| 76 | 76 | |
| 77 | - return false; |
|
| 78 | - } |
|
| 79 | - } |
|
| 80 | - else |
|
| 81 | - { |
|
| 82 | - $authCode = get_option('geodir_ga_auth_code'); |
|
| 83 | - |
|
| 84 | - if (empty($authCode)) return false; |
|
| 85 | - |
|
| 86 | - try |
|
| 87 | - { |
|
| 88 | - $accessToken = $this->client->authenticate($authCode); |
|
| 89 | - } |
|
| 90 | - catch( Exception $e ) |
|
| 91 | - { |
|
| 92 | - print '(cas:72) GeoDirectory was unable to authenticate you with |
|
| 77 | + return false; |
|
| 78 | + } |
|
| 79 | + } |
|
| 80 | + else |
|
| 81 | + { |
|
| 82 | + $authCode = get_option('geodir_ga_auth_code'); |
|
| 83 | + |
|
| 84 | + if (empty($authCode)) return false; |
|
| 85 | + |
|
| 86 | + try |
|
| 87 | + { |
|
| 88 | + $accessToken = $this->client->authenticate($authCode); |
|
| 89 | + } |
|
| 90 | + catch( Exception $e ) |
|
| 91 | + { |
|
| 92 | + print '(cas:72) GeoDirectory was unable to authenticate you with |
|
| 93 | 93 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
| 94 | 94 | This could mean either you pasted the token wrong, or the time/date on your server is wrong, |
| 95 | 95 | or an SSL issue preventing Google from Authenticating. <br><br> |
| 96 | 96 | <br><br><strong>Tech Info </strong> ' . $e->getCode() . ':' . $e->getMessage(); |
| 97 | 97 | |
| 98 | - return false; |
|
| 99 | - } |
|
| 100 | - |
|
| 101 | - if($accessToken) |
|
| 102 | - { |
|
| 103 | - $this->client->setAccessToken($accessToken); |
|
| 104 | - update_option('geodir_ga_auth_token', $accessToken); |
|
| 105 | - } |
|
| 106 | - else |
|
| 107 | - { |
|
| 108 | - return false; |
|
| 109 | - } |
|
| 110 | - } |
|
| 111 | - |
|
| 112 | - $this->token = $this->client->getAccessToken(); |
|
| 113 | - return true; |
|
| 98 | + return false; |
|
| 99 | + } |
|
| 100 | + |
|
| 101 | + if($accessToken) |
|
| 102 | + { |
|
| 103 | + $this->client->setAccessToken($accessToken); |
|
| 104 | + update_option('geodir_ga_auth_token', $accessToken); |
|
| 105 | + } |
|
| 106 | + else |
|
| 107 | + { |
|
| 108 | + return false; |
|
| 109 | + } |
|
| 110 | + } |
|
| 111 | + |
|
| 112 | + $this->token = $this->client->getAccessToken(); |
|
| 113 | + return true; |
|
| 114 | 114 | } |
| 115 | 115 | |
| 116 | 116 | function deauthorize() |
| 117 | 117 | { |
| 118 | - update_option('geodir_ga_auth_code', ''); |
|
| 119 | - update_option('geodir_ga_auth_token', ''); |
|
| 118 | + update_option('geodir_ga_auth_code', ''); |
|
| 119 | + update_option('geodir_ga_auth_token', ''); |
|
| 120 | 120 | } |
| 121 | 121 | |
| 122 | 122 | function getSingleProfile() |
| 123 | 123 | { |
| 124 | - $webproperty_id = get_option('geodir_ga_account_id'); |
|
| 125 | - list($pre, $account_id, $post) = explode('-',$webproperty_id); |
|
| 126 | - |
|
| 127 | - if (empty($webproperty_id)) return false; |
|
| 128 | - |
|
| 129 | - try { |
|
| 130 | - $profiles = $this->analytics->management_profiles->listManagementProfiles($account_id, $webproperty_id); |
|
| 131 | - } |
|
| 132 | - catch (Google_ServiceException $e) |
|
| 133 | - { |
|
| 134 | - print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 135 | - return false; |
|
| 136 | - } |
|
| 137 | - |
|
| 138 | - $profile_id = $profiles->items[0]->id; |
|
| 139 | - if (empty($profile_id)) return false; |
|
| 140 | - |
|
| 141 | - $account_array = array(); |
|
| 142 | - array_push($account_array, array('id'=>$profile_id, 'ga:webPropertyId'=>$webproperty_id)); |
|
| 143 | - return $account_array; |
|
| 124 | + $webproperty_id = get_option('geodir_ga_account_id'); |
|
| 125 | + list($pre, $account_id, $post) = explode('-',$webproperty_id); |
|
| 126 | + |
|
| 127 | + if (empty($webproperty_id)) return false; |
|
| 128 | + |
|
| 129 | + try { |
|
| 130 | + $profiles = $this->analytics->management_profiles->listManagementProfiles($account_id, $webproperty_id); |
|
| 131 | + } |
|
| 132 | + catch (Google_ServiceException $e) |
|
| 133 | + { |
|
| 134 | + print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 135 | + return false; |
|
| 136 | + } |
|
| 137 | + |
|
| 138 | + $profile_id = $profiles->items[0]->id; |
|
| 139 | + if (empty($profile_id)) return false; |
|
| 140 | + |
|
| 141 | + $account_array = array(); |
|
| 142 | + array_push($account_array, array('id'=>$profile_id, 'ga:webPropertyId'=>$webproperty_id)); |
|
| 143 | + return $account_array; |
|
| 144 | 144 | } |
| 145 | 145 | |
| 146 | - function getAllProfiles() |
|
| 147 | - { |
|
| 148 | - $profile_array = array(); |
|
| 146 | + function getAllProfiles() |
|
| 147 | + { |
|
| 148 | + $profile_array = array(); |
|
| 149 | 149 | |
| 150 | - try { |
|
| 151 | - $profiles = $this->analytics->management_webproperties->listManagementWebproperties('~all'); |
|
| 152 | - } |
|
| 153 | - catch (Google_ServiceException $e) |
|
| 154 | - { |
|
| 155 | - print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 156 | - } |
|
| 157 | - |
|
| 158 | - |
|
| 159 | - if( !empty( $profiles->items ) ) |
|
| 160 | - { |
|
| 161 | - foreach( $profiles->items as $profile ) |
|
| 162 | - { |
|
| 163 | - $profile_array[ $profile->id ] = str_replace('http://','',$profile->name ); |
|
| 164 | - } |
|
| 165 | - } |
|
| 166 | - |
|
| 167 | - return $profile_array; |
|
| 168 | - } |
|
| 150 | + try { |
|
| 151 | + $profiles = $this->analytics->management_webproperties->listManagementWebproperties('~all'); |
|
| 152 | + } |
|
| 153 | + catch (Google_ServiceException $e) |
|
| 154 | + { |
|
| 155 | + print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 156 | + } |
|
| 157 | + |
|
| 158 | + |
|
| 159 | + if( !empty( $profiles->items ) ) |
|
| 160 | + { |
|
| 161 | + foreach( $profiles->items as $profile ) |
|
| 162 | + { |
|
| 163 | + $profile_array[ $profile->id ] = str_replace('http://','',$profile->name ); |
|
| 164 | + } |
|
| 165 | + } |
|
| 166 | + |
|
| 167 | + return $profile_array; |
|
| 168 | + } |
|
| 169 | 169 | |
| 170 | 170 | function getAnalyticsAccounts() |
| 171 | 171 | { |
@@ -248,13 +248,13 @@ discard block |
||
| 248 | 248 | $params['max-results'] = $limit; |
| 249 | 249 | } |
| 250 | 250 | |
| 251 | - // Just incase, the ga: is still used in the account id, strip it out to prevent it breaking |
|
| 252 | - $filtered_id = str_replace( 'ga:', '', $this->accountId ); |
|
| 251 | + // Just incase, the ga: is still used in the account id, strip it out to prevent it breaking |
|
| 252 | + $filtered_id = str_replace( 'ga:', '', $this->accountId ); |
|
| 253 | 253 | |
| 254 | - if(!$filtered_id){ |
|
| 255 | - echo 'Error - Account ID is blank'; |
|
| 256 | - return false; |
|
| 257 | - } |
|
| 254 | + if(!$filtered_id){ |
|
| 255 | + echo 'Error - Account ID is blank'; |
|
| 256 | + return false; |
|
| 257 | + } |
|
| 258 | 258 | |
| 259 | 259 | if($realtime){ |
| 260 | 260 | return $analytics->data_realtime->get( |
@@ -23,14 +23,14 @@ discard block |
||
| 23 | 23 | { |
| 24 | 24 | |
| 25 | 25 | # Include SimplePie if it doesn't exist |
| 26 | - if ( !class_exists('SimplePie') ) { |
|
| 27 | - require_once (ABSPATH . WPINC . '/class-feed.php'); |
|
| 26 | + if (!class_exists('SimplePie')) { |
|
| 27 | + require_once (ABSPATH.WPINC.'/class-feed.php'); |
|
| 28 | 28 | } |
| 29 | 29 | |
| 30 | - if ( !class_exists('Google_Client') ) { |
|
| 30 | + if (!class_exists('Google_Client')) { |
|
| 31 | 31 | require_once 'google-api-php-client/src/Google_Client.php'; |
| 32 | 32 | } |
| 33 | - if ( !class_exists('Google_AnalyticsService') ) { |
|
| 33 | + if (!class_exists('Google_AnalyticsService')) { |
|
| 34 | 34 | require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php'; |
| 35 | 35 | } |
| 36 | 36 | |
@@ -51,7 +51,7 @@ discard block |
||
| 51 | 51 | } |
| 52 | 52 | catch (Google_ServiceException $e) |
| 53 | 53 | { |
| 54 | - print '(cas:48) There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); |
|
| 54 | + print '(cas:48) There was an Analytics API service error '.$e->getCode().':'.$e->getMessage(); |
|
| 55 | 55 | return false; |
| 56 | 56 | } |
| 57 | 57 | } |
@@ -66,13 +66,13 @@ discard block |
||
| 66 | 66 | { |
| 67 | 67 | $this->client->setAccessToken($ga_google_authtoken); |
| 68 | 68 | } |
| 69 | - catch( Google_AuthException $e ) |
|
| 69 | + catch (Google_AuthException $e) |
|
| 70 | 70 | { |
| 71 | 71 | print '(cas:72) GeoDirectory was unable to authenticate you with |
| 72 | 72 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
| 73 | 73 | This could mean either you pasted the token wrong, or the time/date on your server is wrong, |
| 74 | 74 | or an SSL issue preventing Google from Authenticating. <br><br> |
| 75 | - <br><br><strong>Tech Info </strong> ' . $e->getCode() . ':' . $e->getMessage(); |
|
| 75 | + <br><br><strong>Tech Info </strong> ' . $e->getCode().':'.$e->getMessage(); |
|
| 76 | 76 | |
| 77 | 77 | return false; |
| 78 | 78 | } |
@@ -87,18 +87,18 @@ discard block |
||
| 87 | 87 | { |
| 88 | 88 | $accessToken = $this->client->authenticate($authCode); |
| 89 | 89 | } |
| 90 | - catch( Exception $e ) |
|
| 90 | + catch (Exception $e) |
|
| 91 | 91 | { |
| 92 | 92 | print '(cas:72) GeoDirectory was unable to authenticate you with |
| 93 | 93 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
| 94 | 94 | This could mean either you pasted the token wrong, or the time/date on your server is wrong, |
| 95 | 95 | or an SSL issue preventing Google from Authenticating. <br><br> |
| 96 | - <br><br><strong>Tech Info </strong> ' . $e->getCode() . ':' . $e->getMessage(); |
|
| 96 | + <br><br><strong>Tech Info </strong> ' . $e->getCode().':'.$e->getMessage(); |
|
| 97 | 97 | |
| 98 | 98 | return false; |
| 99 | 99 | } |
| 100 | 100 | |
| 101 | - if($accessToken) |
|
| 101 | + if ($accessToken) |
|
| 102 | 102 | { |
| 103 | 103 | $this->client->setAccessToken($accessToken); |
| 104 | 104 | update_option('geodir_ga_auth_token', $accessToken); |
@@ -109,7 +109,7 @@ discard block |
||
| 109 | 109 | } |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | - $this->token = $this->client->getAccessToken(); |
|
| 112 | + $this->token = $this->client->getAccessToken(); |
|
| 113 | 113 | return true; |
| 114 | 114 | } |
| 115 | 115 | |
@@ -122,7 +122,7 @@ discard block |
||
| 122 | 122 | function getSingleProfile() |
| 123 | 123 | { |
| 124 | 124 | $webproperty_id = get_option('geodir_ga_account_id'); |
| 125 | - list($pre, $account_id, $post) = explode('-',$webproperty_id); |
|
| 125 | + list($pre, $account_id, $post) = explode('-', $webproperty_id); |
|
| 126 | 126 | |
| 127 | 127 | if (empty($webproperty_id)) return false; |
| 128 | 128 | |
@@ -131,7 +131,7 @@ discard block |
||
| 131 | 131 | } |
| 132 | 132 | catch (Google_ServiceException $e) |
| 133 | 133 | { |
| 134 | - print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 134 | + print 'There was an Analytics API service error '.$e->getCode().': '.$e->getMessage(); |
|
| 135 | 135 | return false; |
| 136 | 136 | } |
| 137 | 137 | |
@@ -152,15 +152,15 @@ discard block |
||
| 152 | 152 | } |
| 153 | 153 | catch (Google_ServiceException $e) |
| 154 | 154 | { |
| 155 | - print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
|
| 155 | + print 'There was an Analytics API service error '.$e->getCode().': '.$e->getMessage(); |
|
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | |
| 159 | - if( !empty( $profiles->items ) ) |
|
| 159 | + if (!empty($profiles->items)) |
|
| 160 | 160 | { |
| 161 | - foreach( $profiles->items as $profile ) |
|
| 161 | + foreach ($profiles->items as $profile) |
|
| 162 | 162 | { |
| 163 | - $profile_array[ $profile->id ] = str_replace('http://','',$profile->name ); |
|
| 163 | + $profile_array[$profile->id] = str_replace('http://', '', $profile->name); |
|
| 164 | 164 | } |
| 165 | 165 | } |
| 166 | 166 | |
@@ -249,20 +249,20 @@ discard block |
||
| 249 | 249 | } |
| 250 | 250 | |
| 251 | 251 | // Just incase, the ga: is still used in the account id, strip it out to prevent it breaking |
| 252 | - $filtered_id = str_replace( 'ga:', '', $this->accountId ); |
|
| 252 | + $filtered_id = str_replace('ga:', '', $this->accountId); |
|
| 253 | 253 | |
| 254 | - if(!$filtered_id){ |
|
| 254 | + if (!$filtered_id) { |
|
| 255 | 255 | echo 'Error - Account ID is blank'; |
| 256 | 256 | return false; |
| 257 | 257 | } |
| 258 | 258 | |
| 259 | - if($realtime){ |
|
| 259 | + if ($realtime) { |
|
| 260 | 260 | return $analytics->data_realtime->get( |
| 261 | 261 | 'ga:'.$filtered_id, |
| 262 | 262 | $metric, |
| 263 | 263 | $params |
| 264 | 264 | ); |
| 265 | - }else{ |
|
| 265 | + } else { |
|
| 266 | 266 | return $analytics->data_ga->get( |
| 267 | 267 | 'ga:'.$filtered_id, |
| 268 | 268 | $startDate, |
@@ -286,7 +286,7 @@ discard block |
||
| 286 | 286 | **/ |
| 287 | 287 | function verifyStartDate($date) |
| 288 | 288 | { |
| 289 | - if ( strtotime($date) > strtotime('2005-01-01') ) |
|
| 289 | + if (strtotime($date) > strtotime('2005-01-01')) |
|
| 290 | 290 | return $date; |
| 291 | 291 | else |
| 292 | 292 | return '2005-01-01'; |
@@ -48,8 +48,7 @@ discard block |
||
| 48 | 48 | |
| 49 | 49 | try { |
| 50 | 50 | $this->analytics = new Google_AnalyticsService($this->client); |
| 51 | - } |
|
| 52 | - catch (Google_ServiceException $e) |
|
| 51 | + } catch (Google_ServiceException $e) |
|
| 53 | 52 | { |
| 54 | 53 | print '(cas:48) There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); |
| 55 | 54 | return false; |
@@ -65,8 +64,7 @@ discard block |
||
| 65 | 64 | try |
| 66 | 65 | { |
| 67 | 66 | $this->client->setAccessToken($ga_google_authtoken); |
| 68 | - } |
|
| 69 | - catch( Google_AuthException $e ) |
|
| 67 | + } catch( Google_AuthException $e ) |
|
| 70 | 68 | { |
| 71 | 69 | print '(cas:72) GeoDirectory was unable to authenticate you with |
| 72 | 70 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
@@ -76,18 +74,18 @@ discard block |
||
| 76 | 74 | |
| 77 | 75 | return false; |
| 78 | 76 | } |
| 79 | - } |
|
| 80 | - else |
|
| 77 | + } else |
|
| 81 | 78 | { |
| 82 | 79 | $authCode = get_option('geodir_ga_auth_code'); |
| 83 | 80 | |
| 84 | - if (empty($authCode)) return false; |
|
| 81 | + if (empty($authCode)) { |
|
| 82 | + return false; |
|
| 83 | + } |
|
| 85 | 84 | |
| 86 | 85 | try |
| 87 | 86 | { |
| 88 | 87 | $accessToken = $this->client->authenticate($authCode); |
| 89 | - } |
|
| 90 | - catch( Exception $e ) |
|
| 88 | + } catch( Exception $e ) |
|
| 91 | 89 | { |
| 92 | 90 | print '(cas:72) GeoDirectory was unable to authenticate you with |
| 93 | 91 | Google using the Auth Token you pasted into the input box on the previous step. <br><br> |
@@ -102,8 +100,7 @@ discard block |
||
| 102 | 100 | { |
| 103 | 101 | $this->client->setAccessToken($accessToken); |
| 104 | 102 | update_option('geodir_ga_auth_token', $accessToken); |
| 105 | - } |
|
| 106 | - else |
|
| 103 | + } else |
|
| 107 | 104 | { |
| 108 | 105 | return false; |
| 109 | 106 | } |
@@ -124,19 +121,22 @@ discard block |
||
| 124 | 121 | $webproperty_id = get_option('geodir_ga_account_id'); |
| 125 | 122 | list($pre, $account_id, $post) = explode('-',$webproperty_id); |
| 126 | 123 | |
| 127 | - if (empty($webproperty_id)) return false; |
|
| 124 | + if (empty($webproperty_id)) { |
|
| 125 | + return false; |
|
| 126 | + } |
|
| 128 | 127 | |
| 129 | 128 | try { |
| 130 | 129 | $profiles = $this->analytics->management_profiles->listManagementProfiles($account_id, $webproperty_id); |
| 131 | - } |
|
| 132 | - catch (Google_ServiceException $e) |
|
| 130 | + } catch (Google_ServiceException $e) |
|
| 133 | 131 | { |
| 134 | 132 | print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
| 135 | 133 | return false; |
| 136 | 134 | } |
| 137 | 135 | |
| 138 | 136 | $profile_id = $profiles->items[0]->id; |
| 139 | - if (empty($profile_id)) return false; |
|
| 137 | + if (empty($profile_id)) { |
|
| 138 | + return false; |
|
| 139 | + } |
|
| 140 | 140 | |
| 141 | 141 | $account_array = array(); |
| 142 | 142 | array_push($account_array, array('id'=>$profile_id, 'ga:webPropertyId'=>$webproperty_id)); |
@@ -149,8 +149,7 @@ discard block |
||
| 149 | 149 | |
| 150 | 150 | try { |
| 151 | 151 | $profiles = $this->analytics->management_webproperties->listManagementWebproperties('~all'); |
| 152 | - } |
|
| 153 | - catch (Google_ServiceException $e) |
|
| 152 | + } catch (Google_ServiceException $e) |
|
| 154 | 153 | { |
| 155 | 154 | print 'There was an Analytics API service error ' . $e->getCode() . ': ' . $e->getMessage(); |
| 156 | 155 | } |
@@ -262,7 +261,7 @@ discard block |
||
| 262 | 261 | $metric, |
| 263 | 262 | $params |
| 264 | 263 | ); |
| 265 | - }else{ |
|
| 264 | + } else{ |
|
| 266 | 265 | return $analytics->data_ga->get( |
| 267 | 266 | 'ga:'.$filtered_id, |
| 268 | 267 | $startDate, |
@@ -286,10 +285,11 @@ discard block |
||
| 286 | 285 | **/ |
| 287 | 286 | function verifyStartDate($date) |
| 288 | 287 | { |
| 289 | - if ( strtotime($date) > strtotime('2005-01-01') ) |
|
| 290 | - return $date; |
|
| 291 | - else |
|
| 292 | - return '2005-01-01'; |
|
| 288 | + if ( strtotime($date) > strtotime('2005-01-01') ) { |
|
| 289 | + return $date; |
|
| 290 | + } else { |
|
| 291 | + return '2005-01-01'; |
|
| 292 | + } |
|
| 293 | 293 | } |
| 294 | 294 | |
| 295 | 295 | } // END class |
| 296 | 296 | \ No newline at end of file |
@@ -27,6 +27,10 @@ discard block |
||
| 27 | 27 | private $privateKey; |
| 28 | 28 | |
| 29 | 29 | // Creates a new signer from a .p12 file. |
| 30 | + |
|
| 31 | + /** |
|
| 32 | + * @param string $password |
|
| 33 | + */ |
|
| 30 | 34 | function __construct($p12, $password) { |
| 31 | 35 | if (!function_exists('openssl_x509_read')) { |
| 32 | 36 | throw new Exception( |
@@ -57,6 +61,9 @@ discard block |
||
| 57 | 61 | } |
| 58 | 62 | } |
| 59 | 63 | |
| 64 | + /** |
|
| 65 | + * @param string $data |
|
| 66 | + */ |
|
| 60 | 67 | function sign($data) { |
| 61 | 68 | if(version_compare(PHP_VERSION, '5.3.0') < 0) { |
| 62 | 69 | throw new Google_AuthException( |
@@ -28,43 +28,43 @@ |
||
| 28 | 28 | |
| 29 | 29 | // Creates a new signer from a .p12 file. |
| 30 | 30 | function __construct($p12, $password) { |
| 31 | - if (!function_exists('openssl_x509_read')) { |
|
| 32 | - throw new Exception( |
|
| 33 | - 'The Google PHP API library needs the openssl PHP extension'); |
|
| 34 | - } |
|
| 31 | + if (!function_exists('openssl_x509_read')) { |
|
| 32 | + throw new Exception( |
|
| 33 | + 'The Google PHP API library needs the openssl PHP extension'); |
|
| 34 | + } |
|
| 35 | 35 | |
| 36 | - // This throws on error |
|
| 37 | - $certs = array(); |
|
| 38 | - if (!openssl_pkcs12_read($p12, $certs, $password)) { |
|
| 39 | - throw new Google_AuthException("Unable to parse the p12 file. " . |
|
| 40 | - "Is this a .p12 file? Is the password correct? OpenSSL error: " . |
|
| 41 | - openssl_error_string()); |
|
| 42 | - } |
|
| 43 | - // TODO(beaton): is this part of the contract for the openssl_pkcs12_read |
|
| 44 | - // method? What happens if there are multiple private keys? Do we care? |
|
| 45 | - if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) { |
|
| 46 | - throw new Google_AuthException("No private key found in p12 file."); |
|
| 47 | - } |
|
| 48 | - $this->privateKey = openssl_pkey_get_private($certs["pkey"]); |
|
| 49 | - if (!$this->privateKey) { |
|
| 50 | - throw new Google_AuthException("Unable to load private key in "); |
|
| 51 | - } |
|
| 36 | + // This throws on error |
|
| 37 | + $certs = array(); |
|
| 38 | + if (!openssl_pkcs12_read($p12, $certs, $password)) { |
|
| 39 | + throw new Google_AuthException("Unable to parse the p12 file. " . |
|
| 40 | + "Is this a .p12 file? Is the password correct? OpenSSL error: " . |
|
| 41 | + openssl_error_string()); |
|
| 42 | + } |
|
| 43 | + // TODO(beaton): is this part of the contract for the openssl_pkcs12_read |
|
| 44 | + // method? What happens if there are multiple private keys? Do we care? |
|
| 45 | + if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) { |
|
| 46 | + throw new Google_AuthException("No private key found in p12 file."); |
|
| 47 | + } |
|
| 48 | + $this->privateKey = openssl_pkey_get_private($certs["pkey"]); |
|
| 49 | + if (!$this->privateKey) { |
|
| 50 | + throw new Google_AuthException("Unable to load private key in "); |
|
| 51 | + } |
|
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | function __destruct() { |
| 55 | - if ($this->privateKey) { |
|
| 56 | - openssl_pkey_free($this->privateKey); |
|
| 57 | - } |
|
| 55 | + if ($this->privateKey) { |
|
| 56 | + openssl_pkey_free($this->privateKey); |
|
| 57 | + } |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | function sign($data) { |
| 61 | - if(version_compare(PHP_VERSION, '5.3.0') < 0) { |
|
| 62 | - throw new Google_AuthException( |
|
| 63 | - "PHP 5.3.0 or higher is required to use service accounts."); |
|
| 64 | - } |
|
| 65 | - if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) { |
|
| 66 | - throw new Google_AuthException("Unable to sign data"); |
|
| 67 | - } |
|
| 68 | - return $signature; |
|
| 61 | + if(version_compare(PHP_VERSION, '5.3.0') < 0) { |
|
| 62 | + throw new Google_AuthException( |
|
| 63 | + "PHP 5.3.0 or higher is required to use service accounts."); |
|
| 64 | + } |
|
| 65 | + if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) { |
|
| 66 | + throw new Google_AuthException("Unable to sign data"); |
|
| 67 | + } |
|
| 68 | + return $signature; |
|
| 69 | 69 | } |
| 70 | 70 | } |
@@ -36,8 +36,8 @@ discard block |
||
| 36 | 36 | // This throws on error |
| 37 | 37 | $certs = array(); |
| 38 | 38 | if (!openssl_pkcs12_read($p12, $certs, $password)) { |
| 39 | - throw new Google_AuthException("Unable to parse the p12 file. " . |
|
| 40 | - "Is this a .p12 file? Is the password correct? OpenSSL error: " . |
|
| 39 | + throw new Google_AuthException("Unable to parse the p12 file. ". |
|
| 40 | + "Is this a .p12 file? Is the password correct? OpenSSL error: ". |
|
| 41 | 41 | openssl_error_string()); |
| 42 | 42 | } |
| 43 | 43 | // TODO(beaton): is this part of the contract for the openssl_pkcs12_read |
@@ -58,7 +58,7 @@ discard block |
||
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | function sign($data) { |
| 61 | - if(version_compare(PHP_VERSION, '5.3.0') < 0) { |
|
| 61 | + if (version_compare(PHP_VERSION, '5.3.0') < 0) { |
|
| 62 | 62 | throw new Google_AuthException( |
| 63 | 63 | "PHP 5.3.0 or higher is required to use service accounts."); |
| 64 | 64 | } |
@@ -51,8 +51,8 @@ |
||
| 51 | 51 | * Verifies the signature on data. |
| 52 | 52 | * |
| 53 | 53 | * Returns true if the signature is valid, false otherwise. |
| 54 | - * @param $data |
|
| 55 | - * @param $signature |
|
| 54 | + * @param string $data |
|
| 55 | + * @param string $signature |
|
| 56 | 56 | * @throws Google_AuthException |
| 57 | 57 | * @return bool |
| 58 | 58 | */ |
@@ -32,19 +32,19 @@ discard block |
||
| 32 | 32 | * @throws Google_Exception |
| 33 | 33 | */ |
| 34 | 34 | function __construct($pem) { |
| 35 | - if (!function_exists('openssl_x509_read')) { |
|
| 36 | - throw new Google_Exception('Google API PHP client needs the openssl PHP extension'); |
|
| 37 | - } |
|
| 38 | - $this->publicKey = openssl_x509_read($pem); |
|
| 39 | - if (!$this->publicKey) { |
|
| 40 | - throw new Google_AuthException("Unable to parse PEM: $pem"); |
|
| 41 | - } |
|
| 35 | + if (!function_exists('openssl_x509_read')) { |
|
| 36 | + throw new Google_Exception('Google API PHP client needs the openssl PHP extension'); |
|
| 37 | + } |
|
| 38 | + $this->publicKey = openssl_x509_read($pem); |
|
| 39 | + if (!$this->publicKey) { |
|
| 40 | + throw new Google_AuthException("Unable to parse PEM: $pem"); |
|
| 41 | + } |
|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | function __destruct() { |
| 45 | - if ($this->publicKey) { |
|
| 46 | - openssl_x509_free($this->publicKey); |
|
| 47 | - } |
|
| 45 | + if ($this->publicKey) { |
|
| 46 | + openssl_x509_free($this->publicKey); |
|
| 47 | + } |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | /** |
@@ -57,10 +57,10 @@ discard block |
||
| 57 | 57 | * @return bool |
| 58 | 58 | */ |
| 59 | 59 | function verify($data, $signature) { |
| 60 | - $status = openssl_verify($data, $signature, $this->publicKey, "sha256"); |
|
| 61 | - if ($status === -1) { |
|
| 62 | - throw new Google_AuthException('Signature verification error: ' . openssl_error_string()); |
|
| 63 | - } |
|
| 64 | - return $status === 1; |
|
| 60 | + $status = openssl_verify($data, $signature, $this->publicKey, "sha256"); |
|
| 61 | + if ($status === -1) { |
|
| 62 | + throw new Google_AuthException('Signature verification error: ' . openssl_error_string()); |
|
| 63 | + } |
|
| 64 | + return $status === 1; |
|
| 65 | 65 | } |
| 66 | 66 | } |
@@ -59,7 +59,7 @@ |
||
| 59 | 59 | function verify($data, $signature) { |
| 60 | 60 | $status = openssl_verify($data, $signature, $this->publicKey, "sha256"); |
| 61 | 61 | if ($status === -1) { |
| 62 | - throw new Google_AuthException('Signature verification error: ' . openssl_error_string()); |
|
| 62 | + throw new Google_AuthException('Signature verification error: '.openssl_error_string()); |
|
| 63 | 63 | } |
| 64 | 64 | return $status === 1; |
| 65 | 65 | } |
@@ -37,6 +37,9 @@ discard block |
||
| 37 | 37 | return file_exists($storageFile . '.lock'); |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | + /** |
|
| 41 | + * @param string $storageFile |
|
| 42 | + */ |
|
| 40 | 43 | private function createLock($storageFile) { |
| 41 | 44 | $storageDir = dirname($storageFile); |
| 42 | 45 | if (! is_dir($storageDir)) { |
@@ -57,6 +60,9 @@ discard block |
||
| 57 | 60 | @unlink($storageFile . '.lock'); |
| 58 | 61 | } |
| 59 | 62 | |
| 63 | + /** |
|
| 64 | + * @param string $storageFile |
|
| 65 | + */ |
|
| 60 | 66 | private function waitForLock($storageFile) { |
| 61 | 67 | // 20 x 250 = 5 seconds |
| 62 | 68 | $tries = 20; |
@@ -81,6 +87,9 @@ discard block |
||
| 81 | 87 | return $this->path . '/' . substr($hash, 0, 2); |
| 82 | 88 | } |
| 83 | 89 | |
| 90 | + /** |
|
| 91 | + * @param string $hash |
|
| 92 | + */ |
|
| 84 | 93 | private function getCacheFile($hash) { |
| 85 | 94 | return $this->getCacheDir($hash) . '/' . $hash; |
| 86 | 95 | } |
@@ -28,110 +28,110 @@ |
||
| 28 | 28 | private $path; |
| 29 | 29 | |
| 30 | 30 | public function __construct() { |
| 31 | - global $apiConfig; |
|
| 32 | - $this->path = $apiConfig['ioFileCache_directory']; |
|
| 31 | + global $apiConfig; |
|
| 32 | + $this->path = $apiConfig['ioFileCache_directory']; |
|
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | private function isLocked($storageFile) { |
| 36 | - // our lock file convention is simple: /the/file/path.lock |
|
| 37 | - return file_exists($storageFile . '.lock'); |
|
| 36 | + // our lock file convention is simple: /the/file/path.lock |
|
| 37 | + return file_exists($storageFile . '.lock'); |
|
| 38 | 38 | } |
| 39 | 39 | |
| 40 | 40 | private function createLock($storageFile) { |
| 41 | - $storageDir = dirname($storageFile); |
|
| 42 | - if (! is_dir($storageDir)) { |
|
| 43 | - // @codeCoverageIgnoreStart |
|
| 44 | - if (! @mkdir($storageDir, 0755, true)) { |
|
| 45 | - // make sure the failure isn't because of a concurrency issue |
|
| 46 | - if (! is_dir($storageDir)) { |
|
| 47 | - throw new Google_CacheException("Could not create storage directory: $storageDir"); |
|
| 48 | - } |
|
| 49 | - } |
|
| 50 | - // @codeCoverageIgnoreEnd |
|
| 51 | - } |
|
| 52 | - @touch($storageFile . '.lock'); |
|
| 41 | + $storageDir = dirname($storageFile); |
|
| 42 | + if (! is_dir($storageDir)) { |
|
| 43 | + // @codeCoverageIgnoreStart |
|
| 44 | + if (! @mkdir($storageDir, 0755, true)) { |
|
| 45 | + // make sure the failure isn't because of a concurrency issue |
|
| 46 | + if (! is_dir($storageDir)) { |
|
| 47 | + throw new Google_CacheException("Could not create storage directory: $storageDir"); |
|
| 48 | + } |
|
| 49 | + } |
|
| 50 | + // @codeCoverageIgnoreEnd |
|
| 51 | + } |
|
| 52 | + @touch($storageFile . '.lock'); |
|
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | private function removeLock($storageFile) { |
| 56 | - // suppress all warnings, if some other process removed it that's ok too |
|
| 57 | - @unlink($storageFile . '.lock'); |
|
| 56 | + // suppress all warnings, if some other process removed it that's ok too |
|
| 57 | + @unlink($storageFile . '.lock'); |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | private function waitForLock($storageFile) { |
| 61 | - // 20 x 250 = 5 seconds |
|
| 62 | - $tries = 20; |
|
| 63 | - $cnt = 0; |
|
| 64 | - do { |
|
| 65 | - // make sure PHP picks up on file changes. This is an expensive action but really can't be avoided |
|
| 66 | - clearstatcache(); |
|
| 67 | - // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. |
|
| 68 | - usleep(250); |
|
| 69 | - $cnt ++; |
|
| 70 | - } while ($cnt <= $tries && $this->isLocked($storageFile)); |
|
| 71 | - if ($this->isLocked($storageFile)) { |
|
| 72 | - // 5 seconds passed, assume the owning process died off and remove it |
|
| 73 | - $this->removeLock($storageFile); |
|
| 74 | - } |
|
| 61 | + // 20 x 250 = 5 seconds |
|
| 62 | + $tries = 20; |
|
| 63 | + $cnt = 0; |
|
| 64 | + do { |
|
| 65 | + // make sure PHP picks up on file changes. This is an expensive action but really can't be avoided |
|
| 66 | + clearstatcache(); |
|
| 67 | + // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. |
|
| 68 | + usleep(250); |
|
| 69 | + $cnt ++; |
|
| 70 | + } while ($cnt <= $tries && $this->isLocked($storageFile)); |
|
| 71 | + if ($this->isLocked($storageFile)) { |
|
| 72 | + // 5 seconds passed, assume the owning process died off and remove it |
|
| 73 | + $this->removeLock($storageFile); |
|
| 74 | + } |
|
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | private function getCacheDir($hash) { |
| 78 | - // use the first 2 characters of the hash as a directory prefix |
|
| 79 | - // this should prevent slowdowns due to huge directory listings |
|
| 80 | - // and thus give some basic amount of scalability |
|
| 81 | - return $this->path . '/' . substr($hash, 0, 2); |
|
| 78 | + // use the first 2 characters of the hash as a directory prefix |
|
| 79 | + // this should prevent slowdowns due to huge directory listings |
|
| 80 | + // and thus give some basic amount of scalability |
|
| 81 | + return $this->path . '/' . substr($hash, 0, 2); |
|
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | private function getCacheFile($hash) { |
| 85 | - return $this->getCacheDir($hash) . '/' . $hash; |
|
| 85 | + return $this->getCacheDir($hash) . '/' . $hash; |
|
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | public function get($key, $expiration = false) { |
| 89 | - $storageFile = $this->getCacheFile(md5($key)); |
|
| 90 | - // See if this storage file is locked, if so we wait up to 5 seconds for the lock owning process to |
|
| 91 | - // complete it's work. If the lock is not released within that time frame, it's cleaned up. |
|
| 92 | - // This should give us a fair amount of 'Cache Stampeding' protection |
|
| 93 | - if ($this->isLocked($storageFile)) { |
|
| 94 | - $this->waitForLock($storageFile); |
|
| 95 | - } |
|
| 96 | - if (file_exists($storageFile) && is_readable($storageFile)) { |
|
| 97 | - $now = time(); |
|
| 98 | - if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) { |
|
| 99 | - if (($data = @file_get_contents($storageFile)) !== false) { |
|
| 100 | - $data = unserialize($data); |
|
| 101 | - return $data; |
|
| 102 | - } |
|
| 103 | - } |
|
| 104 | - } |
|
| 105 | - return false; |
|
| 89 | + $storageFile = $this->getCacheFile(md5($key)); |
|
| 90 | + // See if this storage file is locked, if so we wait up to 5 seconds for the lock owning process to |
|
| 91 | + // complete it's work. If the lock is not released within that time frame, it's cleaned up. |
|
| 92 | + // This should give us a fair amount of 'Cache Stampeding' protection |
|
| 93 | + if ($this->isLocked($storageFile)) { |
|
| 94 | + $this->waitForLock($storageFile); |
|
| 95 | + } |
|
| 96 | + if (file_exists($storageFile) && is_readable($storageFile)) { |
|
| 97 | + $now = time(); |
|
| 98 | + if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) { |
|
| 99 | + if (($data = @file_get_contents($storageFile)) !== false) { |
|
| 100 | + $data = unserialize($data); |
|
| 101 | + return $data; |
|
| 102 | + } |
|
| 103 | + } |
|
| 104 | + } |
|
| 105 | + return false; |
|
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | public function set($key, $value) { |
| 109 | - $storageDir = $this->getCacheDir(md5($key)); |
|
| 110 | - $storageFile = $this->getCacheFile(md5($key)); |
|
| 111 | - if ($this->isLocked($storageFile)) { |
|
| 112 | - // some other process is writing to this file too, wait until it's done to prevent hiccups |
|
| 113 | - $this->waitForLock($storageFile); |
|
| 114 | - } |
|
| 115 | - if (! is_dir($storageDir)) { |
|
| 116 | - if (! @mkdir($storageDir, 0755, true)) { |
|
| 117 | - throw new Google_CacheException("Could not create storage directory: $storageDir"); |
|
| 118 | - } |
|
| 119 | - } |
|
| 120 | - // we serialize the whole request object, since we don't only want the |
|
| 121 | - // responseContent but also the postBody used, headers, size, etc |
|
| 122 | - $data = serialize($value); |
|
| 123 | - $this->createLock($storageFile); |
|
| 124 | - if (! @file_put_contents($storageFile, $data)) { |
|
| 125 | - $this->removeLock($storageFile); |
|
| 126 | - throw new Google_CacheException("Could not store data in the file"); |
|
| 127 | - } |
|
| 128 | - $this->removeLock($storageFile); |
|
| 109 | + $storageDir = $this->getCacheDir(md5($key)); |
|
| 110 | + $storageFile = $this->getCacheFile(md5($key)); |
|
| 111 | + if ($this->isLocked($storageFile)) { |
|
| 112 | + // some other process is writing to this file too, wait until it's done to prevent hiccups |
|
| 113 | + $this->waitForLock($storageFile); |
|
| 114 | + } |
|
| 115 | + if (! is_dir($storageDir)) { |
|
| 116 | + if (! @mkdir($storageDir, 0755, true)) { |
|
| 117 | + throw new Google_CacheException("Could not create storage directory: $storageDir"); |
|
| 118 | + } |
|
| 119 | + } |
|
| 120 | + // we serialize the whole request object, since we don't only want the |
|
| 121 | + // responseContent but also the postBody used, headers, size, etc |
|
| 122 | + $data = serialize($value); |
|
| 123 | + $this->createLock($storageFile); |
|
| 124 | + if (! @file_put_contents($storageFile, $data)) { |
|
| 125 | + $this->removeLock($storageFile); |
|
| 126 | + throw new Google_CacheException("Could not store data in the file"); |
|
| 127 | + } |
|
| 128 | + $this->removeLock($storageFile); |
|
| 129 | 129 | } |
| 130 | 130 | |
| 131 | 131 | public function delete($key) { |
| 132 | - $file = $this->getCacheFile(md5($key)); |
|
| 133 | - if (! @unlink($file)) { |
|
| 134 | - throw new Google_CacheException("Cache file could not be deleted"); |
|
| 135 | - } |
|
| 132 | + $file = $this->getCacheFile(md5($key)); |
|
| 133 | + if (! @unlink($file)) { |
|
| 134 | + throw new Google_CacheException("Cache file could not be deleted"); |
|
| 135 | + } |
|
| 136 | 136 | } |
| 137 | 137 | } |
@@ -34,27 +34,27 @@ discard block |
||
| 34 | 34 | |
| 35 | 35 | private function isLocked($storageFile) { |
| 36 | 36 | // our lock file convention is simple: /the/file/path.lock |
| 37 | - return file_exists($storageFile . '.lock'); |
|
| 37 | + return file_exists($storageFile.'.lock'); |
|
| 38 | 38 | } |
| 39 | 39 | |
| 40 | 40 | private function createLock($storageFile) { |
| 41 | 41 | $storageDir = dirname($storageFile); |
| 42 | - if (! is_dir($storageDir)) { |
|
| 42 | + if (!is_dir($storageDir)) { |
|
| 43 | 43 | // @codeCoverageIgnoreStart |
| 44 | - if (! @mkdir($storageDir, 0755, true)) { |
|
| 44 | + if (!@mkdir($storageDir, 0755, true)) { |
|
| 45 | 45 | // make sure the failure isn't because of a concurrency issue |
| 46 | - if (! is_dir($storageDir)) { |
|
| 46 | + if (!is_dir($storageDir)) { |
|
| 47 | 47 | throw new Google_CacheException("Could not create storage directory: $storageDir"); |
| 48 | 48 | } |
| 49 | 49 | } |
| 50 | 50 | // @codeCoverageIgnoreEnd |
| 51 | 51 | } |
| 52 | - @touch($storageFile . '.lock'); |
|
| 52 | + @touch($storageFile.'.lock'); |
|
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | private function removeLock($storageFile) { |
| 56 | 56 | // suppress all warnings, if some other process removed it that's ok too |
| 57 | - @unlink($storageFile . '.lock'); |
|
| 57 | + @unlink($storageFile.'.lock'); |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | private function waitForLock($storageFile) { |
@@ -66,7 +66,7 @@ discard block |
||
| 66 | 66 | clearstatcache(); |
| 67 | 67 | // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. |
| 68 | 68 | usleep(250); |
| 69 | - $cnt ++; |
|
| 69 | + $cnt++; |
|
| 70 | 70 | } while ($cnt <= $tries && $this->isLocked($storageFile)); |
| 71 | 71 | if ($this->isLocked($storageFile)) { |
| 72 | 72 | // 5 seconds passed, assume the owning process died off and remove it |
@@ -78,11 +78,11 @@ discard block |
||
| 78 | 78 | // use the first 2 characters of the hash as a directory prefix |
| 79 | 79 | // this should prevent slowdowns due to huge directory listings |
| 80 | 80 | // and thus give some basic amount of scalability |
| 81 | - return $this->path . '/' . substr($hash, 0, 2); |
|
| 81 | + return $this->path.'/'.substr($hash, 0, 2); |
|
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | private function getCacheFile($hash) { |
| 85 | - return $this->getCacheDir($hash) . '/' . $hash; |
|
| 85 | + return $this->getCacheDir($hash).'/'.$hash; |
|
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | public function get($key, $expiration = false) { |
@@ -95,7 +95,7 @@ discard block |
||
| 95 | 95 | } |
| 96 | 96 | if (file_exists($storageFile) && is_readable($storageFile)) { |
| 97 | 97 | $now = time(); |
| 98 | - if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) { |
|
| 98 | + if (!$expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) { |
|
| 99 | 99 | if (($data = @file_get_contents($storageFile)) !== false) { |
| 100 | 100 | $data = unserialize($data); |
| 101 | 101 | return $data; |
@@ -112,8 +112,8 @@ discard block |
||
| 112 | 112 | // some other process is writing to this file too, wait until it's done to prevent hiccups |
| 113 | 113 | $this->waitForLock($storageFile); |
| 114 | 114 | } |
| 115 | - if (! is_dir($storageDir)) { |
|
| 116 | - if (! @mkdir($storageDir, 0755, true)) { |
|
| 115 | + if (!is_dir($storageDir)) { |
|
| 116 | + if (!@mkdir($storageDir, 0755, true)) { |
|
| 117 | 117 | throw new Google_CacheException("Could not create storage directory: $storageDir"); |
| 118 | 118 | } |
| 119 | 119 | } |
@@ -121,7 +121,7 @@ discard block |
||
| 121 | 121 | // responseContent but also the postBody used, headers, size, etc |
| 122 | 122 | $data = serialize($value); |
| 123 | 123 | $this->createLock($storageFile); |
| 124 | - if (! @file_put_contents($storageFile, $data)) { |
|
| 124 | + if (!@file_put_contents($storageFile, $data)) { |
|
| 125 | 125 | $this->removeLock($storageFile); |
| 126 | 126 | throw new Google_CacheException("Could not store data in the file"); |
| 127 | 127 | } |
@@ -130,7 +130,7 @@ discard block |
||
| 130 | 130 | |
| 131 | 131 | public function delete($key) { |
| 132 | 132 | $file = $this->getCacheFile(md5($key)); |
| 133 | - if (! @unlink($file)) { |
|
| 133 | + if (!@unlink($file)) { |
|
| 134 | 134 | throw new Google_CacheException("Cache file could not be deleted"); |
| 135 | 135 | } |
| 136 | 136 | } |
@@ -43,6 +43,9 @@ discard block |
||
| 43 | 43 | public static $reserved; |
| 44 | 44 | public static $reserved_pct; |
| 45 | 45 | |
| 46 | + /** |
|
| 47 | + * @param string $template |
|
| 48 | + */ |
|
| 46 | 49 | public function __construct($template) { |
| 47 | 50 | self::$reserved = array_merge(self::$gen_delims, self::$sub_delims); |
| 48 | 51 | self::$reserved_pct = array_merge(self::$gen_delims_pct, self::$sub_delims_pct); |
@@ -150,6 +153,9 @@ discard block |
||
| 150 | 153 | return $this->expansion; |
| 151 | 154 | } |
| 152 | 155 | |
| 156 | + /** |
|
| 157 | + * @param stdClass $exp |
|
| 158 | + */ |
|
| 153 | 159 | private function val_from_var($var, $exp) { |
| 154 | 160 | $val = ''; |
| 155 | 161 | if (is_array($var->data)) { |
@@ -31,30 +31,30 @@ discard block |
||
| 31 | 31 | if( ! class_exists( 'URI_Template_Parser' ) ) { |
| 32 | 32 | class URI_Template_Parser { |
| 33 | 33 | |
| 34 | - public static $operators = array('+', ';', '?', '/', '.'); |
|
| 35 | - public static $reserved_operators = array('|', '!', '@'); |
|
| 36 | - public static $explode_modifiers = array('+', '*'); |
|
| 37 | - public static $partial_modifiers = array(':', '^'); |
|
| 38 | - |
|
| 39 | - public static $gen_delims = array(':', '/', '?', '#', '[', ']', '@'); |
|
| 40 | - public static $gen_delims_pct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40'); |
|
| 41 | - public static $sub_delims = array('!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '='); |
|
| 42 | - public static $sub_delims_pct = array('%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D'); |
|
| 43 | - public static $reserved; |
|
| 44 | - public static $reserved_pct; |
|
| 45 | - |
|
| 46 | - public function __construct($template) { |
|
| 47 | - self::$reserved = array_merge(self::$gen_delims, self::$sub_delims); |
|
| 48 | - self::$reserved_pct = array_merge(self::$gen_delims_pct, self::$sub_delims_pct); |
|
| 49 | - $this->template = $template; |
|
| 50 | - } |
|
| 51 | - |
|
| 52 | - public function expand($data) { |
|
| 53 | - // Modification to make this a bit more performant (since gettype is very slow) |
|
| 54 | - if (! is_array($data)) { |
|
| 55 | - $data = (array)$data; |
|
| 56 | - } |
|
| 57 | - /* |
|
| 34 | + public static $operators = array('+', ';', '?', '/', '.'); |
|
| 35 | + public static $reserved_operators = array('|', '!', '@'); |
|
| 36 | + public static $explode_modifiers = array('+', '*'); |
|
| 37 | + public static $partial_modifiers = array(':', '^'); |
|
| 38 | + |
|
| 39 | + public static $gen_delims = array(':', '/', '?', '#', '[', ']', '@'); |
|
| 40 | + public static $gen_delims_pct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40'); |
|
| 41 | + public static $sub_delims = array('!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '='); |
|
| 42 | + public static $sub_delims_pct = array('%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D'); |
|
| 43 | + public static $reserved; |
|
| 44 | + public static $reserved_pct; |
|
| 45 | + |
|
| 46 | + public function __construct($template) { |
|
| 47 | + self::$reserved = array_merge(self::$gen_delims, self::$sub_delims); |
|
| 48 | + self::$reserved_pct = array_merge(self::$gen_delims_pct, self::$sub_delims_pct); |
|
| 49 | + $this->template = $template; |
|
| 50 | + } |
|
| 51 | + |
|
| 52 | + public function expand($data) { |
|
| 53 | + // Modification to make this a bit more performant (since gettype is very slow) |
|
| 54 | + if (! is_array($data)) { |
|
| 55 | + $data = (array)$data; |
|
| 56 | + } |
|
| 57 | + /* |
|
| 58 | 58 | // Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect |
| 59 | 59 | switch (gettype($data)) { |
| 60 | 60 | case "boolean": |
@@ -67,146 +67,146 @@ discard block |
||
| 67 | 67 | } |
| 68 | 68 | */ |
| 69 | 69 | |
| 70 | - // Resolve template vars |
|
| 71 | - preg_match_all('/\{([^\}]*)\}/', $this->template, $em); |
|
| 72 | - |
|
| 73 | - foreach ($em[1] as $i => $bare_expression) { |
|
| 74 | - preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm); |
|
| 75 | - $exp = new StdClass(); |
|
| 76 | - $exp->expression = $em[0][$i]; |
|
| 77 | - $exp->operator = $lm[1]; |
|
| 78 | - $exp->variable_list = $lm[2]; |
|
| 79 | - $exp->varspecs = explode(',', $exp->variable_list); |
|
| 80 | - $exp->vars = array(); |
|
| 81 | - foreach ($exp->varspecs as $varspec) { |
|
| 82 | - preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm); |
|
| 83 | - $var = new StdClass(); |
|
| 84 | - $var->name = $vm[1]; |
|
| 85 | - $var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null; |
|
| 86 | - $var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier; |
|
| 87 | - $var->default = isset($vm[4]) ? substr($vm[4], 1) : null; |
|
| 88 | - $exp->vars[] = $var; |
|
| 89 | - } |
|
| 90 | - |
|
| 91 | - // Add processing flags |
|
| 92 | - $exp->reserved = false; |
|
| 93 | - $exp->prefix = ''; |
|
| 94 | - $exp->delimiter = ','; |
|
| 95 | - switch ($exp->operator) { |
|
| 96 | - case '+': |
|
| 97 | - $exp->reserved = 'true'; |
|
| 98 | - break; |
|
| 99 | - case ';': |
|
| 100 | - $exp->prefix = ';'; |
|
| 101 | - $exp->delimiter = ';'; |
|
| 102 | - break; |
|
| 103 | - case '?': |
|
| 104 | - $exp->prefix = '?'; |
|
| 105 | - $exp->delimiter = '&'; |
|
| 106 | - break; |
|
| 107 | - case '/': |
|
| 108 | - $exp->prefix = '/'; |
|
| 109 | - $exp->delimiter = '/'; |
|
| 110 | - break; |
|
| 111 | - case '.': |
|
| 112 | - $exp->prefix = '.'; |
|
| 113 | - $exp->delimiter = '.'; |
|
| 114 | - break; |
|
| 115 | - } |
|
| 116 | - $expressions[] = $exp; |
|
| 117 | - } |
|
| 118 | - |
|
| 119 | - // Expansion |
|
| 120 | - $this->expansion = $this->template; |
|
| 121 | - |
|
| 122 | - foreach ($expressions as $exp) { |
|
| 123 | - $part = $exp->prefix; |
|
| 124 | - $exp->one_var_defined = false; |
|
| 125 | - foreach ($exp->vars as $var) { |
|
| 126 | - $val = ''; |
|
| 127 | - if ($exp->one_var_defined && isset($data[$var->name])) { |
|
| 128 | - $part .= $exp->delimiter; |
|
| 129 | - } |
|
| 130 | - // Variable present |
|
| 131 | - if (isset($data[$var->name])) { |
|
| 132 | - $exp->one_var_defined = true; |
|
| 133 | - $var->data = $data[$var->name]; |
|
| 134 | - |
|
| 135 | - $val = self::val_from_var($var, $exp); |
|
| 136 | - |
|
| 137 | - // Variable missing |
|
| 138 | - } else { |
|
| 139 | - if ($var->default) { |
|
| 140 | - $exp->one_var_defined = true; |
|
| 141 | - $val = $var->default; |
|
| 142 | - } |
|
| 143 | - } |
|
| 144 | - $part .= $val; |
|
| 145 | - } |
|
| 146 | - if (! $exp->one_var_defined) $part = ''; |
|
| 147 | - $this->expansion = str_replace($exp->expression, $part, $this->expansion); |
|
| 148 | - } |
|
| 149 | - |
|
| 150 | - return $this->expansion; |
|
| 151 | - } |
|
| 152 | - |
|
| 153 | - private function val_from_var($var, $exp) { |
|
| 154 | - $val = ''; |
|
| 155 | - if (is_array($var->data)) { |
|
| 156 | - $i = 0; |
|
| 157 | - if ($exp->operator == '?' && ! $var->modifier) { |
|
| 158 | - $val .= $var->name . '='; |
|
| 159 | - } |
|
| 160 | - foreach ($var->data as $k => $v) { |
|
| 161 | - $del = $var->modifier ? $exp->delimiter : ','; |
|
| 162 | - $ek = rawurlencode($k); |
|
| 163 | - $ev = rawurlencode($v); |
|
| 164 | - |
|
| 165 | - // Array |
|
| 166 | - if ($k !== $i) { |
|
| 167 | - if ($var->modifier == '+') { |
|
| 168 | - $val .= $var->name . '.'; |
|
| 169 | - } |
|
| 170 | - if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') { |
|
| 171 | - $val .= $ek . '='; |
|
| 172 | - } else { |
|
| 173 | - $val .= $ek . $del; |
|
| 174 | - } |
|
| 175 | - |
|
| 176 | - // List |
|
| 177 | - } else { |
|
| 178 | - if ($var->modifier == '+') { |
|
| 179 | - if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') { |
|
| 180 | - $val .= $var->name . '='; |
|
| 181 | - } else { |
|
| 182 | - $val .= $var->name . '.'; |
|
| 183 | - } |
|
| 184 | - } |
|
| 185 | - } |
|
| 186 | - $val .= $ev . $del; |
|
| 187 | - $i ++; |
|
| 188 | - } |
|
| 189 | - $val = trim($val, $del); |
|
| 190 | - |
|
| 191 | - // Strings, numbers, etc. |
|
| 192 | - } else { |
|
| 193 | - if ($exp->operator == '?') { |
|
| 194 | - $val = $var->name . (isset($var->data) ? '=' : ''); |
|
| 195 | - } else if ($exp->operator == ';') { |
|
| 196 | - $val = $var->name . ($var->data ? '=' : ''); |
|
| 197 | - } |
|
| 198 | - $val .= rawurlencode($var->data); |
|
| 199 | - if ($exp->operator == '+') { |
|
| 200 | - $val = str_replace(self::$reserved_pct, self::$reserved, $val); |
|
| 201 | - } |
|
| 202 | - } |
|
| 203 | - return $val; |
|
| 204 | - } |
|
| 205 | - |
|
| 206 | - public function match($uri) {} |
|
| 207 | - |
|
| 208 | - public function __toString() { |
|
| 209 | - return $this->template; |
|
| 210 | - } |
|
| 70 | + // Resolve template vars |
|
| 71 | + preg_match_all('/\{([^\}]*)\}/', $this->template, $em); |
|
| 72 | + |
|
| 73 | + foreach ($em[1] as $i => $bare_expression) { |
|
| 74 | + preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm); |
|
| 75 | + $exp = new StdClass(); |
|
| 76 | + $exp->expression = $em[0][$i]; |
|
| 77 | + $exp->operator = $lm[1]; |
|
| 78 | + $exp->variable_list = $lm[2]; |
|
| 79 | + $exp->varspecs = explode(',', $exp->variable_list); |
|
| 80 | + $exp->vars = array(); |
|
| 81 | + foreach ($exp->varspecs as $varspec) { |
|
| 82 | + preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm); |
|
| 83 | + $var = new StdClass(); |
|
| 84 | + $var->name = $vm[1]; |
|
| 85 | + $var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null; |
|
| 86 | + $var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier; |
|
| 87 | + $var->default = isset($vm[4]) ? substr($vm[4], 1) : null; |
|
| 88 | + $exp->vars[] = $var; |
|
| 89 | + } |
|
| 90 | + |
|
| 91 | + // Add processing flags |
|
| 92 | + $exp->reserved = false; |
|
| 93 | + $exp->prefix = ''; |
|
| 94 | + $exp->delimiter = ','; |
|
| 95 | + switch ($exp->operator) { |
|
| 96 | + case '+': |
|
| 97 | + $exp->reserved = 'true'; |
|
| 98 | + break; |
|
| 99 | + case ';': |
|
| 100 | + $exp->prefix = ';'; |
|
| 101 | + $exp->delimiter = ';'; |
|
| 102 | + break; |
|
| 103 | + case '?': |
|
| 104 | + $exp->prefix = '?'; |
|
| 105 | + $exp->delimiter = '&'; |
|
| 106 | + break; |
|
| 107 | + case '/': |
|
| 108 | + $exp->prefix = '/'; |
|
| 109 | + $exp->delimiter = '/'; |
|
| 110 | + break; |
|
| 111 | + case '.': |
|
| 112 | + $exp->prefix = '.'; |
|
| 113 | + $exp->delimiter = '.'; |
|
| 114 | + break; |
|
| 115 | + } |
|
| 116 | + $expressions[] = $exp; |
|
| 117 | + } |
|
| 118 | + |
|
| 119 | + // Expansion |
|
| 120 | + $this->expansion = $this->template; |
|
| 121 | + |
|
| 122 | + foreach ($expressions as $exp) { |
|
| 123 | + $part = $exp->prefix; |
|
| 124 | + $exp->one_var_defined = false; |
|
| 125 | + foreach ($exp->vars as $var) { |
|
| 126 | + $val = ''; |
|
| 127 | + if ($exp->one_var_defined && isset($data[$var->name])) { |
|
| 128 | + $part .= $exp->delimiter; |
|
| 129 | + } |
|
| 130 | + // Variable present |
|
| 131 | + if (isset($data[$var->name])) { |
|
| 132 | + $exp->one_var_defined = true; |
|
| 133 | + $var->data = $data[$var->name]; |
|
| 134 | + |
|
| 135 | + $val = self::val_from_var($var, $exp); |
|
| 136 | + |
|
| 137 | + // Variable missing |
|
| 138 | + } else { |
|
| 139 | + if ($var->default) { |
|
| 140 | + $exp->one_var_defined = true; |
|
| 141 | + $val = $var->default; |
|
| 142 | + } |
|
| 143 | + } |
|
| 144 | + $part .= $val; |
|
| 145 | + } |
|
| 146 | + if (! $exp->one_var_defined) $part = ''; |
|
| 147 | + $this->expansion = str_replace($exp->expression, $part, $this->expansion); |
|
| 148 | + } |
|
| 149 | + |
|
| 150 | + return $this->expansion; |
|
| 151 | + } |
|
| 152 | + |
|
| 153 | + private function val_from_var($var, $exp) { |
|
| 154 | + $val = ''; |
|
| 155 | + if (is_array($var->data)) { |
|
| 156 | + $i = 0; |
|
| 157 | + if ($exp->operator == '?' && ! $var->modifier) { |
|
| 158 | + $val .= $var->name . '='; |
|
| 159 | + } |
|
| 160 | + foreach ($var->data as $k => $v) { |
|
| 161 | + $del = $var->modifier ? $exp->delimiter : ','; |
|
| 162 | + $ek = rawurlencode($k); |
|
| 163 | + $ev = rawurlencode($v); |
|
| 164 | + |
|
| 165 | + // Array |
|
| 166 | + if ($k !== $i) { |
|
| 167 | + if ($var->modifier == '+') { |
|
| 168 | + $val .= $var->name . '.'; |
|
| 169 | + } |
|
| 170 | + if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') { |
|
| 171 | + $val .= $ek . '='; |
|
| 172 | + } else { |
|
| 173 | + $val .= $ek . $del; |
|
| 174 | + } |
|
| 175 | + |
|
| 176 | + // List |
|
| 177 | + } else { |
|
| 178 | + if ($var->modifier == '+') { |
|
| 179 | + if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') { |
|
| 180 | + $val .= $var->name . '='; |
|
| 181 | + } else { |
|
| 182 | + $val .= $var->name . '.'; |
|
| 183 | + } |
|
| 184 | + } |
|
| 185 | + } |
|
| 186 | + $val .= $ev . $del; |
|
| 187 | + $i ++; |
|
| 188 | + } |
|
| 189 | + $val = trim($val, $del); |
|
| 190 | + |
|
| 191 | + // Strings, numbers, etc. |
|
| 192 | + } else { |
|
| 193 | + if ($exp->operator == '?') { |
|
| 194 | + $val = $var->name . (isset($var->data) ? '=' : ''); |
|
| 195 | + } else if ($exp->operator == ';') { |
|
| 196 | + $val = $var->name . ($var->data ? '=' : ''); |
|
| 197 | + } |
|
| 198 | + $val .= rawurlencode($var->data); |
|
| 199 | + if ($exp->operator == '+') { |
|
| 200 | + $val = str_replace(self::$reserved_pct, self::$reserved, $val); |
|
| 201 | + } |
|
| 202 | + } |
|
| 203 | + return $val; |
|
| 204 | + } |
|
| 205 | + |
|
| 206 | + public function match($uri) {} |
|
| 207 | + |
|
| 208 | + public function __toString() { |
|
| 209 | + return $this->template; |
|
| 210 | + } |
|
| 211 | 211 | } |
| 212 | 212 | } |
| 213 | 213 | \ No newline at end of file |
@@ -28,7 +28,7 @@ discard block |
||
| 28 | 28 | * Source: http://github.com/KevBurnsJr/php-uri-template-parser |
| 29 | 29 | */ |
| 30 | 30 | |
| 31 | -if( ! class_exists( 'URI_Template_Parser' ) ) { |
|
| 31 | +if (!class_exists('URI_Template_Parser')) { |
|
| 32 | 32 | class URI_Template_Parser { |
| 33 | 33 | |
| 34 | 34 | public static $operators = array('+', ';', '?', '/', '.'); |
@@ -51,8 +51,8 @@ discard block |
||
| 51 | 51 | |
| 52 | 52 | public function expand($data) { |
| 53 | 53 | // Modification to make this a bit more performant (since gettype is very slow) |
| 54 | - if (! is_array($data)) { |
|
| 55 | - $data = (array)$data; |
|
| 54 | + if (!is_array($data)) { |
|
| 55 | + $data = (array) $data; |
|
| 56 | 56 | } |
| 57 | 57 | /* |
| 58 | 58 | // Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect |
@@ -143,7 +143,7 @@ discard block |
||
| 143 | 143 | } |
| 144 | 144 | $part .= $val; |
| 145 | 145 | } |
| 146 | - if (! $exp->one_var_defined) $part = ''; |
|
| 146 | + if (!$exp->one_var_defined) $part = ''; |
|
| 147 | 147 | $this->expansion = str_replace($exp->expression, $part, $this->expansion); |
| 148 | 148 | } |
| 149 | 149 | |
@@ -154,8 +154,8 @@ discard block |
||
| 154 | 154 | $val = ''; |
| 155 | 155 | if (is_array($var->data)) { |
| 156 | 156 | $i = 0; |
| 157 | - if ($exp->operator == '?' && ! $var->modifier) { |
|
| 158 | - $val .= $var->name . '='; |
|
| 157 | + if ($exp->operator == '?' && !$var->modifier) { |
|
| 158 | + $val .= $var->name.'='; |
|
| 159 | 159 | } |
| 160 | 160 | foreach ($var->data as $k => $v) { |
| 161 | 161 | $del = $var->modifier ? $exp->delimiter : ','; |
@@ -165,35 +165,35 @@ discard block |
||
| 165 | 165 | // Array |
| 166 | 166 | if ($k !== $i) { |
| 167 | 167 | if ($var->modifier == '+') { |
| 168 | - $val .= $var->name . '.'; |
|
| 168 | + $val .= $var->name.'.'; |
|
| 169 | 169 | } |
| 170 | 170 | if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') { |
| 171 | - $val .= $ek . '='; |
|
| 171 | + $val .= $ek.'='; |
|
| 172 | 172 | } else { |
| 173 | - $val .= $ek . $del; |
|
| 173 | + $val .= $ek.$del; |
|
| 174 | 174 | } |
| 175 | 175 | |
| 176 | 176 | // List |
| 177 | 177 | } else { |
| 178 | 178 | if ($var->modifier == '+') { |
| 179 | 179 | if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') { |
| 180 | - $val .= $var->name . '='; |
|
| 180 | + $val .= $var->name.'='; |
|
| 181 | 181 | } else { |
| 182 | - $val .= $var->name . '.'; |
|
| 182 | + $val .= $var->name.'.'; |
|
| 183 | 183 | } |
| 184 | 184 | } |
| 185 | 185 | } |
| 186 | - $val .= $ev . $del; |
|
| 187 | - $i ++; |
|
| 186 | + $val .= $ev.$del; |
|
| 187 | + $i++; |
|
| 188 | 188 | } |
| 189 | 189 | $val = trim($val, $del); |
| 190 | 190 | |
| 191 | 191 | // Strings, numbers, etc. |
| 192 | 192 | } else { |
| 193 | 193 | if ($exp->operator == '?') { |
| 194 | - $val = $var->name . (isset($var->data) ? '=' : ''); |
|
| 194 | + $val = $var->name.(isset($var->data) ? '=' : ''); |
|
| 195 | 195 | } else if ($exp->operator == ';') { |
| 196 | - $val = $var->name . ($var->data ? '=' : ''); |
|
| 196 | + $val = $var->name.($var->data ? '=' : ''); |
|
| 197 | 197 | } |
| 198 | 198 | $val .= rawurlencode($var->data); |
| 199 | 199 | if ($exp->operator == '+') { |
@@ -143,7 +143,9 @@ |
||
| 143 | 143 | } |
| 144 | 144 | $part .= $val; |
| 145 | 145 | } |
| 146 | - if (! $exp->one_var_defined) $part = ''; |
|
| 146 | + if (! $exp->one_var_defined) { |
|
| 147 | + $part = ''; |
|
| 148 | + } |
|
| 147 | 149 | $this->expansion = str_replace($exp->expression, $part, $this->expansion); |
| 148 | 150 | } |
| 149 | 151 | |
@@ -108,6 +108,7 @@ discard block |
||
| 108 | 108 | |
| 109 | 109 | /** |
| 110 | 110 | * Add a service |
| 111 | + * @param string $service |
|
| 111 | 112 | */ |
| 112 | 113 | public function addService($service, $version = false) { |
| 113 | 114 | global $apiConfig; |
@@ -316,7 +317,7 @@ discard block |
||
| 316 | 317 | * token, if a token isn't provided. |
| 317 | 318 | * @throws Google_AuthException |
| 318 | 319 | * @param string|null $token The token (access token or a refresh token) that should be revoked. |
| 319 | - * @return boolean Returns True if the revocation was successful, otherwise False. |
|
| 320 | + * @return boolean|null Returns True if the revocation was successful, otherwise False. |
|
| 320 | 321 | */ |
| 321 | 322 | public function revokeToken($token = null) { |
| 322 | 323 | self::$auth->revokeToken($token); |
@@ -347,6 +348,7 @@ discard block |
||
| 347 | 348 | * so that you can ask for more or less permission in the auth flow |
| 348 | 349 | * Set this before you call authenticate() though! |
| 349 | 350 | * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator') |
| 351 | + * @param string[] $scopes |
|
| 350 | 352 | */ |
| 351 | 353 | public function setScopes($scopes) { |
| 352 | 354 | $this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes; |
@@ -99,32 +99,32 @@ discard block |
||
| 99 | 99 | private $authenticated = false; |
| 100 | 100 | |
| 101 | 101 | public function __construct($config = array()) { |
| 102 | - global $apiConfig; |
|
| 103 | - $apiConfig = array_merge($apiConfig, $config); |
|
| 104 | - self::$cache = new $apiConfig['cacheClass'](); |
|
| 105 | - self::$auth = new $apiConfig['authClass'](); |
|
| 106 | - self::$io = new $apiConfig['ioClass'](); |
|
| 102 | + global $apiConfig; |
|
| 103 | + $apiConfig = array_merge($apiConfig, $config); |
|
| 104 | + self::$cache = new $apiConfig['cacheClass'](); |
|
| 105 | + self::$auth = new $apiConfig['authClass'](); |
|
| 106 | + self::$io = new $apiConfig['ioClass'](); |
|
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | /** |
| 110 | 110 | * Add a service |
| 111 | 111 | */ |
| 112 | 112 | public function addService($service, $version = false) { |
| 113 | - global $apiConfig; |
|
| 114 | - if ($this->authenticated) { |
|
| 115 | - throw new Google_Exception('Cant add services after having authenticated'); |
|
| 116 | - } |
|
| 117 | - $this->services[$service] = array(); |
|
| 118 | - if (isset($apiConfig['services'][$service])) { |
|
| 119 | - // Merge the service descriptor with the default values |
|
| 120 | - $this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]); |
|
| 121 | - } |
|
| 113 | + global $apiConfig; |
|
| 114 | + if ($this->authenticated) { |
|
| 115 | + throw new Google_Exception('Cant add services after having authenticated'); |
|
| 116 | + } |
|
| 117 | + $this->services[$service] = array(); |
|
| 118 | + if (isset($apiConfig['services'][$service])) { |
|
| 119 | + // Merge the service descriptor with the default values |
|
| 120 | + $this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]); |
|
| 121 | + } |
|
| 122 | 122 | } |
| 123 | 123 | |
| 124 | 124 | public function authenticate($code = null) { |
| 125 | - $service = $this->prepareService(); |
|
| 126 | - $this->authenticated = true; |
|
| 127 | - return self::$auth->authenticate($service, $code); |
|
| 125 | + $service = $this->prepareService(); |
|
| 126 | + $this->authenticated = true; |
|
| 127 | + return self::$auth->authenticate($service, $code); |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | /** |
@@ -132,28 +132,28 @@ discard block |
||
| 132 | 132 | * @visible For Testing |
| 133 | 133 | */ |
| 134 | 134 | public function prepareService() { |
| 135 | - $service = array(); |
|
| 136 | - $scopes = array(); |
|
| 137 | - if ($this->scopes) { |
|
| 138 | - $scopes = $this->scopes; |
|
| 139 | - } else { |
|
| 140 | - foreach ($this->services as $key => $val) { |
|
| 141 | - if (isset($val['scope'])) { |
|
| 142 | - if (is_array($val['scope'])) { |
|
| 143 | - $scopes = array_merge($val['scope'], $scopes); |
|
| 144 | - } else { |
|
| 145 | - $scopes[] = $val['scope']; |
|
| 146 | - } |
|
| 147 | - } else { |
|
| 148 | - $scopes[] = 'https://www.googleapis.com/auth/' . $key; |
|
| 149 | - } |
|
| 150 | - unset($val['discoveryURI']); |
|
| 151 | - unset($val['scope']); |
|
| 152 | - $service = array_merge($service, $val); |
|
| 153 | - } |
|
| 154 | - } |
|
| 155 | - $service['scope'] = implode(' ', $scopes); |
|
| 156 | - return $service; |
|
| 135 | + $service = array(); |
|
| 136 | + $scopes = array(); |
|
| 137 | + if ($this->scopes) { |
|
| 138 | + $scopes = $this->scopes; |
|
| 139 | + } else { |
|
| 140 | + foreach ($this->services as $key => $val) { |
|
| 141 | + if (isset($val['scope'])) { |
|
| 142 | + if (is_array($val['scope'])) { |
|
| 143 | + $scopes = array_merge($val['scope'], $scopes); |
|
| 144 | + } else { |
|
| 145 | + $scopes[] = $val['scope']; |
|
| 146 | + } |
|
| 147 | + } else { |
|
| 148 | + $scopes[] = 'https://www.googleapis.com/auth/' . $key; |
|
| 149 | + } |
|
| 150 | + unset($val['discoveryURI']); |
|
| 151 | + unset($val['scope']); |
|
| 152 | + $service = array_merge($service, $val); |
|
| 153 | + } |
|
| 154 | + } |
|
| 155 | + $service['scope'] = implode(' ', $scopes); |
|
| 156 | + return $service; |
|
| 157 | 157 | } |
| 158 | 158 | |
| 159 | 159 | /** |
@@ -164,10 +164,10 @@ discard block |
||
| 164 | 164 | * "expires_in":3600, "id_token":"TOKEN", "created":1320790426} |
| 165 | 165 | */ |
| 166 | 166 | public function setAccessToken($accessToken) { |
| 167 | - if ($accessToken == null || 'null' == $accessToken) { |
|
| 168 | - $accessToken = null; |
|
| 169 | - } |
|
| 170 | - self::$auth->setAccessToken($accessToken); |
|
| 167 | + if ($accessToken == null || 'null' == $accessToken) { |
|
| 168 | + $accessToken = null; |
|
| 169 | + } |
|
| 170 | + self::$auth->setAccessToken($accessToken); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | /** |
@@ -175,7 +175,7 @@ discard block |
||
| 175 | 175 | * @param string $authClassName |
| 176 | 176 | */ |
| 177 | 177 | public function setAuthClass($authClassName) { |
| 178 | - self::$auth = new $authClassName(); |
|
| 178 | + self::$auth = new $authClassName(); |
|
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | /** |
@@ -183,8 +183,8 @@ discard block |
||
| 183 | 183 | * @return string |
| 184 | 184 | */ |
| 185 | 185 | public function createAuthUrl() { |
| 186 | - $service = $this->prepareService(); |
|
| 187 | - return self::$auth->createAuthUrl($service['scope']); |
|
| 186 | + $service = $this->prepareService(); |
|
| 187 | + return self::$auth->createAuthUrl($service['scope']); |
|
| 188 | 188 | } |
| 189 | 189 | |
| 190 | 190 | /** |
@@ -194,8 +194,8 @@ discard block |
||
| 194 | 194 | * "expires_in":3600,"id_token":"TOKEN", "created":1320790426} |
| 195 | 195 | */ |
| 196 | 196 | public function getAccessToken() { |
| 197 | - $token = self::$auth->getAccessToken(); |
|
| 198 | - return (null == $token || 'null' == $token) ? null : $token; |
|
| 197 | + $token = self::$auth->getAccessToken(); |
|
| 198 | + return (null == $token || 'null' == $token) ? null : $token; |
|
| 199 | 199 | } |
| 200 | 200 | |
| 201 | 201 | /** |
@@ -203,7 +203,7 @@ discard block |
||
| 203 | 203 | * @return bool Returns True if the access_token is expired. |
| 204 | 204 | */ |
| 205 | 205 | public function isAccessTokenExpired() { |
| 206 | - return self::$auth->isAccessTokenExpired(); |
|
| 206 | + return self::$auth->isAccessTokenExpired(); |
|
| 207 | 207 | } |
| 208 | 208 | |
| 209 | 209 | /** |
@@ -212,7 +212,7 @@ discard block |
||
| 212 | 212 | * @param string $developerKey |
| 213 | 213 | */ |
| 214 | 214 | public function setDeveloperKey($developerKey) { |
| 215 | - self::$auth->setDeveloperKey($developerKey); |
|
| 215 | + self::$auth->setDeveloperKey($developerKey); |
|
| 216 | 216 | } |
| 217 | 217 | |
| 218 | 218 | /** |
@@ -221,7 +221,7 @@ discard block |
||
| 221 | 221 | * @param string $state |
| 222 | 222 | */ |
| 223 | 223 | public function setState($state) { |
| 224 | - self::$auth->setState($state); |
|
| 224 | + self::$auth->setState($state); |
|
| 225 | 225 | } |
| 226 | 226 | |
| 227 | 227 | /** |
@@ -230,7 +230,7 @@ discard block |
||
| 230 | 230 | * {@code "online"} to request online access from the user. |
| 231 | 231 | */ |
| 232 | 232 | public function setAccessType($accessType) { |
| 233 | - self::$auth->setAccessType($accessType); |
|
| 233 | + self::$auth->setAccessType($accessType); |
|
| 234 | 234 | } |
| 235 | 235 | |
| 236 | 236 | /** |
@@ -239,7 +239,7 @@ discard block |
||
| 239 | 239 | * {@code "auto"} to request auto-approval when possible. |
| 240 | 240 | */ |
| 241 | 241 | public function setApprovalPrompt($approvalPrompt) { |
| 242 | - self::$auth->setApprovalPrompt($approvalPrompt); |
|
| 242 | + self::$auth->setApprovalPrompt($approvalPrompt); |
|
| 243 | 243 | } |
| 244 | 244 | |
| 245 | 245 | /** |
@@ -247,8 +247,8 @@ discard block |
||
| 247 | 247 | * @param string $applicationName |
| 248 | 248 | */ |
| 249 | 249 | public function setApplicationName($applicationName) { |
| 250 | - global $apiConfig; |
|
| 251 | - $apiConfig['application_name'] = $applicationName; |
|
| 250 | + global $apiConfig; |
|
| 251 | + $apiConfig['application_name'] = $applicationName; |
|
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | /** |
@@ -256,16 +256,16 @@ discard block |
||
| 256 | 256 | * @param string $clientId |
| 257 | 257 | */ |
| 258 | 258 | public function setClientId($clientId) { |
| 259 | - global $apiConfig; |
|
| 260 | - $apiConfig['oauth2_client_id'] = $clientId; |
|
| 261 | - self::$auth->clientId = $clientId; |
|
| 259 | + global $apiConfig; |
|
| 260 | + $apiConfig['oauth2_client_id'] = $clientId; |
|
| 261 | + self::$auth->clientId = $clientId; |
|
| 262 | 262 | } |
| 263 | 263 | |
| 264 | 264 | /** |
| 265 | 265 | * Get the OAuth 2.0 Client ID. |
| 266 | 266 | */ |
| 267 | 267 | public function getClientId() { |
| 268 | - return self::$auth->clientId; |
|
| 268 | + return self::$auth->clientId; |
|
| 269 | 269 | } |
| 270 | 270 | |
| 271 | 271 | /** |
@@ -273,16 +273,16 @@ discard block |
||
| 273 | 273 | * @param string $clientSecret |
| 274 | 274 | */ |
| 275 | 275 | public function setClientSecret($clientSecret) { |
| 276 | - global $apiConfig; |
|
| 277 | - $apiConfig['oauth2_client_secret'] = $clientSecret; |
|
| 278 | - self::$auth->clientSecret = $clientSecret; |
|
| 276 | + global $apiConfig; |
|
| 277 | + $apiConfig['oauth2_client_secret'] = $clientSecret; |
|
| 278 | + self::$auth->clientSecret = $clientSecret; |
|
| 279 | 279 | } |
| 280 | 280 | |
| 281 | 281 | /** |
| 282 | 282 | * Get the OAuth 2.0 Client Secret. |
| 283 | 283 | */ |
| 284 | 284 | public function getClientSecret() { |
| 285 | - return self::$auth->clientSecret; |
|
| 285 | + return self::$auth->clientSecret; |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | /** |
@@ -290,16 +290,16 @@ discard block |
||
| 290 | 290 | * @param string $redirectUri |
| 291 | 291 | */ |
| 292 | 292 | public function setRedirectUri($redirectUri) { |
| 293 | - global $apiConfig; |
|
| 294 | - $apiConfig['oauth2_redirect_uri'] = $redirectUri; |
|
| 295 | - self::$auth->redirectUri = $redirectUri; |
|
| 293 | + global $apiConfig; |
|
| 294 | + $apiConfig['oauth2_redirect_uri'] = $redirectUri; |
|
| 295 | + self::$auth->redirectUri = $redirectUri; |
|
| 296 | 296 | } |
| 297 | 297 | |
| 298 | 298 | /** |
| 299 | 299 | * Get the OAuth 2.0 Redirect URI. |
| 300 | 300 | */ |
| 301 | 301 | public function getRedirectUri() { |
| 302 | - return self::$auth->redirectUri; |
|
| 302 | + return self::$auth->redirectUri; |
|
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | /** |
@@ -308,7 +308,7 @@ discard block |
||
| 308 | 308 | * @return void |
| 309 | 309 | */ |
| 310 | 310 | public function refreshToken($refreshToken) { |
| 311 | - self::$auth->refreshToken($refreshToken); |
|
| 311 | + self::$auth->refreshToken($refreshToken); |
|
| 312 | 312 | } |
| 313 | 313 | |
| 314 | 314 | /** |
@@ -319,7 +319,7 @@ discard block |
||
| 319 | 319 | * @return boolean Returns True if the revocation was successful, otherwise False. |
| 320 | 320 | */ |
| 321 | 321 | public function revokeToken($token = null) { |
| 322 | - self::$auth->revokeToken($token); |
|
| 322 | + self::$auth->revokeToken($token); |
|
| 323 | 323 | } |
| 324 | 324 | |
| 325 | 325 | /** |
@@ -331,7 +331,7 @@ discard block |
||
| 331 | 331 | * successful. |
| 332 | 332 | */ |
| 333 | 333 | public function verifyIdToken($token = null) { |
| 334 | - return self::$auth->verifyIdToken($token); |
|
| 334 | + return self::$auth->verifyIdToken($token); |
|
| 335 | 335 | } |
| 336 | 336 | |
| 337 | 337 | /** |
@@ -339,7 +339,7 @@ discard block |
||
| 339 | 339 | * @return void |
| 340 | 340 | */ |
| 341 | 341 | public function setAssertionCredentials(Google_AssertionCredentials $creds) { |
| 342 | - self::$auth->setAssertionCredentials($creds); |
|
| 342 | + self::$auth->setAssertionCredentials($creds); |
|
| 343 | 343 | } |
| 344 | 344 | |
| 345 | 345 | /** |
@@ -349,7 +349,7 @@ discard block |
||
| 349 | 349 | * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator') |
| 350 | 350 | */ |
| 351 | 351 | public function setScopes($scopes) { |
| 352 | - $this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes; |
|
| 352 | + $this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes; |
|
| 353 | 353 | } |
| 354 | 354 | |
| 355 | 355 | /** |
@@ -358,7 +358,7 @@ discard block |
||
| 358 | 358 | * |
| 359 | 359 | */ |
| 360 | 360 | public function getScopes() { |
| 361 | - return $this->scopes; |
|
| 361 | + return $this->scopes; |
|
| 362 | 362 | } |
| 363 | 363 | |
| 364 | 364 | /** |
@@ -370,8 +370,8 @@ discard block |
||
| 370 | 370 | * @param array $requestVisibleActions Array of app activity types |
| 371 | 371 | */ |
| 372 | 372 | public function setRequestVisibleActions($requestVisibleActions) { |
| 373 | - self::$auth->requestVisibleActions = |
|
| 374 | - join(" ", $requestVisibleActions); |
|
| 373 | + self::$auth->requestVisibleActions = |
|
| 374 | + join(" ", $requestVisibleActions); |
|
| 375 | 375 | } |
| 376 | 376 | |
| 377 | 377 | /** |
@@ -382,8 +382,8 @@ discard block |
||
| 382 | 382 | * @experimental |
| 383 | 383 | */ |
| 384 | 384 | public function setUseObjects($useObjects) { |
| 385 | - global $apiConfig; |
|
| 386 | - $apiConfig['use_objects'] = $useObjects; |
|
| 385 | + global $apiConfig; |
|
| 386 | + $apiConfig['use_objects'] = $useObjects; |
|
| 387 | 387 | } |
| 388 | 388 | |
| 389 | 389 | /** |
@@ -394,7 +394,7 @@ discard block |
||
| 394 | 394 | * @experimental |
| 395 | 395 | */ |
| 396 | 396 | public function setUseBatch($useBatch) { |
| 397 | - self::$useBatch = $useBatch; |
|
| 397 | + self::$useBatch = $useBatch; |
|
| 398 | 398 | } |
| 399 | 399 | |
| 400 | 400 | /** |
@@ -402,7 +402,7 @@ discard block |
||
| 402 | 402 | * @return Google_Auth the implementation of apiAuth. |
| 403 | 403 | */ |
| 404 | 404 | public static function getAuth() { |
| 405 | - return Google_Client::$auth; |
|
| 405 | + return Google_Client::$auth; |
|
| 406 | 406 | } |
| 407 | 407 | |
| 408 | 408 | /** |
@@ -410,14 +410,14 @@ discard block |
||
| 410 | 410 | * @return Google_IO the implementation of apiIo. |
| 411 | 411 | */ |
| 412 | 412 | public static function getIo() { |
| 413 | - return Google_Client::$io; |
|
| 413 | + return Google_Client::$io; |
|
| 414 | 414 | } |
| 415 | 415 | |
| 416 | 416 | /** |
| 417 | 417 | * @return Google_Cache the implementation of apiCache. |
| 418 | 418 | */ |
| 419 | 419 | public function getCache() { |
| 420 | - return Google_Client::$cache; |
|
| 420 | + return Google_Client::$cache; |
|
| 421 | 421 | } |
| 422 | 422 | } |
| 423 | 423 | |
@@ -442,14 +442,14 @@ discard block |
||
| 442 | 442 | * response. Defaults to []. |
| 443 | 443 | */ |
| 444 | 444 | public function __construct($message, $code = 0, Exception $previous = null, |
| 445 | - $errors = array()) { |
|
| 446 | - if(version_compare(PHP_VERSION, '5.3.0') >= 0) { |
|
| 447 | - parent::__construct($message, $code, $previous); |
|
| 448 | - } else { |
|
| 449 | - parent::__construct($message, $code); |
|
| 450 | - } |
|
| 445 | + $errors = array()) { |
|
| 446 | + if(version_compare(PHP_VERSION, '5.3.0') >= 0) { |
|
| 447 | + parent::__construct($message, $code, $previous); |
|
| 448 | + } else { |
|
| 449 | + parent::__construct($message, $code); |
|
| 450 | + } |
|
| 451 | 451 | |
| 452 | - $this->errors = $errors; |
|
| 452 | + $this->errors = $errors; |
|
| 453 | 453 | } |
| 454 | 454 | |
| 455 | 455 | /** |
@@ -466,6 +466,6 @@ discard block |
||
| 466 | 466 | * @return [{string, string}] List of errors return in an HTTP response or []. |
| 467 | 467 | */ |
| 468 | 468 | public function getErrors() { |
| 469 | - return $this->errors; |
|
| 469 | + return $this->errors; |
|
| 470 | 470 | } |
| 471 | 471 | } |
@@ -17,42 +17,42 @@ discard block |
||
| 17 | 17 | |
| 18 | 18 | // Check for the json extension, the Google APIs PHP Client won't function |
| 19 | 19 | // without it. |
| 20 | -if (! function_exists('json_decode')) { |
|
| 20 | +if (!function_exists('json_decode')) { |
|
| 21 | 21 | throw new Exception('Google PHP API Client requires the JSON PHP extension'); |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | -if (! function_exists('http_build_query')) { |
|
| 24 | +if (!function_exists('http_build_query')) { |
|
| 25 | 25 | throw new Exception('Google PHP API Client requires http_build_query()'); |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | -if (! ini_get('date.timezone') && function_exists('date_default_timezone_set')) { |
|
| 28 | +if (!ini_get('date.timezone') && function_exists('date_default_timezone_set')) { |
|
| 29 | 29 | date_default_timezone_set('UTC'); |
| 30 | 30 | } |
| 31 | -define("GA_API_Path", dirname(__FILE__) .'/'); |
|
| 31 | +define("GA_API_Path", dirname(__FILE__).'/'); |
|
| 32 | 32 | // hack around with the include paths a bit so the library 'just works' |
| 33 | 33 | //set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path()); |
| 34 | 34 | |
| 35 | -require_once (dirname(__FILE__) . "/config.php"); |
|
| 35 | +require_once (dirname(__FILE__)."/config.php"); |
|
| 36 | 36 | // If a local configuration file is found, merge it's values with the default configuration |
| 37 | -if (file_exists(dirname(__FILE__) . '/local_config.php')) { |
|
| 37 | +if (file_exists(dirname(__FILE__).'/local_config.php')) { |
|
| 38 | 38 | $defaultConfig = $apiConfig; |
| 39 | - require_once (dirname(__FILE__) . '/local_config.php'); |
|
| 39 | + require_once (dirname(__FILE__).'/local_config.php'); |
|
| 40 | 40 | $apiConfig = array_merge($defaultConfig, $apiConfig); |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | 43 | // Include the top level classes, they each include their own dependencies |
| 44 | -require_once GA_API_Path. 'service/Google_Model.php'; |
|
| 45 | -require_once GA_API_Path. 'service/Google_Service.php'; |
|
| 46 | -require_once GA_API_Path. 'service/Google_ServiceResource.php'; |
|
| 47 | -require_once GA_API_Path. 'auth/Google_AssertionCredentials.php'; |
|
| 48 | -require_once GA_API_Path. 'auth/Google_Signer.php'; |
|
| 49 | -require_once GA_API_Path. 'auth/Google_P12Signer.php'; |
|
| 50 | -require_once GA_API_Path. 'service/Google_BatchRequest.php'; |
|
| 51 | -require_once GA_API_Path. 'external/URITemplateParser.php'; |
|
| 52 | -require_once GA_API_Path. 'auth/Google_Auth.php'; |
|
| 53 | -require_once GA_API_Path. 'cache/Google_Cache.php'; |
|
| 54 | -require_once GA_API_Path. 'io/Google_IO.php'; |
|
| 55 | -require_once(GA_API_Path. 'service/Google_MediaFileUpload.php'); |
|
| 44 | +require_once GA_API_Path.'service/Google_Model.php'; |
|
| 45 | +require_once GA_API_Path.'service/Google_Service.php'; |
|
| 46 | +require_once GA_API_Path.'service/Google_ServiceResource.php'; |
|
| 47 | +require_once GA_API_Path.'auth/Google_AssertionCredentials.php'; |
|
| 48 | +require_once GA_API_Path.'auth/Google_Signer.php'; |
|
| 49 | +require_once GA_API_Path.'auth/Google_P12Signer.php'; |
|
| 50 | +require_once GA_API_Path.'service/Google_BatchRequest.php'; |
|
| 51 | +require_once GA_API_Path.'external/URITemplateParser.php'; |
|
| 52 | +require_once GA_API_Path.'auth/Google_Auth.php'; |
|
| 53 | +require_once GA_API_Path.'cache/Google_Cache.php'; |
|
| 54 | +require_once GA_API_Path.'io/Google_IO.php'; |
|
| 55 | +require_once(GA_API_Path.'service/Google_MediaFileUpload.php'); |
|
| 56 | 56 | |
| 57 | 57 | /** |
| 58 | 58 | * The Google API Client |
@@ -145,7 +145,7 @@ discard block |
||
| 145 | 145 | $scopes[] = $val['scope']; |
| 146 | 146 | } |
| 147 | 147 | } else { |
| 148 | - $scopes[] = 'https://www.googleapis.com/auth/' . $key; |
|
| 148 | + $scopes[] = 'https://www.googleapis.com/auth/'.$key; |
|
| 149 | 149 | } |
| 150 | 150 | unset($val['discoveryURI']); |
| 151 | 151 | unset($val['scope']); |
@@ -443,7 +443,7 @@ discard block |
||
| 443 | 443 | */ |
| 444 | 444 | public function __construct($message, $code = 0, Exception $previous = null, |
| 445 | 445 | $errors = array()) { |
| 446 | - if(version_compare(PHP_VERSION, '5.3.0') >= 0) { |
|
| 446 | + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { |
|
| 447 | 447 | parent::__construct($message, $code, $previous); |
| 448 | 448 | } else { |
| 449 | 449 | parent::__construct($message, $code); |
@@ -44,6 +44,9 @@ discard block |
||
| 44 | 44 | |
| 45 | 45 | public $accessKey; |
| 46 | 46 | |
| 47 | + /** |
|
| 48 | + * @param string|boolean $url |
|
| 49 | + */ |
|
| 47 | 50 | public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) { |
| 48 | 51 | $this->setUrl($url); |
| 49 | 52 | $this->setRequestMethod($method); |
@@ -87,7 +90,7 @@ discard block |
||
| 87 | 90 | } |
| 88 | 91 | |
| 89 | 92 | /** |
| 90 | - * @return string HTTP Response Code. |
|
| 93 | + * @return integer HTTP Response Code. |
|
| 91 | 94 | */ |
| 92 | 95 | public function getResponseHttpCode() { |
| 93 | 96 | return (int) $this->responseHttpCode; |
@@ -26,10 +26,10 @@ discard block |
||
| 26 | 26 | class Google_HttpRequest { |
| 27 | 27 | const USER_AGENT_SUFFIX = "google-api-php-client/0.6.5"; |
| 28 | 28 | private $batchHeaders = array( |
| 29 | - 'Content-Type' => 'application/http', |
|
| 30 | - 'Content-Transfer-Encoding' => 'binary', |
|
| 31 | - 'MIME-Version' => '1.0', |
|
| 32 | - 'Content-Length' => '' |
|
| 29 | + 'Content-Type' => 'application/http', |
|
| 30 | + 'Content-Transfer-Encoding' => 'binary', |
|
| 31 | + 'MIME-Version' => '1.0', |
|
| 32 | + 'Content-Length' => '' |
|
| 33 | 33 | ); |
| 34 | 34 | |
| 35 | 35 | protected $url; |
@@ -45,17 +45,17 @@ discard block |
||
| 45 | 45 | public $accessKey; |
| 46 | 46 | |
| 47 | 47 | public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) { |
| 48 | - $this->setUrl($url); |
|
| 49 | - $this->setRequestMethod($method); |
|
| 50 | - $this->setRequestHeaders($headers); |
|
| 51 | - $this->setPostBody($postBody); |
|
| 52 | - |
|
| 53 | - global $apiConfig; |
|
| 54 | - if (empty($apiConfig['application_name'])) { |
|
| 55 | - $this->userAgent = self::USER_AGENT_SUFFIX; |
|
| 56 | - } else { |
|
| 57 | - $this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX; |
|
| 58 | - } |
|
| 48 | + $this->setUrl($url); |
|
| 49 | + $this->setRequestMethod($method); |
|
| 50 | + $this->setRequestHeaders($headers); |
|
| 51 | + $this->setPostBody($postBody); |
|
| 52 | + |
|
| 53 | + global $apiConfig; |
|
| 54 | + if (empty($apiConfig['application_name'])) { |
|
| 55 | + $this->userAgent = self::USER_AGENT_SUFFIX; |
|
| 56 | + } else { |
|
| 57 | + $this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX; |
|
| 58 | + } |
|
| 59 | 59 | } |
| 60 | 60 | |
| 61 | 61 | /** |
@@ -65,10 +65,10 @@ discard block |
||
| 65 | 65 | * @see http://oauth.net/core/1.0a/#anchor13 |
| 66 | 66 | */ |
| 67 | 67 | public function getBaseUrl() { |
| 68 | - if ($pos = strpos($this->url, '?')) { |
|
| 69 | - return substr($this->url, 0, $pos); |
|
| 70 | - } |
|
| 71 | - return $this->url; |
|
| 68 | + if ($pos = strpos($this->url, '?')) { |
|
| 69 | + return substr($this->url, 0, $pos); |
|
| 70 | + } |
|
| 71 | + return $this->url; |
|
| 72 | 72 | } |
| 73 | 73 | |
| 74 | 74 | /** |
@@ -77,41 +77,41 @@ discard block |
||
| 77 | 77 | * @return array Query parameters in the query string. |
| 78 | 78 | */ |
| 79 | 79 | public function getQueryParams() { |
| 80 | - if ($pos = strpos($this->url, '?')) { |
|
| 81 | - $queryStr = substr($this->url, $pos + 1); |
|
| 82 | - $params = array(); |
|
| 83 | - parse_str($queryStr, $params); |
|
| 84 | - return $params; |
|
| 85 | - } |
|
| 86 | - return array(); |
|
| 80 | + if ($pos = strpos($this->url, '?')) { |
|
| 81 | + $queryStr = substr($this->url, $pos + 1); |
|
| 82 | + $params = array(); |
|
| 83 | + parse_str($queryStr, $params); |
|
| 84 | + return $params; |
|
| 85 | + } |
|
| 86 | + return array(); |
|
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | /** |
| 90 | 90 | * @return string HTTP Response Code. |
| 91 | 91 | */ |
| 92 | 92 | public function getResponseHttpCode() { |
| 93 | - return (int) $this->responseHttpCode; |
|
| 93 | + return (int) $this->responseHttpCode; |
|
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | /** |
| 97 | 97 | * @param int $responseHttpCode HTTP Response Code. |
| 98 | 98 | */ |
| 99 | 99 | public function setResponseHttpCode($responseHttpCode) { |
| 100 | - $this->responseHttpCode = $responseHttpCode; |
|
| 100 | + $this->responseHttpCode = $responseHttpCode; |
|
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | /** |
| 104 | 104 | * @return $responseHeaders (array) HTTP Response Headers. |
| 105 | 105 | */ |
| 106 | 106 | public function getResponseHeaders() { |
| 107 | - return $this->responseHeaders; |
|
| 107 | + return $this->responseHeaders; |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | 110 | /** |
| 111 | 111 | * @return string HTTP Response Body |
| 112 | 112 | */ |
| 113 | 113 | public function getResponseBody() { |
| 114 | - return $this->responseBody; |
|
| 114 | + return $this->responseBody; |
|
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | /** |
@@ -119,12 +119,12 @@ discard block |
||
| 119 | 119 | * to be normalized. |
| 120 | 120 | */ |
| 121 | 121 | public function setResponseHeaders($headers) { |
| 122 | - $headers = Google_Utils::normalize($headers); |
|
| 123 | - if ($this->responseHeaders) { |
|
| 124 | - $headers = array_merge($this->responseHeaders, $headers); |
|
| 125 | - } |
|
| 122 | + $headers = Google_Utils::normalize($headers); |
|
| 123 | + if ($this->responseHeaders) { |
|
| 124 | + $headers = array_merge($this->responseHeaders, $headers); |
|
| 125 | + } |
|
| 126 | 126 | |
| 127 | - $this->responseHeaders = $headers; |
|
| 127 | + $this->responseHeaders = $headers; |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | /** |
@@ -133,16 +133,16 @@ discard block |
||
| 133 | 133 | * false if unavailable. |
| 134 | 134 | */ |
| 135 | 135 | public function getResponseHeader($key) { |
| 136 | - return isset($this->responseHeaders[$key]) |
|
| 137 | - ? $this->responseHeaders[$key] |
|
| 138 | - : false; |
|
| 136 | + return isset($this->responseHeaders[$key]) |
|
| 137 | + ? $this->responseHeaders[$key] |
|
| 138 | + : false; |
|
| 139 | 139 | } |
| 140 | 140 | |
| 141 | 141 | /** |
| 142 | 142 | * @param string $responseBody The HTTP response body. |
| 143 | 143 | */ |
| 144 | 144 | public function setResponseBody($responseBody) { |
| 145 | - $this->responseBody = $responseBody; |
|
| 145 | + $this->responseBody = $responseBody; |
|
| 146 | 146 | } |
| 147 | 147 | |
| 148 | 148 | /** |
@@ -150,21 +150,21 @@ discard block |
||
| 150 | 150 | */ |
| 151 | 151 | |
| 152 | 152 | public function getUrl() { |
| 153 | - return $this->url; |
|
| 153 | + return $this->url; |
|
| 154 | 154 | } |
| 155 | 155 | |
| 156 | 156 | /** |
| 157 | 157 | * @return string $method HTTP Request Method. |
| 158 | 158 | */ |
| 159 | 159 | public function getRequestMethod() { |
| 160 | - return $this->requestMethod; |
|
| 160 | + return $this->requestMethod; |
|
| 161 | 161 | } |
| 162 | 162 | |
| 163 | 163 | /** |
| 164 | 164 | * @return array $headers HTTP Request Headers. |
| 165 | 165 | */ |
| 166 | 166 | public function getRequestHeaders() { |
| 167 | - return $this->requestHeaders; |
|
| 167 | + return $this->requestHeaders; |
|
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | /** |
@@ -173,32 +173,32 @@ discard block |
||
| 173 | 173 | * false if unavailable. |
| 174 | 174 | */ |
| 175 | 175 | public function getRequestHeader($key) { |
| 176 | - return isset($this->requestHeaders[$key]) |
|
| 177 | - ? $this->requestHeaders[$key] |
|
| 178 | - : false; |
|
| 176 | + return isset($this->requestHeaders[$key]) |
|
| 177 | + ? $this->requestHeaders[$key] |
|
| 178 | + : false; |
|
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | /** |
| 182 | 182 | * @return string $postBody HTTP Request Body. |
| 183 | 183 | */ |
| 184 | 184 | public function getPostBody() { |
| 185 | - return $this->postBody; |
|
| 185 | + return $this->postBody; |
|
| 186 | 186 | } |
| 187 | 187 | |
| 188 | 188 | /** |
| 189 | 189 | * @param string $url the url to set |
| 190 | 190 | */ |
| 191 | 191 | public function setUrl($url) { |
| 192 | - if (substr($url, 0, 4) == 'http') { |
|
| 193 | - $this->url = $url; |
|
| 194 | - } else { |
|
| 195 | - // Force the path become relative. |
|
| 196 | - if (substr($url, 0, 1) !== '/') { |
|
| 197 | - $url = '/' . $url; |
|
| 198 | - } |
|
| 199 | - global $apiConfig; |
|
| 200 | - $this->url = $apiConfig['basePath'] . $url; |
|
| 201 | - } |
|
| 192 | + if (substr($url, 0, 4) == 'http') { |
|
| 193 | + $this->url = $url; |
|
| 194 | + } else { |
|
| 195 | + // Force the path become relative. |
|
| 196 | + if (substr($url, 0, 1) !== '/') { |
|
| 197 | + $url = '/' . $url; |
|
| 198 | + } |
|
| 199 | + global $apiConfig; |
|
| 200 | + $this->url = $apiConfig['basePath'] . $url; |
|
| 201 | + } |
|
| 202 | 202 | } |
| 203 | 203 | |
| 204 | 204 | /** |
@@ -207,7 +207,7 @@ discard block |
||
| 207 | 207 | * |
| 208 | 208 | */ |
| 209 | 209 | public function setRequestMethod($method) { |
| 210 | - $this->requestMethod = strtoupper($method); |
|
| 210 | + $this->requestMethod = strtoupper($method); |
|
| 211 | 211 | } |
| 212 | 212 | |
| 213 | 213 | /** |
@@ -215,18 +215,18 @@ discard block |
||
| 215 | 215 | * to be set and normalized. |
| 216 | 216 | */ |
| 217 | 217 | public function setRequestHeaders($headers) { |
| 218 | - $headers = Google_Utils::normalize($headers); |
|
| 219 | - if ($this->requestHeaders) { |
|
| 220 | - $headers = array_merge($this->requestHeaders, $headers); |
|
| 221 | - } |
|
| 222 | - $this->requestHeaders = $headers; |
|
| 218 | + $headers = Google_Utils::normalize($headers); |
|
| 219 | + if ($this->requestHeaders) { |
|
| 220 | + $headers = array_merge($this->requestHeaders, $headers); |
|
| 221 | + } |
|
| 222 | + $this->requestHeaders = $headers; |
|
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 | /** |
| 226 | 226 | * @param string $postBody the postBody to set |
| 227 | 227 | */ |
| 228 | 228 | public function setPostBody($postBody) { |
| 229 | - $this->postBody = $postBody; |
|
| 229 | + $this->postBody = $postBody; |
|
| 230 | 230 | } |
| 231 | 231 | |
| 232 | 232 | /** |
@@ -234,14 +234,14 @@ discard block |
||
| 234 | 234 | * @param string $userAgent The User-Agent. |
| 235 | 235 | */ |
| 236 | 236 | public function setUserAgent($userAgent) { |
| 237 | - $this->userAgent = $userAgent; |
|
| 237 | + $this->userAgent = $userAgent; |
|
| 238 | 238 | } |
| 239 | 239 | |
| 240 | 240 | /** |
| 241 | 241 | * @return string The User-Agent. |
| 242 | 242 | */ |
| 243 | 243 | public function getUserAgent() { |
| 244 | - return $this->userAgent; |
|
| 244 | + return $this->userAgent; |
|
| 245 | 245 | } |
| 246 | 246 | |
| 247 | 247 | /** |
@@ -251,28 +251,28 @@ discard block |
||
| 251 | 251 | * @return string The md5 hash of the request cache key. |
| 252 | 252 | */ |
| 253 | 253 | public function getCacheKey() { |
| 254 | - $key = $this->getUrl(); |
|
| 254 | + $key = $this->getUrl(); |
|
| 255 | 255 | |
| 256 | - if (isset($this->accessKey)) { |
|
| 257 | - $key .= $this->accessKey; |
|
| 258 | - } |
|
| 256 | + if (isset($this->accessKey)) { |
|
| 257 | + $key .= $this->accessKey; |
|
| 258 | + } |
|
| 259 | 259 | |
| 260 | - if (isset($this->requestHeaders['authorization'])) { |
|
| 261 | - $key .= $this->requestHeaders['authorization']; |
|
| 262 | - } |
|
| 260 | + if (isset($this->requestHeaders['authorization'])) { |
|
| 261 | + $key .= $this->requestHeaders['authorization']; |
|
| 262 | + } |
|
| 263 | 263 | |
| 264 | - return md5($key); |
|
| 264 | + return md5($key); |
|
| 265 | 265 | } |
| 266 | 266 | |
| 267 | 267 | public function getParsedCacheControl() { |
| 268 | - $parsed = array(); |
|
| 269 | - $rawCacheControl = $this->getResponseHeader('cache-control'); |
|
| 270 | - if ($rawCacheControl) { |
|
| 271 | - $rawCacheControl = str_replace(', ', '&', $rawCacheControl); |
|
| 272 | - parse_str($rawCacheControl, $parsed); |
|
| 273 | - } |
|
| 274 | - |
|
| 275 | - return $parsed; |
|
| 268 | + $parsed = array(); |
|
| 269 | + $rawCacheControl = $this->getResponseHeader('cache-control'); |
|
| 270 | + if ($rawCacheControl) { |
|
| 271 | + $rawCacheControl = str_replace(', ', '&', $rawCacheControl); |
|
| 272 | + parse_str($rawCacheControl, $parsed); |
|
| 273 | + } |
|
| 274 | + |
|
| 275 | + return $parsed; |
|
| 276 | 276 | } |
| 277 | 277 | |
| 278 | 278 | /** |
@@ -280,25 +280,25 @@ discard block |
||
| 280 | 280 | * @return string A string representation of the HTTP Request. |
| 281 | 281 | */ |
| 282 | 282 | public function toBatchString($id) { |
| 283 | - $str = ''; |
|
| 284 | - foreach($this->batchHeaders as $key => $val) { |
|
| 285 | - $str .= $key . ': ' . $val . "\n"; |
|
| 286 | - } |
|
| 287 | - |
|
| 288 | - $str .= "Content-ID: $id\n"; |
|
| 289 | - $str .= "\n"; |
|
| 290 | - |
|
| 291 | - $path = parse_url($this->getUrl(), PHP_URL_PATH); |
|
| 292 | - $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; |
|
| 293 | - foreach($this->getRequestHeaders() as $key => $val) { |
|
| 294 | - $str .= $key . ': ' . $val . "\n"; |
|
| 295 | - } |
|
| 296 | - |
|
| 297 | - if ($this->getPostBody()) { |
|
| 298 | - $str .= "\n"; |
|
| 299 | - $str .= $this->getPostBody(); |
|
| 300 | - } |
|
| 301 | - |
|
| 302 | - return $str; |
|
| 283 | + $str = ''; |
|
| 284 | + foreach($this->batchHeaders as $key => $val) { |
|
| 285 | + $str .= $key . ': ' . $val . "\n"; |
|
| 286 | + } |
|
| 287 | + |
|
| 288 | + $str .= "Content-ID: $id\n"; |
|
| 289 | + $str .= "\n"; |
|
| 290 | + |
|
| 291 | + $path = parse_url($this->getUrl(), PHP_URL_PATH); |
|
| 292 | + $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; |
|
| 293 | + foreach($this->getRequestHeaders() as $key => $val) { |
|
| 294 | + $str .= $key . ': ' . $val . "\n"; |
|
| 295 | + } |
|
| 296 | + |
|
| 297 | + if ($this->getPostBody()) { |
|
| 298 | + $str .= "\n"; |
|
| 299 | + $str .= $this->getPostBody(); |
|
| 300 | + } |
|
| 301 | + |
|
| 302 | + return $str; |
|
| 303 | 303 | } |
| 304 | 304 | } |
@@ -54,7 +54,7 @@ discard block |
||
| 54 | 54 | if (empty($apiConfig['application_name'])) { |
| 55 | 55 | $this->userAgent = self::USER_AGENT_SUFFIX; |
| 56 | 56 | } else { |
| 57 | - $this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX; |
|
| 57 | + $this->userAgent = $apiConfig['application_name']." ".self::USER_AGENT_SUFFIX; |
|
| 58 | 58 | } |
| 59 | 59 | } |
| 60 | 60 | |
@@ -194,10 +194,10 @@ discard block |
||
| 194 | 194 | } else { |
| 195 | 195 | // Force the path become relative. |
| 196 | 196 | if (substr($url, 0, 1) !== '/') { |
| 197 | - $url = '/' . $url; |
|
| 197 | + $url = '/'.$url; |
|
| 198 | 198 | } |
| 199 | 199 | global $apiConfig; |
| 200 | - $this->url = $apiConfig['basePath'] . $url; |
|
| 200 | + $this->url = $apiConfig['basePath'].$url; |
|
| 201 | 201 | } |
| 202 | 202 | } |
| 203 | 203 | |
@@ -281,17 +281,17 @@ discard block |
||
| 281 | 281 | */ |
| 282 | 282 | public function toBatchString($id) { |
| 283 | 283 | $str = ''; |
| 284 | - foreach($this->batchHeaders as $key => $val) { |
|
| 285 | - $str .= $key . ': ' . $val . "\n"; |
|
| 284 | + foreach ($this->batchHeaders as $key => $val) { |
|
| 285 | + $str .= $key.': '.$val."\n"; |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | $str .= "Content-ID: $id\n"; |
| 289 | 289 | $str .= "\n"; |
| 290 | 290 | |
| 291 | 291 | $path = parse_url($this->getUrl(), PHP_URL_PATH); |
| 292 | - $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; |
|
| 293 | - foreach($this->getRequestHeaders() as $key => $val) { |
|
| 294 | - $str .= $key . ': ' . $val . "\n"; |
|
| 292 | + $str .= $this->getRequestMethod().' '.$path." HTTP/1.1\n"; |
|
| 293 | + foreach ($this->getRequestHeaders() as $key => $val) { |
|
| 294 | + $str .= $key.': '.$val."\n"; |
|
| 295 | 295 | } |
| 296 | 296 | |
| 297 | 297 | if ($this->getPostBody()) { |
@@ -140,6 +140,9 @@ |
||
| 140 | 140 | public function setOptions($options) { |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | + /** |
|
| 144 | + * @return integer |
|
| 145 | + */ |
|
| 143 | 146 | private function getHttpResponseCode($response_headers) { |
| 144 | 147 | $header_count = count($response_headers); |
| 145 | 148 | |
@@ -28,12 +28,12 @@ discard block |
||
| 28 | 28 | private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null); |
| 29 | 29 | |
| 30 | 30 | private static $DEFAULT_HTTP_CONTEXT = array( |
| 31 | - "follow_location" => 0, |
|
| 32 | - "ignore_errors" => 1, |
|
| 31 | + "follow_location" => 0, |
|
| 32 | + "ignore_errors" => 1, |
|
| 33 | 33 | ); |
| 34 | 34 | |
| 35 | 35 | private static $DEFAULT_SSL_CONTEXT = array( |
| 36 | - "verify_peer" => true, |
|
| 36 | + "verify_peer" => true, |
|
| 37 | 37 | ); |
| 38 | 38 | |
| 39 | 39 | /** |
@@ -47,8 +47,8 @@ discard block |
||
| 47 | 47 | * responseHttpCode, responseHeaders and responseBody. |
| 48 | 48 | */ |
| 49 | 49 | public function authenticatedRequest(Google_HttpRequest $request) { |
| 50 | - $request = Google_Client::$auth->sign($request); |
|
| 51 | - return $this->makeRequest($request); |
|
| 50 | + $request = Google_Client::$auth->sign($request); |
|
| 51 | + return $this->makeRequest($request); |
|
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | /** |
@@ -60,77 +60,77 @@ discard block |
||
| 60 | 60 | * @throws Google_IOException on curl or IO error |
| 61 | 61 | */ |
| 62 | 62 | public function makeRequest(Google_HttpRequest $request) { |
| 63 | - // First, check to see if we have a valid cached version. |
|
| 64 | - $cached = $this->getCachedRequest($request); |
|
| 65 | - if ($cached !== false) { |
|
| 66 | - if (!$this->checkMustRevaliadateCachedRequest($cached, $request)) { |
|
| 67 | - return $cached; |
|
| 68 | - } |
|
| 69 | - } |
|
| 70 | - |
|
| 71 | - $default_options = stream_context_get_options(stream_context_get_default()); |
|
| 72 | - |
|
| 73 | - $requestHttpContext = array_key_exists('http', $default_options) ? |
|
| 74 | - $default_options['http'] : array(); |
|
| 75 | - if (array_key_exists($request->getRequestMethod(), |
|
| 76 | - self::$ENTITY_HTTP_METHODS)) { |
|
| 77 | - $request = $this->processEntityRequest($request); |
|
| 78 | - } |
|
| 79 | - |
|
| 80 | - if ($request->getPostBody()) { |
|
| 81 | - $requestHttpContext["content"] = $request->getPostBody(); |
|
| 82 | - } |
|
| 83 | - |
|
| 84 | - $requestHeaders = $request->getRequestHeaders(); |
|
| 85 | - if ($requestHeaders && is_array($requestHeaders)) { |
|
| 86 | - $headers = ""; |
|
| 87 | - foreach($requestHeaders as $k => $v) { |
|
| 88 | - $headers .= "$k: $v\n"; |
|
| 89 | - } |
|
| 90 | - $requestHttpContext["header"] = $headers; |
|
| 91 | - } |
|
| 92 | - |
|
| 93 | - $requestHttpContext["method"] = $request->getRequestMethod(); |
|
| 94 | - $requestHttpContext["user_agent"] = $request->getUserAgent(); |
|
| 95 | - |
|
| 96 | - $requestSslContext = array_key_exists('ssl', $default_options) ? |
|
| 97 | - $default_options['ssl'] : array(); |
|
| 98 | - |
|
| 99 | - if (!array_key_exists("cafile", $requestSslContext)) { |
|
| 100 | - $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; |
|
| 101 | - } |
|
| 102 | - |
|
| 103 | - $options = array("http" => array_merge(self::$DEFAULT_HTTP_CONTEXT, |
|
| 104 | - $requestHttpContext), |
|
| 105 | - "ssl" => array_merge(self::$DEFAULT_SSL_CONTEXT, |
|
| 106 | - $requestSslContext)); |
|
| 107 | - |
|
| 108 | - $context = stream_context_create($options); |
|
| 109 | - |
|
| 110 | - $response_data = file_get_contents($request->getUrl(), |
|
| 111 | - false, |
|
| 112 | - $context); |
|
| 113 | - |
|
| 114 | - if (false === $response_data) { |
|
| 115 | - throw new Google_IOException("HTTP Error: Unable to connect"); |
|
| 116 | - } |
|
| 117 | - |
|
| 118 | - $respHttpCode = $this->getHttpResponseCode($http_response_header); |
|
| 119 | - $responseHeaders = $this->getHttpResponseHeaders($http_response_header); |
|
| 120 | - |
|
| 121 | - if ($respHttpCode == 304 && $cached) { |
|
| 122 | - // If the server responded NOT_MODIFIED, return the cached request. |
|
| 123 | - $this->updateCachedRequest($cached, $responseHeaders); |
|
| 124 | - return $cached; |
|
| 125 | - } |
|
| 126 | - |
|
| 127 | - $request->setResponseHttpCode($respHttpCode); |
|
| 128 | - $request->setResponseHeaders($responseHeaders); |
|
| 129 | - $request->setResponseBody($response_data); |
|
| 130 | - // Store the request in cache (the function checks to see if the request |
|
| 131 | - // can actually be cached) |
|
| 132 | - $this->setCachedRequest($request); |
|
| 133 | - return $request; |
|
| 63 | + // First, check to see if we have a valid cached version. |
|
| 64 | + $cached = $this->getCachedRequest($request); |
|
| 65 | + if ($cached !== false) { |
|
| 66 | + if (!$this->checkMustRevaliadateCachedRequest($cached, $request)) { |
|
| 67 | + return $cached; |
|
| 68 | + } |
|
| 69 | + } |
|
| 70 | + |
|
| 71 | + $default_options = stream_context_get_options(stream_context_get_default()); |
|
| 72 | + |
|
| 73 | + $requestHttpContext = array_key_exists('http', $default_options) ? |
|
| 74 | + $default_options['http'] : array(); |
|
| 75 | + if (array_key_exists($request->getRequestMethod(), |
|
| 76 | + self::$ENTITY_HTTP_METHODS)) { |
|
| 77 | + $request = $this->processEntityRequest($request); |
|
| 78 | + } |
|
| 79 | + |
|
| 80 | + if ($request->getPostBody()) { |
|
| 81 | + $requestHttpContext["content"] = $request->getPostBody(); |
|
| 82 | + } |
|
| 83 | + |
|
| 84 | + $requestHeaders = $request->getRequestHeaders(); |
|
| 85 | + if ($requestHeaders && is_array($requestHeaders)) { |
|
| 86 | + $headers = ""; |
|
| 87 | + foreach($requestHeaders as $k => $v) { |
|
| 88 | + $headers .= "$k: $v\n"; |
|
| 89 | + } |
|
| 90 | + $requestHttpContext["header"] = $headers; |
|
| 91 | + } |
|
| 92 | + |
|
| 93 | + $requestHttpContext["method"] = $request->getRequestMethod(); |
|
| 94 | + $requestHttpContext["user_agent"] = $request->getUserAgent(); |
|
| 95 | + |
|
| 96 | + $requestSslContext = array_key_exists('ssl', $default_options) ? |
|
| 97 | + $default_options['ssl'] : array(); |
|
| 98 | + |
|
| 99 | + if (!array_key_exists("cafile", $requestSslContext)) { |
|
| 100 | + $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; |
|
| 101 | + } |
|
| 102 | + |
|
| 103 | + $options = array("http" => array_merge(self::$DEFAULT_HTTP_CONTEXT, |
|
| 104 | + $requestHttpContext), |
|
| 105 | + "ssl" => array_merge(self::$DEFAULT_SSL_CONTEXT, |
|
| 106 | + $requestSslContext)); |
|
| 107 | + |
|
| 108 | + $context = stream_context_create($options); |
|
| 109 | + |
|
| 110 | + $response_data = file_get_contents($request->getUrl(), |
|
| 111 | + false, |
|
| 112 | + $context); |
|
| 113 | + |
|
| 114 | + if (false === $response_data) { |
|
| 115 | + throw new Google_IOException("HTTP Error: Unable to connect"); |
|
| 116 | + } |
|
| 117 | + |
|
| 118 | + $respHttpCode = $this->getHttpResponseCode($http_response_header); |
|
| 119 | + $responseHeaders = $this->getHttpResponseHeaders($http_response_header); |
|
| 120 | + |
|
| 121 | + if ($respHttpCode == 304 && $cached) { |
|
| 122 | + // If the server responded NOT_MODIFIED, return the cached request. |
|
| 123 | + $this->updateCachedRequest($cached, $responseHeaders); |
|
| 124 | + return $cached; |
|
| 125 | + } |
|
| 126 | + |
|
| 127 | + $request->setResponseHttpCode($respHttpCode); |
|
| 128 | + $request->setResponseHeaders($responseHeaders); |
|
| 129 | + $request->setResponseBody($response_data); |
|
| 130 | + // Store the request in cache (the function checks to see if the request |
|
| 131 | + // can actually be cached) |
|
| 132 | + $this->setCachedRequest($request); |
|
| 133 | + return $request; |
|
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | /** |
@@ -141,30 +141,30 @@ discard block |
||
| 141 | 141 | } |
| 142 | 142 | |
| 143 | 143 | private function getHttpResponseCode($response_headers) { |
| 144 | - $header_count = count($response_headers); |
|
| 145 | - |
|
| 146 | - for ($i = 0; $i < $header_count; $i++) { |
|
| 147 | - $header = $response_headers[$i]; |
|
| 148 | - if (strncasecmp("HTTP", $header, strlen("HTTP")) == 0) { |
|
| 149 | - $response = explode(' ', $header); |
|
| 150 | - return $response[1]; |
|
| 151 | - } |
|
| 152 | - } |
|
| 153 | - return 'UNKNOWN'; |
|
| 144 | + $header_count = count($response_headers); |
|
| 145 | + |
|
| 146 | + for ($i = 0; $i < $header_count; $i++) { |
|
| 147 | + $header = $response_headers[$i]; |
|
| 148 | + if (strncasecmp("HTTP", $header, strlen("HTTP")) == 0) { |
|
| 149 | + $response = explode(' ', $header); |
|
| 150 | + return $response[1]; |
|
| 151 | + } |
|
| 152 | + } |
|
| 153 | + return 'UNKNOWN'; |
|
| 154 | 154 | } |
| 155 | 155 | |
| 156 | 156 | private function getHttpResponseHeaders($response_headers) { |
| 157 | - $header_count = count($response_headers); |
|
| 158 | - $headers = array(); |
|
| 159 | - |
|
| 160 | - for ($i = 0; $i < $header_count; $i++) { |
|
| 161 | - $header = $response_headers[$i]; |
|
| 162 | - $header_parts = explode(':', $header); |
|
| 163 | - if (count($header_parts) == 2) { |
|
| 164 | - $headers[$header_parts[0]] = $header_parts[1]; |
|
| 165 | - } |
|
| 166 | - } |
|
| 167 | - |
|
| 168 | - return $headers; |
|
| 157 | + $header_count = count($response_headers); |
|
| 158 | + $headers = array(); |
|
| 159 | + |
|
| 160 | + for ($i = 0; $i < $header_count; $i++) { |
|
| 161 | + $header = $response_headers[$i]; |
|
| 162 | + $header_parts = explode(':', $header); |
|
| 163 | + if (count($header_parts) == 2) { |
|
| 164 | + $headers[$header_parts[0]] = $header_parts[1]; |
|
| 165 | + } |
|
| 166 | + } |
|
| 167 | + |
|
| 168 | + return $headers; |
|
| 169 | 169 | } |
| 170 | 170 | } |
@@ -84,7 +84,7 @@ discard block |
||
| 84 | 84 | $requestHeaders = $request->getRequestHeaders(); |
| 85 | 85 | if ($requestHeaders && is_array($requestHeaders)) { |
| 86 | 86 | $headers = ""; |
| 87 | - foreach($requestHeaders as $k => $v) { |
|
| 87 | + foreach ($requestHeaders as $k => $v) { |
|
| 88 | 88 | $headers .= "$k: $v\n"; |
| 89 | 89 | } |
| 90 | 90 | $requestHttpContext["header"] = $headers; |
@@ -97,7 +97,7 @@ discard block |
||
| 97 | 97 | $default_options['ssl'] : array(); |
| 98 | 98 | |
| 99 | 99 | if (!array_key_exists("cafile", $requestSslContext)) { |
| 100 | - $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; |
|
| 100 | + $requestSslContext["cafile"] = dirname(__FILE__).'/cacerts.pem'; |
|
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | $options = array("http" => array_merge(self::$DEFAULT_HTTP_CONTEXT, |