Example #1
0
 public function get_row()
 {
     $db = JFactory::getDbo();
     if (WDFInput::get('type')) {
         $id = WDFInput::get('id');
     } else {
         $id = WDFInput::get('category_id', WDFParams::get('category_id', 0, 'int'));
     }
     $row = WDFDb::get_row('categories', array($db->quoteName('id') . ' = ' . $id, $db->quoteName('published') . ' = 1'));
     if ($row->id == 0) {
         $row->id = 0;
         $row->name = JText::_('root');
     }
     // additional data
     // path categories
     $row->path_categories = $this->get_category_path_categories($row->id);
     // info
     if (WDFInput::get('type')) {
         $row->show_info = WDFInput::get('show_info');
     } else {
         $row->show_info = WDFParams::get('show_info', 1);
     }
     // image
     if ($row->images != null) {
         $images = WDFJson::decode($row->images);
         $row->image = empty($images) == false ? $images[0] : '';
     } else {
         $row->image = '';
     }
     // subcategories
     if (WDFInput::get('type')) {
         $row->show_subcategories = WDFInput::get('show_subcategories');
     } else {
         $row->show_subcategories = WDFParams::get('show_subcategories', 1);
     }
     if (WDFInput::get('type')) {
         $row->subcategories_cols = WDFInput::get('number_columns');
     } else {
         $row->subcategories_cols = WDFParams::get('subcategories_cols', 1);
     }
     $subcategories = $this->get_category_subcategories($row->id);
     if ($subcategories === false) {
         WDFHelper::redirect('systempages', 'displayerror', '', 'code=2');
     }
     $row->subcategories = $subcategories;
     if (empty($row->subcategories) == true) {
         $row->show_subcategories = 0;
     }
     // category tree
     if (WDFInput::get('type')) {
         $row->show_tree = WDFInput::get('show_path');
     } else {
         $row->show_tree = WDFParams::get('show_tree', 1);
     }
     // products and count
     if (WDFInput::get('type')) {
         $row->show_products = WDFInput::get('show_products');
     } else {
         $row->show_products = WDFParams::get('show_products', 1);
     }
     if (WDFInput::get('type')) {
         $row->products_count = WDFInput::get('products_count');
     } else {
         $row->products_count = WDFParams::get('products_count');
     }
     $row->products = array();
     if ($row->show_products == 1) {
         $products = $this->get_category_products($row->id, $row->products_count);
         if ($products === false) {
             WDFHelper::redirect('systempages', 'displayerror', '', 'code=2');
         }
         $row->products = $products;
     }
     if (empty($row->products) == true) {
         $row->show_products = 0;
     }
     // url view products
     $row->url_view_products = JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displayproducts&search_category_id=' . $row->id);
     return $row;
 }
