コード例 #1
0
ファイル: favorite.php プロジェクト: bizanto/Hooked
 function addFavorite($results)
 {
     $listing_ids = array_keys($results);
     if (!isset($this->Config)) {
         App::import('Component', 'config', 'jreviews');
         $this->Config = RegisterClass::getInstance('ConfigComponent');
     }
     if ($this->Config->favorites_enable) {
         # Get favoured count
         $query = "\n                SELECT \n                    content_id AS listing_id, count(*) AS favored FROM #__jreviews_favorites AS Favorite\n\t\t\t    WHERE \n                    Favorite.content_id IN (" . implode(',', $listing_ids) . ")\n\t\t\t    GROUP BY \n                    listing_id\n            ";
         $this->_db->setQuery($query);
         $favored = $this->_db->loadAssocList('listing_id');
         # Check if in user's favorites list
         if ($this->_user->id) {
             $query = "\n                    SELECT \n                        Favorite.user_id, Favorite.content_id AS listing_id\n\t\t\t\t    FROM \n                        #__jreviews_favorites AS Favorite\n\t\t\t\t    WHERE \n                        Favorite.content_id IN (" . implode(',', $listing_ids) . ")\n\t\t\t\t        AND Favorite.user_id = " . $this->_user->id;
             $this->_db->setQuery($query);
             $my_favorite = $this->_db->loadAssocList('listing_id');
         }
         foreach ($results as $key => $result) {
             if (isset($favored[$result['Listing']['listing_id']]['favored'])) {
                 $results[$key]['Favorite']['favored'] = $favored[$result['Listing']['listing_id']]['favored'];
             } else {
                 $results[$key]['Favorite']['favored'] = 0;
             }
             if (isset($my_favorite[$result['Listing']['listing_id']]['user_id'])) {
                 $results[$key]['Favorite']['my_favorite'] = 1;
             } else {
                 $results[$key]['Favorite']['my_favorite'] = 0;
             }
         }
     }
     return $results;
 }
コード例 #2
0
ファイル: everywhere_com_zoo.php プロジェクト: bizanto/Hooked
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         /* Very hard to implement when the content types each have their own separate table with different columns for images */
         $imagePath = '';
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #3
0
ファイル: saasy.php プロジェクト: bizanto/Hooked
 function startup(&$controller)
 {
     $this->inAdmin = defined('MVC_FRAMEWORK_ADMIN');
     App::import('Helper', array('routes', 'html'), 'jreviews');
     $this->Routes = RegisterClass::getInstance('RoutesHelper');
     $this->Html = RegisterClass::getInstance('HtmlHelper');
     $this->c =& $controller;
 }
コード例 #4
0
ファイル: vote.php プロジェクト: bizanto/Hooked
 function afterSave($status)
 {
     if ($status) {
         // Update vote count in review table
         App::import('Model', 'review', 'jreviews');
         $Review = RegisterClass::getInstance('ReviewModel');
         $Review->updateVoteHelpfulCount($this->data['Vote']['review_id'], $this->data['Vote']['vote_yes']);
     }
 }
