yf_shop user moduleShop module.
| File | plugins/shop/modules/yf_shop.class.php |
|---|---|
| Use | module('shop'), URL ?object=shop |
| Extends | yf_module |
A site sets them in its config with $PROJECT_CONF['shop']['NAME'] = ...;
| Property | Default | Description |
|---|---|---|
$ATTRIBUTES_CAT_ID |
1 |
|
$COMPANY_INFOarray |
|
forum settings (default values) |
$CURRENCYstring |
'$' |
Default currency |
$FORCE_GROUP_PAYForce |
[] |
payment method for user group (user_group => pay_type) |
$FORCE_GROUP_SHIPForce |
[] |
ship method for user group (user_group => ship_type) |
$FORCE_PAY_METHODForce |
0 |
payment method (Set to 0 to disable) |
$FULL_IMG_SUFFIXstring |
'_full' |
fullsize image suffix (underscore at the beginning required) |
$IMG_PREFIXstring |
'product_' |
Image prefix |
$INLINE_REGISTERInline |
true |
registration |
$PROD_IMG_DIRstring |
'shop/products/' |
Folder where product's images store |
$SHOW_SIMILAR_PRICEbool |
true |
SHOW_SIMILAR_PRICE or not |
$THIS_ITEM_OFTEN_BUYbool |
true |
THIS_ITEM_OFTEN_BUY or not |
$THUMB_SUFFIXstring |
'_small' |
Thumb image suffix (underscore at the beginning required) |
$_b_fieldsBilling |
|
info |
$_comments_params |
['return_action' => 'product_details', 'object_name' => 'shop', 'allow_guests_posts' => '1'] |
|
$_pay_method_paramsPayment |
[2 => ['LOGIN_ID' => '{CLIENT_ID}', 'TRANSACTION_KEY' => '{CLIENT_SECRET}', 'TEST_MODE' => 1, 'IN_PRODUCTION' => 0, 'DESCRIPTION' => 'Shop Description Here']] |
methods params |
$_pay_typesPayment |
[1 => 'Cash On Delivery', 2 => 'Authorize.Net', 3 => 'Bank Transfer', 4 => 'Cheque / Money Order'] |
types |
$_required_fieldsRequired |
['name', 'phone'] |
shipping and billing fields |
$_s_fieldsShipping |
|
info |
$_ship_type |
[1 => 'Free', 2 => 'Courier', 3 => 'FedEX', 4 => 'Post'] |
|
$_ship_typesShipping |
[1 => ['name' => 'Free', 'price' => 0], 2 => ['name' => 'Courier', 'price' => 1], 3 => ['name' => 'FedEX', 'price' => 5], 4 => ['name' => 'Post', 'price' => 1]] |
types |
$_ship_types_nameShipping |
[] |
types names (creating automatically inside '_init') @conf_skip |
$_statuses@conf_skip |
['pending' => 'pending', 'pending payment' => 'pending payment', 'proccessed' => 'proccessed', 'delivery' => 'delivery', 'shipped' => 'shipped'] |
from yf_module: $CAPTCHA, $FORCE_STRIPSLASHES, $USER_GROUP, $USER_ID, $USE_BB_CODES, $USE_CAPTCHA, $USE_PREVIEW, $_boxes, $_poll_params, $_tags_params
public function basket($params = [])
public function basket($params = [])
{
return _class('shop_basket', 'modules/shop/')->basket($params);
}
public function basket_add()
public function basket_add()
{
return _class('shop_basket_add', 'modules/shop/')->basket_add();
}
public function basket_clean()
public function basket_clean()
{
return _class('shop_basket_clean', 'modules/shop/')->basket_clean();
}
public function basket_main($params = [])
public function basket_main($params = [])
{
return _class('shop_basket_main', 'modules/shop/')->basket_main($params);
}
public function category()
public function category()
{
// TODO: show category contents
}
public function manufacturer()
public function manufacturer()
{
// TODO: show products by given manufacturer
}
public function manufacturers()
public function manufacturers()
{
// TODO: show list of manufacturers
}
public function order()
public function order()
{
return _class('shop_order', 'modules/shop/')->order();
}
public function order_delete($FORCE_DISPLAY_FORM = false)
public function order_delete($FORCE_DISPLAY_FORM = false)
{
return _class('shop_order_delete', 'modules/shop/')->order_delete($FORCE_DISPLAY_FORM);
}
public function order_validate_data($FORCE_DISPLAY_FORM = false)
public function order_validate_data($FORCE_DISPLAY_FORM = false)
{
return _class('shop_order_validate_data', 'modules/shop/')->order_validate_data($FORCE_DISPLAY_FORM);
}
public function order_view($FORCE_DISPLAY_FORM = false)
public function order_view($FORCE_DISPLAY_FORM = false)
{
return _class('shop_order_view', 'modules/shop/')->order_view($FORCE_DISPLAY_FORM);
}
public function orders($FORCE_DISPLAY_FORM = false)
public function orders($FORCE_DISPLAY_FORM = false)
{
return _class('shop_orders', 'modules/shop/')->orders($FORCE_DISPLAY_FORM);
}
public function payment_callback()
public function payment_callback()
{
return _class('shop_payment_callback', 'modules/shop/')->payment_callback();
}
public function product_details()
public function product_details()
{
return _class('shop_product_details', 'modules/shop/')->product_details();
}
public function product_set()
public function product_set()
{
// TODO: show details of given product set
}
public function product_sets()
public function product_sets()
{
// TODO: show list of product set
}
public function products_show($search = '', $str_search = '')
public function products_show($search = '', $str_search = '')
{
return _class('shop_products_show', 'modules/shop/')->products_show($search, $str_search);
}
public function products_similar_by_basket($id)
public function products_similar_by_basket($id)
{
return _class('shop_products_similar_by_basket', 'modules/shop/')->products_similar_by_basket($id);
}
public function products_similar_by_price($price, $id)
public function products_similar_by_price($price, $id)
{
return _class('shop_products_similar_by_price', 'modules/shop/')->products_similar_by_price($price, $id);
}
public function search()
public function search()
{
return _class('shop_search', 'modules/shop/')->search();
}
public function show()
public function show()
{
return _class('shop_show', 'modules/shop/')->show();
}
public function supplier()
public function supplier()
{
// TODO: show products by given supplier
}
public function suppliers()
public function suppliers()
{
// TODO: show list of suppliers
}
_ hooks and helpers; not routable as page actionspublic function _basket_api()
public function _basket_api()
{
return _class('shop__basket_api', 'modules/shop/')->_basket_api();
}
public function _basket_save()
public function _basket_save()
{
return _class('shop__basket_save', 'modules/shop/')->_basket_save();
}
public function _basket_side()
public function _basket_side()
{
return _class('shop__basket_side', 'modules/shop/')->_basket_side();
}
public function _box($name = '', $selected = '')
public function _box($name = '', $selected = '')
{
return _class('shop__box', 'modules/shop/')->_box($name, $selected);
}
public function _categories_show()
public function _categories_show()
{
return _class('shop__categories_show', 'modules/shop/')->_categories_show();
}
public function _format_price($price = 0)
public function _format_price($price = 0)
{
return _class('shop__format_price', 'modules/shop/')->_format_price($price);
}
public function _generate_image_name($product_id, $image_id, $media = false)
public function _generate_image_name($product_id, $image_id, $media = false)
{
$dirs = sprintf('%06s', $product_id);
$dir2 = substr($dirs, -3, 3);
$dir1 = substr($dirs, -6, 3);
$m_path = $dir1 . '/' . $dir2 . '/';
$media_host = defined('MEDIA_HOST') ? MEDIA_HOST : false;
$base_url = WEB_PATH;
if ( ! empty($media_host) && $media) {
$base_url = '//' . $media_host . '/';
}
$image = [
'big' => $base_url . 'uploads/shop/products/' . $m_path . 'product_' . $product_id . '_' . $image_id . '_big.jpg',
'thumb' => $base_url . 'uploads/shop/products/' . $m_path . 'product_' . $product_id . '_' . $image_id . '_thumb.jpg',
'default' => $base_url . 'uploads/shop/products/' . $m_path . 'product_' . $product_id . '_' . $image_id . '.jpg',
];
return $image;
}
public function _get_children_cat($id)
public function _get_children_cat($id)
{
return _class('shop__get_children_cat', 'modules/shop/')->_get_children_cat($id);
}
public function _get_group_prices($product_ids = [])
public function _get_group_prices($product_ids = [])
{
return _class('shop__get_group_prices', 'modules/shop/')->_get_group_prices($product_ids);
}
public function _get_images($product_id)
public function _get_images($product_id)
{
$A = db()->get_all('SELECT id FROM ' . db('shop_product_images') . ' WHERE product_id=' . (int) $product_id . ' AND active=1 ORDER BY is_default DESC');
$d = sprintf('%09s', $product_id);
$images = null;
foreach ((array) $A as $img) {
$replace = [
'{subdir2}' => substr($d, -6, 3),
'{subdir3}' => substr($d, -3, 3),
'{product_id}' => $product_id,
'{image_id}' => $img['id'],
];
$images[] = [
'big' => str_replace(array_keys($replace), array_values($replace), 'uploads/shop/products/{subdir2}/{subdir3}/product_{product_id}_{image_id}_big.jpg'),
'thumb' => str_replace(array_keys($replace), array_values($replace), 'uploads/shop/products/{subdir2}/{subdir3}/product_{product_id}_{image_id}_thumb.jpg'),
'id' => $img['id'],
];
}
return $images;
}
public function _get_select_attributes($atts = [])
public function _get_select_attributes($atts = [])
{
return _class('shop__get_select_attributes', 'modules/shop/')->_get_select_attributes($atts);
}
public function _hook_meta_tags($meta)
public function _hook_settings()
Hook to provide settigns from shop.
public function _hook_settings()
{
return [
['yes_no_box', 'shop__sms_order_send', 'Send SMS to user when new order arrives'],
['yes_no_box', 'shop__sms_order_copy', 'Send SMS copy when new order arrives'],
['text', 'shop__sms_order_copy_to', 'Phone numbers to send SMS copy when new order arrives'],
['yes_no_box', 'shop__emails_all_send', 'Send emails'],
['yes_no_box', 'shop__emails_all_copy', 'Send email copies'],
['text', 'shop__emails_all_copy_to', 'Emails to copy all userland emails'],
['text', 'shop__currency', 'Currency to use in userland'],
];
}
public function _init()
public function _init()
{
$shop = module('shop');
$shop->_shop_cats = _class('cats')->_get_items_names('shop_cats');
$shop->_shop_cats_all = _class('cats')->_get_items_array('shop_cats');
$shop->_shop_cats_for_select = _class('cats')->_prepare_for_box('shop_cats');
$sql_man = 'SELECT * FROM ' . db('shop_manufacturers') . ' ORDER BY name ASC';
$shop->_manufacturer = db()->query_fetch_all($sql_man);
$shop->_man_for_select['none'] = '--NONE--';
foreach ((array) $shop->_manufacturer as $k => $v) {
$shop->_man_for_select[$v['url']] = $v['name'];
}
$shop->_man_id = 'none';
$shop->products_img_dir = INCLUDE_PATH . SITE_UPLOADS_DIR . $shop->PROD_IMG_DIR;
$shop->products_img_webdir = WEB_PATH . SITE_UPLOADS_DIR . $shop->PROD_IMG_DIR;
if ( ! file_exists($shop->products_img_dir)) {
_mkdir_m($shop->products_img_dir);
}
$shop->_boxes = [
'ship_type' => 'select_box("ship_type", $shop->_ship_types_names, $selected, false, 2, "", false)',
'pay_type' => 'radio_box("pay_type", $shop->_pay_types, $selected, 1, 2, "", false)',
];
$shop->_ship_types_names = [];
foreach ((array) $shop->_ship_types as $_id => $_info) {
$_price_text = ' (' . ($_info['price'] < 0 ? '-' : '+') . $shop->_format_price(abs($_info['price'])) . ')';
$shop->_ship_types_names[$_id] = $_info['name'] . ($_info['price'] ? $_price_text : '');
}
// Override pay type for group
$force_group_pay_type = $shop->FORCE_GROUP_PAY[main()->USER_GROUP];
if ($force_group_pay_type/* && isset($shop->_pay_types[$force_group_pay_type])*/) {
$shop->FORCE_PAY_METHOD = $force_group_pay_type;
}
}
public function _manufacturer_show()
public function _manufacturer_show()
{
// TODO: redo current manufacturers
}
public function _order_create()
public function _order_create()
{
return _class('shop__order_create', 'modules/shop/')->_order_create();
}
public function _order_pay_authorize_net($order_info = [], $params = [])
public function _order_step_delivery($FORCE_DISPLAY_FORM = false)
public function _order_step_delivery($FORCE_DISPLAY_FORM = false)
{
return _class('shop__order_step_delivery', 'modules/shop/')->_order_step_delivery($FORCE_DISPLAY_FORM);
}
public function _order_step_do_payment($FORCE_DISPLAY_FORM = false)
public function _order_step_do_payment($FORCE_DISPLAY_FORM = false)
{
return _class('shop__order_step_do_payment', 'modules/shop/')->_order_step_do_payment($FORCE_DISPLAY_FORM);
}
public function _order_step_finish($FORCE_DISPLAY_FORM = false)
public function _order_step_finish($FORCE_DISPLAY_FORM = false)
{
return _class('shop__order_step_finish', 'modules/shop/')->_order_step_finish($FORCE_DISPLAY_FORM);
}
public function _order_step_select_payment($FORCE_DISPLAY_FORM = false)
public function _order_step_select_payment($FORCE_DISPLAY_FORM = false)
{
return _class('shop__order_step_select_payment', 'modules/shop/')->_order_step_select_payment($FORCE_DISPLAY_FORM);
}
public function _order_step_start($FORCE_DISPLAY_FORM = false)
public function _order_step_start($FORCE_DISPLAY_FORM = false)
{
return _class('shop__order_step_start', 'modules/shop/')->_order_step_start($FORCE_DISPLAY_FORM);
}
public function _order_validate_delivery()
public function _order_validate_delivery()
{
return _class('shop__order_validate_delivery', 'modules/shop/')->_order_validate_delivery();
}
public function _order_validate_do_payment()
public function _order_validate_do_payment()
{
return _class('shop__order_validate_do_payment', 'modules/shop/')->_order_validate_do_payment();
}
public function _order_validate_select_payment()
public function _order_validate_select_payment()
{
return _class('shop__order_validate_select_payment', 'modules/shop/')->_order_validate_select_payment();
}
public function _product_get_price($product_info = [])
public function _product_get_price($product_info = [])
{
return _class('shop__product_get_price', 'modules/shop/')->_product_get_price($product_info);
}
public function _product_id_url($product_info = [])
public function _product_id_url($product_info = [])
{
return _class('shop__product_id_url', 'modules/shop/')->_product_id_url($product_info);
}
public function _products_bestsellers()
public function _products_bestsellers()
{
return _class('shop__products_bestsellers', 'modules/shop/')->_products_bestsellers();
}
public function _products_get_attributes($products_ids = [])
public function _products_get_attributes($products_ids = [])
{
return _class('shop__products_get_attributes', 'modules/shop/')->_products_get_attributes($products_ids);
}
public function _products_last_viewed()
public function _products_last_viewed()
{
return _class('shop__products_last_viewed', 'modules/shop/')->_products_last_viewed();
}
public function _search_form_short()
public function _search_form_short()
{
return _class('shop__search_form_short', 'modules/shop/')->_search_form_short();
}
public function _site_map_items($SITE_MAP_OBJ = false)
public function _site_map_items($SITE_MAP_OBJ = false)
{
return _class('shop__site_map_items', 'modules/shop/')->_site_map_items($SITE_MAP_OBJ);
}
public function _site_title($title)
public function _site_title($title)
{
return _class('shop__site_title', 'modules/shop/')->_site_title($title);
}
from yf_module: __call(), _captcha_block(), _captcha_check(), _captcha_load_code(), _comment_delete_allowed(), _comment_edit_allowed(), _comment_is_allowed(), _display_submit_buttons(), _format_text(), _get_num_comments(), _poll(), _prefetch_rate_infos(), _prepare_preview(), _show_rate_box(), _show_tags(), _view_comments(), add_comment(), captcha_image(), create_poll(), delete_comment(), delete_poll(), display_preview(), edit_comment(), edit_tag(), tag(), view_poll_results()