Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php use Tygh\Registry; use Tygh\Http; use Tygh\Addons\SchemesManager; if (!defined('BO..

Decoded Output download

<?php 
 use Tygh\Registry; use Tygh\Http; use Tygh\Addons\SchemesManager; if (!defined('BOOTSTRAP')) { die('Access denied'); } function sd_MjU4ZTQxOTc1N2IxY2EzZThmNDE0ZmQ4($user_data, $vendor_data) { if (empty($user_data) && empty($vendor_data)) { return; } $user_is_follow = sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_data['user_id'], $vendor_data['company_id']); $follower_data = array( 'user_id' => $user_data['user_id'], 'vendor_id' => $vendor_data['company_id'], 'is_selected' => true, 'followed_on' => TIME ); if (!$user_is_follow) { db_query("INSERT INTO ?:vendor_following ?e", $follower_data); $data = fn_array_merge($user_data, $vendor_data); $lang_code = fn_get_company_language($vendor_data['company_id']); if (empty($lang_code)) { $lang_code = CART_LANGUAGE; } $mailer = Tygh::$app['mailer']; $mailer->send(array( 'to' => $vendor_data['email'], 'from' => 'default_company_users_department', 'data' => array( 'data' => $data, 'url' => fn_url('profiles.update?user_id=' . $user_data['user_id'], 'A') ), 'template_code' => 'sd_follow_vendor_new_follower', 'tpl' => 'addons/sd_follow_vendor/new_follower.tpl', 'company_id' => $vendor_data['company_id'], ), 'C', $lang_code); fn_set_notification('N', __('notice'), __('you_followed'), 'I'); } else { fn_set_notification('W', __('warning'), __('you_already_followed_vendor'), 'I'); } } function sd_MTc3ZDExZWNhZDEzYjRjMWUyODUxZjEw($user_id, $vendor_id) { if (empty($user_id) && empty($vendor_id)) { return; } $user_is_follow = sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_id, $vendor_id); if ($user_is_follow) { $result = db_query("DELETE FROM ?:vendor_following WHERE user_id = ?i AND vendor_id = ?i", $user_id, $vendor_id); fn_set_notification('N', __('notice'), __('you_unfollowed'), 'I'); } else { $result = false; fn_set_notification('W', __('warning'), __('you_already_unfollowed'), 'I'); } return $result; } function sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm($license = '') { if (!fn_allowed_for('MULTIVENDOR')) { $companies = db_get_array('SELECT storefront, secure_storefront FROM ?:companies'); } else { $companies = array(array('storefront' => fn_url('', 'C', 'http'))); } $addon = 'sd_follow_vendor'; $request = array( 'companies' => $companies, 'host' => Registry::get('config.current_host'), 'lang_code' => CART_LANGUAGE, 'addon' => $addon, 'addon_version' => fn_get_addon_version($addon), 'license' => !empty($license) ? trim($license) : Registry::get("addons.{$addon}.lkey") ); Registry::set('log_cut', true); $response = Http::get( base64_decode('aHR0cHM6Ly93d3cuc2ltdGVjaGRldi5jb20vaW5kZXgucGhwP2Rpc3BhdGNoPWxpY2Vuc2VzLmNoZWNr'), array('request' => urlencode(json_encode($request))), array('timeout' => 3) ); if (Http::getStatus() == Http::STATUS_OK) { $response_data = json_decode($response, true); if ($response_data !== null) { $status = isset($response_data['status']) ? $response_data['status'] : 'F'; if (isset($response_data['notice'])) { fn_set_notification( isset($response_data['type']) ? $response_data['type'] : 'W', SchemesManager::getName($addon, CART_LANGUAGE), $response_data['notice'], isset($response_data['state']) ? $response_data['state'] : '' ); } } else { $status = $response; } if ($status != 'A') { fn_update_addon_status($addon, 'D', false); } } else { $status = 'A'; } return $status == 'A'; } function fn_settings_actions_addons_sd_follow_vendor_lkey(&$new_value, $old_value) { if (sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm($new_value)) { $new_value = trim($new_value); } } function fn_settings_actions_addons_sd_follow_vendor(&$new_status, $old_status) { if ($new_status == 'A' && !sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm()) { $new_status = 'D'; } } function fn_sd_follow_vendor_set_admin_notification($user_data) { if (AREA == 'A' && $user_data['is_root'] == 'Y') { sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm(); } } function sd_MWNjY2RmYjY3ODU4OWI4NGMxNGRlZjcx($user_id) { $count = 0; $user_id = empty($user_id) ? Tygh::$app['session']['auth']['user_id'] : 0; if ($user_id) { $count = db_get_field('SELECT COUNT(*) FROM ?:vendor_following WHERE user_id = ?i', $user_id); } return $count; } function sd_YjVlNjRjYmU5ZDk5ZDcxMmQ2Nzg5MzI1() { return db_get_array("SELECT * FROM ?:vendor_following_events"); } function sd_ZGIxN2Q5YWJmMDFhM2M0NDZjM2UwM2Jk($event_id_list) { if (empty($event_id_list)) { return; } $sql = sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk( $event_id_list, 'vendor_following_events', 'is_selected', 'event_id' ); return db_query($sql); } function sd_YTU4MWRjYzEzNmQ3ZmQxNTc1N2ViM2Qz($displayed_vendors_list, $user_id) { if (empty($displayed_vendors_list) && empty($user_id)) { return; } $sql = sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk( $displayed_vendors_list, 'vendor_following', 'is_selected', 'vendor_id', 'AND user_id = ' . $user_id ); $result = db_query($sql); if ($result === false) { fn_set_notification('E', __('error'), __('text_error_adding_request')); } else { fn_set_notification('N', __('notice'), __('text_changes_saved')); } return $result; } function sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk($array, $table, $set, $case, $condition = '') { $ids = implode(',', array_keys($array)); $sql = db_quote("UPDATE ?:$table SET $set = CASE $case "); foreach ($array as $id => $ordinal) { $sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal); } $sql .= db_quote("END WHERE $case IN ($ids) $condition"); return $sql; } function sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_id, $vendor_id) { if (empty($user_id) && empty($vendor_id)) { return; } $result = db_get_field("SELECT COUNT(*) FROM ?:vendor_following WHERE user_id = ?i AND vendor_id = ?i", $user_id, $vendor_id); if ($result >= 1) { return true; } else { return false; } } function sd_NmIzNzVlZGZiYjE2M2Q0YzYzZjUwM2Ew($params, $news_per_page = '') { if (!empty($params['user_id'])) { $user_id = $params['user_id']; } else { return; } $company_ids = db_get_fields("SELECT vendor_id FROM ?:vendor_following WHERE user_id = ?i", $user_id); if (empty($company_ids)) { return; } $fields = array( '?:vendor_following_news.news_id', '?:vendor_following_news.product_id', '?:vendor_following_news.lang_var', '?:vendor_following_news.url', '?:vendor_following_news.vendor_id', '?:vendor_following_news.published_on', '?:companies.company' ); $join = db_quote(" LEFT JOIN ?:companies ON ?:vendor_following_news.vendor_id = ?:companies.company_id"); $join .= db_quote(" LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id"); $join .= db_quote(" LEFT JOIN ?:vendor_following_events ON ?:vendor_following_events.event_id = ?:vendor_following_news.event_id"); if (empty($condition)) { $condition = db_quote(" ?:vendor_following_news.vendor_id IN (?n)", $company_ids); } else { $condition .= db_quote(" AND ?:vendor_following_news.vendor_id IN (?n)", $company_ids); } if (!empty($params['last_cron_date'])) { $last_cron_date = $params['last_cron_date']; $condition .= db_quote(' AND ?:vendor_following_news.published_on > ?i', $last_cron_date); $condition .= db_quote(' AND ?:vendor_following_news.published_on <= ?i', TIME); } $condition .= db_quote(" AND ?:vendor_following_news.is_product_active = ?s", 'Y'); $condition .= db_quote(" AND ?:vendor_following.user_id = ?i", $user_id); $condition .= db_quote(" AND ?:vendor_following_events.is_selected = 1"); $condition .= db_quote(" AND ?:vendor_following.is_selected = 1"); $group_by = db_quote(" ORDER BY ?:vendor_following_news.published_on DESC"); fn_set_hook('get_vendor_news', $join, $condition, $fields, $group_by); $limit = ''; if (!empty($params) && !empty($news_per_page)) { $default_params = array ( 'news_page' => 1, 'news_per_page' => $news_per_page ); $params = array_merge($default_params, $params); $params['total_news'] = db_get_field('SELECT COUNT(DISTINCT(?:vendor_following_news.news_id)) FROM ?:vendor_following_news ?p WHERE ?p', $join, $condition); $limit = db_paginate($params['news_page'], $params['news_per_page'], $params['total_news']); } $news_list = db_get_array('SELECT ' . implode(',', $fields) . ' FROM ?:vendor_following_news ?p WHERE ?p ?p ?p', $join, $condition, $group_by, $limit); if (Registry::get('addons.sd_follow_vendor.display_image') == 'Y') { foreach ($news_list as &$news) { if (!empty($news['product_id'])) { $news['main_pair'] = fn_get_image_pairs($news['product_id'], 'product', 'M', true, true); } } } return array($news_list, $params); } function sd_OWFlOTRjYjM0OGJiZTg5NTY1OWI1YTI1($params, $items_per_page = 0) { $default_params = array( 'page' => 1, 'items_per_page' => $items_per_page ); $params = array_merge($default_params, $params); $sortings = array( 'followed_on' => 'followed_on', 'firstname' => 'firstname' ); $sorting = db_sort($params, $sortings, 'followed_on', 'desc'); $limit = ''; if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:vendor_following WHERE vendor_id = ?i", $params['vendor_id']); $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']); } $join = db_quote(" LEFT JOIN ?:users ON ?:users.user_id = ?:vendor_following.user_id"); $condition = db_quote(" ?:vendor_following.vendor_id = ?i", $params['vendor_id']); $userlog = db_get_array("SELECT followed_on, firstname, lastname, email FROM ?:vendor_following ?p WHERE ?p $sorting $limit", $join, $condition); return array($userlog, $params); } function sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($company_id, $event_id, $product_id, $status) { if (empty($company_id) && empty($product_id)) { return; } $product_name = fn_get_product_name($product_id); $company_name = fn_get_company_name($company_id); $event_is_set = (bool) db_get_field("SELECT is_selected FROM ?:vendor_following_events WHERE event_id = ?i", $event_id); $dispatch = fn_url("products.view?product_id=$product_id", 'C', 'http'); $url = "<a href=\"$dispatch\">$product_name</a>"; $data = array( 'news_id' => 0, 'vendor_id' => $company_id, 'event_id' => $event_id, 'product_id' => $product_id, 'url' => $url, 'lang_var' => '', 'published_on' => TIME, 'is_product_active' => ($status == 'A') ? 'Y' : 'N' ); switch ($event_id) { case PRODUCT_IS_CREATED: $data['lang_var'] = 'event_company_new_product'; break; case PRODUCT_BACK_IN_STOCK: $data['lang_var'] = 'event_company_product_back'; break; case REVIEW_IS_CREATED: $data['lang_var'] = 'event_company_new_review'; break; } if ($event_is_set) { $news_id = db_query("INSERT INTO ?:vendor_following_news ?e", $data); $data['news_id'] = $news_id; if ($status == 'A') { return sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0($data, $company_name); } } else { return false; } } function sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0($event_data, $company_name, $status_of_product_is_changed = 0) { $addon_setting = Registry::get('addons.sd_follow_vendor'); if ($addon_setting['email_by_schedule'] != 'Y') { if ($status_of_product_is_changed) { $condition = db_quote(' AND product_id = ?i', $status_of_product_is_changed); } else { $condition = db_quote(' AND product_id = ?i', $event_data['product_id']); } $news_disabled_product = db_get_array("SELECT * FROM ?:vendor_following_news WHERE is_product_active = ?s ?p", 'N', $condition); $join = db_quote(" LEFT JOIN ?:vendor_following ON ?:users.user_id = ?:vendor_following.user_id"); $subscriber_emails = db_get_fields("SELECT email FROM ?:users ?p WHERE vendor_id = ?i", $join, $event_data['vendor_id']); if (array_key_exists('news_id', $event_data) && !empty($news_disabled_product)) { $event_data = array_merge(array($event_data), $news_disabled_product); } else { $event_data = array($event_data); } if ($status_of_product_is_changed && !empty($news_disabled_product)) { $event_data = $news_disabled_product; } elseif (!array_key_exists('news_id', $event_data[0])) { return; } if (!empty($subscriber_emails) && !empty($event_data)) { $mailer = Tygh::$app['mailer']; $display_image = Registry::get('addons.sd_follow_vendor.display_image'); if ($display_image == 'Y') { $thumbnails_settings = Registry::get('settings.Thumbnails'); $image_width = $thumbnails_settings['product_lists_thumbnail_width']; $image_height = $thumbnails_settings['product_lists_thumbnail_height']; } foreach ($event_data as $event) { $mailer->send(array( 'to' => $subscriber_emails, 'from' => 'default_company_users_department', 'data' => array( 'url' => $event['url'], 'lang_var' => $event['lang_var'], 'image' => $display_image == 'Y' && !empty($event['product_id']) ? sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($event['product_id'], $image_width, $image_height) : '', 'vendor_name' => $company_name, ), 'template_code' => 'sd_follow_vendor_new_company_event', 'tpl' => 'addons/sd_follow_vendor/new_company_event.tpl', 'company_id' => $event['vendor_id'], ), 'C'); db_query("UPDATE ?:vendor_following_news SET is_product_active = ?s WHERE news_id = ?i", 'Y', $event['news_id']); } } return true; } } function sd_ODk4ZDY0ZDVmZDkwZTRhN2M4NzgyNzli($lang_var) { if (empty($lang_var)) { return; } return mb_strtolower(mb_substr($lang_var, 0, 1)) . mb_substr($lang_var, 1); } function fn_sd_follow_vendor_get_companies(&$params, &$fields, &$sortings, &$condition, &$join, &$auth, &$lang_code, &$group) { if ($params['dispatch'] == 'follower.view') { $fields[] = '?:vendor_following.is_selected'; $join .= db_quote(" LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id"); $condition .= db_quote(' AND ?:vendor_following.user_id = ?i', $auth['user_id']); if (empty($params['sort_by'])) { $params['sort_by'] = 'rand'; $sortings['rand'] = 'RAND()'; } } } function fn_sd_follow_vendor_update_product_post(&$product_data, &$product_id, $lang_code, $can_update) { if (isset($product_data['is_new'])) { sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($product_data['company_id'], PRODUCT_IS_CREATED, $product_id, $product_data['status']); } else { if (empty($product_data['status'])) { $product_data['status'] = ''; if (!empty($product_id)) { $product_data['status'] = db_get_field('SELECT status FROM ?:products WHERE product_id = ?i', $product_id); } } if (empty($product_data['company_id'])) { $product_data['company_id'] = 0; if (!empty($product_id)) { $product_data['company_id'] = db_get_field('SELECT company_id FROM ?:products WHERE product_id = ?i', $product_id); } } if ($product_data['status'] == 'A') { sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0(array('vendor_id' => $product_data['company_id']), fn_get_company_name($product_data['company_id']), $product_id); } } } function fn_sd_follow_vendor_tools_change_status(&$params, $result) { if (isset($params['table']) && isset($params['company_id']) && isset($params['product_id'])) { if ($params['table'] == 'discussion_posts' && $params['status'] == 'A') { sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($params['company_id'], REVIEW_IS_CREATED, $params['product_id'], 'A'); } } } function fn_sd_follow_vendor_update_product_pre(&$product_data, &$product_id, $lang_code, $can_update) { if (empty($product_id)) { $product_data['is_new'] = true; } else { if (!empty($product_data['amount'])) { $old_amount = fn_get_product_amount($product_id); if ($old_amount <= 0) { if (empty($product_data['company_id'])) { $company_data = fn_get_company_by_product_id($product_id); $product_data['company_id'] = $company_data['company_id']; } if (empty($product_data['status'])) { $product_data['status'] = ''; if (!empty($product_id)) { $product_data['status'] = db_get_field('SELECT status FROM ?:products WHERE product_id = ?i', $product_id); } } if ($product_data['status'] == 'A') { sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0(array('vendor_id' => $product_data['company_id']), fn_get_company_name($product_data['company_id']), $product_id); } sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($product_data['company_id'], PRODUCT_BACK_IN_STOCK, $product_id, $product_data['status']); } } } } function sd_MDFiNWZiNjM3NzExZThlOWExMjJiMTRk() { $object_id = db_get_field('SELECT object_id FROM ?:settings_objects WHERE name =?s', 'email_by_schedule'); if (!empty($object_id)) { db_query('UPDATE ?:vendor_following_digest SET object_id = ?i', $object_id); } } function sd_YWVmNGQyOGM5OTRhMTU4ZDkwNzZhNjli() { $events = array( array( 'event_id' => PRODUCT_IS_CREATED, 'is_selected' => 1, 'lang_var' => 'product_is_created' ), array( 'event_id' => PRODUCT_BACK_IN_STOCK, 'is_selected' => 1, 'lang_var' => 'back_in_stock' ), array( 'event_id' => REVIEW_IS_CREATED, 'is_selected' => 1, 'lang_var' => 'review_is_created' ), ); db_query('INSERT INTO ?:vendor_following_events ?m', $events); $object_id = db_get_field('SELECT object_id FROM ?:settings_objects WHERE name = ?s', 'email_by_schedule'); $frequency = array ( 'object_id' => $object_id, 'last_crone_date' => '' ); db_query('INSERT INTO ?:vendor_following_digest ?e', $frequency); } function sd_YTllMzg1Mjk2ZjdlN2Q5ODhjYTg4NzMw() { $config = Registry::get('config'); $php = 'php ' . $config['dir']['root'] . '/' . $config['customer_index']; $args = ' --dispatch=send_digest_by_email.send_digest --cron_password=' . Registry::get('addons.sd_follow_vendor.cron_password'); return __('export_cron_hint') . '<br/ >' . $php . $args; } function sd_YWQ5ZWJhZjZlODExMWIwYmExYzFhYTE3($event_data, $follower, $period) { if (empty($event_data)) { return; } $email = db_get_field('SELECT email FROM ?:users WHERE user_id = ?i', $follower['user_id']); $company_name = Registry::get('settings.Company.company_name'); if (Registry::get('addons.sd_follow_vendor.display_image') == 'Y') { foreach ($event_data as &$news) { if (!empty($news['product_id'])) { $news['image'] = sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($news['product_id']); } } } if (!empty($email)) { $mailer = Tygh::$app['mailer']; $mailer->send(array( 'to' => $email, 'from' => 'company_orders_department', 'data' => array( 'event_data' => $event_data, 'period' => $period, 'follower' => $follower, 'company_name' => $company_name, ), 'template_code' => 'sd_follow_vendor_digest', 'tpl' => 'addons/sd_follow_vendor/news_digest.tpl', ), 'C', $follower['lang_code']); } return true; } function sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($product_id, $image_width = 0, $image_height = 0) { $image = ''; if (!empty($product_id)) { $main_image = fn_get_image_pairs($product_id, 'product', 'M', true, true); if (!empty($main_image)) { $image_tpl = Tygh::$app['view']; $image_width = !empty($image_width) ? $image_width : Registry::get('settings.Thumbnails.product_lists_thumbnail_width'); $image_height = !empty($image_height) ? $image_height : Registry::get('settings.Thumbnails.product_lists_thumbnail_height'); $image_tpl->assign(array( 'image' => $main_image, 'image_width' => $image_width, 'image_height' => $image_height, 'href' => fn_url('products.view?product_id=' . $product_id, 'C') )); $image = $image_tpl->fetch(Registry::get('config.dir.design_backend') . 'templates/common/image.tpl'); } } return $image; } function sd_NzhhNThjNzQ5OGM5ODgxNDliOGNhYTZl($user_id, $params, $items_per_page = 0) { if (empty($user_id)) { return; } $company_ids = db_get_fields("SELECT vendor_id FROM ?:vendor_following WHERE user_id = ?i", $user_id); if (empty($company_ids)) { return; } $default_params = array( 'news_page' => 1, 'items_per_page' => $items_per_page ); if (!empty($params)) { $params = array_merge($default_params, $params); } else { $params = $default_params; } if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:vendor_following_news WHERE vendor_id IN (?n)", $company_ids); $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']); } $fields = array( '?:vendor_following_news.news_id', '?:vendor_following_news.lang_var', '?:vendor_following_news.url', '?:vendor_following_news.vendor_id', '?:vendor_following_news.published_on', '?:companies.company' ); $join = db_quote(' LEFT JOIN ?:companies ON ?:vendor_following_news.vendor_id = ?:companies.company_id'); $join .= db_quote(' LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id'); $join .= db_quote(' LEFT JOIN ?:vendor_following_events ON ?:vendor_following_events.event_id = ?:vendor_following_news.event_id'); $condition = db_quote(' ?:vendor_following_news.vendor_id IN (?n)', $company_ids); $condition .= db_quote(' AND ?:vendor_following.user_id = ?i', $user_id); $condition .= db_quote(' AND ?:vendor_following_events.is_selected = 1'); $group_by = db_quote(' ORDER BY ?:vendor_following_news.published_on DESC'); fn_set_hook('get_vendor_news', $user_id, $params, $join, $condition, $fields, $group_by); return array(db_get_array('SELECT ' . implode(',', $fields) . " FROM ?:vendor_following_news ?p WHERE ?p $group_by $limit", $join, $condition), $params); } function sd_MmZmMjQ1NTQwMmY2YjRiYmEwNjVmMzIy($params = array()) { if (Tygh::$app['session']['auth']['user_id']) { list($news) = sd_NzhhNThjNzQ5OGM5ODgxNDliOGNhYTZl(Tygh::$app['session']['auth']['user_id'], $params); } return !empty($news) ? $news : array(); } function sd_ZjMzOTdlMDZlOTAzNWM1Y2ZiY2E1ZTY3() { $news_sent = 0; $fields = array( 'vf.user_id', 'up.b_firstname', 'up.b_lastname', 'u.lang_code' ); $join = array( 'INNER JOIN ?:user_profiles as up ON up.user_id = vf.user_id', 'INNER JOIN ?:users as u ON u.user_id = up.user_id' ); $followers_data = db_get_array( 'SELECT DISTINCT ?p FROM ?:vendor_following as vf ?p WHERE u.status = ?s', implode(',', $fields), implode(' ', $join), 'A' ); if (!empty($followers_data)) { $object_id = db_get_field( 'SELECT object_id FROM ?:settings_objects WHERE name = ?s', 'email_by_schedule' ); $last_cron_date = db_get_field( 'SELECT last_cron_date FROM ?:vendor_following_digest WHERE object_id = ?i', $object_id ); if ($last_cron_date == 0) { $period = THE_FIRST; } elseif (strftime('%d.%m', $last_cron_date) == strftime('%d.%m', TIME)) { $period = strftime('%d.%m', TIME); } else { $period = strftime('%d.%m', $last_cron_date) . '-' . strftime('%d.%m', TIME); } $params['last_cron_date'] = $last_cron_date; foreach ($followers_data as $follower) { if (!empty($follower['user_id'])) { $params['user_id'] = $follower['user_id']; list($news, $search_news) = sd_NmIzNzVlZGZiYjE2M2Q0YzYzZjUwM2Ew($params, ''); if (!empty($news)) { foreach ($news as &$event) { $event['event'] = __( $event['lang_var'], array( '[vendor_name]' => $event['company'], '[url]' => $event['url'] ), $follower['lang_code'] ); $event['published_on'] = strftime('%d/%m/%Y', $event['published_on']); } sd_YWQ5ZWJhZjZlODExMWIwYmExYzFhYTE3($news, $follower, $period); $news_sent++; } } } if ($news_sent > 0) { $query = db_query( 'UPDATE ?:vendor_following_digest SET last_cron_date = ?i WHERE object_id = ?i', TIME, $object_id ); fn_echo(__('digest_has_been_sent') . '<br/>'); } else { fn_echo(__('no_news') . '<br/>'); } } else { fn_echo(__('no_followers') . '<br/>'); } } function sd_ODVmNmFiNWM0ODdjNmY1NWJiOTg1ZTk2($params, $area = AREA) { if (empty($params['total_news']) || empty($params['news_per_page'])) { return array(); } $deviation = ($area == 'A') ? DEVIATION_IF_AREA_A : DEVIATION_IF_AREA_NOT_A; $total_pages = ceil((int) $params['total_news'] / $params['news_per_page']); $page_from = fn_get_page_from($params['news_page'], $deviation); $page_to = fn_get_page_to($params['news_page'], $deviation, $total_pages); $pagination = array ( 'navi_pages' => range($page_from, $page_to), 'prev_range' => ($page_from > 1) ? $page_from - 1 : 0, 'next_range' => ($page_to < $total_pages) ? $page_to + 1: 0, 'current_page' => $params['news_page'], 'prev_page' => ($params['news_page'] > 1) ? $params['news_page'] - 1 : 0, 'next_page' => ($params['news_page'] < $total_pages) ? $params['news_page'] + 1 : 0, 'total_pages' => $total_pages, 'total_items' => $params['total_news'], 'items_per_page' => $params['news_per_page'], 'per_page_range' => range(PER_PAGES, PER_PAGES * MAX_PAGES, PER_PAGES) ); if ($pagination['prev_range']) { $pagination['prev_range_from'] = fn_get_page_from($pagination['prev_range'], $deviation); $pagination['prev_range_to'] = fn_get_page_to($pagination['prev_range'], $deviation, $total_pages); } if ($pagination['next_range']) { $pagination['next_range_from'] = fn_get_page_from($pagination['next_range'], $deviation); $pagination['next_range_to'] = fn_get_page_to($pagination['next_range'], $deviation, $total_pages); } if (!in_array($params['news_per_page'], $pagination['per_page_range'])) { $pagination['per_page_range'][] = $params['news_per_page']; sort($pagination['per_page_range']); } return $pagination; } ?>

Did this file decode correctly?

Original Code

<?php
 use Tygh\Registry; use Tygh\Http; use Tygh\Addons\SchemesManager; if (!defined('BOOTSTRAP')) { die('Access denied'); } function sd_MjU4ZTQxOTc1N2IxY2EzZThmNDE0ZmQ4($user_data, $vendor_data) { if (empty($user_data) && empty($vendor_data)) { return; } $user_is_follow = sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_data['user_id'], $vendor_data['company_id']); $follower_data = array( 'user_id' => $user_data['user_id'], 'vendor_id' => $vendor_data['company_id'], 'is_selected' => true, 'followed_on' => TIME ); if (!$user_is_follow) { db_query("INSERT INTO ?:vendor_following ?e", $follower_data); $data = fn_array_merge($user_data, $vendor_data); $lang_code = fn_get_company_language($vendor_data['company_id']); if (empty($lang_code)) { $lang_code = CART_LANGUAGE; } $mailer = Tygh::$app['mailer']; $mailer->send(array( 'to' => $vendor_data['email'], 'from' => 'default_company_users_department', 'data' => array( 'data' => $data, 'url' => fn_url('profiles.update?user_id=' . $user_data['user_id'], 'A') ), 'template_code' => 'sd_follow_vendor_new_follower', 'tpl' => 'addons/sd_follow_vendor/new_follower.tpl', 'company_id' => $vendor_data['company_id'], ), 'C', $lang_code); fn_set_notification('N', __('notice'), __('you_followed'), 'I'); } else { fn_set_notification('W', __('warning'), __('you_already_followed_vendor'), 'I'); } } function sd_MTc3ZDExZWNhZDEzYjRjMWUyODUxZjEw($user_id, $vendor_id) { if (empty($user_id) && empty($vendor_id)) { return; } $user_is_follow = sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_id, $vendor_id); if ($user_is_follow) { $result = db_query("DELETE FROM ?:vendor_following WHERE user_id = ?i AND vendor_id = ?i", $user_id, $vendor_id); fn_set_notification('N', __('notice'), __('you_unfollowed'), 'I'); } else { $result = false; fn_set_notification('W', __('warning'), __('you_already_unfollowed'), 'I'); } return $result; } function sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm($license = '') { if (!fn_allowed_for('MULTIVENDOR')) { $companies = db_get_array('SELECT storefront, secure_storefront FROM ?:companies'); } else { $companies = array(array('storefront' => fn_url('', 'C', 'http'))); } $addon = 'sd_follow_vendor'; $request = array( 'companies' => $companies, 'host' => Registry::get('config.current_host'), 'lang_code' => CART_LANGUAGE, 'addon' => $addon, 'addon_version' => fn_get_addon_version($addon), 'license' => !empty($license) ? trim($license) : Registry::get("addons.{$addon}.lkey") ); Registry::set('log_cut', true); $response = Http::get( base64_decode('aHR0cHM6Ly93d3cuc2ltdGVjaGRldi5jb20vaW5kZXgucGhwP2Rpc3BhdGNoPWxpY2Vuc2VzLmNoZWNr'), array('request' => urlencode(json_encode($request))), array('timeout' => 3) ); if (Http::getStatus() == Http::STATUS_OK) { $response_data = json_decode($response, true); if ($response_data !== null) { $status = isset($response_data['status']) ? $response_data['status'] : 'F'; if (isset($response_data['notice'])) { fn_set_notification( isset($response_data['type']) ? $response_data['type'] : 'W', SchemesManager::getName($addon, CART_LANGUAGE), $response_data['notice'], isset($response_data['state']) ? $response_data['state'] : '' ); } } else { $status = $response; } if ($status != 'A') { fn_update_addon_status($addon, 'D', false); } } else { $status = 'A'; } return $status == 'A'; } function fn_settings_actions_addons_sd_follow_vendor_lkey(&$new_value, $old_value) { if (sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm($new_value)) { $new_value = trim($new_value); } } function fn_settings_actions_addons_sd_follow_vendor(&$new_status, $old_status) { if ($new_status == 'A' && !sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm()) { $new_status = 'D'; } } function fn_sd_follow_vendor_set_admin_notification($user_data) { if (AREA == 'A' && $user_data['is_root'] == 'Y') { sd_ZTkzMWE2Y2ZhOGY2ZjU5YmVjYTFiOWVm(); } } function sd_MWNjY2RmYjY3ODU4OWI4NGMxNGRlZjcx($user_id) { $count = 0; $user_id = empty($user_id) ? Tygh::$app['session']['auth']['user_id'] : 0; if ($user_id) { $count = db_get_field('SELECT COUNT(*) FROM ?:vendor_following WHERE user_id = ?i', $user_id); } return $count; } function sd_YjVlNjRjYmU5ZDk5ZDcxMmQ2Nzg5MzI1() { return db_get_array("SELECT * FROM ?:vendor_following_events"); } function sd_ZGIxN2Q5YWJmMDFhM2M0NDZjM2UwM2Jk($event_id_list) { if (empty($event_id_list)) { return; } $sql = sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk( $event_id_list, 'vendor_following_events', 'is_selected', 'event_id' ); return db_query($sql); } function sd_YTU4MWRjYzEzNmQ3ZmQxNTc1N2ViM2Qz($displayed_vendors_list, $user_id) { if (empty($displayed_vendors_list) && empty($user_id)) { return; } $sql = sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk( $displayed_vendors_list, 'vendor_following', 'is_selected', 'vendor_id', 'AND user_id = ' . $user_id ); $result = db_query($sql); if ($result === false) { fn_set_notification('E', __('error'), __('text_error_adding_request')); } else { fn_set_notification('N', __('notice'), __('text_changes_saved')); } return $result; } function sd_YWZhNDE2YWQ5N2ZkZGE4NjAyMjQzYTJk($array, $table, $set, $case, $condition = '') { $ids = implode(',', array_keys($array)); $sql = db_quote("UPDATE ?:$table SET $set = CASE $case "); foreach ($array as $id => $ordinal) { $sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal); } $sql .= db_quote("END WHERE $case IN ($ids) $condition"); return $sql; } function sd_N2U1NjE1NWEwN2JhNmIzYjgwZjQxMGJh($user_id, $vendor_id) { if (empty($user_id) && empty($vendor_id)) { return; } $result = db_get_field("SELECT COUNT(*) FROM ?:vendor_following WHERE user_id = ?i AND vendor_id = ?i", $user_id, $vendor_id); if ($result >= 1) { return true; } else { return false; } } function sd_NmIzNzVlZGZiYjE2M2Q0YzYzZjUwM2Ew($params, $news_per_page = '') { if (!empty($params['user_id'])) { $user_id = $params['user_id']; } else { return; } $company_ids = db_get_fields("SELECT vendor_id FROM ?:vendor_following WHERE user_id = ?i", $user_id); if (empty($company_ids)) { return; } $fields = array( '?:vendor_following_news.news_id', '?:vendor_following_news.product_id', '?:vendor_following_news.lang_var', '?:vendor_following_news.url', '?:vendor_following_news.vendor_id', '?:vendor_following_news.published_on', '?:companies.company' ); $join = db_quote(" LEFT JOIN ?:companies ON ?:vendor_following_news.vendor_id = ?:companies.company_id"); $join .= db_quote(" LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id"); $join .= db_quote(" LEFT JOIN ?:vendor_following_events ON ?:vendor_following_events.event_id = ?:vendor_following_news.event_id"); if (empty($condition)) { $condition = db_quote(" ?:vendor_following_news.vendor_id IN (?n)", $company_ids); } else { $condition .= db_quote(" AND ?:vendor_following_news.vendor_id IN (?n)", $company_ids); } if (!empty($params['last_cron_date'])) { $last_cron_date = $params['last_cron_date']; $condition .= db_quote(' AND ?:vendor_following_news.published_on > ?i', $last_cron_date); $condition .= db_quote(' AND ?:vendor_following_news.published_on <= ?i', TIME); } $condition .= db_quote(" AND ?:vendor_following_news.is_product_active = ?s", 'Y'); $condition .= db_quote(" AND ?:vendor_following.user_id = ?i", $user_id); $condition .= db_quote(" AND ?:vendor_following_events.is_selected = 1"); $condition .= db_quote(" AND ?:vendor_following.is_selected = 1"); $group_by = db_quote(" ORDER BY ?:vendor_following_news.published_on DESC"); fn_set_hook('get_vendor_news', $join, $condition, $fields, $group_by); $limit = ''; if (!empty($params) && !empty($news_per_page)) { $default_params = array ( 'news_page' => 1, 'news_per_page' => $news_per_page ); $params = array_merge($default_params, $params); $params['total_news'] = db_get_field('SELECT COUNT(DISTINCT(?:vendor_following_news.news_id)) FROM ?:vendor_following_news ?p WHERE ?p', $join, $condition); $limit = db_paginate($params['news_page'], $params['news_per_page'], $params['total_news']); } $news_list = db_get_array('SELECT ' . implode(',', $fields) . ' FROM ?:vendor_following_news ?p WHERE ?p ?p ?p', $join, $condition, $group_by, $limit); if (Registry::get('addons.sd_follow_vendor.display_image') == 'Y') { foreach ($news_list as &$news) { if (!empty($news['product_id'])) { $news['main_pair'] = fn_get_image_pairs($news['product_id'], 'product', 'M', true, true); } } } return array($news_list, $params); } function sd_OWFlOTRjYjM0OGJiZTg5NTY1OWI1YTI1($params, $items_per_page = 0) { $default_params = array( 'page' => 1, 'items_per_page' => $items_per_page ); $params = array_merge($default_params, $params); $sortings = array( 'followed_on' => 'followed_on', 'firstname' => 'firstname' ); $sorting = db_sort($params, $sortings, 'followed_on', 'desc'); $limit = ''; if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:vendor_following WHERE vendor_id = ?i", $params['vendor_id']); $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']); } $join = db_quote(" LEFT JOIN ?:users ON ?:users.user_id = ?:vendor_following.user_id"); $condition = db_quote(" ?:vendor_following.vendor_id = ?i", $params['vendor_id']); $userlog = db_get_array("SELECT followed_on, firstname, lastname, email FROM ?:vendor_following ?p WHERE ?p $sorting $limit", $join, $condition); return array($userlog, $params); } function sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($company_id, $event_id, $product_id, $status) { if (empty($company_id) && empty($product_id)) { return; } $product_name = fn_get_product_name($product_id); $company_name = fn_get_company_name($company_id); $event_is_set = (bool) db_get_field("SELECT is_selected FROM ?:vendor_following_events WHERE event_id = ?i", $event_id); $dispatch = fn_url("products.view?product_id=$product_id", 'C', 'http'); $url = "<a href=\"$dispatch\">$product_name</a>"; $data = array( 'news_id' => 0, 'vendor_id' => $company_id, 'event_id' => $event_id, 'product_id' => $product_id, 'url' => $url, 'lang_var' => '', 'published_on' => TIME, 'is_product_active' => ($status == 'A') ? 'Y' : 'N' ); switch ($event_id) { case PRODUCT_IS_CREATED: $data['lang_var'] = 'event_company_new_product'; break; case PRODUCT_BACK_IN_STOCK: $data['lang_var'] = 'event_company_product_back'; break; case REVIEW_IS_CREATED: $data['lang_var'] = 'event_company_new_review'; break; } if ($event_is_set) { $news_id = db_query("INSERT INTO ?:vendor_following_news ?e", $data); $data['news_id'] = $news_id; if ($status == 'A') { return sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0($data, $company_name); } } else { return false; } } function sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0($event_data, $company_name, $status_of_product_is_changed = 0) { $addon_setting = Registry::get('addons.sd_follow_vendor'); if ($addon_setting['email_by_schedule'] != 'Y') { if ($status_of_product_is_changed) { $condition = db_quote(' AND product_id = ?i', $status_of_product_is_changed); } else { $condition = db_quote(' AND product_id = ?i', $event_data['product_id']); } $news_disabled_product = db_get_array("SELECT * FROM ?:vendor_following_news WHERE is_product_active = ?s ?p", 'N', $condition); $join = db_quote(" LEFT JOIN ?:vendor_following ON ?:users.user_id = ?:vendor_following.user_id"); $subscriber_emails = db_get_fields("SELECT email FROM ?:users ?p WHERE vendor_id = ?i", $join, $event_data['vendor_id']); if (array_key_exists('news_id', $event_data) && !empty($news_disabled_product)) { $event_data = array_merge(array($event_data), $news_disabled_product); } else { $event_data = array($event_data); } if ($status_of_product_is_changed && !empty($news_disabled_product)) { $event_data = $news_disabled_product; } elseif (!array_key_exists('news_id', $event_data[0])) { return; } if (!empty($subscriber_emails) && !empty($event_data)) { $mailer = Tygh::$app['mailer']; $display_image = Registry::get('addons.sd_follow_vendor.display_image'); if ($display_image == 'Y') { $thumbnails_settings = Registry::get('settings.Thumbnails'); $image_width = $thumbnails_settings['product_lists_thumbnail_width']; $image_height = $thumbnails_settings['product_lists_thumbnail_height']; } foreach ($event_data as $event) { $mailer->send(array( 'to' => $subscriber_emails, 'from' => 'default_company_users_department', 'data' => array( 'url' => $event['url'], 'lang_var' => $event['lang_var'], 'image' => $display_image == 'Y' && !empty($event['product_id']) ? sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($event['product_id'], $image_width, $image_height) : '', 'vendor_name' => $company_name, ), 'template_code' => 'sd_follow_vendor_new_company_event', 'tpl' => 'addons/sd_follow_vendor/new_company_event.tpl', 'company_id' => $event['vendor_id'], ), 'C'); db_query("UPDATE ?:vendor_following_news SET is_product_active = ?s WHERE news_id = ?i", 'Y', $event['news_id']); } } return true; } } function sd_ODk4ZDY0ZDVmZDkwZTRhN2M4NzgyNzli($lang_var) { if (empty($lang_var)) { return; } return mb_strtolower(mb_substr($lang_var, 0, 1)) . mb_substr($lang_var, 1); } function fn_sd_follow_vendor_get_companies(&$params, &$fields, &$sortings, &$condition, &$join, &$auth, &$lang_code, &$group) { if ($params['dispatch'] == 'follower.view') { $fields[] = '?:vendor_following.is_selected'; $join .= db_quote(" LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id"); $condition .= db_quote(' AND ?:vendor_following.user_id = ?i', $auth['user_id']); if (empty($params['sort_by'])) { $params['sort_by'] = 'rand'; $sortings['rand'] = 'RAND()'; } } } function fn_sd_follow_vendor_update_product_post(&$product_data, &$product_id, $lang_code, $can_update) { if (isset($product_data['is_new'])) { sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($product_data['company_id'], PRODUCT_IS_CREATED, $product_id, $product_data['status']); } else { if (empty($product_data['status'])) { $product_data['status'] = ''; if (!empty($product_id)) { $product_data['status'] = db_get_field('SELECT status FROM ?:products WHERE product_id = ?i', $product_id); } } if (empty($product_data['company_id'])) { $product_data['company_id'] = 0; if (!empty($product_id)) { $product_data['company_id'] = db_get_field('SELECT company_id FROM ?:products WHERE product_id = ?i', $product_id); } } if ($product_data['status'] == 'A') { sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0(array('vendor_id' => $product_data['company_id']), fn_get_company_name($product_data['company_id']), $product_id); } } } function fn_sd_follow_vendor_tools_change_status(&$params, $result) { if (isset($params['table']) && isset($params['company_id']) && isset($params['product_id'])) { if ($params['table'] == 'discussion_posts' && $params['status'] == 'A') { sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($params['company_id'], REVIEW_IS_CREATED, $params['product_id'], 'A'); } } } function fn_sd_follow_vendor_update_product_pre(&$product_data, &$product_id, $lang_code, $can_update) { if (empty($product_id)) { $product_data['is_new'] = true; } else { if (!empty($product_data['amount'])) { $old_amount = fn_get_product_amount($product_id); if ($old_amount <= 0) { if (empty($product_data['company_id'])) { $company_data = fn_get_company_by_product_id($product_id); $product_data['company_id'] = $company_data['company_id']; } if (empty($product_data['status'])) { $product_data['status'] = ''; if (!empty($product_id)) { $product_data['status'] = db_get_field('SELECT status FROM ?:products WHERE product_id = ?i', $product_id); } } if ($product_data['status'] == 'A') { sd_MzQxNjAyZDNhYzVmMmFiMDJhYzJiZGY0(array('vendor_id' => $product_data['company_id']), fn_get_company_name($product_data['company_id']), $product_id); } sd_MjNjMzFlMzE2OWFiZmQxMmVkZTA4Nzkx($product_data['company_id'], PRODUCT_BACK_IN_STOCK, $product_id, $product_data['status']); } } } } function sd_MDFiNWZiNjM3NzExZThlOWExMjJiMTRk() { $object_id = db_get_field('SELECT object_id FROM ?:settings_objects WHERE name =?s', 'email_by_schedule'); if (!empty($object_id)) { db_query('UPDATE ?:vendor_following_digest SET object_id = ?i', $object_id); } } function sd_YWVmNGQyOGM5OTRhMTU4ZDkwNzZhNjli() { $events = array( array( 'event_id' => PRODUCT_IS_CREATED, 'is_selected' => 1, 'lang_var' => 'product_is_created' ), array( 'event_id' => PRODUCT_BACK_IN_STOCK, 'is_selected' => 1, 'lang_var' => 'back_in_stock' ), array( 'event_id' => REVIEW_IS_CREATED, 'is_selected' => 1, 'lang_var' => 'review_is_created' ), ); db_query('INSERT INTO ?:vendor_following_events ?m', $events); $object_id = db_get_field('SELECT object_id FROM ?:settings_objects WHERE name = ?s', 'email_by_schedule'); $frequency = array ( 'object_id' => $object_id, 'last_crone_date' => '' ); db_query('INSERT INTO ?:vendor_following_digest ?e', $frequency); } function sd_YTllMzg1Mjk2ZjdlN2Q5ODhjYTg4NzMw() { $config = Registry::get('config'); $php = 'php ' . $config['dir']['root'] . '/' . $config['customer_index']; $args = ' --dispatch=send_digest_by_email.send_digest --cron_password=' . Registry::get('addons.sd_follow_vendor.cron_password'); return __('export_cron_hint') . '<br/ >' . $php . $args; } function sd_YWQ5ZWJhZjZlODExMWIwYmExYzFhYTE3($event_data, $follower, $period) { if (empty($event_data)) { return; } $email = db_get_field('SELECT email FROM ?:users WHERE user_id = ?i', $follower['user_id']); $company_name = Registry::get('settings.Company.company_name'); if (Registry::get('addons.sd_follow_vendor.display_image') == 'Y') { foreach ($event_data as &$news) { if (!empty($news['product_id'])) { $news['image'] = sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($news['product_id']); } } } if (!empty($email)) { $mailer = Tygh::$app['mailer']; $mailer->send(array( 'to' => $email, 'from' => 'company_orders_department', 'data' => array( 'event_data' => $event_data, 'period' => $period, 'follower' => $follower, 'company_name' => $company_name, ), 'template_code' => 'sd_follow_vendor_digest', 'tpl' => 'addons/sd_follow_vendor/news_digest.tpl', ), 'C', $follower['lang_code']); } return true; } function sd_NDA5NmYwNGFkOTE5MzQ4ZTg4ZTBkMmMw($product_id, $image_width = 0, $image_height = 0) { $image = ''; if (!empty($product_id)) { $main_image = fn_get_image_pairs($product_id, 'product', 'M', true, true); if (!empty($main_image)) { $image_tpl = Tygh::$app['view']; $image_width = !empty($image_width) ? $image_width : Registry::get('settings.Thumbnails.product_lists_thumbnail_width'); $image_height = !empty($image_height) ? $image_height : Registry::get('settings.Thumbnails.product_lists_thumbnail_height'); $image_tpl->assign(array( 'image' => $main_image, 'image_width' => $image_width, 'image_height' => $image_height, 'href' => fn_url('products.view?product_id=' . $product_id, 'C') )); $image = $image_tpl->fetch(Registry::get('config.dir.design_backend') . 'templates/common/image.tpl'); } } return $image; } function sd_NzhhNThjNzQ5OGM5ODgxNDliOGNhYTZl($user_id, $params, $items_per_page = 0) { if (empty($user_id)) { return; } $company_ids = db_get_fields("SELECT vendor_id FROM ?:vendor_following WHERE user_id = ?i", $user_id); if (empty($company_ids)) { return; } $default_params = array( 'news_page' => 1, 'items_per_page' => $items_per_page ); if (!empty($params)) { $params = array_merge($default_params, $params); } else { $params = $default_params; } if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:vendor_following_news WHERE vendor_id IN (?n)", $company_ids); $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']); } $fields = array( '?:vendor_following_news.news_id', '?:vendor_following_news.lang_var', '?:vendor_following_news.url', '?:vendor_following_news.vendor_id', '?:vendor_following_news.published_on', '?:companies.company' ); $join = db_quote(' LEFT JOIN ?:companies ON ?:vendor_following_news.vendor_id = ?:companies.company_id'); $join .= db_quote(' LEFT JOIN ?:vendor_following ON ?:vendor_following.vendor_id = ?:companies.company_id'); $join .= db_quote(' LEFT JOIN ?:vendor_following_events ON ?:vendor_following_events.event_id = ?:vendor_following_news.event_id'); $condition = db_quote(' ?:vendor_following_news.vendor_id IN (?n)', $company_ids); $condition .= db_quote(' AND ?:vendor_following.user_id = ?i', $user_id); $condition .= db_quote(' AND ?:vendor_following_events.is_selected = 1'); $group_by = db_quote(' ORDER BY ?:vendor_following_news.published_on DESC'); fn_set_hook('get_vendor_news', $user_id, $params, $join, $condition, $fields, $group_by); return array(db_get_array('SELECT ' . implode(',', $fields) . " FROM ?:vendor_following_news ?p WHERE ?p $group_by $limit", $join, $condition), $params); } function sd_MmZmMjQ1NTQwMmY2YjRiYmEwNjVmMzIy($params = array()) { if (Tygh::$app['session']['auth']['user_id']) { list($news) = sd_NzhhNThjNzQ5OGM5ODgxNDliOGNhYTZl(Tygh::$app['session']['auth']['user_id'], $params); } return !empty($news) ? $news : array(); } function sd_ZjMzOTdlMDZlOTAzNWM1Y2ZiY2E1ZTY3() { $news_sent = 0; $fields = array( 'vf.user_id', 'up.b_firstname', 'up.b_lastname', 'u.lang_code' ); $join = array( 'INNER JOIN ?:user_profiles as up ON up.user_id = vf.user_id', 'INNER JOIN ?:users as u ON u.user_id = up.user_id' ); $followers_data = db_get_array( 'SELECT DISTINCT ?p FROM ?:vendor_following as vf ?p WHERE u.status = ?s', implode(',', $fields), implode(' ', $join), 'A' ); if (!empty($followers_data)) { $object_id = db_get_field( 'SELECT object_id FROM ?:settings_objects WHERE name = ?s', 'email_by_schedule' ); $last_cron_date = db_get_field( 'SELECT last_cron_date FROM ?:vendor_following_digest WHERE object_id = ?i', $object_id ); if ($last_cron_date == 0) { $period = THE_FIRST; } elseif (strftime('%d.%m', $last_cron_date) == strftime('%d.%m', TIME)) { $period = strftime('%d.%m', TIME); } else { $period = strftime('%d.%m', $last_cron_date) . '-' . strftime('%d.%m', TIME); } $params['last_cron_date'] = $last_cron_date; foreach ($followers_data as $follower) { if (!empty($follower['user_id'])) { $params['user_id'] = $follower['user_id']; list($news, $search_news) = sd_NmIzNzVlZGZiYjE2M2Q0YzYzZjUwM2Ew($params, ''); if (!empty($news)) { foreach ($news as &$event) { $event['event'] = __( $event['lang_var'], array( '[vendor_name]' => $event['company'], '[url]' => $event['url'] ), $follower['lang_code'] ); $event['published_on'] = strftime('%d/%m/%Y', $event['published_on']); } sd_YWQ5ZWJhZjZlODExMWIwYmExYzFhYTE3($news, $follower, $period); $news_sent++; } } } if ($news_sent > 0) { $query = db_query( 'UPDATE ?:vendor_following_digest SET last_cron_date = ?i WHERE object_id = ?i', TIME, $object_id ); fn_echo(__('digest_has_been_sent') . '<br/>'); } else { fn_echo(__('no_news') . '<br/>'); } } else { fn_echo(__('no_followers') . '<br/>'); } } function sd_ODVmNmFiNWM0ODdjNmY1NWJiOTg1ZTk2($params, $area = AREA) { if (empty($params['total_news']) || empty($params['news_per_page'])) { return array(); } $deviation = ($area == 'A') ? DEVIATION_IF_AREA_A : DEVIATION_IF_AREA_NOT_A; $total_pages = ceil((int) $params['total_news'] / $params['news_per_page']); $page_from = fn_get_page_from($params['news_page'], $deviation); $page_to = fn_get_page_to($params['news_page'], $deviation, $total_pages); $pagination = array ( 'navi_pages' => range($page_from, $page_to), 'prev_range' => ($page_from > 1) ? $page_from - 1 : 0, 'next_range' => ($page_to < $total_pages) ? $page_to + 1: 0, 'current_page' => $params['news_page'], 'prev_page' => ($params['news_page'] > 1) ? $params['news_page'] - 1 : 0, 'next_page' => ($params['news_page'] < $total_pages) ? $params['news_page'] + 1 : 0, 'total_pages' => $total_pages, 'total_items' => $params['total_news'], 'items_per_page' => $params['news_per_page'], 'per_page_range' => range(PER_PAGES, PER_PAGES * MAX_PAGES, PER_PAGES) ); if ($pagination['prev_range']) { $pagination['prev_range_from'] = fn_get_page_from($pagination['prev_range'], $deviation); $pagination['prev_range_to'] = fn_get_page_to($pagination['prev_range'], $deviation, $total_pages); } if ($pagination['next_range']) { $pagination['next_range_from'] = fn_get_page_from($pagination['next_range'], $deviation); $pagination['next_range_to'] = fn_get_page_to($pagination['next_range'], $deviation, $total_pages); } if (!in_array($params['news_per_page'], $pagination['per_page_range'])) { $pagination['per_page_range'][] = $params['news_per_page']; sort($pagination['per_page_range']); } return $pagination; }

Function Calls

None

Variables

None

Stats

MD5 53b1c7c34ffb4be94d6d33505883d351
Eval Count 0
Decode Time 180 ms