/* Used for Export Import
* Set in layout so users can select columns
*/
/*
public static function getProductColumns() {
$a = array();
$app = Factory::getApplication();
$paramsC = PhocacartUtils::getComponentParameters();
$export_attributes = $paramsC->get( 'export_attributes', 1 );
$export_specifications = $paramsC->get( 'export_specifications', 1 );
$export_downloads = $paramsC->get( 'export_downloads', 0 );
//$a[] = array('catid', 'COM_PHOCACART_FIELD__LABEL');
// Categories, Images, Attributes, Specifications
$a[] = array('id', 'JGLOBAL_FIELD_ID_LABEL');
$a[] = array('title', 'COM_PHOCACART_FIELD_TITLE_LABEL');
$a[] = array('alias', 'COM_PHOCACART_FIELD_ALIAS_LABEL');
$a[] = array('sku', 'COM_PHOCACART_FIELD_SKU_LABEL');
$a[] = array('ean', 'COM_PHOCACART_FIELD_EAN_LABEL');
$a[] = array('price', 'COM_PHOCACART_FIELD_PRICE_LABEL');
$a[] = array('price_original', 'COM_PHOCACART_FIELD_ORIGINAL_PRICE_LABEL');
// TAX***
//$a[] = array('tax_id', 'COM_PHOCACART_FIELD_TAX_LABEL');
$a[] = array('tax', 'COM_PHOCACART_FIELD_TAX_LABEL');
// CATEGORIES (not exist in query)
$a[] = array('categories', 'COM_PHOCACART_CATEGORIES');
// MANUFACTURER***
//$a[] = array('manufacturer_id', 'COM_PHOCACART_FIELD_MANUFACTURER_LABEL');
$a[] = array('manufacturer', 'COM_PHOCACART_FIELD_MANUFACTURER_LABEL');
$a[] = array('upc', 'COM_PHOCACART_FIELD_UPC_LABEL');
$a[] = array('jan', 'COM_PHOCACART_FIELD_JAN_LABEL');
$a[] = array('isbn', 'COM_PHOCACART_FIELD_ISBN_LABEL');
$a[] = array('mpn', 'COM_PHOCACART_FIELD_MPN_LABEL');
$a[] = array('serial_number', 'COM_PHOCACART_FIELD_SERIAL_NUMBER_LABEL');
$a[] = array('registration_key', 'COM_PHOCACART_FIELD_REGISTRATION_KEY_LABEL');
$a[] = array('external_id', 'COM_PHOCACART_FIELD_EXTERNAL_PRODUCT_ID_LABEL');
$a[] = array('external_key', 'COM_PHOCACART_FIELD_EXTERNAL_PRODUCT_KEY_LABEL');
$a[] = array('external_link', 'COM_PHOCACART_FIELD_EXTERNAL_LINK_LABEL');
$a[] = array('external_text', 'COM_PHOCACART_FIELD_EXTERNAL_TEXT_LABEL');
$a[] = array('access', 'JFIELD_ACCESS_LABEL');
$a[] = array('featured', 'COM_PHOCACART_FIELD_FEATURED_LABEL');
$a[] = array('video', 'COM_PHOCACART_FIELD_VIDEO_URL_LABEL');
$a[] = array('public_download_file', 'COM_PHOCACART_FIELD_PUBLIC_DOWNLOAD_FILE_LABEL');
$a[] = array('description', 'COM_PHOCACART_FIELD_DESCRIPTION_LABEL');
$a[] = array('description_long', 'COM_PHOCACART_FIELD_DESCRIPTION_LONG_LABEL');
$a[] = array('image', 'COM_PHOCACART_FIELD_IMAGE_LABEL');
// IMAGES (not exist in query)
$a[] = array('images', 'COM_PHOCACART_ADDITIONAL_IMAGES');
if ($export_attributes == 1) {
// ATTRIBUTES (not exist in query)
$a[] = array('attributes', 'COM_PHOCACART_ATTRIBUTES');
}
if ($export_specifications == 1) {
// SPECIFICATIONS (not exist in query)
$a[] = array('specifications', 'COM_PHOCACART_SPECIFICATIONS');
}
// RELATED_PRODUCTS (not exist in query)
$a[] = array('related', 'COM_PHOCACART_RELATED_PRODUCTS');
$a[] = array('stock', 'COM_PHOCACART_FIELD_IN_STOCK_LABEL');
$a[] = array('stockstatus_a_id', 'COM_PHOCACART_FIELD_STOCK_STATUS_A_LABEL');
$a[] = array('stockstatus_n_id', 'COM_PHOCACART_FIELD_STOCK_STATUS_B_LABEL');
$a[] = array('min_quantity', 'COM_PHOCACART_FIELD_MIN_ORDER_QUANTITY_LABEL');
$a[] = array('min_multiple_quantity', 'COM_PHOCACART_FIELD_MIN_MULTIPLE_ORDER_QUANTITY_LABEL');
//$a[] = array('availability', 'COM_PHOCACART_FIELD_AVAILABILITY_LABEL');
if ($export_downloads == 1) {
$a[] = array('download_token', 'COM_PHOCACART_FIELD_DOWNLOAD_TOKEN_LABEL');
$a[] = array('download_folder', 'COM_PHOCACART_FIELD_DOWNLOAD_FOLDER_LABEL');
$a[] = array('download_file', 'COM_PHOCACART_FIELD_DOWNLOAD_FILE_LABEL');
$a[] = array('download_hits', 'COM_PHOCACART_FIELD_DOWNLOAD_HITS_LABEL');
}
$a[] = array('length', 'COM_PHOCACART_FIELD_LENGTH_LABEL');
$a[] = array('width', 'COM_PHOCACART_FIELD_WIDTH_LABEL');
$a[] = array('height', 'COM_PHOCACART_FIELD_HEIGHT_LABEL');
//$a[] = array('unit_size', 'COM_PHOCACART_FIELD_UNIT_SIZE_LABEL');
$a[] = array('weight', 'COM_PHOCACART_FIELD_WEIGHT_LABEL');
//$a[] = array('unit_weight', 'COM_PHOCACART_FIELD_UNIT_WEIGHT_LABEL');
$a[] = array('volume', 'COM_PHOCACART_FIELD_VOLUME_LABEL');
//$a[] = array('unit_volume', 'COM_PHOCACART_FIELD__LABEL');
$a[] = array('unit_amount', 'COM_PHOCACART_FIELD_UNIT_AMOUNT_LABEL');
$a[] = array('unit_unit', 'COM_PHOCACART_FIELD_UNIT_UNIT_LABEL');
$a[] = array('published', 'COM_PHOCACART_FIELD_PUBLISHED_LABEL');
$a[] = array('language', 'JFIELD_LANGUAGE_LABEL');
$a[] = array('date', 'COM_PHOCACART_FIELD_DATE_LABEL');
// TAGS (not exist in query)
$a[] = array('tags', 'COM_PHOCACART_TAGS');
$a[] = array('metakey', 'JFIELD_META_KEYWORDS_LABEL');
$a[] = array('metadesc', 'JFIELD_META_DESCRIPTION_LABEL');
//$a[] = array('ordering', 'COM_PHOCACART_FIELD_ORDERING_LABEL');
//$a[] = array('allow_upload', 'COM_PHOCACART_FIELD_ALLOW_UPLOAD_LABEL');
//$a[] = array('custom_text', 'COM_PHOCACART_FIELD_CUSTOM_TEXT_LABEL');
//$a[] = array('checked_out', 'COM_PHOCACART_FIELD__LABEL');
//$a[] = array('checked_out_time', 'COM_PHOCACART_FIELD__LABEL');
//$a[] = array('hits', 'COM_PHOCACART_FIELD_HITS_LABEL');
//$a[] = array('sales', 'COM_PHOCACART_FIELD__LABEL');
//$a[] = array('params', 'COM_PHOCACART_FIELD__LABEL');
//$a[] = array('metadata', 'COM_PHOCACART_FIELD__LABEL');
return $a;
} */
public static function featured($pks, $value = 0)
{
// Sanitize the ids.
$pks = (array) $pks;
ArrayHelper::toInteger($pks);
$app = Factory::getApplication();
if (empty($pks)) {
$app->enqueueMessage(Text::_('COM_PHOCACART_NO_ITEM_SELECTED'), 'message');
return false;
}
//$table = $this->getTable('PhocacartFeatured', 'Table');
$table = Table::getInstance('PhocacartFeatured', 'Table', array());
try {
$db = Factory::getDbo();
$query = $db->getQuery(true)->update($db->quoteName('#__phocacart_products'))->set('featured = ' . (int) $value)->where('id IN (' . implode(',', $pks) . ')');
$db->setQuery($query);
$db->execute();
if ((int) $value == 0) {
// Adjust the mapping table.
// Clear the existing features settings.
$query = $db->getQuery(true)->delete($db->quoteName('#__phocacart_product_featured'))->where('product_id IN (' . implode(',', $pks) . ')');
$db->setQuery($query);
$db->execute();
} else {
// first, we find out which of our new featured articles are already featured.
$query = $db->getQuery(true)->select('f.product_id')->from('#__phocacart_product_featured AS f')->where('product_id IN (' . implode(',', $pks) . ')');
//echo $query;
$db->setQuery($query);
$old_featured = $db->loadColumn();
// we diff the arrays to get a list of the articles that are newly featured
$new_featured = array_diff($pks, $old_featured);
// Featuring.
$tuples = array();
foreach ($new_featured as $pk) {
$tuples[] = $pk . ', 0';
}
if (count($tuples)) {
$db = Factory::getDbo();
$columns = array('product_id', 'ordering');
$query = $db->getQuery(true)->insert($db->quoteName('#__phocacart_product_featured'))->columns($db->quoteName($columns))->values($tuples);
$db->setQuery($query);
$db->execute();
}
}
} catch (Exception $e) {
$app->enqueueMessage($e->getMessage(), 'message');
return false;
}
$table->reorder();
//$this->cleanCache();
return true;
}