2013-09-13 16:21:03 +03:00
<!DOCTYPE html>
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< meta name = "generator" content = "ApiGen 2.8.0" / >
< meta name = "robots" content = "noindex" / >
< title > File google.php< / title >
< script type = "text/javascript" src = "resources/combined.js?955602237" > < / script >
2013-10-19 13:34:32 +03:00
< script type = "text/javascript" src = "elementlist.js?679583101" > < / script >
2013-09-13 16:21:03 +03:00
< link rel = "stylesheet" type = "text/css" media = "all" href = "resources/style.css?3505392360" / >
< / head >
< body >
< div id = "left" >
< div id = "menu" >
< a href = "index.html" title = "Overview" > < span > Overview< / span > < / a >
< div id = "groups" >
< h3 > Namespaces< / h3 >
< ul >
< li class = "active" > < a href = "namespace-None.html" > None< / a >
< / li >
< li > < a href = "namespace-PHP.html" > PHP< / a >
< / li >
< / ul >
< / div >
< hr / >
< div id = "elements" >
< h3 > Classes< / h3 >
< ul >
< li > < a href = "class-Admins_Model.html" > Admins_Model< / a > < / li >
< li > < a href = "class-Appointments.html" > Appointments< / a > < / li >
< li > < a href = "class-Appointments_Model.html" > Appointments_Model< / a > < / li >
< li > < a href = "class-Backend.html" > Backend< / a > < / li >
< li > < a href = "class-Backend_api.html" > Backend_api< / a > < / li >
< li > < a href = "class-Customers_Model.html" > Customers_Model< / a > < / li >
< li > < a href = "class-Errors.html" > Errors< / a > < / li >
< li class = "active" > < a href = "class-Google.html" > Google< / a > < / li >
< li > < a href = "class-Providers_Model.html" > Providers_Model< / a > < / li >
< li > < a href = "class-Roles_Model.html" > Roles_Model< / a > < / li >
< li > < a href = "class-Secretaries_Model.html" > Secretaries_Model< / a > < / li >
< li > < a href = "class-Services_Model.html" > Services_Model< / a > < / li >
< li > < a href = "class-Settings_Model.html" > Settings_Model< / a > < / li >
< li > < a href = "class-Test.html" > Test< / a > < / li >
2013-10-19 13:34:32 +03:00
< li > < a href = "class-User.html" > User< / a > < / li >
< li > < a href = "class-User_Model.html" > User_Model< / a > < / li >
2013-09-13 16:21:03 +03:00
< / ul >
< / div >
< / div >
< / div >
< div id = "splitter" > < / div >
< div id = "right" >
< div id = "rightInner" >
< form id = "search" >
< input type = "hidden" name = "cx" value = "" / >
< input type = "hidden" name = "ie" value = "UTF-8" / >
< input type = "text" name = "q" class = "text" / >
< input type = "submit" value = "Search" / >
< / form >
< div id = "navigation" >
< ul >
< li >
< a href = "index.html" title = "Overview" > < span > Overview< / span > < / a >
< / li >
< li >
< a href = "namespace-None.html" title = "Summary of None" > < span > Namespace< / span > < / a >
< / li >
< li >
< a href = "class-Google.html" title = "Summary of Google" > < span > Class< / span > < / a >
< / li >
< / ul >
< ul >
< li >
< a href = "tree.html" title = "Tree view of classes, interfaces, traits and exceptions" > < span > Tree< / span > < / a >
< / li >
< / ul >
< ul >
< / ul >
< / div >
< pre > < code > < span id = "1" class = "l" > < a class = "l" href = "#1" > 1: < / a > < span class = "xlang" > < ?php< / span > < span class = "php-keyword1" > if< / span > ( ! < span class = "php-keyword2" > defined< / span > (< span class = "php-quote" > 'BASEPATH'< / span > )) < span class = "php-keyword1" > exit< / span > (< span class = "php-quote" > 'No direct script access allowed'< / span > );
< / span > < span id = "2" class = "l" > < a class = "l" href = "#2" > 2: < / a >
< / span > < span id = "3" class = "l" > < a class = "l" href = "#3" > 3: < / a > < span class = "php-keyword1" > class< / span > < a id = "Google" href = "#Google" > Google< / a > < span class = "php-keyword1" > extends< / span > CI_Controller {
< / span > < span id = "4" class = "l" > < a class = "l" href = "#4" > 4: < / a > < span class = "php-comment" > /**
< / span > < / span > < span id = "5" class = "l" > < a class = "l" href = "#5" > 5: < / a > < span class = "php-comment" > * Authorize Google Calendar API usage for a specific provider.
< / span > < / span > < span id = "6" class = "l" > < a class = "l" href = "#6" > 6: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "7" class = "l" > < a class = "l" href = "#7" > 7: < / a > < span class = "php-comment" > * Since it is required to follow the web application flow, in order to retrieve
< / span > < / span > < span id = "8" class = "l" > < a class = "l" href = "#8" > 8: < / a > < span class = "php-comment" > * a refresh token from the Google API service, this method is going to authorize
< / span > < / span > < span id = "9" class = "l" > < a class = "l" href = "#9" > 9: < / a > < span class = "php-comment" > * the given provider.
< / span > < / span > < span id = "10" class = "l" > < a class = "l" href = "#10" > 10: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "11" class = "l" > < a class = "l" href = "#11" > 11: < / a > < span class = "php-comment" > * @param int $provider_id The provider id, for whom the sync authorization is
< / span > < / span > < span id = "12" class = "l" > < a class = "l" href = "#12" > 12: < / a > < span class = "php-comment" > * made.
< / span > < / span > < span id = "13" class = "l" > < a class = "l" href = "#13" > 13: < / a > < span class = "php-comment" > */< / span >
< / span > < span id = "14" class = "l" > < a class = "l" href = "#14" > 14: < / a > < span class = "php-keyword1" > public< / span > < span class = "php-keyword1" > function< / span > < a id = "_oauth" href = "#_oauth" > oauth< / a > (< span class = "php-var" > $provider_id< / span > ) {
< / span > < span id = "15" class = "l" > < a class = "l" href = "#15" > 15: < / a > < span class = "php-comment" > // Store the provider id for use on the callback function.< / span >
< / span > < span id = "16" class = "l" > < a class = "l" href = "#16" > 16: < / a > < span class = "php-keyword1" > if< / span > (!< span class = "php-keyword1" > isset< / span > (< span class = "php-var" > $_SESSION< / span > )) {
< / span > < span id = "17" class = "l" > < a class = "l" href = "#17" > 17: < / a > @< span class = "php-keyword2" > session_start< / span > ();
< / span > < span id = "18" class = "l" > < a class = "l" href = "#18" > 18: < / a > }
< / span > < span id = "19" class = "l" > < a class = "l" href = "#19" > 19: < / a > < span class = "php-var" > $_SESSION< / span > [< span class = "php-quote" > 'oauth_provider_id'< / span > ] = < span class = "php-var" > $provider_id< / span > ;
< / span > < span id = "20" class = "l" > < a class = "l" href = "#20" > 20: < / a >
< / span > < span id = "21" class = "l" > < a class = "l" href = "#21" > 21: < / a > < span class = "php-comment" > // Redirect browser to google user content page.< / span >
< / span > < span id = "22" class = "l" > < a class = "l" href = "#22" > 22: < / a > < span class = "php-var" > $this< / span > -> load-> library(< span class = "php-quote" > 'Google_Sync'< / span > );
< / span > < span id = "23" class = "l" > < a class = "l" href = "#23" > 23: < / a > < span class = "php-keyword2" > header< / span > (< span class = "php-quote" > 'Location: '< / span > . < span class = "php-var" > $this< / span > -> google_sync-> get_auth_url());
< / span > < span id = "24" class = "l" > < a class = "l" href = "#24" > 24: < / a > }
< / span > < span id = "25" class = "l" > < a class = "l" href = "#25" > 25: < / a >
< / span > < span id = "26" class = "l" > < a class = "l" href = "#26" > 26: < / a > < span class = "php-comment" > /**
< / span > < / span > < span id = "27" class = "l" > < a class = "l" href = "#27" > 27: < / a > < span class = "php-comment" > * Callback method for the Google Calendar API authorization process.
< / span > < / span > < span id = "28" class = "l" > < a class = "l" href = "#28" > 28: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "29" class = "l" > < a class = "l" href = "#29" > 29: < / a > < span class = "php-comment" > * Once the user grants consent with his Google Calendar data usage, the Google
< / span > < / span > < span id = "30" class = "l" > < a class = "l" href = "#30" > 30: < / a > < span class = "php-comment" > * OAuth service will redirect him back in this page. Here we are going to store
< / span > < / span > < span id = "31" class = "l" > < a class = "l" href = "#31" > 31: < / a > < span class = "php-comment" > * the refresh token, because this is what will be used to generate access tokens
< / span > < / span > < span id = "32" class = "l" > < a class = "l" href = "#32" > 32: < / a > < span class = "php-comment" > * in the future.
< / span > < / span > < span id = "33" class = "l" > < a class = "l" href = "#33" > 33: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "34" class = "l" > < a class = "l" href = "#34" > 34: < / a > < span class = "php-comment" > * < strong> IMPORTANT!< /strong> Because it is necessary to authorize the application
< / span > < / span > < span id = "35" class = "l" > < a class = "l" href = "#35" > 35: < / a > < span class = "php-comment" > * using the web server flow (see official documentation of OAuth), every
< / span > < / span > < span id = "36" class = "l" > < a class = "l" href = "#36" > 36: < / a > < span class = "php-comment" > * Easy!Appointments installation should use its own calendar api key. So in every
< / span > < / span > < span id = "37" class = "l" > < a class = "l" href = "#37" > 37: < / a > < span class = "php-comment" > * api console account, the " http://path-to-e!a/google/oauth_callback" should be
< / span > < / span > < span id = "38" class = "l" > < a class = "l" href = "#38" > 38: < / a > < span class = "php-comment" > * included in an allowed redirect url.
< / span > < / span > < span id = "39" class = "l" > < a class = "l" href = "#39" > 39: < / a > < span class = "php-comment" > */< / span >
< / span > < span id = "40" class = "l" > < a class = "l" href = "#40" > 40: < / a > < span class = "php-keyword1" > public< / span > < span class = "php-keyword1" > function< / span > < a id = "_oauth_callback" href = "#_oauth_callback" > oauth_callback< / a > () {
< / span > < span id = "41" class = "l" > < a class = "l" href = "#41" > 41: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-keyword1" > isset< / span > (< span class = "php-var" > $_GET< / span > [< span class = "php-quote" > 'code'< / span > ])) {
< / span > < span id = "42" class = "l" > < a class = "l" href = "#42" > 42: < / a > < span class = "php-var" > $this< / span > -> load-> library(< span class = "php-quote" > 'Google_Sync'< / span > );
< / span > < span id = "43" class = "l" > < a class = "l" href = "#43" > 43: < / a > < span class = "php-var" > $token< / span > = < span class = "php-var" > $this< / span > -> google_sync-> authenticate(< span class = "php-var" > $_GET< / span > [< span class = "php-quote" > 'code'< / span > ]);
< / span > < span id = "44" class = "l" > < a class = "l" href = "#44" > 44: < / a >
< / span > < span id = "45" class = "l" > < a class = "l" href = "#45" > 45: < / a > < span class = "php-comment" > // Store the token into the database for future reference.< / span >
< / span > < span id = "46" class = "l" > < a class = "l" href = "#46" > 46: < / a > < span class = "php-keyword1" > if< / span > (!< span class = "php-keyword1" > isset< / span > (< span class = "php-var" > $_SESSION< / span > )) {
< / span > < span id = "47" class = "l" > < a class = "l" href = "#47" > 47: < / a > @< span class = "php-keyword2" > session_start< / span > ();
< / span > < span id = "48" class = "l" > < a class = "l" href = "#48" > 48: < / a > }
< / span > < span id = "49" class = "l" > < a class = "l" href = "#49" > 49: < / a >
< / span > < span id = "50" class = "l" > < a class = "l" href = "#50" > 50: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-keyword1" > isset< / span > (< span class = "php-var" > $_SESSION< / span > [< span class = "php-quote" > 'oauth_provider_id'< / span > ])) {
< / span > < span id = "51" class = "l" > < a class = "l" href = "#51" > 51: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'providers_model'< / span > );
< / span > < span id = "52" class = "l" > < a class = "l" href = "#52" > 52: < / a >
< / span > < span id = "53" class = "l" > < a class = "l" href = "#53" > 53: < / a > < span class = "php-var" > $this< / span > -> providers_model-> set_setting(< span class = "php-quote" > 'google_sync'< / span > , < span class = "php-keyword1" > TRUE< / span > ,
< / span > < span id = "54" class = "l" > < a class = "l" href = "#54" > 54: < / a > < span class = "php-var" > $_SESSION< / span > [< span class = "php-quote" > 'oauth_provider_id'< / span > ]);
< / span > < span id = "55" class = "l" > < a class = "l" href = "#55" > 55: < / a > < span class = "php-var" > $this< / span > -> providers_model-> set_setting(< span class = "php-quote" > 'google_token'< / span > , < span class = "php-var" > $token< / span > ,
< / span > < span id = "56" class = "l" > < a class = "l" href = "#56" > 56: < / a > < span class = "php-var" > $_SESSION< / span > [< span class = "php-quote" > 'oauth_provider_id'< / span > ]);
< / span > < span id = "57" class = "l" > < a class = "l" href = "#57" > 57: < / a >
< / span > < span id = "58" class = "l" > < a class = "l" href = "#58" > 58: < / a > } < span class = "php-keyword1" > else< / span > {
< / span > < span id = "59" class = "l" > < a class = "l" href = "#59" > 59: < / a > < span class = "php-keyword1" > echo< / span > < span class = "php-quote" > '< h1> Sync provider id not specified!< /h1> '< / span > ;
< / span > < span id = "60" class = "l" > < a class = "l" href = "#60" > 60: < / a > }
< / span > < span id = "61" class = "l" > < a class = "l" href = "#61" > 61: < / a >
< / span > < span id = "62" class = "l" > < a class = "l" href = "#62" > 62: < / a > } < span class = "php-keyword1" > else< / span > {
< / span > < span id = "63" class = "l" > < a class = "l" href = "#63" > 63: < / a > < span class = "php-keyword1" > echo< / span > < span class = "php-quote" > '< h1> Authorization Failed!< /h1> '< / span > ;
< / span > < span id = "64" class = "l" > < a class = "l" href = "#64" > 64: < / a > }
< / span > < span id = "65" class = "l" > < a class = "l" href = "#65" > 65: < / a > }
< / span > < span id = "66" class = "l" > < a class = "l" href = "#66" > 66: < / a >
< / span > < span id = "67" class = "l" > < a class = "l" href = "#67" > 67: < / a > < span class = "php-comment" > /**
< / span > < / span > < span id = "68" class = "l" > < a class = "l" href = "#68" > 68: < / a > < span class = "php-comment" > * Complete synchronization of appointments between Google Calendar and Easy!Appointments.
< / span > < / span > < span id = "69" class = "l" > < a class = "l" href = "#69" > 69: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "70" class = "l" > < a class = "l" href = "#70" > 70: < / a > < span class = "php-comment" > * This method will completely sync the appointments of a provider with his Google Calendar
< / span > < / span > < span id = "71" class = "l" > < a class = "l" href = "#71" > 71: < / a > < span class = "php-comment" > * account. The sync period needs to be relatively small, because a lot of API calls might
< / span > < / span > < span id = "72" class = "l" > < a class = "l" href = "#72" > 72: < / a > < span class = "php-comment" > * be necessary and this will lead to consuming the Google limit for the Calendar API usage.
< / span > < / span > < span id = "73" class = "l" > < a class = "l" href = "#73" > 73: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "74" class = "l" > < a class = "l" href = "#74" > 74: < / a > < span class = "php-comment" > * @param numeric $provider_id Provider record to be synced.
< / span > < / span > < span id = "75" class = "l" > < a class = "l" href = "#75" > 75: < / a > < span class = "php-comment" > *
< / span > < / span > < span id = "76" class = "l" > < a class = "l" href = "#76" > 76: < / a > < span class = "php-comment" > * @task This method must be executed only by the system and noone else outside.
2013-10-19 13:34:32 +03:00
< / span > < / span > < span id = "77" class = "l" > < a class = "l" href = "#77" > 77: < / a > < span class = "php-comment" > * It is a big security issue. So whenever this method is used we should check for
< / span > < / span > < span id = "78" class = "l" > < a class = "l" href = "#78" > 78: < / a > < span class = "php-comment" > * user credentials.
< / span > < / span > < span id = "79" class = "l" > < a class = "l" href = "#79" > 79: < / a > < span class = "php-comment" > */< / span >
< / span > < span id = "80" class = "l" > < a class = "l" href = "#80" > 80: < / a > < span class = "php-keyword1" > public< / span > < span class = "php-keyword1" > function< / span > < a id = "_sync" href = "#_sync" > sync< / a > (< span class = "php-var" > $provider_id< / span > = < span class = "php-keyword1" > NULL< / span > ) {
< / span > < span id = "81" class = "l" > < a class = "l" href = "#81" > 81: < / a > < span class = "php-keyword1" > try< / span > {
< / span > < span id = "82" class = "l" > < a class = "l" href = "#82" > 82: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-var" > $provider_id< / span > === < span class = "php-keyword1" > NULL< / span > ) {
< / span > < span id = "83" class = "l" > < a class = "l" href = "#83" > 83: < / a > < span class = "php-keyword1" > throw< / span > < span class = "php-keyword1" > new< / span > Exception(< span class = "php-quote" > 'Provider id not specified.'< / span > );
< / span > < span id = "84" class = "l" > < a class = "l" href = "#84" > 84: < / a > }
< / span > < span id = "85" class = "l" > < a class = "l" href = "#85" > 85: < / a >
< / span > < span id = "86" class = "l" > < a class = "l" href = "#86" > 86: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'appointments_model'< / span > );
< / span > < span id = "87" class = "l" > < a class = "l" href = "#87" > 87: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'providers_model'< / span > );
< / span > < span id = "88" class = "l" > < a class = "l" href = "#88" > 88: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'services_model'< / span > );
< / span > < span id = "89" class = "l" > < a class = "l" href = "#89" > 89: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'customers_model'< / span > );
< / span > < span id = "90" class = "l" > < a class = "l" href = "#90" > 90: < / a > < span class = "php-var" > $this< / span > -> load-> model(< span class = "php-quote" > 'settings_model'< / span > );
< / span > < span id = "91" class = "l" > < a class = "l" href = "#91" > 91: < / a >
< / span > < span id = "92" class = "l" > < a class = "l" href = "#92" > 92: < / a > < span class = "php-var" > $provider< / span > = < span class = "php-var" > $this< / span > -> providers_model-> get_row(< span class = "php-var" > $provider_id< / span > );
< / span > < span id = "93" class = "l" > < a class = "l" href = "#93" > 93: < / a >
< / span > < span id = "94" class = "l" > < a class = "l" href = "#94" > 94: < / a > < span class = "php-comment" > // Check whether the selected provider has google sync enabled.< / span >
< / span > < span id = "95" class = "l" > < a class = "l" href = "#95" > 95: < / a > < span class = "php-var" > $google_sync< / span > = < span class = "php-var" > $this< / span > -> providers_model-> get_setting(< span class = "php-quote" > 'google_sync'< / span > , < span class = "php-var" > $provider< / span > [< span class = "php-quote" > 'id'< / span > ]);
< / span > < span id = "96" class = "l" > < a class = "l" href = "#96" > 96: < / a > < span class = "php-keyword1" > if< / span > (!< span class = "php-var" > $google_sync< / span > ) {
< / span > < span id = "97" class = "l" > < a class = "l" href = "#97" > 97: < / a > < span class = "php-keyword1" > throw< / span > < span class = "php-keyword1" > new< / span > Exception(< span class = "php-quote" > 'The selected provider has not the google synchronization '< / span >
< / span > < span id = "98" class = "l" > < a class = "l" href = "#98" > 98: < / a > . < span class = "php-quote" > 'setting enabled.'< / span > );
< / span > < span id = "99" class = "l" > < a class = "l" href = "#99" > 99: < / a > }
< / span > < span id = "100" class = "l" > < a class = "l" href = "#100" > 100: < / a >
< / span > < span id = "101" class = "l" > < a class = "l" href = "#101" > 101: < / a > < span class = "php-var" > $google_token< / span > = < span class = "php-keyword2" > json_decode< / span > (< span class = "php-var" > $this< / span > -> providers_model-> get_setting(< span class = "php-quote" > 'google_token'< / span > , < span class = "php-var" > $provider< / span > [< span class = "php-quote" > 'id'< / span > ]));
< / span > < span id = "102" class = "l" > < a class = "l" href = "#102" > 102: < / a > < span class = "php-var" > $this< / span > -> load-> library(< span class = "php-quote" > 'google_sync'< / span > );
< / span > < span id = "103" class = "l" > < a class = "l" href = "#103" > 103: < / a > < span class = "php-var" > $this< / span > -> google_sync-> refresh_token(< span class = "php-var" > $google_token< / span > -> refresh_token);
< / span > < span id = "104" class = "l" > < a class = "l" href = "#104" > 104: < / a >
< / span > < span id = "105" class = "l" > < a class = "l" href = "#105" > 105: < / a > < span class = "php-comment" > // Fetch provider's appointments that belong to the sync time period. < / span >
< / span > < span id = "106" class = "l" > < a class = "l" href = "#106" > 106: < / a > < span class = "php-var" > $sync_past_days< / span > = < span class = "php-var" > $this< / span > -> providers_model-> get_setting(< span class = "php-quote" > 'sync_past_days'< / span > , < span class = "php-var" > $provider< / span > [< span class = "php-quote" > 'id'< / span > ]);
< / span > < span id = "107" class = "l" > < a class = "l" href = "#107" > 107: < / a > < span class = "php-var" > $sync_future_days< / span > = < span class = "php-var" > $this< / span > -> providers_model-> get_setting(< span class = "php-quote" > 'sync_future_days'< / span > , < span class = "php-var" > $provider< / span > [< span class = "php-quote" > 'id'< / span > ]);
< / span > < span id = "108" class = "l" > < a class = "l" href = "#108" > 108: < / a > < span class = "php-var" > $start< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-quote" > '-'< / span > . < span class = "php-var" > $sync_past_days< / span > . < span class = "php-quote" > ' days'< / span > , < span class = "php-keyword2" > strtotime< / span > (< span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d'< / span > )));
< / span > < span id = "109" class = "l" > < a class = "l" href = "#109" > 109: < / a > < span class = "php-var" > $end< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-quote" > '+'< / span > . < span class = "php-var" > $sync_future_days< / span > . < span class = "php-quote" > ' days'< / span > , < span class = "php-keyword2" > strtotime< / span > (< span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d'< / span > )));
< / span > < span id = "110" class = "l" > < a class = "l" href = "#110" > 110: < / a >
< / span > < span id = "111" class = "l" > < a class = "l" href = "#111" > 111: < / a > < span class = "php-var" > $where_clause< / span > = < span class = "php-keyword1" > array< / span > (
< / span > < span id = "112" class = "l" > < a class = "l" href = "#112" > 112: < / a > < span class = "php-quote" > 'start_datetime > ='< / span > => < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-var" > $start< / span > ),
< / span > < span id = "113" class = "l" > < a class = "l" href = "#113" > 113: < / a > < span class = "php-quote" > 'end_datetime < ='< / span > => < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-var" > $end< / span > ),
< / span > < span id = "114" class = "l" > < a class = "l" href = "#114" > 114: < / a > < span class = "php-quote" > 'id_users_provider'< / span > => < span class = "php-var" > $provider< / span > [< span class = "php-quote" > 'id'< / span > ],
< / span > < span id = "115" class = "l" > < a class = "l" href = "#115" > 115: < / a > < span class = "php-quote" > 'is_unavailable'< / span > => < span class = "php-keyword1" > FALSE< / span >
< / span > < span id = "116" class = "l" > < a class = "l" href = "#116" > 116: < / a > );
< / span > < span id = "117" class = "l" > < a class = "l" href = "#117" > 117: < / a >
< / span > < span id = "118" class = "l" > < a class = "l" href = "#118" > 118: < / a > < span class = "php-var" > $appointments< / span > = < span class = "php-var" > $this< / span > -> appointments_model-> get_batch(< span class = "php-var" > $where_clause< / span > );
< / span > < span id = "119" class = "l" > < a class = "l" href = "#119" > 119: < / a >
< / span > < span id = "120" class = "l" > < a class = "l" href = "#120" > 120: < / a > < span class = "php-var" > $company_settings< / span > = < span class = "php-keyword1" > array< / span > (
< / span > < span id = "121" class = "l" > < a class = "l" href = "#121" > 121: < / a > < span class = "php-quote" > 'company_name'< / span > => < span class = "php-var" > $this< / span > -> settings_model-> get_setting(< span class = "php-quote" > 'company_name'< / span > ),
< / span > < span id = "122" class = "l" > < a class = "l" href = "#122" > 122: < / a > < span class = "php-quote" > 'company_link'< / span > => < span class = "php-var" > $this< / span > -> settings_model-> get_setting(< span class = "php-quote" > 'company_link'< / span > ),
< / span > < span id = "123" class = "l" > < a class = "l" href = "#123" > 123: < / a > < span class = "php-quote" > 'company_email'< / span > => < span class = "php-var" > $this< / span > -> settings_model-> get_setting(< span class = "php-quote" > 'company_email'< / span > )
< / span > < span id = "124" class = "l" > < a class = "l" href = "#124" > 124: < / a > );
< / span > < span id = "125" class = "l" > < a class = "l" href = "#125" > 125: < / a >
< / span > < span id = "126" class = "l" > < a class = "l" href = "#126" > 126: < / a > < span class = "php-comment" > // Sync each appointment with Google Calendar by following the project's sync< / span >
< / span > < span id = "127" class = "l" > < a class = "l" href = "#127" > 127: < / a > < span class = "php-comment" > // protocol (see documentation).< / span >
< / span > < span id = "128" class = "l" > < a class = "l" href = "#128" > 128: < / a > < span class = "php-keyword1" > foreach< / span > (< span class = "php-var" > $appointments< / span > < span class = "php-keyword1" > as< / span > < span class = "php-var" > $appointment< / span > ) {
< / span > < span id = "129" class = "l" > < a class = "l" href = "#129" > 129: < / a > < span class = "php-var" > $service< / span > = < span class = "php-var" > $this< / span > -> services_model-> get_row(< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_services'< / span > ]);
< / span > < span id = "130" class = "l" > < a class = "l" href = "#130" > 130: < / a > < span class = "php-var" > $customer< / span > = < span class = "php-var" > $this< / span > -> customers_model-> get_row(< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_users_customer'< / span > ]);
< / span > < span id = "131" class = "l" > < a class = "l" href = "#131" > 131: < / a >
< / span > < span id = "132" class = "l" > < a class = "l" href = "#132" > 132: < / a > < span class = "php-comment" > // If current appointment not synced yet, add to gcal.< / span >
< / span > < span id = "133" class = "l" > < a class = "l" href = "#133" > 133: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_google_calendar'< / span > ] == < span class = "php-keyword1" > NULL< / span > ) {
< / span > < span id = "134" class = "l" > < a class = "l" href = "#134" > 134: < / a > < span class = "php-var" > $google_event< / span > = < span class = "php-var" > $this< / span > -> google_sync-> add_appointment(< span class = "php-var" > $appointment< / span > , < span class = "php-var" > $provider< / span > ,
< / span > < span id = "135" class = "l" > < a class = "l" href = "#135" > 135: < / a > < span class = "php-var" > $service< / span > , < span class = "php-var" > $customer< / span > , < span class = "php-var" > $company_settings< / span > );
< / span > < span id = "136" class = "l" > < a class = "l" href = "#136" > 136: < / a > < span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_google_calendar'< / span > ] = < span class = "php-var" > $google_event< / span > -> id;
< / span > < span id = "137" class = "l" > < a class = "l" href = "#137" > 137: < / a > < span class = "php-var" > $this< / span > -> appointments_model-> add(< span class = "php-var" > $appointment< / span > ); < span class = "php-comment" > // Save gcal id< / span >
< / span > < span id = "138" class = "l" > < a class = "l" href = "#138" > 138: < / a > } < span class = "php-keyword1" > else< / span > {
< / span > < span id = "139" class = "l" > < a class = "l" href = "#139" > 139: < / a > < span class = "php-comment" > // Appointment is synced with google calendar.< / span >
< / span > < span id = "140" class = "l" > < a class = "l" href = "#140" > 140: < / a > < span class = "php-keyword1" > try< / span > {
< / span > < span id = "141" class = "l" > < a class = "l" href = "#141" > 141: < / a > < span class = "php-var" > $google_event< / span > = < span class = "php-var" > $this< / span > -> google_sync-> get_event(< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_google_calendar'< / span > ]);
< / span > < span id = "142" class = "l" > < a class = "l" href = "#142" > 142: < / a >
< / span > < span id = "143" class = "l" > < a class = "l" href = "#143" > 143: < / a > < span class = "php-comment" > // If gcal event is different from e!a appointment then update e!a record.< / span >
< / span > < span id = "144" class = "l" > < a class = "l" href = "#144" > 144: < / a > < span class = "php-var" > $is_different< / span > = < span class = "php-keyword1" > FALSE< / span > ;
< / span > < span id = "145" class = "l" > < a class = "l" href = "#145" > 145: < / a > < span class = "php-var" > $appt_start< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'start_datetime'< / span > ]);
< / span > < span id = "146" class = "l" > < a class = "l" href = "#146" > 146: < / a > < span class = "php-var" > $appt_end< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'end_datetime'< / span > ]);
< / span > < span id = "147" class = "l" > < a class = "l" href = "#147" > 147: < / a > < span class = "php-var" > $event_start< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $google_event< / span > -> getStart()-> getDateTime());
< / span > < span id = "148" class = "l" > < a class = "l" href = "#148" > 148: < / a > < span class = "php-var" > $event_end< / span > = < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $google_event< / span > -> getEnd()-> getDateTime());
< / span > < span id = "149" class = "l" > < a class = "l" href = "#149" > 149: < / a >
< / span > < span id = "150" class = "l" > < a class = "l" href = "#150" > 150: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-var" > $appt_start< / span > != < span class = "php-var" > $event_start< / span > || < span class = "php-var" > $appt_end< / span > != < span class = "php-var" > $event_end< / span > ) {
< / span > < span id = "151" class = "l" > < a class = "l" href = "#151" > 151: < / a > < span class = "php-var" > $is_different< / span > = < span class = "php-keyword1" > TRUE< / span > ;
< / span > < span id = "152" class = "l" > < a class = "l" href = "#152" > 152: < / a > }
< / span > < span id = "153" class = "l" > < a class = "l" href = "#153" > 153: < / a >
< / span > < span id = "154" class = "l" > < a class = "l" href = "#154" > 154: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-var" > $is_different< / span > ) {
< / span > < span id = "155" class = "l" > < a class = "l" href = "#155" > 155: < / a > < span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'start_datetime'< / span > ] = < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-var" > $event_start< / span > );
< / span > < span id = "156" class = "l" > < a class = "l" href = "#156" > 156: < / a > < span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'end_datetime'< / span > ] = < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-var" > $event_end< / span > );
< / span > < span id = "157" class = "l" > < a class = "l" href = "#157" > 157: < / a > < span class = "php-var" > $this< / span > -> appointments_model-> add(< span class = "php-var" > $appointment< / span > );
< / span > < span id = "158" class = "l" > < a class = "l" href = "#158" > 158: < / a > }
< / span > < span id = "159" class = "l" > < a class = "l" href = "#159" > 159: < / a > } < span class = "php-keyword1" > catch< / span > (Exception < span class = "php-var" > $exc< / span > ) {
< / span > < span id = "160" class = "l" > < a class = "l" href = "#160" > 160: < / a > < span class = "php-comment" > // Appointment not found on gcal, delete from e!a.< / span >
< / span > < span id = "161" class = "l" > < a class = "l" href = "#161" > 161: < / a > < span class = "php-var" > $this< / span > -> appointments_model-> < span class = "php-keyword2" > delete< / span > (< span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id'< / span > ]);
< / span > < span id = "162" class = "l" > < a class = "l" href = "#162" > 162: < / a > < span class = "php-var" > $appointment< / span > [< span class = "php-quote" > 'id_google_calendar'< / span > ] = < span class = "php-keyword1" > NULL< / span > ;
< / span > < span id = "163" class = "l" > < a class = "l" href = "#163" > 163: < / a > }
< / span > < span id = "164" class = "l" > < a class = "l" href = "#164" > 164: < / a > }
< / span > < span id = "165" class = "l" > < a class = "l" href = "#165" > 165: < / a > }
< / span > < span id = "166" class = "l" > < a class = "l" href = "#166" > 166: < / a >
< / span > < span id = "167" class = "l" > < a class = "l" href = "#167" > 167: < / a > < span class = "php-comment" > // :: ADD GCAL EVENTS THAT ARE NOT PRESENT ON E!A< / span >
< / span > < span id = "168" class = "l" > < a class = "l" href = "#168" > 168: < / a > < span class = "php-var" > $events< / span > = < span class = "php-var" > $this< / span > -> google_sync-> get_sync_events(< span class = "php-var" > $start< / span > , < span class = "php-var" > $end< / span > );
< / span > < span id = "169" class = "l" > < a class = "l" href = "#169" > 169: < / a >
< / span > < span id = "170" class = "l" > < a class = "l" href = "#170" > 170: < / a > < span class = "php-keyword1" > foreach< / span > (< span class = "php-var" > $events< / span > -> getItems() < span class = "php-keyword1" > as< / span > < span class = "php-var" > $event< / span > ) {
< / span > < span id = "171" class = "l" > < a class = "l" href = "#171" > 171: < / a > < span class = "php-var" > $results< / span > = < span class = "php-var" > $this< / span > -> appointments_model-> get_batch(< span class = "php-keyword1" > array< / span > (< span class = "php-quote" > 'id_google_calendar'< / span > => < span class = "php-var" > $event< / span > -> getId()));
< / span > < span id = "172" class = "l" > < a class = "l" href = "#172" > 172: < / a > < span class = "php-keyword1" > if< / span > (< span class = "php-keyword2" > count< / span > (< span class = "php-var" > $results< / span > ) == < span class = "php-num" > 0< / span > ) {
< / span > < span id = "173" class = "l" > < a class = "l" href = "#173" > 173: < / a > < span class = "php-comment" > // Record doesn't exist in E!A, so add the event now.< / span >
< / span > < span id = "174" class = "l" > < a class = "l" href = "#174" > 174: < / a > < span class = "php-var" > $appointment< / span > = < span class = "php-keyword1" > array< / span > (
< / span > < span id = "175" class = "l" > < a class = "l" href = "#175" > 175: < / a > < span class = "php-quote" > 'start_datetime'< / span > => < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $event< / span > -> start-> getDateTime())),
< / span > < span id = "176" class = "l" > < a class = "l" href = "#176" > 176: < / a > < span class = "php-quote" > 'end_datetime'< / span > => < span class = "php-keyword2" > date< / span > (< span class = "php-quote" > 'Y-m-d H:i:s'< / span > , < span class = "php-keyword2" > strtotime< / span > (< span class = "php-var" > $event< / span > -> < span class = "php-keyword2" > end< / span > -> getDateTime())),
< / span > < span id = "177" class = "l" > < a class = "l" href = "#177" > 177: < / a > < span class = "php-quote" > 'is_unavailable'< / span > => < span class = "php-keyword1" > TRUE< / span > ,
< / span > < span id = "178" class = "l" > < a class = "l" href = "#178" > 178: < / a > < span class = "php-quote" > 'notes'< / span > => < span class = "php-var" > $event< / span > -> getSummary() . < span class = "php-quote" > ' '< / span > . < span class = "php-var" > $event< / span > -> getDescription(),
< / span > < span id = "179" class = "l" > < a class = "l" href = "#179" > 179: < / a > < span class = "php-quote" > 'id_users_provider'< / span > => < span class = "php-var" > $provider_id< / span > ,
< / span > < span id = "180" class = "l" > < a class = "l" href = "#180" > 180: < / a > < span class = "php-quote" > 'id_google_calendar'< / span > => < span class = "php-var" > $event< / span > -> getId(),
< / span > < span id = "181" class = "l" > < a class = "l" href = "#181" > 181: < / a > < span class = "php-quote" > 'id_users_customer'< / span > => < span class = "php-keyword1" > NULL< / span > ,
< / span > < span id = "182" class = "l" > < a class = "l" href = "#182" > 182: < / a > < span class = "php-quote" > 'id_services'< / span > => < span class = "php-keyword1" > NULL< / span > ,
< / span > < span id = "183" class = "l" > < a class = "l" href = "#183" > 183: < / a > );
< / span > < span id = "184" class = "l" > < a class = "l" href = "#184" > 184: < / a >
< / span > < span id = "185" class = "l" > < a class = "l" href = "#185" > 185: < / a > < span class = "php-var" > $this< / span > -> appointments_model-> add(< span class = "php-var" > $appointment< / span > );
< / span > < span id = "186" class = "l" > < a class = "l" href = "#186" > 186: < / a > }
< / span > < span id = "187" class = "l" > < a class = "l" href = "#187" > 187: < / a > }
< / span > < span id = "188" class = "l" > < a class = "l" href = "#188" > 188: < / a >
< / span > < span id = "189" class = "l" > < a class = "l" href = "#189" > 189: < / a > < span class = "php-keyword1" > echo< / span > < span class = "php-keyword2" > json_encode< / span > (AJAX_SUCCESS);
< / span > < span id = "190" class = "l" > < a class = "l" href = "#190" > 190: < / a >
< / span > < span id = "191" class = "l" > < a class = "l" href = "#191" > 191: < / a > } < span class = "php-keyword1" > catch< / span > (Exception < span class = "php-var" > $exc< / span > ) {
< / span > < span id = "192" class = "l" > < a class = "l" href = "#192" > 192: < / a > < span class = "php-keyword1" > echo< / span > < span class = "php-keyword2" > json_encode< / span > (< span class = "php-keyword1" > array< / span > (
< / span > < span id = "193" class = "l" > < a class = "l" href = "#193" > 193: < / a > < span class = "php-quote" > 'exceptions'< / span > => < span class = "php-keyword1" > array< / span > (< span class = "php-var" > $exc< / span > )
< / span > < span id = "194" class = "l" > < a class = "l" href = "#194" > 194: < / a > ));
< / span > < span id = "195" class = "l" > < a class = "l" href = "#195" > 195: < / a > }
< / span > < span id = "196" class = "l" > < a class = "l" href = "#196" > 196: < / a > }
< / span > < span id = "197" class = "l" > < a class = "l" href = "#197" > 197: < / a > }
< / span > < span id = "198" class = "l" > < a class = "l" href = "#198" > 198: < / a >
< / span > < span id = "199" class = "l" > < a class = "l" href = "#199" > 199: < / a > < span class = "php-comment" > /* End of file google.php */< / span >
< / span > < span id = "200" class = "l" > < a class = "l" href = "#200" > 200: < / a > < / span > < span class = "php-comment" > /* Location: ./application/controllers/google.php */< / span > < / code > < / pre >
2013-09-13 16:21:03 +03:00
< div id = "footer" >
API documentation generated by < a href = "http://apigen.org" > ApiGen 2.8.0< / a >
< / div >
< / div >
< / div >
< / body >
< / html >