コード例 #5
0
 function index()
 {
     $Session = RegisterClass::getInstance('MvcSession');
     $module_id = Sanitize::getInt($this->params, 'module_id', Sanitize::getInt($this->data, 'module_id'));
     if (!isset($this->params['module'])) {
         $this->params['module'] = array();
     }
     // For direct calls to the controller
     if ($this->ajaxRequest) {
         $this->params = $Session->get('module_params' . $module_id, null, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     } else {
         srand((double) microtime() * 1000000);
         $this->params['rand'] = rand();
         $Session->set('module_rand' . $module_id, $this->params['rand'], S2Paths::get('jreviews', 'S2_CMSCOMP'));
         $Session->set('module_params' . $module_id, $this->params, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     }
     $this->viewSuffix = Sanitize::getString($this->params['module'], 'tmpl_suffix');
     // Read the module parameters
     $img_width = Sanitize::getInt($this->params['module'], 'img_width', 50);
     $random_mode = Sanitize::getString($this->params['module'], 'random_mode', 'Random Users');
     $favorites_mode = Sanitize::getString($this->params['module'], 'favorites_mode', 'Other users interested in {title}');
     // Pagination
     $this->Community->limit = $this->module_limit;
     $this->Community->offset = $this->module_offset;
     # Get url params for current controller/action
     $url = Sanitize::getString($_REQUEST, 'url');
     $route['url']['url'] = $url;
     $route['data'] = array();
     $route = S2Router::parse($route, true, 'jreviews');
     # Check if page is listing detail
     $detail = Sanitize::getString($route['url'], 'extension', 'com_content') == 'com_content' && isset($route['data']) && Sanitize::getString($route['data'], 'controller') == 'listings' && Sanitize::getString($route['data'], 'action') == 'detail' ? true : false;
     # Initialize variables
     $listing_id = $detail ? Sanitize::getInt($route, 'id') : Sanitize::getInt($this->params, 'id');
     $option = Sanitize::getString($this->params, 'option');
     $view = Sanitize::getString($this->params, 'view');
     $task = Sanitize::getString($this->params, 'task');
     $listing_title = '';
     # Article auto-detect - only for com_content
     if ($detail || 'com_content' == $option && ('article' == $view || 'view' == $task)) {
         $query = "SELECT Listing.id, Listing.title FROM #__content AS Listing WHERE Listing.id = " . $listing_id;
         $this->_db->setQuery($query);
         $listing = current($this->_db->loadObjectList());
         $listing_title = $listing->title;
     } else {
         $listing_id = null;
     }
     $profiles = $this->Community->getListingFavorites($listing_id, $this->_user->id, $this->params);
     $total = $this->Community->count;
     unset($this->Community->count);
     $this->set(array('profiles' => $profiles, 'listing_title' => $listing_title, 'total' => $total));
     $page = $this->render('modules', 'favorite_cbusers');
     if ($this->ajaxRequest) {
         return $this->ajaxResponse($page, false);
     } else {
         return $page;
     }
 }
コード例 #6
0
ファイル: discussion.php プロジェクト: bizanto/Hooked
 function afterDelete($key, $values, $condition)
 {
     switch ($this->post['Discussion']['type']) {
         case 'review':
             App::import('Model', 'review', 'jreviews');
             $Review = RegisterClass::getInstance('ReviewModel');
             $Review->updatePostCount($this->post['Discussion']['review_id'], -1);
             break;
     }
 }
コード例 #7
0
ファイル: sef_ext.php プロジェクト: bizanto/Hooked
 function &getInstance()
 {
     static $instance = array();
     if (!isset($instance[0]) || !$instance[0]) {
         $instance[0] = new sef_jreviews();
         require dirname(__FILE__) . DS . 'jreviews' . DS . 'framework.php';
         App::import('Model', 'Menu', 'jreviews');
         $instance[0]->__Menu =& RegisterClass::getInstance('MenuModel');
     }
     return $instance[0];
 }
コード例 #8
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $images = $result['Listing']['images'];
         unset($results[$key]['Listing']['images']);
         $results[$key]['Listing']['images'] = array();
         $upload_dir = '';
         // You can hard set an upload directory here and comment out the code below. e.g. ('/uploads')
         //dynamically pull the directory information
         if (!defined('RES_GENERAL_UPLOAD')) {
             // initialyze resource Controller, this will set the RES_GENERAL_UPLOAD constant
             require_once '..' . DS . 'administrator' . DS . 'components' . DS . 'com_resource' . DS . 'controllers' . DS . 'config.php';
             ResControllerConfig::initialyze();
         }
         $upload_dir = RES_GENERAL_UPLOAD;
         if ($images != '') {
             if (@file_exists($upload_dir . DS . 'picture' . DS . $result['Listing']['user'] . DS . 'thumbnail_blog' . DS . $images)) {
                 $imagePath = $upload_dir . DS . 'picture' . DS . $result['Listing']['user'] . DS . 'thumbnail_blog' . DS . $images;
             } else {
                 if (@file_exists($upload_dir . DS . 'picture' . DS . $result['Listing']['user'] . DS . $images)) {
                     $imagePath = $upload_dir . DS . 'picture' . DS . $result['Listing']['user'] . DS . $images;
                 }
             }
         } else {
             // Put a noimage path here?
             $imagePath = $upload_dir . DS . 'na.jpg';
             // remember to put an na.jpg in your standard upload folder!
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #9
0
 function afterFilter()
 {
     App::import('Helper', 'assets', 'jreviews');
     $Assets = RegisterClass::getInstance('AssetsHelper');
     $Assets->name = $this->name;
     $Assets->action = $this->action;
     $Assets->params = $this->params;
     $Assets->Access = $this->Access;
     $Assets->Config = $this->Config;
     $Assets->assetParams['review_fields'] = $this->review_fields;
     unset($this->review_fields);
     parent::afterFilter();
 }
コード例 #10
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $imagePath = '';
         $images = $this->getImage($result['Listing']['listing_id']);
         $results[$key]['Listing']['images'] = array();
         if ($images != '') {
             if (@file_exists("media/com_hotproperty/images/thb/" . $images)) {
                 $imagePath = "media/com_hotproperty/images/thb/" . $images;
             } elseif (@file_exists("components/com_hotproperty/img/thb/" . $images)) {
                 // v0.9
                 $imagePath = "components/com_hotproperty/img/thb/" . $images;
             }
         } else {
             if (@file_exists('media/com_hotproperty/images/noimage_thb.png')) {
                 // Put a noimage path here?
                 $imagePath = "media/com_hotproperty/images/noimage_thb.png";
             } elseif (@file_exists("components/com_hotproperty/img/thb/noimage.npg")) {
                 // v0.9
                 $imagePath = "components/com_hotproperty/img/thb/noimage.npg";
             }
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #11
0
 function onProfileDisplay()
 {
     if (!file_exists($this->_path . DS . 'admin.jreviews.php')) {
         return JText::_('jReviews is not installed. Please contact site administrator.');
     } else {
         $user = CFactory::getActiveProfile();
         $userId = $user->id;
         $cacheSetting = $this->params->get('cache', 1) ? JApplication::getCfg('caching') : 0;
         # Load CSS stylesheets -- done here because when cache is on css is not loaded
         if ($cacheSetting) {
             # MVC initalization script
             if (!defined('DS')) {
                 define('DS', DIRECTORY_SEPARATOR);
             }
             require 'components' . DS . 'com_jreviews' . DS . 'jreviews' . DS . 'framework.php';
             $cache_file = 'jreviews_config_' . md5(cmsFramework::getConfig('secret'));
             $Config =& S2Cache::read($cache_file);
             if (!is_object($Config)) {
                 //Create config file
                 $eParams['data']['controller'] = 'common';
                 $eParams['data']['action'] = 'index';
                 $Dispatcher = new S2Dispatcher('jreviews', false, true);
                 $Dispatcher->dispatch($eParams);
                 $Config =& S2Cache::read($cache_file);
                 unset($Dispatcher);
             }
             App::import('Helper', 'html');
             $Html =& RegisterClass::getInstance('HtmlHelper');
             $Html->viewTheme = $Config->template;
             $Html->app = 'jreviews';
             $Html->startup();
             App::import('Helper', 'libraries', 'jreviews');
             $Libraries =& RegisterClass::getInstance('LibrariesHelper');
             $Html->css(array('theme', 'plugins', 'paginator'));
             $Html->js(array('jreviews', 'jquery' => 'jquery', 'jq.scrollable'), $Libraries->js());
         }
         $cache =& JFactory::getCache('plgCommunityJreviews_myfavorites');
         $cache->setCaching($cacheSetting);
         $callback = array('plgCommunityJreviews_myfavorites', '_getPage');
         $contents = $cache->call($callback, $userId, $this->params, $cacheSetting);
         return $contents;
     }
 }
コード例 #12
0
 function afterFind($results)
 {
     if (empty($results) || defined('MVC_FRAMEWORK_ADMIN')) {
         # Find Itemid for component
         $Menu = RegisterClass::getInstance('MenuModel');
         $menu_id = $Menu->getComponentMenuId($this->extension);
         foreach ($results as $key => $result) {
             // Process component menu id
             $results[$key][$this->name]['menu_id'] = $menu_id;
             // Process listing url
             $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         }
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         $result['Listing']['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($result);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $images = $result['Listing']['images'];
         unset($results[$key]['Listing']['images']);
         if ($images != '') {
             $imagePath = $images;
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true, 'skipthumb' => true);
     }
     return $results;
 }
コード例 #13
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $images = $result['Listing']['images'];
         unset($results[$key]['Listing']['images']);
         $results[$key]['Listing']['images'] = array();
         if ($images != '') {
             if (@file_exists("images/com_sobi2/clients/" . $images)) {
                 $imagePath = "images/com_sobi2/clients/" . $images;
             } else {
                 $imagePath = "images/com_sobi2/clients/" . $images;
             }
         } else {
             // Put a noimage path here?
             $imagePath = '';
             //"components/com_virtuemart/shop_image/product/" . $images;
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #14
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     # Reformat image and criteria info
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         // Gets the src of the first image in the html code for the blog post
         $images = preg_match('/<img.*?src=([\'"])([^"\\1]+)\\1/i', $result['Listing']['summary'], $matches);
         $results[$key]['images'] = array();
         $results[$key]['Listing']['images'] = array();
         if ($images != '') {
             if (@file_exists($matches[2])) {
                 $imagePath = $matches[2];
             }
         } else {
             // Put a noimage path here?
             $imagePath = '';
             //"components/com_virtuemart/shop_image/product/" . $images;
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #15
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         $result['Listing']['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($result);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $imagePath = '';
         $images = $result['Listing']['images'];
         $results[$key]['Listing']['images'] = array();
         if ($images != '') {
             $imagePath = $images;
         } else {
             // Put a noimage path here?
             $imagePath = WWW_ROOT . 'components/com_resman/images/no_image_small.png';
             //$images;
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'skipthumb' => true, 'basepath' => true);
     }
     return $results;
 }
コード例 #16
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     # Reformat image and criteria info
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         $results[$key][$this->name]['url'] = $this->listingUrl($results[$key]);
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $images = $result['Listing']['images'];
         unset($results[$key]['Listing']['images']);
         $results[$key]['Listing']['images'] = array();
         if ($images != '' && @file_exists("components/com_ezrealty/ezrealty/th/" . $images)) {
             $imagePath = "components/com_ezrealty/ezrealty/th/" . $images;
         } else {
             // Put a noimage path here?
             $imagePath = "components/com_ezrealty/th/nothumb.gif";
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true);
     }
     return $results;
 }
コード例 #17
0
ファイル: router.php プロジェクト: bizanto/Hooked
function JreviewsBuildRoute(&$query)
{
    global $Menu;
    $segments = array();
    if (isset($query['url'])) {
        $query_string = explode('/', $query['url']);
        // Properly urlencodes the jReviews parameters contained within the url parameter
        foreach ($query_string as $key => $param) {
            $query_string[$key] = urlencodeParam($param);
        }
        $query['url'] = implode('/', $query_string);
        $segments[0] = $query['url'];
        unset($query['url']);
        // Forces Joomla to use the menu alias for JReviews menus of type url instead of /component/jreviews
        if (isset($query['Itemid'])) {
            App::import('Model', 'menu', 'jreviews');
            $MenuModel = RegisterClass::getInstance('MenuModel');
            if (isset($MenuModel->menues[$query['Itemid']]) && $MenuModel->menues[$query['Itemid']]->componentid == 0) {
                $query['option'] = '';
            }
        }
    }
    return $segments;
}
コード例 #18
0
ファイル: activities.php プロジェクト: bizanto/Hooked
 function plgAfterSave(&$model)
 {
     $data = array();
     App::import('Model', 'activity', 'jreviews');
     App::import('Helper', 'routes', 'jreviews');
     $Activity = new ActivityModel();
     $Routes = RegisterClass::getInstance('RoutesHelper');
     $data['Activity']['user_id'] = $this->c->_user->id;
     $data['Activity']['email'] = $this->c->_user->email;
     $data['Activity']['created'] = gmdate('Y-m-d H:i:s');
     $data['Activity']['ipaddress'] = $this->c->ipaddress;
     $data['Activity']['activity_new'] = isset($model->data['insertid']) ? 1 : 0;
     switch ($this->activityModel->name) {
         case 'Claim':
             //Get the full listing info to create proper permalinks
             $listing = $this->c->Listing->findRow(array('conditions' => array('Listing.id = ' . (int) $model->data['Claim']['listing_id'])), array());
             $permalink = $Routes->content('', $listing, array('return_url' => true));
             $permalink = cmsFramework::makeAbsUrl($permalink);
             $data['Activity']['activity_type'] = 'claim';
             $data['Activity']['listing_id'] = $model->data['Claim']['listing_id'];
             $data['Activity']['extension'] = 'com_content';
             $data['Activity']['activity_new'] = 1;
             $data['Activity']['permalink'] = $permalink;
             $Activity->store($data);
             break;
         case 'Listing':
             // Skip logging of admin actions on user listings
             //                if($this->c->_user->id != $model->data['Listing']['created_by']) break;
             //Get the full listing info to create proper permalinks
             $listing = $this->c->Listing->findRow(array('conditions' => array('Listing.id = ' . (int) $model->data['Listing']['id'])));
             $permalink = $Routes->content('', $listing, array('return_url' => true));
             $permalink = cmsFramework::makeAbsUrl($permalink);
             $data['Activity']['activity_type'] = 'listing';
             $data['Activity']['email'] = Sanitize::getString($model->data, 'email');
             $data['Activity']['listing_id'] = $model->data['Listing']['id'];
             $data['Activity']['extension'] = 'com_content';
             $data['Activity']['permalink'] = $permalink;
             $Activity->store($data);
             break;
         case 'Review':
             // Skip logging of admin actions on user listings
             //                if($this->c->_user->id != $model->data['Review']['userid']) break;
             $data['Activity']['activity_type'] = 'review';
             $data['Activity']['listing_id'] = $model->data['Review']['pid'];
             $data['Activity']['review_id'] = $model->data['Review']['id'];
             $data['Activity']['extension'] = $model->data['Review']['mode'];
             $data['Activity']['value'] = round(Sanitize::getVar($model->data, 'average_rating'), 0);
             $data['Activity']['permalink'] = $Routes->reviewDiscuss('', array('review_id' => $data['Activity']['review_id']), array('return_url' => true));
             $Activity->store($data);
             break;
         case 'OwnerReply':
             // Skip logging of admin actions on user listings
             //                if($this->c->_user->id != $model->data['Listing']['created_by']) break;
             $data['Activity']['activity_type'] = 'owner_reply';
             $data['Activity']['listing_id'] = $model->data['Listing']['listing_id'];
             $data['Activity']['review_id'] = $model->data['OwnerReply']['id'];
             $data['Activity']['extension'] = $model->data['Listing']['extension'];
             // Editing not yet implemented so all replies are new
             $data['Activity']['activity_new'] = 1;
             $data['Activity']['permalink'] = $Routes->reviewDiscuss('', array('review_id' => $data['Activity']['review_id']), array('return_url' => true));
             $Activity->store($data);
             break;
         case 'Discussion':
             // Skip logging of admin actions on user listings
             //                if($this->c->_user->id != $model->data['Discussion']['user_id']) break;
             // Get listing id and extension
             $this->c->_db->setQuery("\n                    SELECT \n                        Review.pid AS listing_id, Review.`mode` AS extension\n                    FROM \n                        #__jreviews_comments AS Review\n                    WHERE \n                        Review.id = " . $model->data['Discussion']['review_id']);
             // Get listing owner id and check if it matches the current user
             if ($listing = current($this->c->_db->loadAssocList())) {
                 $data['Activity']['activity_type'] = 'review_discussion';
                 $data['Activity']['listing_id'] = $listing['listing_id'];
                 $data['Activity']['review_id'] = $model->data['Discussion']['review_id'];
                 $data['Activity']['post_id'] = $model->data['Discussion']['discussion_id'];
                 $data['Activity']['extension'] = $listing['extension'];
                 $data['Activity']['permalink'] = $Routes->reviewDiscuss('', array('review_id' => $data['Activity']['review_id']), array('return_url' => true));
                 $Activity->store($data);
             }
             break;
         case 'Report':
             $data['Activity']['activity_type'] = $model->data['Report']['post_id'] ? 'discussion_report' : 'review_report';
             $data['Activity']['listing_id'] = $model->data['Report']['listing_id'];
             $data['Activity']['review_id'] = $model->data['Report']['review_id'];
             $data['Activity']['extension'] = $model->data['Report']['extension'];
             // Editing not yet implemented so all replies are new
             $data['Activity']['activity_new'] = 1;
             $data['Activity']['permalink'] = $Routes->reviewDiscuss('', array('review_id' => $data['Activity']['review_id']), array('return_url' => true));
             $Activity->store($data);
             break;
         case 'Vote':
             // Get listing id and extension
             $this->c->_db->setQuery("\n                    SELECT \n                        Review.pid AS listing_id, Review.`mode` AS extension\n                    FROM \n                        #__jreviews_comments AS Review\n                    WHERE \n                        Review.id = " . $model->data['Vote']['review_id']);
             // Get listing owner id and check if it matches the current user
             if ($listing = current($this->c->_db->loadAssocList())) {
                 $data['Activity']['activity_type'] = 'helpful_vote';
                 $data['Activity']['listing_id'] = $listing['listing_id'];
                 $data['Activity']['review_id'] = $model->data['Vote']['review_id'];
                 $data['Activity']['helpful_vote_id'] = $model->data['Vote']['vote_id'];
                 $data['Activity']['extension'] = $listing['extension'];
                 $data['Activity']['value'] = $model->data['Vote']['vote_yes'];
                 $data['Activity']['permalink'] = $Routes->reviewDiscuss('', array('review_id' => $data['Activity']['review_id']), array('return_url' => true));
                 $Activity->store($data);
             }
             break;
     }
     $this->published = false;
     // Run once. With paid listings it is possible for a plugin to run a 2nd time when the order is processed together with the listing (free)
 }
コード例 #19
0
 function afterFind($results)
 {
     if (empty($results)) {
         return $results;
     }
     # Find Itemid for component
     $Menu = RegisterClass::getInstance('MenuModel');
     $menu_id = $Menu->getComponentMenuId($this->extension);
     foreach ($results as $key => $result) {
         // Process component menu id
         $results[$key][$this->name]['menu_id'] = $menu_id;
         $result['Listing']['menu_id'] = $menu_id;
         // Process listing url
         $results[$key][$this->name]['url'] = $this->listingUrl($result);
         // Process criteria
         if (isset($result['Criteria']['criteria']) && $result['Criteria']['criteria'] != '') {
             $results[$key]['Criteria']['criteria'] = explode("\n", $result['Criteria']['criteria']);
         }
         if (isset($result['Criteria']['tooltips']) && $result['Criteria']['tooltips'] != '') {
             $results[$key]['Criteria']['tooltips'] = explode("\n", $result['Criteria']['tooltips']);
         }
         if (isset($result['Criteria']['weights']) && $result['Criteria']['weights'] != '') {
             $results[$key]['Criteria']['weights'] = explode("\n", $result['Criteria']['weights']);
         }
         // Process images
         $images = $result['Listing']['images'];
         unset($results[$key]['Listing']['images']);
         $results[$key]['Listing']['images'] = array();
         if ($images != '') {
             // From bookmarks.html.php
             $urlkey = '##URL_HERE##';
             // *** Prepare Image url (compute link)
             if (!(preg_match("/^http:\\/\\//", $images) || preg_match("/^https:\\/\\//", $images) || preg_match("/^func:\\/\\//", $images))) {
                 // Internal image (not 	HTTP, HTTPS or FUNC) ?
                 $imagePath = WWW_ROOT . 'images/stories/' . $images;
                 // Internal image from Images/Stories
             } else {
                 $imagePath = $images;
                 // External image (use url)
                 if (preg_match("/^func:\\/\\//", $imagePath)) {
                     // Verify if there is a FUNC to process
                     $func = substr($imagePath, 7);
                     $func = '$picurl=' . str_replace($urlkey, "'" . $result['Listing']['bookmark_url'] . "'", $func);
                     eval($func);
                     // Compute function
                 } else {
                     if (preg_match('/' . $urlkey . '/', $imagePath)) {
                         // is the URL Keyword present ?
                         $imagePath = str_replace($urlkey, $result['Listing']['bookmark_url'], $imagePath);
                         // replace the "URL Keyword" with the URL...
                     }
                 }
             }
         } else {
             // Put a noimage path here?
             $imagePath = '';
         }
         $results[$key]['Listing']['images'][] = array('path' => $imagePath, 'caption' => $results[$key]['Listing']['title'], 'basepath' => true, 'skipthumb' => true);
     }
     return $results;
 }
コード例 #20
0
ファイル: review.php プロジェクト: bizanto/Hooked
 /**
  * Saves review ratings, fields and recalculates listing totals
  * 
  * @param mixed $status
  */
 function afterSave($status)
 {
     $isNew = Sanitize::getBool($this->data, 'new');
     $ratings_col_empty = Sanitize::getBool($this->data, 'ratings_col_empty');
     $weights = '';
     if (isset($this->data['Criteria']) && Sanitize::getInt($this->data['Criteria'], 'state') == 1) {
         // Process rating data
         // to account for "n/a" values in the ratings and weights, changing the source arrays rather than the whole computation procedure.
         // init variables
         $applicableRatings = array_filter($this->data['Rating']['ratings'], create_function('$el', 'return is_numeric($el);'));
         $ratings_qty = count($applicableRatings);
         $this->data['average_rating'] = $ratings_sum = 'na';
         if ($ratings_qty > 0) {
             if (trim($this->data['Criteria']['weights']) != '') {
                 $weights = explode("\n", $this->data['Criteria']['weights']);
                 // we have to remove the irrelevant weights so to produce clean weights_sum to be used later for proportion calculations
                 $sumWeights = array_sum(array_intersect_key($weights, $applicableRatings));
                 if ($sumWeights > 0) {
                     foreach ($applicableRatings as $key => $rating) {
                         $ratings_sum += $rating * $weights[$key] / $sumWeights;
                     }
                     $ratings_sum = $ratings_sum * $ratings_qty;
                     // This is not the real sum, but it is divided again in the queries.
                 }
             } else {
                 $ratings_sum = array_sum($applicableRatings);
             }
             // Makes average rating easily available in Everywhere model afterSave method
             $this->data['average_rating'] = $ratings_sum / $ratings_qty;
             $this->data['Rating']['ratings_sum'] = $ratings_sum;
             $this->data['Rating']['ratings_qty'] = $ratings_qty;
         }
         # if ( $ratings_qty > 0  )i
         $this->data['Rating']['reviewid'] = $this->data['Review']['id'];
         $this->data['Rating']['ratings'] = implode(',', $this->data['Rating']['ratings']);
         # Save rating fields
         appLogMessage('*******Save standard rating fields', 'database');
         if ($isNew || !$isNew && $ratings_col_empty) {
             $save = $this->insert('#__jreviews_ratings', 'Rating', $this->data, 'reviewid');
         } else {
             $save = $this->update('#__jreviews_ratings', 'Rating', $this->data, 'reviewid');
         }
         if (!$save) {
             appLogMessage('*******There was a problem saving the ratings', 'database');
             return false;
         }
     }
     # if ( $criteria['Criteria']['state'] == 1 )
     // save listing totals
     if (!$this->saveListingTotals($this->data['Review']['pid'], $this->data['Review']['mode'], $weights)) {
         return false;
     }
     # Save custom fields
     appLogMessage('*******Save review custom fields', 'database');
     $this->data['Field']['Review']['reviewid'] = $this->data['Review']['id'];
     App::import('Model', 'field', 'jreviews');
     $FieldModel = RegisterClass::getInstance('FieldModel');
     if (count($this->data['Field']['Review']) > 1 && !$FieldModel->save($this->data, 'review', $isNew, $this->valid_fields)) {
         return false;
     }
 }
コード例 #21
0
ファイル: twitter.php プロジェクト: bizanto/Hooked
 function truncateTweet($text, $url)
 {
     $max_chars = 140;
     $truncate = strlen($url) + 1;
     // +1 for space in between text and url
     App::import('Helper', 'text');
     $Text = RegisterClass::getInstance('TextHelper');
     return $Text->truncate($text, $max_chars - $truncate) . ' ' . $url;
 }
コード例 #22
0
ファイル: jreviews.php プロジェクト: bizanto/Hooked
 function onBeforeDisplayContent(&$article, &$params)
 {
     if (!class_exists('cmsFramework')) {
         return;
     }
     // Make sure this is a Joomla article page
     $option = Sanitize::getString($_REQUEST, 'option', '');
     $view = Sanitize::getString($_REQUEST, 'view', '');
     $layout = Sanitize::getString($_REQUEST, 'layout', '');
     $id = Sanitize::getInt($_REQUEST, 'id');
     if (!($option == 'com_content' && $view == 'article' && $id)) {
         return;
     }
     /**
      * Retrieve $listing array from memory 
      */
     $_this =& cmsFramework::getInstance();
     $Config = Configure::read('JreviewsSystem.Config');
     $title = trim(Sanitize::getString($Config, 'type_metatitle'));
     $keywords = trim(Sanitize::getString($Config, 'type_metakey'));
     $description = trim(Sanitize::getString($Config, 'type_metadesc'));
     $listing =& $_this->listing;
     // Has all the data that's also available in the detail.thtml theme file so you can create any sort of conditionals with it
     if ($title != '' || $keywords != '' || $description != '') {
         if (isset($_this->listing) && is_array($_this->listing)) {
             // Instantiate the CustomFields helper class
             $CustomFields =& RegisterClass::getInstance('CustomFieldsHelper');
             // Get and process all tags
             $tags = plgContentJreviews::extractTags($title . $keywords . $description);
             $tags_array = array();
             foreach ($tags as $tag) {
                 switch ($tag) {
                     case 'title':
                         $tags_array['{title}'] = Sanitize::stripAll($listing['Listing'], 'title');
                         break;
                     case 'section':
                         $tags_array['{section}'] = Sanitize::stripAll($listing['Section'], 'title');
                         break;
                     case 'category':
                         $tags_array['{category}'] = Sanitize::stripAll($listing['Category'], 'title');
                         break;
                     case 'metakey':
                         $tags_array['{metakey}'] = Sanitize::stripAll($listing['Listing'], 'metakey');
                         break;
                     case 'metadesc':
                         $tags_array['{metadesc}'] = Sanitize::stripAll($listing['Listing'], 'metadesc');
                         break;
                     default:
                         if (substr($tag, 0, 3) == 'jr_') {
                             $field = $CustomFields->fieldText($tag, $listing, false, false, ',');
                             $tags_array['{' . $tag . '}'] = !empty($field) ? $field : '';
                         }
                         break;
                 }
             }
             # Process title
             $title != '' and $title = str_replace(array_keys($tags_array), $tags_array, $title) and cmsFramework::meta('title', $title);
             # Process description
             $description != '' and $description = str_replace(array_keys($tags_array), $tags_array, $description) and cmsFramework::meta('description', $description);
             # Process keywords
             $keywords != '' and $keywords = str_replace(array_keys($tags_array), $tags_array, $keywords) and cmsFramework::meta('keywords', $keywords);
         }
     } elseif (isset($article->parameters) && $article->parameters->get('show_page_title') && $article->parameters->get('num_leading_articles') == '' && $article->parameters->get('filter_type') == '') {
         $title = $article->parameters->get('page_title');
         $title != '' and cmsFramework::meta('title', $title);
     }
     if (isset($_this->crumbs) && !empty($_this->crumbs)) {
         cmsFramework::setPathway($_this->crumbs);
     }
     unset($_this);
 }
コード例 #23
0
 /**
  * Dynamically replace the field tags with their labels/form field equivalents
  */
 function afterFilter()
 {
     $output =& $this->output;
     $names = array();
     $labels = array();
     $select = array();
     $cat_tag = false;
     $date_field = false;
     $dir_id = $section_id = $cat_id = $criteria_id = '';
     # Initialize FormHelper
     $Form = new FormHelper();
     $CustomFields = new CustomFieldsHelper();
     $CustomFields->Config =& $this->Config;
     # Process custom field tag attributes
     foreach ($this->fieldTags as $key => $value) {
         $var = explode('|', $value);
         if (!strstr($value, '_label')) {
             $names[$var[0]] = $value;
         } elseif (strstr($value, '_label')) {
             $labels[] = substr($value, 0, -6);
         }
         if ($value == 'category') {
             $cat_tag = true;
             /************************/
             if (isset($var[1]) && $var[1] == 'm') {
                 $category_select_type = ' multiple="multiple"';
             }
             if (isset($var[2]) && (int) $var[2] > 0) {
                 $category_select_size = ' size="' . $var[2] . '"';
             }
             /************************/
         }
         if (isset($var[1]) && strtolower($var[1]) == 'm') {
             $select[$var[0]] = 'selectmultiple';
         } elseif (isset($var[1]) && strtolower($var[1]) == 's') {
             $select[$var[0]] = 'select';
         }
         $select_size[$var[0]] = isset($var[2]) ? $var[2] : 5;
         # Check for category select list
         if ($var[0] == 'category') {
             if (isset($var[1]) && strtolower($var[1]) == 's') {
                 $category_select_type = ' multiple="multiple"';
             }
             if (isset($var[2]) && (int) $var[2] > 0) {
                 $category_select_size = ' size="' . $var[2] . '"';
             }
         }
     }
     # Get selected values from url
     $entry = array();
     foreach ($this->params as $key => $value) {
         if (substr($key, 0, 3) == 'jr_') {
             $entry['Field']['pairs'][$key]['value'] = explode('_', $value);
         }
         // Add categories/sections
     }
     if (isset($this->params['tag'])) {
         $entry['Field']['pairs']['jr_' . $this->params['tag']['field']]['value'] = array($this->params['tag']['value']);
     }
     # Generate category list if tag found in view
     if ($cat_tag) {
         # Category auto detect
         if (Sanitize::getInt($this->params['module'], 'cat_auto')) {
             $ids = CommonController::_discoverIDs($this);
             extract($ids);
         }
         if ($section_id == '' && $cat_id != '') {
             $sql = "SELECT section FROM #__categories WHERE id IN (" . $cat_id . ")";
             $this->_db->setQuery($sql);
             $section_id = $this->_db->loadResult();
         }
         $cat_id != '' and $this->params['module']['cat_id'] = $cat_id;
         $cat_id == '' and $section_id != '' and $this->params['module']['section_id'] = $section_id;
         $cat_id == '' and $criteria_id != '' and $this->params['module']['criteria_id'] = $criteria_id;
         $categorySelect = $this->Category->categoryTree($this->_user->gid, $this->params);
         $output = str_replace('{' . $names['category'] . '}', $categorySelect, $output);
     }
     $fields = $this->Field->getFieldsArrayFromNames(array_keys($names), 'listing', $entry);
     # Replace label tags and change field type based on view atttributes
     if ($fields) {
         foreach ($fields as $key => $group) {
             foreach ($group['Fields'] as $name => $field) {
                 if (isset($field['optionList']) && isset($select[$name])) {
                     $fields[$key]['Fields'][$name]['type'] = $select[$name];
                     $fields[$key]['Fields'][$name]['properties']['size'] = $select_size[$name];
                 } elseif ($fields[$key]['Fields'][$name]['type'] == 'textarea') {
                     $fields[$key]['Fields'][$name]['type'] = 'text';
                 }
                 if (in_array($name, $labels)) {
                     $output = str_replace('{' . $name . '_label}', $field['title'], $output);
                 }
                 if ($field['type'] == 'date') {
                     $date_field = true;
                 }
             }
         }
         $search = true;
         $location = 'listing';
         $CustomFields->form_id = Sanitize::getInt($this->params, 'module_id');
         $formFields = $CustomFields->getFormFields($fields, $location, $search, __t("Select", true));
         # Replace input tags
         foreach ($names as $key => $name) {
             if (isset($formFields["data[Field][Listing][{$key}]"])) {
                 $output = str_replace('{' . $names[$key] . '}', $formFields["data[Field][Listing][{$key}]"], $output);
             }
         }
         # Load js and css
         if ($date_field) {
             $Html = RegisterClass::getInstance('HtmlHelper');
             $Html->app = 'jreviews';
             $Html->startup();
             $Libraries = RegisterClass::getInstance('LibrariesHelper');
             $Html->js(arrayFilter(array('jq.ui.core', 'jq.ui.datepicker'), $Libraries->js()), $inline);
             $Html->css(arrayFilter(array('jq.ui.core'), $Libraries->css()), false);
             ?>
             <script type="text/javascript">jreviews.datepicker();</script>
             <?php 
         }
     }
     return $output;
 }
コード例 #24
0
 function index()
 {
     $this->EverywhereAfterFind = true;
     // Triggers the afterFind in the Observer Model
     // Required for ajax pagination to remember module settings
     $Session = RegisterClass::getInstance('MvcSession');
     $module_id = Sanitize::getVar($this->params, 'module_id', Sanitize::getVar($this->data, 'module_id'));
     $cache_file = $module_id . '_' . md5(serialize($this->params));
     if ($this->ajaxRequest) {
         $this->params = $Session->get($module_id, null, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     } else {
         srand((double) microtime() * 1000000);
         $this->params['rand'] = rand();
         //			$Session->set($module_id.'_rand',$this->params['rand'],S2Paths::get('jreviews','S2_CMSCOMP'));
         $Session->set($module_id, $this->params, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     }
     if (!Sanitize::getVar($this->params['module'], 'community')) {
         cmsFramework::noAccess();
         return;
     }
     $conditions = array();
     $joins = array();
     $order = array();
     // Initialize variables
     $id = Sanitize::getInt($this->params, 'id');
     $option = Sanitize::getString($this->params, 'option');
     $view = Sanitize::getString($this->params, 'view');
     $task = Sanitize::getString($this->params, 'task');
     $menu_id = Sanitize::getString($this->params, 'Itemid');
     # Read module parameters
     $extension = Sanitize::getString($this->params['module'], 'extension');
     $user_id = Sanitize::getInt($this->params, 'user', $this->_user->id);
     if (!$user_id && !$this->_user->id) {
         cmsFramework::noAccess();
         return;
     }
     # Cached version
     /*		if($this->_user->id ===0) {
     
     			$page = $this->cached($cache_file);
     	
     			if($page && $this->xajaxRequest) {
     				$xajax->assign('jr_modContainer'.$module_id,'innerHTML',$page);
     				return $xajax;
     			} elseif ($page) {
     				return $page;
     			}
     		}		*/
     $catids_url = Sanitize::getString($this->params['module'], 'category');
     $listing_id = Sanitize::getString($this->params['module'], 'listing');
     if ($extension == 'com_content') {
         $dir_id = Sanitize::getString($this->params['module'], 'dir');
         $section_id = Sanitize::getString($this->params['module'], 'section');
         $criteria_ids = Sanitize::getString($this->params['module'], 'criteria');
     } else {
         $dir_id = null;
         $section_id = null;
         $criteria_ids = null;
     }
     $cat_autodetect = Sanitize::getInt($this->params['module'], 'cat_auto');
     // This parameter determines the module mode
     $sort = Sanitize::getString($this->params['module'], 'reviews_order');
     # Remove unnecessary fields from model query
     //		$this->Review->modelUnbind();
     if ($extension != '') {
         $conditions[] = "Review.mode = '{$extension}'";
     }
     $conditions[] = "Review.userid = " . (int) $user_id;
     # Set conditionals based on configuration parameters
     if ($extension == 'com_content') {
         // Only works for core articles
         $conditions = array_merge($conditions, array('( Listing.publish_up = "' . NULL_DATE . '" OR DATE(Listing.publish_up) <= DATE("' . _CURRENT_SERVER_TIME . '") )', '( Listing.publish_down = "' . NULL_DATE . '" OR DATE(Listing.publish_down) >= DATE("' . _CURRENT_SERVER_TIME . '") )', 'Listing.access <= ' . $this->_user->gid, 'Listing.catid > 0'));
         $conditions[] = $this->Access->canEditListing() ? 'Listing.state >= 0' : 'Listing.state = 1';
         if ($dir_id) {
             $conditions[] = 'JreviewsCategory.dirid IN (' . $dir_id . ')';
         }
         if ($section_id) {
             $conditions[] = 'Listing.sectionid IN (' . $section_id . ')';
         }
         if ($catids_url) {
             $conditions[] = 'Listing.catid IN (' . $catids_url . ')';
         }
     } else {
         if (Sanitize::getInt($this->params['module'], 'cat_auto') && method_exists($this->Listing, 'catUrlParam')) {
             if ($catids_url = Sanitize::getInt($this->passedArgs, $this->Listing->catUrlParam())) {
                 $conditions[] = 'JreviewsCategory.id IN (' . $catids_url . ')';
             }
         } elseif ($catids_url) {
             $conditions[] = 'JreviewsCategory.id IN (' . $catids_url . ')';
         }
     }
     if ($listing_id) {
         $conditions[] = "Review.pid IN ({$listing_id})";
     }
     $conditions[] = 'Review.published > 0';
     switch ($sort) {
         case 'latest':
             $order[] = $this->Review->processSorting('rdate');
             break;
         case 'helpful':
             $order[] = $this->Review->processSorting('helpful');
             break;
         case 'random':
             $order[] = 'RAND(' . $this->params['rand'] . ')';
             break;
         default:
             $order[] = $this->Review->processSorting('rdate');
             break;
     }
     $queryData = array('fields' => array(), 'joins' => $joins, 'conditions' => $conditions, 'order' => $order, 'limit' => $this->module_limit, 'offset' => $this->module_offset);
     # Don't run it here because it's run in the Everywhere Observer Component
     $this->Review->runProcessRatings = false;
     // Excludes listing owner info in Everywhere component
     $this->Review->controller = 'module_reviews';
     $reviews = $this->Review->findAll($queryData);
     if (Sanitize::getInt($this->params['module'], 'ajax_nav', 1)) {
         unset($queryData['order']);
         $count = $this->Review->findCount($queryData, 'DISTINCT Review.id');
     } else {
         $count = $this->module_limit;
     }
     # Send variables to view template
     $this->set(array('Access' => $this->Access, 'User' => $this->_user, 'reviews' => $reviews, 'total' => $count, 'module_id' => $module_id));
     $page = $this->render('community_plugins', 'community_myreviews');
     # Save cached version
     /*		if($this->_user->id ===0) {	
     			$this->cacheView('modules','reviews',$cache_file, $page);
     		}		*/
     if ($this->ajaxRequest) {
         return $this->ajaxResponse($page, false);
     } else {
         return $page;
     }
 }
コード例 #25
0
ファイル: joomla15.php プロジェクト: bizanto/Hooked
 function getConfig($var, $default = null)
 {
     # Will need to add a conversion table for configuration variable names once they start differing between CMSs
     $cmsConfig = RegisterClass::getInstance('JConfig');
     if (isset($cmsConfig->{$var})) {
         return $cmsConfig->{$var};
     } else {
         return $default;
     }
 }
コード例 #26
0
 function com_content_view($passedArgs)
 {
     $this->layout = 'detail';
     $content_row = $passedArgs['row'];
     $content_params = $passedArgs['params'];
     // Escape quotes in meta tags
     $content_row->metadesc = htmlspecialchars($content_row->metadesc, ENT_QUOTES, 'UTF-8');
     $content_row->metakey = htmlspecialchars($content_row->metakey, ENT_QUOTES, 'UTF-8');
     $editor_review = array();
     $editor_ratings_summary = array();
     $editor_review_count = null;
     $reviews = array();
     $ratings_summary = array();
     $review_count = null;
     $crumbs = array();
     // Check if item category is configured for jreviews
     if (!$this->Category->isJreviewsCategory($content_row->catid)) {
         return array('row' => $content_row, 'params' => $content_params);
     }
     # Override content page parameter settings
     //		prx($content_params);
     //		$content_params->set('show_pdf_icon',0);
     //		$content_params->set('show_print_icon',0);
     //		$content_params->set('show_email_icon',0);
     $content_params->set('show_title', 0);
     $content_params->set('item_title', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_category', 0);
     $content_params->set('category', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_section', 0);
     $content_params->set('section', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_author', 0);
     $content_params->set('author', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_create_date', 0);
     $content_params->set('createdate', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_vote', 0);
     $content_params->set('rating', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('show_modify_date', 0);
     $content_params->set('modifydate', 0);
     // J1.0.x & Mambo 4.6.x
     $content_params->set('page_title', '');
     $content_params->set('show_page_title', 0);
     // J1.5.4+
     $content_params->set('show_hits', 0);
     $content_params->set('show_item_navigation', 0);
     $content_params->set('item_navigation', 0);
     // J1.0.x & Mambo 4.6.x
     # Get listing and review summary data
     $fields = array('Criteria.criteria AS `Criteria.criteria`', 'Criteria.tooltips AS `Criteria.tooltips`');
     // Need to query the listing even if view cache enabled because otherwise there's no way to set breadcrumbs and meta data in the content plugin
     $listing = $this->Listing->findRow(array('fields' => $fields, 'conditions' => array('Listing.id = ' . $content_row->id)));
     # Override global configuration
     isset($listing['ListingType']) and $this->Config->override($listing['ListingType']['config']);
     // Override CMS breadcrumbs
     if ($this->Config->breadcrumb_detail_override) {
         App::import('Helper', 'routes');
         $Routes = RegisterClass::getInstance('RoutesHelper');
         $Routes->Config = $this->Config;
         $this->Config->dir_show_breadcrumb = false;
         // Disable the JReviews breadcrumb because there's no need two breadcrumbs on the page
         if ($this->Config->breadcrumb_detail_directory) {
             $crumbs[] = array('name' => $listing['Directory']['title'], 'link' => $Routes->directory($listing, array('return_url' => true)));
         }
         if ($this->Config->breadcrumb_detail_section) {
             $crumbs[] = array('name' => $listing['Section']['title'], 'link' => $Routes->section($listing, $listing['Section'], array('return_url' => true)));
         }
         if ($this->Config->breadcrumb_detail_category) {
             $crumbs[] = array('name' => $listing['Category']['title'], 'link' => $Routes->category($listing, $listing['Section'], $listing['Category'], array('return_url' => true)));
         }
         $crumbs[] = array('name' => $listing['Listing']['title'], 'link' => '');
     }
     # Get cached vesion
     if ($this->_user->id === 0) {
         $page = $this->cached($this->here . 'plugin');
         if ($page) {
             $content_row->text = $page;
             return array('row' => $content_row, 'params' => $content_params, 'listing' => $listing, 'crumbs' => $crumbs);
         }
     }
     $this->owner_id = $listing['Listing']['user_id'];
     // Used in AssetsHelper
     // Check if the listing has any html tags, and if it does, then strip the double /r/r added by J1.5, otherwise it is
     // required for proper spacing of summary and description fields
     if (preg_match('/(<\\w+)(\\s*[^>]*)(>)/', $content_row->text)) {
         $listing['Listing']['text'] = str_replace("\r", '', $content_row->text);
         // Elimites double break between summary and description
     } else {
         $listing['Listing']['text'] = $content_row->text;
     }
     $regex = '/{mosimage\\s*.*?}/i';
     $listing['Listing']['text'] = preg_replace($regex, '', $listing['Listing']['text']);
     # Get editor review data
     if ($this->Config->author_review) {
         $fields = array('Criteria.id AS `Criteria.criteria_id`', 'Criteria.criteria AS `Criteria.criteria`', 'Criteria.state AS `Criteria.state`', 'Criteria.tooltips AS `Criteria.tooltips`', 'Criteria.weights AS `Criteria.weights`');
         //			$joins = $this->Listing->joinsReviews;
         $conditions = array('Review.pid = ' . $listing['Listing']['listing_id'], 'Review.author = 1', 'Review.published = 1');
         $queryData = array('fields' => $fields, 'conditions' => $conditions, 'offset' => 0, 'limit' => $this->Config->editor_limit, 'order' => array($this->Review->processSorting()));
         $editor_review = $this->Review->findAll($queryData);
         $editor_review_count = $this->Review->findCount($queryData);
         if ($editor_review_count <= 1 && $this->Config->author_review == 1) {
             // used for the separate display routine when we are in single-editor-review mode, and also for backwards compat with older templates
             $editor_review = array_shift($editor_review);
         }
         $editor_ratings_summary = array('Rating' => array('average_rating' => $listing['Review']['editor_rating'], 'ratings' => explode(',', $listing['Review']['editor_criteria_rating']), 'criteria_rating_count' => explode(',', $listing['Review']['editor_criteria_rating_count'])), 'Criteria' => $listing['Criteria'], 'summary' => 1);
     }
     # Ger user review data
     if ($this->Config->user_reviews) {
         $fields = array('Review.owner_reply_approved As `Review.owner_reply_approved`', 'Review.owner_reply_text As `Review.owner_reply_text`', 'Criteria.id AS `Criteria.criteria_id`', 'Criteria.criteria AS `Criteria.criteria`', 'Criteria.state AS `Criteria.state`', 'Criteria.tooltips AS `Criteria.tooltips`', 'Criteria.weights AS `Criteria.weights`');
         //			$joins = $this->Listing->joinsReviews;
         $conditions = array('Review.pid= ' . $listing['Listing']['listing_id'], 'Review.author = 0', 'Review.published = 1', 'Review.mode = \'com_content\'', 'JreviewsCategory.`option` = \'com_content\'');
         $queryData = array('fields' => $fields, 'conditions' => $conditions, 'offset' => 0, 'limit' => $this->Config->user_limit, 'order' => array($this->Review->processSorting($this->Config->user_review_order)));
         $reviews = $this->Review->findAll($queryData);
         $review_count = $this->Review->findCount($queryData);
         $ratings_summary = array('Rating' => array('average_rating' => $listing['Review']['user_rating'], 'ratings' => explode(',', $listing['Review']['user_criteria_rating']), 'criteria_rating_count' => explode(',', $listing['Review']['user_criteria_rating_count'])), 'Criteria' => $listing['Criteria'], 'summary' => 1);
     }
     # Get custom fields for review form if form is shown on page
     $review_fields = $this->review_fields = $this->Field->getFieldsArrayNew($listing['Criteria']['criteria_id'], 'review');
     $security_code = '';
     if ($this->Access->showCaptcha) {
         $captcha = $this->Captcha->displayCode();
         $security_code = $captcha['image'];
     }
     # Initialize review array and set Criteria and extension keys
     $review = $this->Review->init();
     $review['Criteria'] = $listing['Criteria'];
     $review['Review']['extension'] = $listing['Listing']['extension'];
     # check for duplicate reviews
     $is_jr_editor = $this->Access->isJreviewsEditor($this->_user->id);
     $this->_user->duplicate_review = false;
     // It's a guest so we only care about checking the IP address if this feature is not disabled and
     // server is not localhost
     if (!$this->_user->id) {
         if (!$this->Config->review_ipcheck_disable && $this->ipaddress != '127.0.0.1') {
             // Do the ip address check everywhere except in localhost
             $this->_user->duplicate_review = (bool) $this->Review->findCount(array('conditions' => array('Review.pid = ' . $content_row->id, "Review.ipaddress = '{$this->ipaddress}'", "Review.mode = 'com_content'", "Review.author = 0", "Review.published >= 0")));
         }
     } elseif (!$is_jr_editor && !$this->Config->user_multiple_reviews || $is_jr_editor && $this->Config->author_review == 2) {
         $this->_user->duplicate_review = (bool) $this->Review->findCount(array('conditions' => array('Review.pid = ' . $content_row->id, "(Review.userid = {$this->_user->id}" . ($this->ipaddress != '127.0.0.1' && !$this->Config->review_ipcheck_disable && !$is_jr_editor ? " OR Review.ipaddress = '{$this->ipaddress}') " : ')'), "Review.mode = 'com_content'", "Review.published >= 0", $this->Config->author_review == 0 ? "Review.author = 0" : "Review.author >= 0")));
     }
     /** HTGMOD - #1490 **/
     if (isset($listing['Field']['pairs']['jr_brufoss']) && $listing['Field']['pairs']['jr_brufoss']['value'][0] == 1) {
         $this->viewSuffix = '_brufoss';
     }
     /** END HTGMOD **/
     $this->set(array('extension' => 'com_content', 'Access' => $this->Access, 'User' => $this->_user, 'listing' => $listing, 'editor_review' => $editor_review, 'reviews' => $reviews, 'ratings_summary' => $ratings_summary, 'editor_ratings_summary' => $editor_ratings_summary, 'review_count' => $review_count, 'editor_review_count' => $editor_review_count, 'review_fields' => $review_fields, 'review' => $review, 'captcha' => $security_code));
     $content_row->text = $this->render('listings', 'detail');
     # Save cached version
     if ($this->_user->id === 0) {
         $this->cacheView('listings', 'detail', $this->here . 'plugin', $content_row->text);
     }
     return array('row' => $content_row, 'params' => $content_params, 'listing' => $listing, 'crumbs' => $crumbs);
 }
コード例 #27
0
 function index()
 {
     $this->EverywhereAfterFind = true;
     // Triggers the afterFind in the Observer Model
     if (!isset($this->params['module'])) {
         $this->params['module'] = array();
     }
     // For direct calls to the controller
     // Required for ajax pagination to remember module settings
     $Session = RegisterClass::getInstance('MvcSession');
     $module_id = Sanitize::getInt($this->params, 'module_id', Sanitize::getInt($this->data, 'module_id'));
     if ($this->ajaxRequest) {
         $this->params = $Session->get('module_params' . $module_id, null, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     } else {
         srand((double) microtime() * 1000000);
         $this->params['rand'] = rand();
         $Session->set('module_rand' . $module_id, $this->params['rand'], S2Paths::get('jreviews', 'S2_CMSCOMP'));
         $Session->set('module_params' . $module_id, $this->params, S2Paths::get('jreviews', 'S2_CMSCOMP'));
     }
     # Prevent sql injection
     $token = Sanitize::getString($this->params, 'token');
     $tokenMatch = 0 === strcmp($token, cmsFramework::formIntegrityToken($this->params, array('module', 'module_id', 'form', 'data'), false));
     $this->viewSuffix = Sanitize::getString($this->params['module'], 'tmpl_suffix');
     $conditions = array();
     $joins = array();
     $order = array();
     # Read module parameters
     $extension = Sanitize::getString($this->params['module'], 'extension');
     $reviews_type = Sanitize::getString($this->params['module'], 'reviews_type');
     $custom_where = Sanitize::getString($this->params['module'], 'custom_where');
     $cat_id = Sanitize::getString($this->params['module'], 'category');
     $listing_id = Sanitize::getString($this->params['module'], 'listing');
     if ($extension == 'com_content') {
         $dir_id = Sanitize::getString($this->params['module'], 'dir');
         $section_id = Sanitize::getString($this->params['module'], 'section');
         $criteria_id = Sanitize::getString($this->params['module'], 'criteria');
     } else {
         $dir_id = null;
         $section_id = null;
         $criteria_id = null;
     }
     // This parameter determines the module mode
     $sort = Sanitize::getString($this->params['module'], 'reviews_order');
     # Category auto detect
     if (Sanitize::getInt($this->params['module'], 'cat_auto') && $extension == 'com_content') {
         $ids = CommonController::_discoverIDs($this);
         extract($ids);
     }
     $extension != '' and $conditions[] = "Review.mode = " . $this->quote($extension);
     # Set conditionals based on configuration parameters
     if ($extension == 'com_content') {
         $conditions = array_merge($conditions, array('Listing.state = 1', '( Listing.publish_up = "' . NULL_DATE . '" OR DATE(Listing.publish_up) <= DATE("' . _CURRENT_SERVER_TIME . '") )', '( Listing.publish_down = "' . NULL_DATE . '" OR DATE(Listing.publish_down) >= DATE("' . _CURRENT_SERVER_TIME . '") )', 'Listing.access <= ' . $this->_user->gid));
         $cat_id != '' and $conditions[] = 'Listing.catid IN (' . cleanIntegerCommaList($cat_id) . ')';
         $cat_id == '' and $section_id != '' and $conditions[] = 'Listing.sectionid IN (' . cleanIntegerCommaList($section_id) . ')';
         $cat_id == '' and $dir_id != '' and $conditions[] = 'JreviewsCategory.dirid IN (' . cleanIntegerCommaList($dir_id) . ')';
         $cat_id == '' and $criteria_id != '' and $conditions[] = 'JreviewsCategory.criteriaid IN (' . cleanIntegerCommaList($criteria_id) . ')';
     } else {
         if (Sanitize::getInt($this->params['module'], 'cat_auto') && isset($this->Listing) && method_exists($this->Listing, 'catUrlParam')) {
             if ($cat_id = Sanitize::getInt($this->passedArgs, $this->Listing->catUrlParam())) {
                 $conditions[] = 'JreviewsCategory.id IN (' . $cat_id . ')';
             }
         } elseif ($cat_id) {
             $conditions[] = 'JreviewsCategory.id IN (' . cleanIntegerCommaList($cat_id) . ')';
         }
     }
     $listing_id and $conditions[] = "Review.pid IN ( " . cleanIntegerCommaList($listing_id) . ")";
     $conditions[] = 'Review.published > 0';
     switch ($sort) {
         case 'latest':
             $order[] = $this->Review->processSorting('rdate');
             break;
         case 'helpful':
             $order[] = $this->Review->processSorting('helpful');
             break;
         case 'random':
             $order[] = 'RAND(' . $this->params['rand'] . ')';
             break;
         default:
             $order[] = $this->Review->processSorting('rdate');
             break;
     }
     switch ($reviews_type) {
         case 'all':
             break;
         case 'user':
             $conditions[] = 'Review.author = 0';
             break;
         case 'editor':
             $conditions[] = 'Review.author = 1';
             break;
     }
     # Custom WHERE
     $tokenMatch and $custom_where and $conditions[] = $custom_where;
     $queryData = array('joins' => $joins, 'conditions' => $conditions, 'order' => $order, 'limit' => $this->module_limit, 'offset' => $this->module_offset);
     # Don't run it here because it's run in the Everywhere Observer Component
     $this->Review->runProcessRatings = false;
     // Excludes listing owner info in Everywhere component
     $this->Review->controller = 'module_reviews';
     $reviews = $this->Review->findAll($queryData);
     if (Sanitize::getInt($this->params['module'], 'ajax_nav', 1)) {
         unset($queryData['order']);
         $count = $this->Review->findCount($queryData, 'DISTINCT Review.id');
     } else {
         $count = $this->module_limit;
     }
     # Send variables to view template
     $this->set(array('Access' => $this->Access, 'User' => $this->_user, 'reviews' => $reviews, 'total' => $count));
     $page = $this->render('modules', 'reviews');
     if ($this->ajaxRequest) {
         return $this->ajaxResponse($page, false);
     } else {
         return $page;
     }
 }
コード例 #28
0
ファイル: field.php プロジェクト: bizanto/Hooked
 function save(&$data, $location = 'listing', $isNew, &$validFields)
 {
     $msg = '';
     $fieldLocation = inflector::camelize($location);
     // Check if there are custom fields to save or exit
     if (isset($data['Field']) && (!is_array($data['Field'][$fieldLocation]) || count($data['Field'][$fieldLocation]) == 1)) {
         return $msg;
     }
     // Define field types that accept predefined options to store the reference values
     $optionsArray = array("select", "selectmultiple", "checkboxes", "radiobuttons");
     if (!empty($validFields)) {
         foreach ($validFields as $validField) {
             $fieldName = $validField['name'];
             $inputValue = '';
             if (Sanitize::getVar($data['Field'][$fieldLocation], $fieldName, '') != '' || $validField['type'] == 'code' && Sanitize::getVar($data['__raw']['Field'][$fieldLocation], $fieldName, '') != '') {
                 switch ($validField['type']) {
                     case 'selectmultiple':
                     case 'checkboxes':
                         //Checks for types with options
                         $multi_options = Sanitize::getVar($data['Field'][$fieldLocation], $fieldName, '');
                         $inputValue = '*' . implode('*', $multi_options) . '*';
                         break;
                     case 'select':
                     case 'radiobuttons':
                         //Checks for types with options
                         $inputValue = '*' . Sanitize::getString($data['Field'][$fieldLocation], $fieldName) . '*';
                         break;
                     case 'code':
                         // Affiliate code left unfiltered
                         $inputValue = Sanitize::getString($data['__raw']['Field'][$fieldLocation], $fieldName, '');
                         break;
                     case 'decimal':
                         $inputValue = Sanitize::getFloat($data['Field'][$fieldLocation], $fieldName);
                         break;
                     case 'integer':
                         $inputValue = Sanitize::getInt($data['Field'][$fieldLocation], $fieldName);
                         break;
                     case 'date':
                         if (Sanitize::getString($data['Field'][$fieldLocation], $fieldName) != '' && Sanitize::getString($data['Field'][$fieldLocation], $fieldName) != null) {
                             $inputValue = strftime(_CURRENT_SERVER_TIME_FORMAT, strtotime(Sanitize::getString($data['Field'][$fieldLocation], $fieldName)));
                         } else {
                             $inputValue = '';
                         }
                         break;
                     case 'textarea':
                     case 'text':
                         if (isset($validField['_params']['allow_html']) && $validField['_params']['allow_html'] == 1) {
                             $inputValue = Sanitize::stripScripts(Sanitize::getVar($data['__raw']['Field'][$fieldLocation], $fieldName));
                             $inputValue = stripslashes($inputValue);
                         } else {
                             $inputValue = Sanitize::getString($data['Field'][$fieldLocation], $fieldName, '');
                         }
                         break;
                     case 'website':
                     case 'email':
                         $inputValue = Sanitize::stripScripts(Sanitize::getVar($data['Field'][$fieldLocation], $fieldName));
                         break;
                     default:
                         $inputValue = Sanitize::getVar($data['Field'][$fieldLocation], $fieldName);
                         break;
                 }
                 # Modify form post arrays to current values
                 if ($inputValue === '' || $inputValue === '**') {
                     $inputValue = '';
                 }
                 $data['Field'][$fieldLocation][$fieldName] = $inputValue;
             } else {
                 // To clear multiple choice fields
                 switch ($validField['type']) {
                     case 'decimal':
                     case 'integer':
                         $data['Field'][$fieldLocation][$fieldName] = null;
                         break;
                     default:
                         $data['Field'][$fieldLocation][$fieldName] = '';
                         break;
                 }
             }
             // Debug custom fields array
             $msg .= "{$validField['name']}=>{$inputValue}" . "<br />";
         }
     }
     # Need to check if jreviews_content or jreviews_reviews record exists to decide whether to insert or update the table
     if ($location == 'review') {
         App::import('Model', 'jreviews_review_field', 'jreviews');
         $JreviewsReviewFieldModel = new JreviewsReviewFieldModel();
         $recordExists = $JreviewsReviewFieldModel->findCount(array('conditions' => array('JreviewsReviewField.reviewid= ' . $data['Field']['Review']['reviewid'])));
     } else {
         App::import('Model', 'jreviews_content', 'jreviews');
         $JreviewsContentModel = new JreviewsContentModel();
         $recordExists = $JreviewsContentModel->findCount(array('conditions' => array('JreviewsContent.contentid = ' . $data['Listing']['id'])));
     }
     $dbAction = $recordExists ? 'update' : 'insert';
     if ($location == 'review') {
         $this->{$dbAction}('#__jreviews_review_fields', $fieldLocation, $data['Field'], 'reviewid');
     } else {
         if (Configure::read('PaidListings.enabled') && Sanitize::getInt($data, 'paid_category')) {
             # PaidListings integration - saves all fields to jreviews_paid_listing_fields table and removes unpaid fields from jreviews_content table
             $PaidListingField = RegisterClass::getInstance('PaidListingFieldModel');
             $PaidListingField->save($data);
         }
         $this->{$dbAction}('#__jreviews_content', $fieldLocation, $data['Field'], 'contentid');
     }
 }
コード例 #29
0
ファイル: geomaps.php プロジェクト: bizanto/Hooked
 /**
 * Used in map popup to update the listing's coordinates
 */
 function saveGeocodePopup($data)
 {
     App::import('Model', 'jreviews_content');
     $Field = RegisterClass::getInstance('JreviewsContentModel');
     $data['JreviewsContent'] =& $data['Field']['Listing'];
     if (!$Field->store($data)) {
         return false;
     }
     return true;
 }
コード例 #30
0
ファイル: reviews_controller.php プロジェクト: bizanto/Hooked
 function myreviews($params)
 {
     if ($this->_user->id === 0) {
         $this->cacheAction = Configure::read('Cache.expires');
     }
     $page = array();
     // Set layout
     $this->layout = 'reviews';
     $this->autoRender = false;
     // Triggers the afterFind in the Observer Model
     $this->EverywhereAfterFind = true;
     $user_id = Sanitize::getInt($this->params, 'user');
     if (!$user_id && !$this->_user->id) {
         echo cmsFramework::noAccess();
         $this->autoRender = false;
         return;
     }
     if (!$user_id) {
         $user_id = $this->_user->id;
     }
     $queryData = array('conditions' => array('Review.userid= ' . $user_id, 'Review.published = 1'), 'fields' => array('Review.mode AS `Review.extension`'), 'offset' => $this->offset, 'limit' => $this->limit, 'order' => array('Review.created DESC'));
     # Don't run it here because it's run in the Everywhere Observer Component
     $this->Review->runProcessRatings = false;
     $reviews = $this->Review->findAll($queryData);
     if (empty($reviews)) {
         return __t("No reviews were found.", true);
     }
     $count = $this->Review->findCount($queryData);
     $review = current($reviews);
     App::import('Helper', 'community', 'jreviews');
     $Community = RegisterClass::getInstance('CommunityHelper');
     $Community->Config =& $this->Config;
     $page['title'] = $page['description'] = sprintf(__t("Reviews written by %s", true), $Community->screenName($review, false));
     $this->set(array('Access' => $this->Access, 'User' => $this->_user, 'reviews' => $reviews, 'pagination' => array('total' => $count, 'offset' => ($this->page - 1) * $this->limit), 'page' => $page));
     return $this->render('reviews', 'reviews');
 }