Example #2
0
 private function get_product_rows($ids, $use_search_and_filters = false, $pagination = null, $use_menu_params = false)
 {
     if ($ids != null && is_array($ids) == false) {
         $ids = array($ids);
     }
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $model_options = WDFHelper::get_model('options');
     $options = $model_options->get_options();
     $module_filters = WDFInput::get('module_filters');
     $decimals = $options->option_show_decimals == 1 ? 2 : 0;
     $row_default_currency = WDFDb::get_row('currencies', $db->quoteName('default') . ' = 1');
     //get products data
     $query->clear();
     $query = $this->add_product_rows_query_select($query);
     $query = $this->add_product_rows_query_from($query);
     if ($ids != null) {
         $query = $this->add_product_rows_query_where_ids($query, $ids);
     }
     if ($use_search_and_filters == true) {
         $query = $this->add_product_rows_query_where_filter_name($query);
         $query = $this->add_product_rows_query_where_filter_category($query);
         if ($query === false) {
             WDFHelper::redirect('systempages', 'displayerror', '', 'code=2');
         }
         $query = $this->add_product_rows_query_where_filter_manufacturer($query);
         $query = $this->add_product_rows_query_where_filter_price($query);
         $query = $this->add_product_rows_query_where_filter_date_added($query);
         $query = $this->add_product_rows_query_where_filter_minimum_rating($query);
         $query = $this->add_product_rows_query_where_filter_tags($query);
         $query = $this->add_product_rows_query_order($query);
     } else {
         if ($use_menu_params == true) {
             $query = $this->add_product_rows_query_where_filter_menu_params($query);
         }
     }
     $query->where('T_PRODUCTS.published = 1');
     if ($pagination != null) {
         $db->setQuery($query, $pagination->limitstart, $pagination->limit);
     } else {
         $db->setQuery($query);
     }
     $product_rows = $db->loadObjectList();
     if ($db->getErrorNum()) {
         return false;
     }
     // additional data
     foreach ($product_rows as $product_row) {
         // url
         $product_row->url = JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displayproduct&product_id=' . $product_row->id);
         $product_row->url_absolute = WDFUrl::get_site_url() . 'index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displayproduct&product_id=' . $product_row->id;
         // image
         $images = WDFJson::decode($product_row->images);
         $product_row->image = empty($images) == false ? $images[0] : '';
         //videos
         $product_row->videos = WDFJson::decode($product_row->videos);
         // label
         $label_thumbs = WDFJson::decode($product_row->label_thumb);
         $product_row->label_thumb = empty($label_thumbs) == false ? $label_thumbs[0] : '';
         // rating
         $product_row->rating_url = '';
         $product_row->rating_msg = '';
         if ($options->feedback_enable_guest_feedback == 0 && WDFHelper::is_user_logged_in() == false) {
             $product_row->can_rate = 0;
             $product_row->rating_msg = WDFText::get('MSG_LOG_IN_TO_RATE');
         } elseif ($product_row->can_rate == 0) {
             $product_row->rating_msg = WDFText::get('MSG_YOU_HAVE_ALREADY_RATED_THIS_PRODUCT');
         } else {
             $product_row->rating_url = WDFUrl::get_site_url() . 'index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=ajax_rate_product&product_id=' . $product_row->id;
         }
         // category
         $product_row->category_url = $product_row->category_id == 0 ? '' : JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=categories&task=displaycategory&category_id=' . $product_row->category_id);
         // manufacturer
         $product_row->manufacturer_url = $product_row->manufacturer_id == 0 ? '' : JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=manufacturers&task=displaymanufacturer&manufacturer_id=' . $product_row->manufacturer_id);
         $manufacturer_logos = WDFJson::decode($product_row->manufacturer_logo);
         $product_row->manufacturer_logo = empty($manufacturer_logos) == true ? '' : $manufacturer_logos[0];
         // prices
         $product_row->price_text = number_format($product_row->price, $decimals);
         $product_row->market_price_text = $product_row->market_price != '0.00' ? number_format($product_row->market_price, $decimals) : '';
         // currency symbols
         if ($row_default_currency->sign_position == 0) {
             $product_row->price_text = $row_default_currency->sign . $product_row->price_text;
             $product_row->market_price_text = $product_row->market_price != '0.00' ? $row_default_currency->sign . $product_row->market_price_text : '';
         } else {
             $product_row->price_text = $product_row->price_text . $row_default_currency->sign;
             $product_row->market_price_text = $product_row->market_price != '0.00' ? $product_row->market_price_text . $row_default_currency->sign : '';
         }
         $product_row->currency_sign = $row_default_currency->sign;
         // availability
         if ($product_row->unlimited == 1) {
             $product_row->is_available = true;
             $product_row->available_msg = WDFText::get('IN_STOCK');
             $product_row->stock_class = 'class="wd_in_stock"';
         } elseif ($product_row->amount_in_stock > 0) {
             $product_row->is_available = true;
             $product_row->available_msg = WDFText::get('IN_STOCK') . ': ' . $product_row->amount_in_stock;
             $product_row->stock_class = 'class="wd_in_stock"';
         } else {
             $product_row->is_available = false;
             $product_row->available_msg = WDFText::get('OUT_OF_STOCK');
             $product_row->stock_class = 'class="wd_out_of_stock"';
         }
         // checkout privileges
         $products_in_stock = $product_row->amount_in_stock > 0 || $product_row->unlimited == 1 ? true : false;
         $product_row->can_checkout = $products_in_stock == true ? true : false;
         // compare url
         $product_row->compare_url = JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displaycompareproducts&product_id=' . $product_row->id);
         // review urls
         $product_row->reviews_url = JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displayproductreviews&product_id=' . $product_row->id);
         $product_row->write_review_url = JRoute::_('index.php?option=com_' . WDFHelper::get_com_name() . '&controller=products&task=displayproductreviews&product_id=' . $product_row->id . '&write_review=1');
     }
     return $product_rows;
 }
Example #3
0
 public function save_product_review()
 {
     $app = JFactory::getApplication();
     $model_options = WDFHelper::get_model('options');
     $options = $model_options->get_options();
     // check is guest feedback enabled
     if ($options->feedback_enable_guest_feedback != 0 || WDFHelper::is_user_logged_in() == true) {
         $j_user = JFactory::getUser();
         $feedback_published = $options->feedback_publish_review_when_added == 1 ? 1 : 0;
         $product_id = WDFInput::get('product_id', 0, 'int');
         $feedback_user_name = $j_user ? $j_user->name : '';
         $feedback_sender_name = WDFInput::get('user_name');
         $feedback_text = JRequest::getVar('review_text', '', 'post', 'string', JREQUEST_ALLOWRAW);
         if ($feedback_sender_name == '' || $feedback_text == '') {
             $app->enqueueMessage(WDFText::get('MSG_FAILED_TO_SUBMIT_REVIEW'), 'error');
         } else {
             $row_feedback = WDFDb::get_table_instance('feedback');
             $row_feedback->j_user_id = $j_user->id;
             $row_feedback->user_ip_address = WDFUtils::get_client_ip_address();
             $row_feedback->user_name = $feedback_user_name;
             $row_feedback->sender_name = $feedback_sender_name;
             $row_feedback->product_id = $product_id;
             $row_feedback->date = date('Y-m-d H:i:s');
             $row_feedback->text = $feedback_text;
             $row_feedback->published = $feedback_published;
             if ($row_feedback->store() == false) {
                 $app->enqueueMessage(WDFText::get('MSG_FAILED_TO_SUBMIT_REVIEW'), 'error');
             } else {
                 $msg = $feedback_published == true ? WDFText::get('MSG_REVIEW_PUBLISHED') : WDFText::get('MSG_REVIEW_SUBMITTED');
                 $this->sent_review_notification_email($product_id);
                 $app->enqueueMessage($msg, 'message');
             }
         }
     }
     WDFHelper::redirect('products', 'displayproductreviews&product_id=' . $product_id);
 }