Back to PhocacartProduct class

Method featured

public static
(mixed $pks, mixed $value = 0)

Method featured - Source code

/* 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;
}