function smarty_function_render_block($params, &$smarty) { if (!empty($params['block_id'])) { $block_id = $params['block_id']; $snapping_id = !empty($params['snapping_id']) ? $params['snapping_id'] : 0; if (!empty($params['dispatch'])) { $dispatch = $params['dispatch']; } else { $dispatch = !empty($_REQUEST['dispatch']) ? $_REQUEST['dispatch'] : 'index.index'; } $area = !empty($params['area']) ? $params['area'] : AREA; if (!empty($params['dynamic_object'])) { $dynamic_object = $params['dynamic_object']; } elseif (!empty($_REQUEST['dynamic_object']) && $area != 'C') { $dynamic_object = $_REQUEST['dynamic_object']; } else { $dynamic_object_scheme = SchemesManager::getDynamicObject($dispatch, $area); if (!empty($dynamic_object_scheme) && !empty($_REQUEST[$dynamic_object_scheme['key']])) { $dynamic_object['object_type'] = $dynamic_object_scheme['object_type']; $dynamic_object['object_id'] = $_REQUEST[$dynamic_object_scheme['key']]; } else { $dynamic_object = array(); } } $block = Block::instance()->getById($block_id, $snapping_id, $dynamic_object, DESCR_SL); return RenderManager::renderBlock($block); } }
/** * Delete poll * * @param int $page_id ID of the page, poll attached to * @return bool true if poll was deleted, false - otherwise */ function fn_polls_delete_page(&$page_id) { if (!empty($page_id)) { $item_ids = db_get_fields("SELECT item_id FROM ?:poll_items WHERE page_id = ?i", $page_id); db_query("DELETE FROM ?:polls_answers WHERE item_id IN (?n)", $item_ids); db_query("DELETE FROM ?:poll_items WHERE page_id = ?i", $page_id); db_query("DELETE FROM ?:poll_descriptions WHERE page_id = ?i", $page_id); db_query("DELETE FROM ?:polls WHERE page_id = ?i", $page_id); db_query("DELETE FROM ?:polls_votes WHERE page_id = ?i", $page_id); Block::instance()->removeDynamicObjectData('polls', $page_id); return true; } return false; }
function fn_rssf_get_items($params, $lang_code = CART_LANGUAGE) { $items_data = $additional_data = $block_data = array(); if (!empty($params['bid']) && !empty($params['sid']) && empty($params['category_id'])) { $block_data = Block::instance()->getById($params['bid'], $params['sid'], array(), $lang_code); if (!empty($block_data['content']['filling']) && $block_data['content']['filling'] == 'products') { $_params = array('sort_by' => $block_data['properties']['filling']['products']['rss_sort_by'] == 'U' ? 'updated_timestamp' : 'timestamp', 'sort_order' => 'desc'); $max_items = !empty($block_data['properties']['max_item']) ? $block_data['properties']['max_item'] : 5; list($products) = fn_get_products($_params, $max_items, $lang_code); fn_gather_additional_products_data($products, array('get_icon' => true, 'get_detailed' => true, 'get_options' => false, 'get_discounts' => false)); $additional_data['title'] = !empty($block_data['properties']['feed_title']) ? $block_data['properties']['feed_title'] : __('products') . '::' . __('page_title', '', $lang_code); $additional_data['description'] = !empty($block_data['properties']['feed_description']) ? $block_data['properties']['feed_description'] : $additional_data['title']; $additional_data['link'] = fn_url('', 'C', 'http', $lang_code); $additional_data['language'] = $lang_code; $additional_data['lastBuildDate'] = !empty($products[0]['updated_timestamp']) ? $products[0]['updated_timestamp'] : TIME; $items_data = fn_format_products_items($products, $block_data['properties']['filling']['products'], $lang_code); } } else { //show rss feed for categories page list($items_data, $additional_data) = fn_format_categories_items($params, $lang_code); } fn_set_hook('generate_rss_feed', $items_data, $additional_data, $block_data, $lang_code); return array($items_data, $additional_data); }
$file = fn_basename($_REQUEST['filename']); if (Registry::get('runtime.company_id')) { $file = Registry::get('runtime.company_id') . '/' . $file; } if (!empty($_REQUEST['to_screen'])) { header("Content-type: text/xml"); readfile(Registry::get('config.dir.layouts') . $file); exit; } else { fn_get_file(Registry::get('config.dir.layouts') . $file); } } elseif ($mode == 'show_objects') { if (!empty($_REQUEST['object_type']) && !empty($_REQUEST['block_id'])) { Registry::get('view')->assign('object_type', $_REQUEST['object_type']); Registry::get('view')->assign('block_id', $_REQUEST['block_id']); Registry::get('view')->assign('object_ids', Block::instance()->getChangedContentsIds($_REQUEST['object_type'], $_REQUEST['block_id'])); Registry::get('view')->assign('params', array('type' => 'links')); Registry::get('view')->assign('dynamic_object_scheme', SchemesManager::getDynamicObjectByType($_REQUEST['object_type'], $_REQUEST)); } } function fn_get_selected_location($params) { if (isset($params['selected_location']) && !empty($params['selected_location'])) { $selected_location = Location::instance()->getById($params['selected_location'], DESCR_SL); } else { $selected_location = Location::instance()->getDefault(DESCR_SL); } return $selected_location; } function fn_get_default_layouts_sources($theme_name = '', $themes_path = '') {
/** * Updates object data in live content editing mode. * * @param string $params Params to be updated; array with keys name, value, lang_code, and need_render * @return bool */ function fn_live_editor_update_object($params) { $updated = false; /** * Performs actions before updating a live editor object * * @param array $params Params to be updated; array with keys name, value, lang_code, and need_render * @param bool $updated The "already updated" flag */ fn_set_hook('live_editor_update_object_pre', $params, $updated); if ($updated) { return true; } if (strpos($params['name'], ':')) { list($object, $field, $id) = explode(':', $params['name'], 3); $schema = fn_get_schema('customization', 'live_editor_objects'); if (!empty($schema[$object])) { $rule = $schema[$object]; if (!empty($rule['function'])) { $vars = $params + compact('object', 'field', 'id', 'rule'); $args = fn_live_editor_prepare_callback_args($rule['args'], $vars); call_user_func_array($rule['function'], $args); } if (!empty($rule['table'])) { $table = $rule['table']; $condition = array('id' => db_quote("?p = ?s", $rule['id_field'], $id)); if (!empty($rule['lang_code'])) { $condition['lang_code'] = db_quote("lang_code = ?s", $params['lang_code']); } /** * Prepares data for the live editor object update request * * @param array $params Params * @param array $rule Rule * @param array $condition Conditions * @param str $table Table name */ fn_set_hook('live_editor_update_object_table', $params, $rule, $condition, $table); db_query("UPDATE ?:{$table} SET ?u WHERE ?p", array($rule['value_field'] => $params['value']), implode(' AND ', $condition)); $updated = true; } if (!empty($params['need_render'])) { // Block if ($object == 'block' && $field == 'content') { $block = Block::instance()->getById($id); Tygh::$app['view']->assign('no_wrap', true); $content = RenderManager::renderBlock($block); if ($ajax = Tygh::$app['ajax']) { $ajax->assign('rendered_name', $params['name']); $ajax->assign('rendered_content', $content); } } } } } /** * Performs actions after updating a live editor object * * @param array $params Params * @param bool $updated The "already updated" flag */ fn_set_hook('live_editor_update_object_post', $params, $updated); return $updated; }
if (!empty($_REQUEST['tab_data'])) { $tab_data = $_REQUEST['tab_data']; } else { $tab_data = array(); } // If edit block if ($tab_id > 0 && empty($_REQUEST['tab_data']['content'])) { $tab_data = current(ProductTabs::instance()->getList(db_quote(' AND ?:product_tabs.tab_id=?i', $tab_id), 0, DESCR_SL)); } if (isset($tab_data['block_id']) && $tab_data['block_id'] > 0) { if (!empty($_REQUEST['dynamic_object'])) { $dynamic_object = $_REQUEST['dynamic_object']; } else { $dynamic_object = array(); } Registry::get('view')->assign('block_data', Block::instance()->getById($tab_data['block_id'], 0, $dynamic_object, DESCR_SL)); } if (empty($tab_data['type'])) { $tab_data['type'] = $tab_type; } Registry::get('view')->assign('tab_data', $tab_data); } elseif ($mode == 'update_status') { $result = false; if (!empty($_REQUEST['id']) && !empty($_REQUEST['status'])) { $tab = ProductTabs::instance()->getList(db_quote(" AND ?:product_tabs.tab_id=?i", $_REQUEST['id']), 0); $tab = current($tab); if (!empty($_REQUEST['dynamic_object']['object_id']) && $_REQUEST['dynamic_object']['object_id'] > 0) { // If it's status update for dynamic object $object_ids = explode(',', $tab['product_ids']); $key = array_search($_REQUEST['dynamic_object']['object_id'], $object_ids); if ($_REQUEST['status'] == $tab['status'] && isset($object_ids[$key])) {
/** * Deletes banner and all related data * * @param int $banner_id Banner identificator */ function fn_delete_banner_by_id($banner_id) { if (!empty($banner_id) && fn_check_company_id('banners', 'banner_id', $banner_id)) { db_query("DELETE FROM ?:banners WHERE banner_id = ?i", $banner_id); db_query("DELETE FROM ?:banner_descriptions WHERE banner_id = ?i", $banner_id); fn_set_hook('delete_banners', $banner_id); Block::instance()->removeDynamicObjectData('banners', $banner_id); $banner_images_ids = db_get_fields("SELECT banner_image_id FROM ?:banner_images WHERE banner_id = ?i", $banner_id); foreach ($banner_images_ids as $banner_image_id) { fn_delete_image_pairs($banner_image_id, 'promo'); } db_query("DELETE FROM ?:banner_images WHERE banner_id = ?i", $banner_id); } }
public function delete($id) { $data = array(); $status = Response::STATUS_NOT_FOUND; if (Block::instance()->remove($id)) { $status = Response::STATUS_OK; $data['message'] = 'Ok'; } return array('status' => $status, 'data' => $data); }
public function delete($id) { $data = array(); $status = Response::STATUS_NOT_FOUND; if (Block::instance()->remove($id)) { $status = Response::STATUS_NO_CONTENT; } return array('status' => $status, 'data' => $data); }
/** * Renders or gets value of some variable of block content * @param string $template_variable name of current block content variable * @param array $field Scheme of this content variable from block scheme content section * @param array $block_scheme block scheme * @param array $block Block data * @return string Rendered block content variable value */ public static function getValue($template_variable, $field, $block_scheme, $block) { $value = ''; // Init value by default if (isset($field['default_value'])) { $value = $field['default_value']; } if (isset($block['content'][$template_variable])) { $value = $block['content'][$template_variable]; } if ($field['type'] == 'enum') { $value = Block::instance()->getItems($template_variable, $block, $block_scheme); } if ($field['type'] == 'function' && !empty($field['function'][0]) && is_callable($field['function'][0])) { $callable = array_shift($field['function']); array_unshift($field['function'], $value, $block, $block_scheme); $value = call_user_func_array($callable, $field['function']); } return $value; }
function fn_se_check_product_filter_block() { return Block::instance()->isBlockTypeActiveOnCurrentLocation('product_filters'); }
/** * Removes blocks that cannot be on $location or can be only singular for this $location and already exist on it * for $location and allready exists on it * * To define that kind of block use hide_on_locations and single_for_location keys in blocks scheme * * @param array $blocks List of blocks * @param array $location Array with location data * @return array Filtered list of blocks */ public static function filterByLocation($blocks, $location) { $scheme = self::_getScheme('blocks'); foreach ($blocks as $block_key => $block) { if (!empty($block['type'])) { $type = $block['type']; if (!empty($scheme[$type]['hide_on_locations'])) { if (array_search($location['dispatch'], $scheme[$type]['hide_on_locations']) !== false) { unset($blocks[$block_key]); continue; } } if (!empty($block['type']) && !empty($scheme[$type]['single_for_location'])) { $blocks[$block_key]['single_for_location'] = true; $block_exists = Block::instance()->getBlocksByTypeForLocation($type, $location['location_id']); if (!empty($block_exists)) { unset($blocks[$block_key]); } } } } return $blocks; }
exit; } else { fn_get_file(Registry::get('config.dir.layouts') . $file); } } elseif ($mode == 'show_objects') { if (!empty($_REQUEST['object_type']) && !empty($_REQUEST['block_id'])) { Registry::get('view')->assign('object_type', $_REQUEST['object_type']); Registry::get('view')->assign('block_id', $_REQUEST['block_id']); Registry::get('view')->assign('object_ids', Block::instance()->getChangedContentsIds($_REQUEST['object_type'], $_REQUEST['block_id'])); Registry::get('view')->assign('params', array('type' => 'links')); Registry::get('view')->assign('dynamic_object_scheme', SchemesManager::getDynamicObjectByType($_REQUEST['object_type'])); } } elseif ($mode == 'update_status') { $type = empty($_REQUEST['type']) ? 'block' : $_REQUEST['type']; if ($type == 'block') { Block::instance()->updateStatus($_REQUEST); } elseif ($type == 'grid') { Grid::update($_REQUEST); } elseif ($type == 'container') { Container::update($_REQUEST); } exit; } elseif ($mode == 'delete_layout') { Layout::instance()->delete($_REQUEST['layout_id']); return array(CONTROLLER_STATUS_OK, 'block_manager.manage'); } elseif ($mode == 'set_default_layout') { if (!empty($_REQUEST['layout_id'])) { Layout::instance()->setDefault($_REQUEST['layout_id']); fn_set_notification('N', __('notice'), __('text_changes_saved')); } return array(CONTROLLER_STATUS_OK, 'block_manager.manage');
/** * @param ExSimpleXmlElement $parent * @param $grids * @param array $except_fields * @param string $lang_code */ private function _buildGridStructure(&$parent, $grids, $except_fields = array(), $lang_code = DESCR_SL) { $except_block_fields = array_flip(array('block_id', 'snapping_id', 'grid_id', 'company_id')); foreach ($grids as $grid) { $xml_grid = $parent->addChild('grid'); $blocks = Block::instance($this->_company_id)->getList(array('?:bm_snapping.*', '?:bm_blocks.*'), array($grid['grid_id'])); if (!empty($blocks)) { $blocks = $blocks[$grid['grid_id']]; } $attrs = array_diff_key($grid, $except_fields); foreach ($attrs as $attr => $value) { $xml_grid->addAttribute($attr, $value); } if (!empty($grid['children'])) { $grid['children'] = fn_sort_array_by_key($grid['children'], 'grid_id'); $this->_buildGridStructure($xml_grid, $grid['children'], $except_fields, $lang_code); } if (!empty($blocks)) { $xml_blocks = $xml_grid->addChild('blocks'); foreach ($blocks as $block_id => $block) { $block_descr = Block::instance($this->_company_id)->getFullDescription($block['block_id']); $block = array_merge(Block::instance($this->_company_id)->getById($block['block_id']), $block); $block = array_diff_key($block, $except_block_fields); $xml_block = $xml_blocks->addChild('block'); $this->_buildAttrStructure($xml_block, $block); $xml_translations = $xml_block->addChild('translations'); foreach ($block_descr as $_lang_code => $data) { if ($_lang_code == $lang_code) { // We do not needed default language continue; } $xml_translation = $xml_translations->addChildCData('translation', $data['name']); $xml_translation->addAttribute('lang_code', $_lang_code); unset($xml_translation); } $contents = Block::instance($this->_company_id)->getAllContents($block_id); $xml_contents = $xml_block->addChild('contents'); foreach ($contents as $content) { if (!empty($content['lang_code']) && $content['lang_code'] == $lang_code) { continue; } if (!empty($content['content'])) { $this->_buildAttrStructure($xml_contents, array('item' => array_diff_key($content, $except_block_fields))); } } } } } }
$tab_id = isset($_REQUEST['tab_data']['tab_id']) ? $_REQUEST['tab_data']['tab_id'] : 0; $tab_type = isset($_REQUEST['tab_data']['tab_type']) ? $_REQUEST['tab_data']['tab_type'] : 'T'; if (!empty($_REQUEST['dynamic_object'])) { Tygh::$app['view']->assign('dynamic_object', $_REQUEST['dynamic_object']); } $dynamic_object_scheme = SchemesManager::getDynamicObjectByType('products'); $selected_location = Location::instance()->get('products.view', array(), DESCR_SL); Tygh::$app['view']->assign('location', $selected_location); Tygh::$app['view']->assign('dynamic_object_scheme', $dynamic_object_scheme); if (!empty($_REQUEST['tab_data'])) { $tab_data = $_REQUEST['tab_data']; } else { $tab_data = array(); } // If edit block if ($tab_id > 0 && empty($_REQUEST['tab_data']['content'])) { $tab_data = current(ProductTabs::instance()->getList(db_quote(' AND ?:product_tabs.tab_id=?i', $tab_id), 0, DESCR_SL)); } if (isset($tab_data['block_id']) && $tab_data['block_id'] > 0) { if (!empty($_REQUEST['dynamic_object'])) { $dynamic_object = $_REQUEST['dynamic_object']; } else { $dynamic_object = array(); } Tygh::$app['view']->assign('block_data', Block::instance()->getById($tab_data['block_id'], 0, $dynamic_object, DESCR_SL)); } if (empty($tab_data['type'])) { $tab_data['type'] = $tab_type; } Tygh::$app['view']->assign('tab_data', $tab_data); }
/** * Delete page and its subpages * * @param int $page_id Page ID * @param bool $recurse Delete page recursively or not * @return array Returns ids of deleted pages or false if function can't delete page */ function fn_delete_page($page_id, $recurse = true) { $page_id = (int) $page_id; if (!empty($page_id) && fn_check_company_id('pages', 'page_id', $page_id)) { // Delete all subpages if ($recurse == true) { $id_path = db_get_field("SELECT id_path FROM ?:pages WHERE page_id = ?i", $page_id); $page_ids = db_get_fields("SELECT page_id FROM ?:pages WHERE page_id = ?i OR id_path LIKE ?l", $page_id, "{$id_path}/%"); } else { $page_ids = array($page_id); } foreach ($page_ids as $v) { // Deleting page db_query("DELETE FROM ?:pages WHERE page_id = ?i", $v); db_query("DELETE FROM ?:page_descriptions WHERE page_id = ?i", $v); fn_set_hook('delete_page', $v); Block::instance()->removeDynamicObjectData('pages', $v); } return $page_ids; // Returns ids of deleted pages } else { return false; } }
<?php /*************************************************************************** * * * (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev * * * * This is commercial software, only users who have purchased a valid * * license and accept to the terms of the License Agreement can install * * and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ use Tygh\BlockManager\Block; return array('langvar' => array('function' => 'fn_update_lang_var', 'args' => array(array(array('name' => '$id', 'value' => '$value')), '$lang_code'), 'input_type' => 'textarea'), 'product' => array('function' => 'fn_update_product', 'args' => array(array('$field' => '$value'), '$id', '$lang_code'), 'input_type' => 'input', 'input_type_fields' => array('product' => 'input', 'full_description' => 'wysiwyg', 'price' => 'price')), 'category' => array('function' => 'fn_update_category', 'args' => array(array('$field' => '$value'), '$id', '$lang_code'), 'input_type' => 'input', 'input_type_fields' => array('description' => 'wysiwyg')), 'page' => array('function' => 'fn_update_page', 'args' => array(array('$field' => '$value'), '$id', '$lang_code'), 'input_type' => 'input', 'input_type_fields' => array('description' => 'wysiwyg')), 'block' => array('function' => function ($field, $value, $id, $lang_code) { $block = Block::instance()->getById($id); $data = array('block_id' => $id, 'type' => $block['type']); $description = array(); if ($field == 'content') { $data['content_data'] = array('lang_code' => $lang_code, 'content' => array('content' => $value)); } elseif ($field == 'name') { $description = array('lang_code' => $lang_code, 'name' => $value); $data['description'] = $description; } else { return; } Block::instance()->update($data, $description); }, 'args' => array('$field', '$value', '$id', '$lang_code'), 'input_type' => 'input', 'input_type_fields' => array('content' => 'textarea')));
function fn_clone_product($product_id) { /** * Adds additional actions before product cloning * * @param int $product_id Original product identifier */ fn_set_hook('clone_product_pre', $product_id); // Clone main data $data = db_get_row("SELECT * FROM ?:products WHERE product_id = ?i", $product_id); unset($data['product_id']); $data['status'] = 'D'; $data['timestamp'] = $data['updated_timestamp'] = time(); $pid = db_query("INSERT INTO ?:products ?e", $data); // Clone descriptions $data = db_get_array("SELECT * FROM ?:product_descriptions WHERE product_id = ?i", $product_id); foreach ($data as $v) { $v['product_id'] = $pid; if ($v['lang_code'] == CART_LANGUAGE) { $orig_name = $v['product']; $new_name = $v['product'] . ' [CLONE]'; } $v['product'] .= ' [CLONE]'; db_query("INSERT INTO ?:product_descriptions ?e", $v); } // Clone prices $data = db_get_array("SELECT * FROM ?:product_prices WHERE product_id = ?i", $product_id); foreach ($data as $v) { $v['product_id'] = $pid; unset($v['price_id']); db_query("INSERT INTO ?:product_prices ?e", $v); } // Clone categories links $data = db_get_array("SELECT * FROM ?:products_categories WHERE product_id = ?i", $product_id); $_cids = array(); foreach ($data as $v) { $v['product_id'] = $pid; db_query("INSERT INTO ?:products_categories ?e", $v); $_cids[] = $v['category_id']; } fn_update_product_count($_cids); // Clone product options fn_clone_product_options($product_id, $pid); // Clone global linked options $gl_options = db_get_fields("SELECT option_id FROM ?:product_global_option_links WHERE product_id = ?i", $product_id); if (!empty($gl_options)) { foreach ($gl_options as $v) { db_query("INSERT INTO ?:product_global_option_links (option_id, product_id) VALUES (?i, ?i)", $v, $pid); } } // Clone product features $data = db_get_array("SELECT * FROM ?:product_features_values WHERE product_id = ?i", $product_id); foreach ($data as $v) { $v['product_id'] = $pid; db_query("INSERT INTO ?:product_features_values ?e", $v); } // Clone blocks Block::instance()->cloneDynamicObjectData('products', $product_id, $pid); // Clone tabs info ProductTabs::instance()->cloneStatuses($pid, $product_id); // Clone addons fn_set_hook('clone_product', $product_id, $pid); // Clone images fn_clone_image_pairs($pid, $product_id, 'product'); // Clone product files fn_clone_product_files($product_id, $pid); /** * Adds additional actions after product cloning * * @param int $product_id Original product identifier * @param int $pid Cloned product identifier * @param string $orig_name Original product name * @param string $new_name Cloned product name */ fn_set_hook('clone_product_post', $product_id, $pid, $orig_name, $new_name); return array('product_id' => $pid, 'orig_name' => $orig_name, 'product' => $new_name); }
function fn_delete_company($company_id) { if (empty($company_id)) { return false; } if (fn_allowed_for('MULTIVENDOR')) { // Do not delete vendor if there're any orders associated with this company if (db_get_field("SELECT COUNT(*) FROM ?:orders WHERE company_id = ?i", $company_id)) { fn_set_notification('W', __('warning'), __('unable_delete_vendor_orders_exists'), '', 'company_has_orders'); return false; } } fn_set_hook('delete_company_pre', $company_id); $result = db_query("DELETE FROM ?:companies WHERE company_id = ?i", $company_id); // deleting categories $cat_ids = db_get_fields("SELECT category_id FROM ?:categories WHERE company_id = ?i", $company_id); foreach ($cat_ids as $cat_id) { fn_delete_category($cat_id, false); } // deleting products $product_ids = db_get_fields("SELECT product_id FROM ?:products WHERE company_id = ?i", $company_id); foreach ($product_ids as $product_id) { fn_delete_product($product_id); } // deleting shipping $shipping_ids = db_get_fields("SELECT shipping_id FROM ?:shippings WHERE company_id = ?i", $company_id); foreach ($shipping_ids as $shipping_id) { fn_delete_shipping($shipping_id); } if (fn_allowed_for('ULTIMATE')) { // deleting layouts $layouts = Layout::instance($company_id)->getList(); foreach ($layouts as $layout_id => $layout) { Layout::instance($company_id)->delete($layout_id); } } $blocks = Block::instance($company_id)->getAllUnique(); foreach ($blocks as $block) { Block::instance($company_id)->remove($block['block_id']); } $product_tabs = ProductTabs::instance($company_id)->getList(); foreach ($product_tabs as $product_tab) { ProductTabs::instance($company_id)->delete($product_tab['tab_id'], true); } $_menus = Menu::getList(db_quote(" AND company_id = ?i", $company_id)); foreach ($_menus as $menu) { Menu::delete($menu['menu_id']); } db_query("DELETE FROM ?:company_descriptions WHERE company_id = ?i", $company_id); // deleting product_options $option_ids = db_get_fields("SELECT option_id FROM ?:product_options WHERE company_id = ?i", $company_id); foreach ($option_ids as $option_id) { fn_delete_product_option($option_id); } // deleting company admins and users if (Registry::get('settings.Stores.share_users') != 'Y') { $users_condition = db_quote(' OR company_id = ?i', $company_id); } else { $users_condition = ''; // Unassign users from deleted company db_query('UPDATE ?:users SET company_id = 0 WHERE company_id = ?i', $company_id); } $user_ids = db_get_fields("SELECT user_id FROM ?:users WHERE company_id = ?i AND user_type = ?s ?p", $company_id, 'V', $users_condition); foreach ($user_ids as $user_id) { fn_delete_user($user_id); } // deleting pages $page_ids = db_get_fields("SELECT page_id FROM ?:pages WHERE company_id = ?i", $company_id); foreach ($page_ids as $page_id) { fn_delete_page($page_id); } // deleting promotions $promotion_ids = db_get_fields("SELECT promotion_id FROM ?:promotions WHERE company_id = ?i", $company_id); fn_delete_promotions($promotion_ids); // deleting features $feature_ids = db_get_fields("SELECT feature_id FROM ?:product_features WHERE company_id = ?i", $company_id); foreach ($feature_ids as $feature_id) { fn_delete_feature($feature_id); } // deleting logos $types = fn_get_logo_types(); foreach ($types as $type => $data) { fn_delete_logo($type, $company_id); } $payment_ids = db_get_fields('SELECT payment_id FROM ?:payments WHERE company_id = ?i', $company_id); foreach ($payment_ids as $payment_id) { fn_delete_payment($payment_id); } // Delete sitemap sections and links $params = array('company_id' => $company_id); $section_ids = fn_get_sitemap_sections($params); fn_delete_sitemap_sections(array_keys($section_ids)); fn_set_hook('delete_company', $company_id, $result); return $result; }
/** * Deletes news by its ID * * @param int $news_id - News Identifier */ function fn_delete_news($news_id) { $news_deleted = false; if (!empty($news_id)) { if (fn_check_company_id('news', 'news_id', $news_id)) { // Log news deletion fn_log_event('news', 'delete', array('news_id' => $news_id)); Block::instance()->removeDynamicObjectData('news', $news_id); $affected_rows = db_query("DELETE FROM ?:news WHERE news_id = ?i", $news_id); db_query("DELETE FROM ?:news_descriptions WHERE news_id = ?i", $news_id); if ($affected_rows != 0) { $news_deleted = true; } else { fn_set_notification('E', __('error'), __('object_not_found', array('[object]' => __('news'))), '', '404'); } fn_set_hook('delete_news', $news_id); } else { fn_company_access_denied_notification(); } } return $news_deleted; }
$file = fn_basename($_REQUEST['filename']); if (Registry::get('runtime.company_id')) { $file = Registry::get('runtime.company_id') . '/' . $file; } if (!empty($_REQUEST['to_screen'])) { header("Content-type: text/xml"); readfile(Registry::get('config.dir.layouts') . $file); exit; } else { fn_get_file(Registry::get('config.dir.layouts') . $file); } } elseif ($mode == 'show_objects') { if (!empty($_REQUEST['object_type']) && !empty($_REQUEST['block_id'])) { Tygh::$app['view']->assign('object_type', $_REQUEST['object_type']); Tygh::$app['view']->assign('block_id', $_REQUEST['block_id']); Tygh::$app['view']->assign('object_ids', Block::instance()->getChangedContentsIds($_REQUEST['object_type'], $_REQUEST['block_id'])); Tygh::$app['view']->assign('params', array('type' => 'links')); Tygh::$app['view']->assign('dynamic_object_scheme', SchemesManager::getDynamicObjectByType($_REQUEST['object_type'], $_REQUEST)); } } function fn_get_selected_location($params) { if (isset($params['selected_location']) && !empty($params['selected_location'])) { $selected_location = Location::instance()->getById($params['selected_location'], DESCR_SL); } else { $selected_location = Location::instance()->getDefault(DESCR_SL); } return $selected_location; } function fn_get_default_layouts_sources($theme_name = '', $themes_path = '') {
/** * Get block by id * @param array $params * @return array $block */ public static final function getBlock($params) { if (!empty($params['block_id'])) { $block_id = $params['block_id']; $snapping_id = !empty($params['snapping_id']) ? $params['snapping_id'] : 0; $dispatch = isset($_REQUEST['object']) ? $_REQUEST['object'] . '.view' : 'index.index'; $area = !empty($params['area']) ? $params['area'] : AREA; if (!empty($params['dynamic_object'])) { $dynamic_object = $params['dynamic_object']; } elseif (!empty($_REQUEST['dynamic_object']) && $area != 'C') { $dynamic_object = $_REQUEST['dynamic_object']; } else { $dynamic_obj_schema = SchemesManager::getDynamicObject($dispatch, $area); $twg_request = array('dispatch' => $dispatch, $dynamic_obj_schema['key'] => $_REQUEST['id']); if (!empty($dynamic_obj_schema) && !empty($twg_request[$dynamic_obj_schema['key']])) { $dynamic_object['object_type'] = $dynamic_obj_schema['object_type']; $dynamic_object['object_id'] = $twg_request[$dynamic_obj_schema['key']]; } else { $dynamic_object = array(); } } $block = Block::instance()->getById($block_id, $snapping_id, $dynamic_object, DESCR_SL); return $block; } }