public function testWritingPermissions()
 {
     $logs = $GLOBALS['WiziappLog']->checkPath();
     $cacheHandler = new WiziappCache();
     $cache = $cacheHandler->checkPath();
     $thumbsHandler = new WiziappImageHandler();
     $thumbs = $thumbsHandler->checkPath();
     if (!$cache || !$logs || !$thumbs) {
         $message = 'It seems that your server settings are blocking access to certain directories. The WiziApp plugin requires writing permissions to the following directories:<br /><ul>';
         if (!$cache) {
             $message .= '<li>wp-content/uploads</li>';
         }
         if (!$logs) {
             $message .= '<li>wp-content/plugins/wiziapp/logs</li>';
         }
         if (!$thumbs) {
             $message .= '<li>wp-content/plugins/wiziapp/cache</li>';
         }
         $message .= '</ul>Though you may choose not to provide these permissions, this would mean that any requests by your iPhone App readers would be made in real time, which would deny you the advantages of caching.';
         // @todo format this i18n wordpress function usage to allow params and send the dir list as a parameter
         return new WiziappError('writing_permissions_error', __($message, 'wiziapp'));
     }
     return TRUE;
 }
Beispiel #2
0
 function _routeRequest($request)
 {
     error_reporting(0);
     $fullReq = explode('&', $request);
     $req = explode('/', $fullReq[0]);
     $service = $req[1];
     $action = $req[2];
     if ($service == 'user') {
         if ($action == 'check' || $action == 'login') {
             wiziapp_check_login();
         } elseif ($action == 'track') {
             wiziapp_user_push_subscription($req[3], $req[4]);
             /**} elseif($action == 'register'){  - Disabled for now
                $message = wiziapp_user_registration(); 
                wiziapp_buildRegisterForm($message); */
         } elseif ($action == 'forgot_pass') {
             $message = wiziapp_user_forgot_password();
             wiziapp_buildForgotPassForm($message);
         }
     } elseif ($service == 'content' || $service == 'search') {
         // Content requests should trigger a the caching
         $cache = new WiziappCache();
         $key = str_replace('/', '_', $request);
         $qs = str_replace('&', '_', $_SERVER['QUERY_STRING']);
         $qs = str_replace('=', '', $qs);
         $key .= $qs;
         $key .= wiziapp_getCacheTimestampKey();
         global $wiziappLoader;
         $key .= $wiziappLoader->getVersion();
         // Added the accept encoding headers, so we won't try to return zip when we can't
         $httpXcept = isset($_SERVER['HTTP_X_CEPT_ENCODING']) ? $_SERVER['HTTP_X_CEPT_ENCODING'] : '';
         $httpAccept = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '';
         $etagHeader = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : '';
         $key .= str_replace(', ', '_', "{$httpXcept}_{$httpAccept}_{$etagHeader}");
         $key .= str_replace(',', '', $key);
         //if ( $cache->beginCache(md5($key)) ){
         if ($cache->beginCache(md5($key), array('duration' => 30))) {
             $output = $this->_routeContent($req);
             $cache->endCache($output);
             if (!$output) {
                 $GLOBALS['WiziappLog']->write('info', "Nothing to output the app should use the cache", "remote.WiziappRequestHandler._routeRequest");
                 /**
                  * IIS needs us to be very specific
                  */
                 header('Content-Length: 0');
                 $GLOBALS['WiziappLog']->write('info', "Sent the content-length", "remote.WiziappRequestHandler._routeRequest");
                 header("HTTP/1.1 304 Not Modified");
                 $GLOBALS['WiziappLog']->write('info', "sent 304 Not Modified for the app", "remote.WiziappRequestHandler._routeRequest");
             }
         }
         /**
          * The content services are the only thing that will expose themselves and 
          * do a clean exit, the rest of the services will pass the handling to wordpress 
          * if they weren't able to process the request due to missing parameters and such
          */
         exit;
         //        } elseif( $service == 'rate' ) {
         //            wiziapp_rate_content($req);
     } elseif ($service == 'getrate') {
         wiziapp_the_rating_wrapper($req);
     } elseif ($service == "getimage") {
         wiziapp_getImageUrl();
         exit;
     } elseif ($service == "getthumb") {
         wiziapp_doPostThumbnail($req[2], array('width' => $_GET['width'], 'height' => $_GET['height']), array('width' => $_GET['limitWidth'], 'height' => $_GET['limitHeight']));
         exit;
     } elseif ($service == 'post') {
         $GLOBALS['WiziappLog']->write('info', "Need to do something with post..:" . print_r($req, TRUE), "remote.WiziappRequestHandler._routeRequest");
         if ($req[3] == "comments") {
             wiziapp_getCommentsCount($req[2]);
         }
     } elseif ($service == 'comment') {
         wiziapp_add_comment($request);
         /**} elseif ( $service == 'search' ){
            $this->_routeContent($req); */
     } elseif ($service == 'keywords') {
         wiziapp_get_search_keywords();
     } elseif ($service == 'system') {
         if ($action == 'screens') {
             wiziapp_updateScreenConfiguration();
         } else {
             if ($action == 'components') {
                 wiziapp_updateComponentsConfiguration();
             } else {
                 if ($action == 'pages') {
                     wiziapp_updatePagesConfiguration();
                 } else {
                     if ($action == 'frame') {
                         wiziapp_getCrossFrameHandler();
                     } else {
                         if ($action == 'settings') {
                             wiziapp_updateConfiguration();
                         } else {
                             if ($action == 'thumbs') {
                                 wiziapp_updateThumbsConfiguration();
                             } else {
                                 if ($action == 'check') {
                                     wiziapp_checkInstalledPlugin();
                                 } else {
                                     if ($action == 'logs') {
                                         wiziapp_listLogsWS();
                                     } else {
                                         if ($action == 'getLog') {
                                             wiziapp_getLogFileWS($req[3]);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }