function tzs_front_end_my_shipments_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $url = current_page_url(); $page = current_page_number(); $pp = TZS_RECORDS_PER_PAGE; $active = isset($_GET['active']) ? trim($_GET['active']) : '1'; if ($user_id == 0) { ?> <div>Для просмотра необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <?php } else { $sql = "SELECT COUNT(*) as cnt FROM " . TZS_SHIPMENT_TABLE . " WHERE user_id={$user_id} AND active={$active};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список грузов. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; // Добавим отбор счетов и сортировку по ним для активных записей if ($active == 0) { $sql = "SELECT * FROM " . TZS_SHIPMENT_TABLE . " WHERE user_id={$user_id} AND active={$active} ORDER BY time DESC LIMIT {$from},{$pp};"; } else { $sql = "SELECT a.*,"; $sql .= " b.id AS order_id,"; $sql .= " b.number AS order_number,"; $sql .= " b.status AS order_status,"; $sql .= " b.dt_pay AS order_dt_pay,"; $sql .= " b.dt_expired AS order_dt_expired,"; $sql .= " IFNULL(b.dt_pay, a.time) AS dt_sort"; $sql .= " FROM " . TZS_SHIPMENT_TABLE . " a"; $sql .= " LEFT OUTER JOIN wp_tzs_orders b ON (b.tbl_type = 'SH' AND a.id = b.tbl_id AND ((b.status=1 AND b.dt_expired > NOW()) OR b.status=0) )"; $sql .= " WHERE a.user_id={$user_id} AND a.active={$active}"; $sql .= " ORDER BY order_status DESC, dt_sort DESC"; $sql .= " LIMIT {$from},{$pp};"; } $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список транспорта. Свяжитесь, пожалуйста, с администрацией сайта'); } else { ?> <script src="/wp-content/plugins/tzs/assets/js/distance.js"></script> <div id="my_products_wrapper"> <div id="my_products_table"> <table id="tbl_products"> <thead> <tr id="tbl_thead_records_per_page"> <th colspan="4"> <div class="div_td_left"> <h3>Список <?php echo $active === '1' ? 'публикуемых' : 'архивных'; ?> грузов</h3> </div> </th> <th colspan="6"> <div id="my_products_button"> <?php if ($active === '1') { ?> <button id="view_del" onClick="javascript: window.open('/account/my-shipments/?active=0', '_self');">Показать архивные</button> <?php } else { ?> <button id="view_edit" onClick="javascript: window.open('/account/my-shipments/?active=1', '_self');">Показать публикуемые</button> <?php } ?> <button id="view_add" onClick="javascript: window.open('/account/add-shipment/', '_self');">Добавить груз</button> </div> </th> </tr> <tr> <th id="tbl_trucks_id">№, дата и время заявки</th> <th id="tbl_trucks_path" nonclickable="true">Пункты погрузки /<br>выгрузки</th> <th id="tbl_trucks_dtc">Дата погрузки /<br>выгрузки</th> <th id="tbl_trucks_ttr">Тип груза</th> <th id="tbl_trucks_wv">Вес,<br>объем</th> <th id="tbl_trucks_comm">Описание груза</th> <th id="tbl_trucks_cost">Стоимость,<br/>цена 1 км</th> <th id="tbl_trucks_payment">Форма оплаты</th> <th id="comm">Комментарии</th> <th id="actions" nonclickable="true">Действия</th> </tr> </thead> <tbody> <?php foreach ($res as $row) { $type = trans_types_to_str($row->trans_type, $row->tr_type); $cost = tzs_cost_to_str($row->cost, true); ?> <tr rid="<?php echo $row->id; ?> " <?php echo $row->order_status == 1 ? ' class="top_record"' : ($row->order_status !== null && $row->order_status == 0 ? ' class="pre_top_record"' : ''); ?> > <td> <?php echo $row->id; ?> <br> <?php echo convert_time($row->time); ?> </td> <td> <?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->sh_city_from); ?> <br/><?php echo tzs_city_to_str($row->to_cid, $row->to_rid, $row->to_sid, $row->sh_city_to); ?> <?php if ($row->distance > 0) { ?> <br/> <?php echo tzs_make_distance_link($row->distance, false, array($row->sh_city_from, $row->sh_city_to)); ?> <?php } ?> </td> <td><?php echo convert_date($row->sh_date_from); ?> <br/><?php echo convert_date($row->sh_date_to); ?> </td> <td><?php echo $GLOBALS['tzs_sh_types'][$row->sh_type]; ?> </td> <td> <?php if ($row->sh_weight > 0) { echo remove_decimal_part($row->sh_weight) . ' т<br>'; } if ($row->sh_volume > 0) { echo remove_decimal_part($row->sh_volume) . ' м³'; } ?> </td> <td><?php echo htmlspecialchars($row->sh_descr); ?> </td> <td> <?php if ($row->price > 0) { echo $row->price . ' ' . $GLOBALS['tzs_curr'][$row->price_val] . '<br><br>'; echo round($row->price / $row->distance, 2) . ' ' . $GLOBALS['tzs_curr'][$row->price_val] . '/км'; } ?> </td> <td><?php echo $cost[1]; ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> <td> <a href="javascript:doDisplay(<?php echo $row->id; ?> );" at="<?php echo $row->id; ?> " id="icon_set">Действия</a> <div id="menu_set" id2="menu" for="<?php echo $row->id; ?> " style="display:none;"> <ul> <a href="/account/view-shipment/?id=<?php echo $row->id; ?> &link=my-shipments&active=<?php echo $active; ?> ">Смотреть</a> <a href="/account/edit-shipment/?id=<?php echo $row->id; ?> ">Изменить</a> <?php if ($row->active && $row->order_status === null) { ?> <a href="javascript:promptPickUp(<?php echo $row->id; ?> , 'SH');">В ТОП</a> <?php } ?> <?php if ($row->active && $row->order_status !== null && $row->order_status == 0) { ?> <a href="/account/view-order/?id=<?php echo $row->order_id; ?> ">Счет ТОП</a> <?php } ?> <a href="javascript: promptDelete(<?php echo $row->id . ', ' . $row->active; ?> );" id="red">Удалить</a> </ul> </div> </td> </tr> <?php } ?> </tbody> </table> </div> </div> <?php include_once WP_PLUGIN_DIR . '/tzs/front-end/tzs.my.new_order.php'; ?> <script src="/wp-content/plugins/tzs/assets/js/jquery.stickytableheaders.min.js"></script> <script> jQuery(document).ready(function(){ jQuery('table').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[1].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-shipment/?id="+id+"&link=my-shipments&active=<?php echo $active; ?> "; }); jQuery("#tbl_products").stickyTableHeaders(); }); function doDisplay(id) { var el = jQuery('div[for='+id+']'); if (el.attr('style') == null) { el.attr('style', 'display:none;'); jQuery('a[at='+id+']').attr('id', 'icon_set'); } else { el.removeAttr('style'); jQuery('a[at='+id+']').attr('id', 'icon_set_cur'); } jQuery("div[id2=menu]").each(function(i) { var id2 = this.getAttribute('for'); if (id2 != ''+id) { this.setAttribute('style', 'display:none;'); jQuery('a[at='+id2+']').attr('id', 'icon_set'); } }); } function promptDelete(id, active) { if (active === 1) { var s_text = '<div><h2>Удалить запись '+id+' или перенести в архив ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p></div>'; buttons1 = new Object({ 'В архив': function () { jQuery(this).dialog("close"); doDelete(id, 0); }, 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } else { var s_text = '<div><h2>Удалить запись '+id+' из архива ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p></div>'; buttons1 = new Object({ 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } jQuery('<div></div>').appendTo('body') .html(s_text) .dialog({ modal: true, title: 'Удаление', zIndex: 10000, autoOpen: true, width: 'auto', resizable: false, buttons: buttons1, close: function (event, ui) { jQuery(this).remove(); } }); } function doDelete(id, is_delete) { var data = { 'action': 'tzs_delete_shipment', 'id': id, 'is_delete': is_delete }; jQuery.post(ajax_url, data, function(response) { if (response == '1') { location.reload(); } else { alert('Не удалось удалить: '+response); } }); } </script> <?php build_pages_footer($page, $pages); } } } $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_my_products_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $url = current_page_url(); $page = current_page_number(); $pp = TZS_RECORDS_PER_PAGE; $active = isset($_GET['active']) ? trim($_GET['active']) : '1'; $record_pickup_time = get_option('t3s_setting_record_pickup_time', '30'); if ($user_id == 0) { ?> <div>Для просмотра необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <script> jQuery(document).ready(function(){ jQuery('#menu-profile').hide(); }); </script> <?php } else { $sql = "SELECT COUNT(*) as cnt FROM " . TZS_PRODUCTS_TABLE . " WHERE user_id={$user_id} AND active={$active};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров/услуг. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; // Добавим отбор счетов и сортировку по ним для активных записей if ($active == 0) { $sql = "SELECT * FROM " . TZS_PRODUCTS_TABLE . " WHERE user_id={$user_id} AND active={$active} ORDER BY created DESC LIMIT {$from},{$pp};"; } else { $sql = "SELECT a.*,"; $sql .= " b.id AS order_id,"; $sql .= " b.number AS order_number,"; $sql .= " b.status AS order_status,"; $sql .= " b.dt_pay AS order_dt_pay,"; $sql .= " b.dt_expired AS order_dt_expired,"; $sql .= " IFNULL(b.dt_pay, a.created) AS dt_sort,"; $sql .= " IF(b.status IS NOT NULL, 2, IF(ROUND((UNIX_TIMESTAMP() - UNIX_TIMESTAMP(a.dt_pickup))/60, 0) <= " . $record_pickup_time . ", 1, 0)) AS top_status,"; $sql .= " LOWER(c.code) AS from_code"; $sql .= " FROM " . TZS_PRODUCTS_TABLE . " a"; $sql .= " LEFT OUTER JOIN wp_tzs_orders b ON (b.tbl_type = 'PR' AND a.id = b.tbl_id AND ((b.status=1 AND b.dt_expired > NOW()) OR b.status=0) )"; $sql .= " LEFT OUTER JOIN wp_tzs_countries c ON (a.from_cid = c.country_id)"; $sql .= " WHERE a.user_id={$user_id} AND a.active={$active}"; $sql .= " ORDER BY top_status DESC, order_status DESC, dt_sort DESC"; $sql .= " LIMIT {$from},{$pp};"; } $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров/услуг. Свяжитесь, пожалуйста, с администрацией сайта'); } else { ?> <div id="my_products_wrapper"> <div id="my_products_table"> <input type="hidden" id="table_record_id" name="table_record_id" value="0"/> <input type="hidden" id="table_record_order_id" name="table_record_order_id" value=""/> <input type="hidden" id="table_record_order_status" name="table_record_order_status" value=""/> <input type="hidden" id="table_record_top_status" name="table_record_top_status" value=""/> <table id="tbl_products"> <thead> <tr id="tbl_thead_records_per_page"> <th colspan="10" style="border: 0;"> <div class="div_td_left"> <?php echo $active === '1' ? 'Публикуемые' : 'Архивные'; ?> товары </div> <div id="my_products_button"> <?php if ($active === '1') { ?> <button id="pickup_button">Обновить</button> <button id="vip_pickup_button">ТОП $</button> <button id="view_button">Смотреть</button> <button id="edit_button"">Изменить</button> <button id="delete_button">Удалить</button> <button id="all_list_button" onClick="javascript: window.open('/products', '_self');">Общий список</button> <button id="" onClick="javascript: window.open('/account/my-products/?active=0', '_self');">Архивные</button> <?php } else { ?> <button id="duplicate_button">Дублировать</button> <button id="view_button">Смотреть</button> <button id="delete_button">Удалить</button> <button id="all_list_button" onClick="javascript: window.open('/products', '_self');">Общий список</button> <button id="" onClick="javascript: window.open('/account/my-products/?active=1', '_self');">Публикуемые</button> <?php } ?> </div> </th> </tr> <tr> <th id="tbl_trucks_rb"> </th> <th id="tbl_products_id">Опубликовано<br>Поднято</th> <th id="tbl_products_sale">Покупка<br/>Продажа</th> <th id="tbl_products_dtc">Период публи-<br/>кации</th> <th id="tbl_products_type">Тип товара</th> <th id="tbl_products_img">Фото товара</th> <th id="tbl_products_title">Название, описание и местонахождение товара</th> <th id="tbl_products_price">Цена<br/>Кол-во</th> <th id="tbl_products_payment">Форма оплаты</th> <th id="tbl_products_cost">Купить / Предложить цену</th> <!--th id="actions" nonclickable="true">Действия</th--> </tr> </thead> <tbody> <?php foreach ($res as $row) { //$profile_td_text = '<a href="javascript:doDisplay('.$row->id.');" at="'.$row->id.'" id="icon_set">Действия</a> // <div id="menu_set" id2="menu" for="'.$row->id.'" style="display:none;"> $profile_td_text = '<div id="menu_set" id2="menu" for="' . $row->id . '"> <ul> <a href="/account/view-product/?id=' . $row->id . '&link=my-products&active=' . $active . '">Смотреть</a> <a href="/account/edit-product/?id=' . $row->id . '">Изменить</a>'; if ($row->active && $row->order_status === null) { $profile_td_text .= '<a href="javascript:promptPickUp(' . $row->id . ', \'PR\');">В ТОП</a>'; } if ($row->active && $row->order_status !== null && $row->order_status == 0) { $profile_td_text .= '<a href="/account/view-order/?id=' . $row->order_id . '">Счет ТОП</a>'; } $profile_td_text .= '<a href="javascript: promptDelete(' . $row->id . ', ' . $row->active . ');" id="red">Удалить</a> </ul> </div>'; $profile_td_text = 'no'; $sss = tzs_products_table_record_out($row, 'products', tzs_get_children_pages(TZS_PR_ROOT_CATEGORY_PAGE_ID), $profile_td_text); echo $sss; } ?> </tbody> </table> </div> </div> <?php include_once WP_PLUGIN_DIR . '/tzs/front-end/tzs.my.record_pickup.php'; ?> <?php include_once WP_PLUGIN_DIR . '/tzs/front-end/tzs.my.new_order.php'; ?> <script src="/wp-content/plugins/tzs/assets/js/jquery.stickytableheaders.min.js"></script> <script> // Функция, отрабатывающая после готовности HTML-документа jQuery(document).ready(function(){ jQuery('.entry-title').hide(); /*jQuery('table').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[1].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-product/?id="+id+"&link=my-products&active=<?php echo $active; ?> "; });*/ jQuery("#tbl_products").stickyTableHeaders(); jQuery("input[type=radio]").change(function (e) { var order_id = e.target.getAttribute('order-id'); var order_status = e.target.getAttribute('order-status'); var top_status = e.target.getAttribute('top-status'); var record_active = e.target.getAttribute('record-active'); jQuery("#table_record_id").attr('value', e.target.value); jQuery("#table_record_active").attr('value', record_active); jQuery("#table_record_order_id").attr('value', order_id); jQuery("#table_record_order_status").attr('value', order_status); jQuery("#table_record_top_status").attr('value', top_status); if (top_status == 2) { jQuery("#pickup_button").hide(); if (order_status != '') { jQuery("#vip_pickup_button").text('Счет ТОП $'); } else { jQuery("#vip_pickup_button").text(''); } } else if (top_status == 1) { jQuery("#vip_pickup_button").text('ТОП $'); jQuery("#pickup_button").hide(); jQuery("#vip_pickup_button").show(); } else { jQuery("#vip_pickup_button").text('ТОП $'); jQuery("#pickup_button").show(); jQuery("#vip_pickup_button").show(); } }); jQuery("#pickup_button").on('click', function(event) { id = jQuery("#table_record_id").attr('value'); if (id !== '0') { promptPickUp(id, 'PR'); } else { ksk_show_msg('Необходимо выбрать запись с помощью переключателя в первом столбце', 'Ошибка'); event.preventDefault(); } }); jQuery("#vip_pickup_button").on('click', function(event) { var id = jQuery("#table_record_id").attr('value'); var order_id = jQuery("#table_record_order_id").attr('value'); var order_status = jQuery("#table_record_order_status").attr('value'); //alert('id='+id+', order_id='+order_id+', order_status='+order_status); if (id !== '0') { if (order_status == '') { promptVipPickUp(id, 'PR'); } else { window.location.replace("<?php echo get_site_url(); ?> /account/view-order/?id=" + order_id); } } else { ksk_show_msg('Необходимо выбрать запись с помощью переключателя в первом столбце', 'Ошибка'); event.preventDefault(); } }); jQuery("#view_button").on('click', function(event) { id = jQuery("#table_record_id").attr('value'); active = jQuery("#table_record_active").attr('value'); if (id !== '0') { window.location.replace("<?php echo get_site_url(); ?> /account/view-product/?id=" + id + "&link=my-products&active=" + active); } else { ksk_show_msg('Необходимо выбрать запись с помощью переключателя в первом столбце', 'Ошибка'); event.preventDefault(); } }); jQuery("#edit_button").on('click', function(event) { id = jQuery("#table_record_id").attr('value'); if (id !== '0') { document.location = "<?php echo get_site_url(); ?> /account/edit-product/?id="+id; } else { ksk_show_msg('Необходимо выбрать запись с помощью переключателя в первом столбце', 'Ошибка'); event.preventDefault(); } }); jQuery("#delete_button").on('click', function(event) { id = jQuery("#table_record_id").attr('value'); if (id !== '0') { promptDelete(id, <?php echo $active; ?> ); } else { ksk_show_msg('Необходимо выбрать запись с помощью переключателя в первом столбце', 'Ошибка'); event.preventDefault(); } }); }); function doDisplay(id) { var el = jQuery('div[for='+id+']'); if (el.attr('style') == null) { el.attr('style', 'display:none;'); jQuery('a[at='+id+']').attr('id', 'icon_set'); } else { el.removeAttr('style'); jQuery('a[at='+id+']').attr('id', 'icon_set_cur'); } jQuery("div[id2=menu]").each(function(i) { var id2 = this.getAttribute('for'); if (id2 != ''+id) { this.setAttribute('style', 'display:none;'); jQuery('a[at='+id2+']').attr('id', 'icon_set'); } }); } function promptDelete(id, active) { if (active === 1) { var s_text = '<div><h2>Удалить запись '+id+' или перенести в архив ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'В архив': function () { jQuery(this).dialog("close"); doDelete(id, 0); }, 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } else { var s_text = '<div><h2>Удалить запись '+id+' из архива ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } jQuery('<div></div>').appendTo('body') .html(s_text) .dialog({ modal: true, title: 'Удаление', zIndex: 10000, autoOpen: true, width: 'auto', resizable: false, buttons: buttons1, close: function (event, ui) { jQuery(this).remove(); } }); } function doDelete(id, is_delete) { var data = { 'action': 'tzs_delete_product', 'id': id, 'is_delete': is_delete }; jQuery.post(ajax_url, data, function(response) { if (response == '1') { location.reload(); } else { alert('Не удалось удалить: '+response); } }); } </script> <?php build_pages_footer($page, $pages); } } } $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_following_handler($atts) { ob_start(); $sp = tzs_validate_search_parameters(); $s_sql = tzs_search_parameters_to_sql($sp, 'sh'); $s_title = tzs_search_parameters_to_str($sp); $errors = $sp['errors']; $show_table = true; if (strlen($s_title) == 0 && count($errors) == 0) { $show_table = false; //$errors = array("Укажите параметры поиска"); } if (count($errors) > 0) { print_errors($errors); } ?> <a href="javascript:showSearchDialog();" id="edit_search">Изменить параметры поиска</a> <?php if (count($errors) == 0 && $show_table) { if (strlen($s_title) > 0) { ?> <div id="search_info">Попутные грузы <?php echo $s_title; ?> </div> <?php } else { ?> <div id="search_info">Параметры поиска не заданы</div> <?php } $page = current_page_number(); ?> <a tag="page" id="realod_btn" href="<?php echo build_page_url($page); ?> ">Обновить</a> <?php global $wpdb; $url = current_page_url(); $pp = TZS_RECORDS_PER_PAGE; $sql = "SELECT COUNT(*) as cnt FROM " . TZS_SHIPMENT_TABLE . " WHERE active=1 {$s_sql};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список грузов. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT * FROM " . TZS_SHIPMENT_TABLE . " WHERE active=1 {$s_sql} ORDER BY time DESC LIMIT {$from},{$pp};"; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список грузов. Свяжитесь, пожалуйста, с администрацией сайта'); } else { if (count($res) == 0) { ?> <div id="info">По Вашему запросу ничего не найдено.</div> <?php } else { ?> <script src="/wp-content/plugins/tzs/assets/js/distance.js"></script> <table id="tbl_shipments"> <tr> <th id="numb">Номер заявки</th> <th id="adds">Дата размещения</th> <th id="date-load">Дата погрузки<br>Дата выгрузки</th> <th id="numb-unload" nonclickable="true">Пункт погрузки<br>Пункт выгрузки</th> <th id="desc">Описание груза</th> <th id="wight">Вес</th> <th id="vol">Объем</th> <th id="type">Тип транспорта</th> <th id="cost">Цена</th> <th id="comm">Комментарии</th> </tr> <?php foreach ($res as $row) { $type = isset($GLOBALS['tzs_tr_types'][$row->trans_type]) ? $GLOBALS['tzs_tr_types'][$row->trans_type] : ""; ?> <tr rid="<?php echo $row->id; ?> "> <td><?php echo $row->id; ?> </td> <td><b><?php echo convert_date_no_year($row->time); ?> </b><br/><?php echo convert_time_only($row->time); ?> </td> <td><?php echo convert_date_no_year($row->sh_date_from); ?> <br/><?php echo convert_date_no_year($row->sh_date_to); ?> </td> <td> <?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->sh_city_from); ?> <br/><?php echo tzs_city_to_str($row->to_cid, $row->to_rid, $row->to_sid, $row->sh_city_to); ?> <?php if ($row->distance > 0) { ?> <br/> <?php echo tzs_make_distance_link($row->distance, false, array($row->sh_city_from, $row->sh_city_to)); ?> <?php } ?> </td> <td><?php echo htmlspecialchars($row->sh_descr); ?> </td> <?php if ($row->sh_weight > 0) { ?> <td><?php echo remove_decimal_part($row->sh_weight); ?> т</td> <?php } else { ?> <td> </td> <?php } ?> <?php if ($row->sh_volume > 0) { ?> <td><?php echo remove_decimal_part($row->sh_volume); ?> м³</td> <?php } else { ?> <td> </td> <?php } ?> <td><?php echo $type; ?> </td> <td><?php echo tzs_cost_to_str($row->cost); ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> </tr> <?php } ?> </table> <?php } build_pages_footer($page, $pages); } } } ?> <script src="/wp-content/plugins/tzs/assets/js/search.js"></script> <script> var post = []; <?php echo "// POST dump here\n"; foreach ($_POST as $key => $value) { echo "post[" . tzs_encode2($key) . "] = " . tzs_encode2($value) . ";\n"; } ?> function showSearchDialog() { doSearchDialog('cargo', post, null, true); } jQuery(document).ready(function(){ jQuery('#tbl_shipments').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[0].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-shipment/?id="+id; }); hijackLinks(post); <?php if (strlen($s_title) == 0) { ?> showSearchDialog();<?php } ?> }); </script> <?php $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_user_trucks_handler($atts) { // Определяем атрибуты // [tzs-view-user-products user_id="1"] - указываем на странице раздела // [tzs-view-products] - указываем на страницах подразделов extract(shortcode_atts(array('user_id' => '0'), $atts, 'tzs-view-user-trucks')); ob_start(); $sql1 = ' AND user_id=' . $user_id; global $wpdb; $page = current_page_number(); $url = current_page_url(); $pp = TZS_RECORDS_PER_PAGE; $sql = "SELECT COUNT(*) as cnt FROM " . TZS_TRUCK_TABLE . " WHERE active=1 {$sql1} "; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список транспорта. Свяжитесь, пожалуйста, с администрацией сайта -count'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT * FROM " . TZS_TRUCK_TABLE . " WHERE active=1 {$sql1} ORDER BY time DESC LIMIT {$from},{$pp}; "; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список транспорта. Свяжитесь, пожалуйста, с администрацией сайта - record'); echo $wpdb->last_error; } else { if (count($res) == 0) { ?> <div style="clear: both;"></div> <div class="errors"> <div id="info error">По Вашему запросу ничего не найдено.</div> </div> <?php } else { ?> <div> <table id="tbl_products"> <tr> <th id="tbl_trucks_id">N, дата и время заявки</th> <th id="tbl_trucks_path" nonclickable="true">Пункты погрузки /<br/>выгрузки</th> <th id="tbl_trucks_dtc">Даты погрузки /<br>выгрузки</th> <th id="tbl_trucks_ttr">Тип транспортного средства</th> <th id="tbl_trucks_wv">Описание ТС</th> <th id="tbl_trucks_wv">Желаемый груз</th> <th id="tbl_trucks_cost">Cтоимость,<br/>цена 1 км</th> <th id="tbl_trucks_payment">Форма оплаты</th> </tr> <?php foreach ($res as $row) { echo tzs_tr_sh_table_record_out_cont($row, 'shipments'); } ?> </table> </div> <?php } build_pages_footer($page, $pages); } } //// ?> <script src="/wp-content/plugins/tzs/assets/js/search.js"></script> <script> var post = []; <?php echo "// POST dump here\n"; foreach ($_POST as $key => $value) { echo "post[" . tzs_encode2($key) . "] = " . tzs_encode2($value) . ";\n"; } if (!isset($_POST['type_id'])) { echo "post[" . tzs_encode2("type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } if (!isset($_POST['cur_type_id'])) { echo "post[" . tzs_encode2("cur_type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } ?> function showSearchDialog() { doSearchDialog('products', post, null); //doSearchDialog('auctions', post, null); } jQuery(document).ready(function(){ jQuery('#tbl_products').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[0].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-truck/?id="+id; }); hijackLinks(post); }); </script> <?php //// $output = ob_get_contents(); ob_end_clean(); return $output; }
<a class="menu" href="/blog">Home</a> <?php if (get_next_posts_link_url()) { ?> <a href="<?php echo get_next_posts_link_url(); ?> " class="next"> <span class="label">next</span> <p class="title">Page <?php echo current_page_number() + 1; ?> </p> </a> <?php } ?> </footer> <!-- Handle footer --> <script src="/assets/blog.js"></script>
function tzs_front_end_my_orders_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $url = current_page_url(); $page = current_page_number(); $pp = TZS_RECORDS_PER_PAGE; $status = isset($_GET['status']) ? trim($_GET['status']) : '0'; if ($user_id == 0) { ?> <div>Для просмотра необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <script> jQuery(document).ready(function(){ jQuery('#menu-profile').hide(); }); </script> <?php } else { $sql = "SELECT COUNT(*) as cnt FROM " . TZS_ORDERS_TABLE . " WHERE user_id={$user_id} AND status={$status};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список счетов. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT * FROM " . TZS_ORDERS_TABLE . " WHERE user_id={$user_id} AND status={$status} ORDER BY dt_create DESC LIMIT {$from},{$pp};"; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список счетов. Свяжитесь, пожалуйста, с администрацией сайта'); } else { ?> <div id="my_products_wrapper"> <div id="my_products_table"> <table id="tbl_products"> <thead> <tr id="tbl_thead_records_per_page"> <th colspan="4"> <div class="div_td_left"> <h3>Список <?php echo $status === '0' ? 'неоплаченных' : ($status === '1' ? 'действующих' : 'архивных'); ?> счетов</h3> </div> </th> <th colspan="5"> <div id="my_products_button"> <?php if ($status !== '0') { ?> <button id="" onClick="javascript: window.open('/account/my-orders/?status=0', '_self');">Показать неоплаченные</button> <?php } ?> <?php if ($status !== '1') { ?> <button id="" onClick="javascript: window.open('/account/my-orders/?status=1', '_self');">Показать действующие</button> <?php } ?> <?php if ($status !== '2') { ?> <button id="" onClick="javascript: window.open('/account/my-orders/?status=2', '_self');">Показать архивные</button> <?php } ?> </div> </th> </tr> <tr> <th id="">ID счета</th> <th id="">Рубрика</th> <th id="">ID заявки</th> <th id="">Номер счета</th> <th id="">Сумма счета</th> <th id="">Дата и время создания</th> <th id="">Дата и время оплаты</th> <th id="">Дата окончания</th> <th id="actions" nonclickable="true">Действия</th> </tr> </thead> <tbody> <?php foreach ($res as $row) { ?> <tr rid="<?php echo $row->id; ?> "> <td> <?php echo $row->id; ?> </td> <td> <?php echo $row->tbl_type === 'PR' ? 'Торговля' : ($row->tbl_type === 'TR' ? 'Транспорт' : 'Товар'); ?> </td> <td> <?php echo $row->tbl_id; ?> </td> <td> <?php echo $row->number; ?> </td> <td> <?php echo $row->cost . " " . $GLOBALS['tzs_curr'][$row->currency]; ?> </td> <td> <?php echo convert_time($row->dt_create); ?> </td> <td> <?php echo $row->dt_pay ? convert_time($row->dt_pay) : ''; ?> </td> <td> <?php echo $row->dt_expired ? convert_date($row->dt_expired) : ''; ?> </td> <td> <!--a href="javascript:doDisplay(<?php //echo $row->id; ?> );" at="<?php //echo $row->id; ?> " id="icon_set">Действия</a--> <div id="menu_set" id2="menu" for="<?php echo $row->id; ?> "><!-- style="display:none;"--> <ul> <?php if ($status === '0') { ?> <a href="/account/view-order/?id=<?php echo $row->id; ?> &link=my-orders&status=<?php echo $status; ?> ">Оплатить</a> <?php } ?> <a href="/account/view-order/?id=<?php echo $row->id; ?> &link=my-orders&status=<?php echo $status; ?> ">Смотреть</a> </ul> </div> </td> </tr> <?php } ?> </tbody> </table> </div> </div> <script src="/wp-content/plugins/tzs/assets/js/jquery.stickytableheaders.min.js"></script> <script> jQuery(document).ready(function(){ jQuery('.entry-title').hide(); jQuery('table').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[1].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-order/?id="+id+"&link=my-orders&status=<?php echo $status; ?> "; }); jQuery("#tbl_products").stickyTableHeaders(); }); function doDisplay(id) { var el = jQuery('div[for='+id+']'); if (el.attr('style') == null) { el.attr('style', 'display:none;'); jQuery('a[at='+id+']').attr('id', 'icon_set'); } else { el.removeAttr('style'); jQuery('a[at='+id+']').attr('id', 'icon_set_cur'); } jQuery("div[id2=menu]").each(function(i) { var id2 = this.getAttribute('for'); if (id2 != ''+id) { this.setAttribute('style', 'display:none;'); jQuery('a[at='+id2+']').attr('id', 'icon_set'); } }); } </script> <?php build_pages_footer($page, $pages); } } } $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_user_products_handler($atts) { // Определяем атрибуты // [tzs-view-user-products user_id="1"] - указываем на странице раздела // [tzs-view-products] - указываем на страницах подразделов extract(shortcode_atts(array('user_id' => '0'), $atts, 'tzs-view-user-products')); ob_start(); $sql1 = ' AND user_id=' . $user_id; global $wpdb; $page = current_page_number(); $url = current_page_url(); $pp = TZS_RECORDS_PER_PAGE; $sql = "SELECT COUNT(*) as cnt FROM " . TZS_PRODUCTS_TABLE . " WHERE active=1 {$sql1} "; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров. Свяжитесь, пожалуйста, с администрацией сайта -count'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT * FROM " . TZS_PRODUCTS_TABLE . " WHERE active=1 {$sql1} ORDER BY created DESC LIMIT {$from},{$pp}; "; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров. Свяжитесь, пожалуйста, с администрацией сайта - record'); } else { if (count($res) == 0) { ?> <div style="clear: both;"></div> <div class="errors"> <div id="info error">По Вашему запросу ничего не найдено.</div> </div> <?php } else { ?> <div> <table id="tbl_products"> <tr> <th id="tbl_products_id">Номер</th> <th id="tbl_products_img">Фото</th> <th id="tbl_products_dtc">Дата размещения</th> <th id="title">Описание товара</th> <th id="price">Стоимость товара</th> <th id="descr">Форма оплаты</th> <th id="cities">Город</th> <th id="comm">Комментарии</th> </tr> <?php foreach ($res as $row) { ?> <tr rid="<?php echo $row->id; ?> "> <td><?php echo $row->id; ?> </td> <td> <?php if (strlen($row->image_id_lists) > 0) { //$img_names = explode(';', $row->pictures); $main_image_id = $row->main_image_id; // Вначале выведем главное изображение $attachment_info = wp_get_attachment_image_src($main_image_id, 'thumbnail'); if ($attachment_info !== false) { //if (file_exists(ABSPATH . $img_names[0])) { //echo '<img src="'.get_site_url().'/'.$img_names[0].'" alt="">'; echo '<img src="' . $attachment_info[0] . '" alt="">'; // width="50px" height="50px" } else { echo ' '; } } else { echo ' '; } ?> </td> <td><?php echo convert_time($row->created); ?> </td> <td><?php echo htmlspecialchars($row->title); ?> </td> <td><?php echo $row->price . " " . $GLOBALS['tzs_pr_curr'][$row->currency]; ?> </td> <td><?php echo $GLOBALS['tzs_pr_payment'][$row->payment]; ?> </td> <td><?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->city_from); ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> </tr> <?php } ?> </table> </div> <?php } build_pages_footer($page, $pages); } } //// ?> <script src="/wp-content/plugins/tzs/assets/js/search.js"></script> <script> var post = []; <?php echo "// POST dump here\n"; foreach ($_POST as $key => $value) { echo "post[" . tzs_encode2($key) . "] = " . tzs_encode2($value) . ";\n"; } if (!isset($_POST['type_id'])) { echo "post[" . tzs_encode2("type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } if (!isset($_POST['cur_type_id'])) { echo "post[" . tzs_encode2("cur_type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } ?> function showSearchDialog() { doSearchDialog('products', post, null); //doSearchDialog('auctions', post, null); } jQuery(document).ready(function(){ jQuery('#tbl_products').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[0].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-product/?id="+id; }); hijackLinks(post); }); </script> <?php //// $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_my_auctions_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $url = current_page_url(); $page = current_page_number(); $pp = TZS_RECORDS_PER_PAGE; $active = isset($_GET['active']) ? trim($_GET['active']) : '1'; if ($user_id == 0) { ?> <div>Для просмотра необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <?php } else { $sql = "SELECT COUNT(*) as cnt FROM " . TZS_AUCTIONS_TABLE . " WHERE user_id={$user_id} AND active={$active};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список тендеров. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT a.*,(SELECT COUNT(*) FROM " . TZS_AUCTION_RATES_TABLE . " c WHERE c.auction_id = a.id) AS rate_count FROM " . TZS_AUCTIONS_TABLE . " a WHERE a.user_id={$user_id} AND a.active={$active} ORDER BY a.created DESC LIMIT {$from},{$pp};"; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список тендеров. Свяжитесь, пожалуйста, с администрацией сайта'); } else { ?> <div id="my_auctions_wrapper"> <div id="my_products_button"> <?php if ($active === '1') { ?> <button id="view_del" onClick="javascript: window.open('/account/my-auction/?active=0', '_self');">Показать архивные</button> <?php } else { ?> <button id="view_edit" onClick="javascript: window.open('/account/my-auction/?active=1', '_self');">Показать действующие</button> <?php } ?> <button id="view_add" onClick="javascript: window.open('/account/add-auction/', '_self');">Добавить тендер</button> </div> <div id="my_auctions_table"> <h3>Список <?php echo $active === '1' ? 'действующих' : 'архивных'; ?> тендеров</h3> <table id="tbl_products"> <tr> <th id="tbl_products_id">Номер</th> <th id="tbl_auctions_lot">Тип<br>Кол-во ставок</th> <th id="tbl_products_img">Фото</th> <th id="tbl_products_dtc">Дата размещения<br>Дата окончания</th> <th id="title">Описание</th> <th id="copies">Кол-во</th> <th id="price">Цена за единицу</th> <th id="descr">Форма оплаты</th> <th id="cities">Город</th> <th id="comm">Комментарии</th> <th id="actions" nonclickable="true">Действия</th> </tr> <?php foreach ($res as $row) { ?> <tr rid="<?php echo $row->id; ?> " id="<?php echo $row->is_lot == 1 ? 'tbl_auctions_tr_lot_1' : 'tbl_auctions_tr_lot_0'; ?> "> <td><?php echo $row->id; ?> </td> <td><?php echo $row->is_lot == 1 ? 'Продам' : 'Куплю'; ?> <br><br><?php echo 'Ставок-' . $row->rate_count; ?> </td> <td> <?php if (strlen($row->image_id_lists) > 0) { $main_image_id = $row->main_image_id; // Вначале выведем главное изображение //$attachment_info = wp_get_attachment_image_src($main_image_id, 'thumbnail'); $attachment_info = wp_get_attachment_image_src($main_image_id, 'full'); if ($attachment_info !== false) { ?> <div class="ienlarger"> <a href="#nogo"> <img src="<?php echo $attachment_info[0]; ?> " alt="thumb" class="resize_thumb"> <span> <?php echo htmlspecialchars($row->title); ?> <br/> <img src="<?php echo $attachment_info[0]; ?> " alt="large"/> </span> </a> </div> <?php } else { echo ' '; } } else { echo ' '; } ?> </td> <td><?php echo convert_date($row->created); ?> <br><?php echo convert_date($row->expiration); ?> </td> <td><?php echo htmlspecialchars($row->title); ?> </td> <td><?php echo $row->copies . " " . $GLOBALS['tzs_au_unit'][$row->unit]; ?> </td> <td><?php echo $row->price . " " . $GLOBALS['tzs_pr_curr'][$row->currency]; ?> </td> <td><?php echo $GLOBALS['tzs_pr_payment'][$row->payment]; ?> </td> <td><?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->city_from); ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> <td> <a href="javascript:doDisplay(<?php echo $row->id; ?> );" at="<?php echo $row->id; ?> " id="icon_set">Действия</a> <div id="menu_set" id2="menu" for="<?php echo $row->id; ?> " style="display:none;"> <ul> <a href="/account/view-auction/?id=<?php echo $row->id; ?> ">Смотреть</a> <a href="/account/edit-auction/?id=<?php echo $row->id; ?> ">Изменить</a> <a href="javascript: promptDelete(<?php echo $row->id . ', ' . $row->active; ?> );" id="red">Удалить</a> </ul> </div> </td> </tr> <?php } ?> </table> </div> </div> <script> jQuery(document).ready(function(){ jQuery('table').on('click', 'td', function(e) { var nonclickable = 'true' === e.delegateTarget.rows[0].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-auction/?id="+id; }); //align element in the middle of the screen jQuery.fn.alignCenter = function() { //get margin left //var marginLeft = Math.max(40, parseInt(jQuery(window).width()/2 - jQuery(this).width()/2)) + 'px'; var marginLeft = - jQuery(this).width()/2 + 'px'; //get margin top //var marginTop = Math.max(40, parseInt(jQuery(window).height()/2 - jQuery(this).height()/2)) + 'px'; var marginTop = - jQuery(this).height()/2 + 'px'; //return updated element //return jQuery(this).css({'margin-left':marginLeft*(-1), 'margin-top':marginTop*(-1)}); return jQuery(this).css({'margin-left':'120px', 'margin-top':marginTop}); }; }); function doDisplay(id) { var el = jQuery('div[for='+id+']'); if (el.attr('style') === null) { el.attr('style', 'display:none;'); jQuery('a[at='+id+']').attr('id', 'icon_set'); } else { el.removeAttr('style'); jQuery('a[at='+id+']').attr('id', 'icon_set_cur'); } jQuery("div[id2=menu]").each(function(i) { var id2 = this.getAttribute('for'); if (id2 != ''+id) { this.setAttribute('style', 'display:none;'); jQuery('a[at='+id2+']').attr('id', 'icon_set'); } }); } function promptDelete(id, active) { if (active === 1) { var s_text = '<div><h2>Удалить запись '+id+' или перенести в архив ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'В архив': function () { jQuery(this).dialog("close"); doDelete(id, 0); }, 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } else { var s_text = '<div><h2>Удалить запись '+id+' из архива ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } jQuery('<div></div>').appendTo('body') .html(s_text) .dialog({ modal: true, title: 'Удаление', zIndex: 10000, autoOpen: true, width: 'auto', resizable: false, buttons: buttons1, close: function (event, ui) { jQuery(this).remove(); } }); } function doDelete(id, is_delete) { var data = { 'action': 'tzs_delete_auction', 'id': id, 'is_delete': is_delete }; jQuery.post(ajax_url, data, function(response) { if (response == '1') { location.reload(); } else { alert('Не удалось удалить: '+response); } }); } </script> <?php build_pages_footer($page, $pages); } } } $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_my_products_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $url = current_page_url(); $page = current_page_number(); $pp = TZS_RECORDS_PER_PAGE; $active = isset($_GET['active']) ? trim($_GET['active']) : '1'; if ($user_id == 0) { ?> <div>Для просмотра необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <?php } else { $sql = "SELECT COUNT(*) as cnt FROM " . TZS_PRODUCTS_TABLE . " WHERE user_id={$user_id} AND active={$active};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров/услуг. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; // Добавим отбор счетов и сортировку по ним для активных записей if ($active == 0) { $sql = "SELECT * FROM " . TZS_PRODUCTS_TABLE . " WHERE user_id={$user_id} AND active={$active} ORDER BY created DESC LIMIT {$from},{$pp};"; } else { $sql = "SELECT a.*,"; $sql .= " b.id AS order_id,"; $sql .= " b.number AS order_number,"; $sql .= " b.status AS order_status,"; $sql .= " b.dt_pay AS order_dt_pay,"; $sql .= " b.dt_expired AS order_dt_expired,"; $sql .= " IFNULL(b.dt_pay, a.created) AS dt_sort"; $sql .= " FROM " . TZS_PRODUCTS_TABLE . " a"; $sql .= " LEFT OUTER JOIN wp_tzs_orders b ON (b.tbl_type = 'PR' AND a.id = b.tbl_id AND ((b.status=1 AND b.dt_expired > NOW()) OR b.status=0) )"; $sql .= " WHERE a.user_id={$user_id} AND a.active={$active}"; $sql .= " ORDER BY order_status DESC, dt_sort DESC"; $sql .= " LIMIT {$from},{$pp};"; } $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список товаров/услуг. Свяжитесь, пожалуйста, с администрацией сайта'); } else { ?> <div id="my_products_wrapper"> <div id="my_products_table"> <table id="tbl_products"> <thead> <tr id="tbl_thead_records_per_page"> <!--th colspan="10" id="thead_h1"--> <!--th colspan="4" id="thead_h1"--> <th colspan="4"> <div class="div_td_left"> <h3>Список <?php echo $active === '1' ? 'публикуемых' : 'архивных'; ?> товаров</h3> </div> </th> <th colspan="6"> <div id="my_products_button"> <?php if ($active === '1') { ?> <button id="view_del" onClick="javascript: window.open('/account/my-products/?active=0', '_self');">Показать архивные</button> <?php } else { ?> <button id="view_edit" onClick="javascript: window.open('/account/my-products/?active=1', '_self');">Показать публикуемые</button> <?php } ?> <button id="view_add" onClick="javascript: window.open('/account/add-product/', '_self');">Добавить товар</button> </div> </th> </tr> <tr> <th id="tbl_products_id">№, дата и время заявки</th> <th id="tbl_products_sale">Покупка<br/>Продажа</th> <th id="tbl_products_img">Фото</th> <th id="tbl_products_dtc">Период публикации</th> <th id="title">Описание товара</th> <th id="price">Стоимость товара</th> <th id="descr">Форма оплаты</th> <th id="cities">Город</th> <th id="comm">Комментарии</th> <th id="actions" nonclickable="true">Действия</th> </tr> </thead> <tbody> <?php foreach ($res as $row) { ?> <tr rid="<?php echo $row->id; ?> " <?php echo $row->order_status == 1 ? ' class="top_record"' : ($row->order_status !== null && $row->order_status == 0 ? ' class="pre_top_record"' : ''); ?> > <td> <?php echo $row->id; ?> <br> <?php echo convert_time($row->created); ?> </td> <td> <?php echo $row->sale_or_purchase == 1 ? 'Продажа' : 'Покупка'; ?> <br><br> <?php echo $row->fixed_or_tender == 1 ? 'Цена зафиксирована' : 'Тендерное предложение'; ?> </td> <td> <?php if (strlen($row->image_id_lists) > 0) { $main_image_id = $row->main_image_id; // Вначале выведем главное изображение $attachment_info = wp_get_attachment_image_src($main_image_id, 'full'); if ($attachment_info !== false) { ?> <div class="ienlarger"> <a href="#nogo"> <img src="<?php echo $attachment_info[0]; ?> " alt="thumb" class="resize_thumb"> <span> <?php echo htmlspecialchars($row->title); ?> <br/> <img src="<?php echo $attachment_info[0]; ?> " alt="large"/> </span> </a> </div> <?php } else { echo ' '; } } else { echo ' '; } ?> </td> <td><?php echo convert_date($row->created) . '<br>' . convert_date($row->expiration); ?> </td> <td><?php echo htmlspecialchars($row->title); ?> </td> <td><?php echo $row->price . " " . $GLOBALS['tzs_pr_curr'][$row->currency]; ?> </td> <td><?php echo $GLOBALS['tzs_pr_payment'][$row->payment]; ?> </td> <td><?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->city_from); ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> <td> <a href="javascript:doDisplay(<?php echo $row->id; ?> );" at="<?php echo $row->id; ?> " id="icon_set">Действия</a> <div id="menu_set" id2="menu" for="<?php echo $row->id; ?> " style="display:none;"> <ul> <a href="/account/view-product/?id=<?php echo $row->id; ?> &link=my-products&active=<?php echo $active; ?> ">Смотреть</a> <a href="/account/edit-product/?id=<?php echo $row->id; ?> ">Изменить</a> <?php if ($row->active && $row->order_status === null) { ?> <a href="javascript:promptPickUp(<?php echo $row->id; ?> , 'PR');">В ТОП</a> <?php } ?> <?php if ($row->active && $row->order_status !== null && $row->order_status == 0) { ?> <a href="/account/view-order/?id=<?php echo $row->order_id; ?> ">Счет ТОП</a> <?php } ?> <a href="javascript:promptDelete(<?php echo $row->id . ', ' . $row->active; ?> );" id="red">Удалить</a> </ul> </div> </td> </tr> <?php } ?> </tbody> </table> </div> </div> <!-- Modal --> <!--div id="RecordPickUpModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button id="RecordPickUpModalCloseButton" type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Поднятие объявления в ТОП</h3> </div> <div class="modal-body"> <h4>Создать счет на оплату услуг добавления заявки в ТОП ?</h4> <form id="RecordPickUpForm" method="post" action="" class="pr_edit_form"> <div class="pr_edit_form_line"> <label for="order_tbl_type">Префикс таблицы</label> <input type="text" id="order_tbl_type" name="order_tbl_type" value="" disabled="disabled"> </div> <div class="pr_edit_form_line"> <label for="order_tbl_id">ID заявки</label> <input type="text" id="order_tbl_id" name="order_tbl_id" value="" disabled="disabled"> </div> <div class="pr_edit_form_line"> <label for="order_cost">Стоимость услуги, грн</label> <input type="text" id="order_cost" name="order_cost" value="<?php echo get_option('t3s_setting_record_pickup_cost'); ?> " disabled="disabled"> </div> </form> <div id="RecordPickUpInfo"></div> </div> <div class="modal-footer"> <button class="btn btn-default" data-dismiss="modal">Закрыть</button> <button id="RecordPickUpSubmit" class="btn btn-primary" onClick="doPickUp();">Создать счет</button> </div> </div--> <?php include_once WP_PLUGIN_DIR . '/tzs/front-end/tzs.my.new_order.php'; ?> <script src="/wp-content/plugins/tzs/assets/js/jquery.stickytableheaders.min.js"></script> <script> /* function promptPickUp(id, table_prefix) { jQuery("#order_tbl_type").attr('value', table_prefix); jQuery("#order_tbl_id").attr('value', id); jQuery("#RecordPickUpModal").modal('show'); } function doPickUp() { jQuery("#RecordPickUpSubmit").attr('disabled', 'disabled'); jQuery('#RecordPickUpInfo').html('Подождите, идет формирование счета на оплату...'); //fd = jQuery('#RecordPickUpModal form#RecordPickUpForm').serialize(); fd = 'order_tbl_type=' + jQuery("#order_tbl_type").val() + '&order_tbl_id=' + jQuery("#order_tbl_id").val(); jQuery.ajax({ url: "/wp-admin/admin-ajax.php?action=tzs_order_add", type: "POST", data: fd, dataType: 'json', success: function(data) { if ((data.output_error !== 'undefined') && (data.output_error !== '')) { jQuery('#RecordPickUpInfo').html(data.output_error); } if ((data.order_id !== 'undefined') && (data.order_id !== '')) { location.href = "<?php //echo get_site_url(); ?> /account/view-order/?id=" + data.order_id + "&spis=new"; } }, error: function(data) { if (data.responseText !== 'undefined') { jQuery('#RecordPickUpInfo').html(data.responseText); } } }); } */ function doDisplay(id) { var el = jQuery('div[for='+id+']'); if (el.attr('style') == null) { el.attr('style', 'display:none;'); jQuery('a[at='+id+']').attr('id', 'icon_set'); } else { el.removeAttr('style'); jQuery('a[at='+id+']').attr('id', 'icon_set_cur'); } jQuery("div[id2=menu]").each(function(i) { var id2 = this.getAttribute('for'); if (id2 != ''+id) { this.setAttribute('style', 'display:none;'); jQuery('a[at='+id2+']').attr('id', 'icon_set'); } }); } function promptDelete(id, active) { if (active === 1) { var s_text = '<div><h2>Удалить запись '+id+' или перенести в архив ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'В архив': function () { jQuery(this).dialog("close"); doDelete(id, 0); }, 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } else { var s_text = '<div><h2>Удалить запись '+id+' из архива ?</h2><hr/><p>Запись из архива можно в любой момент снова опубликовать.</p><p>При удалении записи будут так же удалены все прикрепленные изображения.</p></div>'; buttons1 = new Object({ 'Удалить': function () { jQuery(this).dialog("close"); doDelete(id, 1); }, 'Отменить': function () { jQuery(this).dialog("close"); } }); } jQuery('<div></div>').appendTo('body') .html(s_text) .dialog({ modal: true, title: 'Удаление', zIndex: 10000, autoOpen: true, width: 'auto', resizable: false, buttons: buttons1, close: function (event, ui) { jQuery(this).remove(); } }); } function doDelete(id, is_delete) { var data = { 'action': 'tzs_delete_product', 'id': id, 'is_delete': is_delete }; jQuery.post(ajax_url, data, function(response) { if (response == '1') { location.reload(); } else { alert('Не удалось удалить: '+response); } }); } jQuery(document).ready(function(){ jQuery('table').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[1].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-product/?id="+id+"&link=my-products&active=<?php echo $active; ?> "; }); jQuery("#tbl_products").stickyTableHeaders(); }); </script> <?php build_pages_footer($page, $pages); } } } $output = ob_get_contents(); ob_end_clean(); return $output; }
function tzs_front_end_auctions_handler($atts) { // Определяем атрибуты // [tzs-view-auctions rootcategory="1"] - указываем на странице раздела // [tzs-view-auctions] - указываем на страницах подразделов extract(shortcode_atts(array('rootcategory' => '0'), $atts, 'tzs-view-auctions')); ob_start(); $p_id = get_the_ID(); $p_title = the_title('', '', false); // Если указан параметр rootcategory, то выводим все товары раздела // Иначе - товары категории if ($rootcategory === '1') { $sql1 = ' AND type_id IN (' . tzs_build_product_types_id_str($p_id) . ')'; $p_name = ''; } else { $sql1 = ' AND type_id=' . $p_id; $p_name = get_post_field('post_name', $p_id); } $sp = tzs_validate_pr_search_parameters(); $errors = $sp['errors']; if (count($errors) > 0) { print_errors($errors); } ?> <a href="javascript:showSearchDialog();" id="edit_search">Изменить параметры поиска</a> <?php if (count($errors) == 0) { $s_sql = tzs_search_pr_parameters_to_sql($sp, ''); $s_title = tzs_search_pr_parameters_to_str($sp); ?> <div id="search_info"><?php echo $p_title; echo strlen($s_title) > 0 ? ' * ' . $s_title : ''; ?> </div> <?php $page = current_page_number(); ?> <a tag="page" id="realod_btn" href="<?php echo build_page_url($page); ?> ">Обновить</a> <?php global $wpdb; $url = current_page_url(); $pp = TZS_RECORDS_PER_PAGE; $sql = "SELECT COUNT(*) as cnt FROM " . TZS_AUCTIONS_TABLE . " WHERE active=1 {$sql1} {$s_sql};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список тендеров. Свяжитесь, пожалуйста, с администрацией сайта'); } else { $records = $res->cnt; $pages = ceil($records / $pp); if ($pages == 0) { $pages = 1; } if ($page > $pages) { $page = $pages; } $from = ($page - 1) * $pp; $sql = "SELECT a.*,(SELECT COUNT(*) FROM " . TZS_AUCTION_RATES_TABLE . " c WHERE c.auction_id = a.id) AS rate_count FROM " . TZS_AUCTIONS_TABLE . " a WHERE a.active=1 {$sql1} {$s_sql} ORDER BY a.created DESC LIMIT {$from},{$pp};"; $res = $wpdb->get_results($sql); if (count($res) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить список тендеров. Свяжитесь, пожалуйста, с администрацией сайта.'); } else { if (count($res) == 0) { ?> <div style="clear: both;"></div> <div class="errors"> <div id="info error">По Вашему запросу ничего не найдено.</div> </div> <?php } else { ?> <div> <table id="tbl_products"> <tr> <th id="tbl_products_id">Номер</th> <th id="tbl_auctions_lot">Тип<br>Кол-во ставок</th> <th id="tbl_products_img">Фото</th> <th id="tbl_products_dtc">Дата размещения<br>Дата окончания</th> <th id="tbl_auctions_title">Описание</th> <th id="tbl_auctions_copies">Кол-во</th> <th id="tbl_products_price">Цена за единицу</th> <th id="tbl_products_payment">Форма оплаты</th> <th id="tbl_products_cities">Город</th> <th id="tbl_products_comm">Комментарии</th> </tr> <?php foreach ($res as $row) { ?> <tr rid="<?php echo $row->id; ?> " id="<?php echo $row->is_lot == 1 ? 'tbl_auctions_tr_lot_1' : 'tbl_auctions_tr_lot_0'; ?> "> <td><?php echo $row->id; ?> </td> <td><?php echo $row->is_lot == 1 ? 'Продам' : 'Куплю'; ?> <br><br><?php echo 'Ставок-' . $row->rate_count; ?> </td> <td> <?php if (strlen($row->image_id_lists) > 0) { $main_image_id = $row->main_image_id; // Вначале выведем главное изображение $attachment_info = wp_get_attachment_image_src($main_image_id, 'full'); if ($attachment_info !== false) { ?> <div class="ienlarger"> <a href="#nogo"> <img src="<?php echo $attachment_info[0]; ?> " alt="thumb" class="resize_thumb"> <span> <?php echo htmlspecialchars($row->title); ?> <br/> <img src="<?php echo $attachment_info[0]; ?> " alt="large"/> </span> </a> </div> <?php } else { echo ' '; } } else { echo ' '; } ?> </td> <td><?php echo convert_date($row->created); ?> <br><?php echo convert_date($row->expiration); ?> </td> <td><?php echo htmlspecialchars($row->title); ?> </td> <td><?php echo $row->copies . " " . $GLOBALS['tzs_au_unit'][$row->unit]; ?> </td> <td><?php echo $row->price . " " . $GLOBALS['tzs_pr_curr'][$row->currency]; ?> </td> <td><?php echo $GLOBALS['tzs_pr_payment'][$row->payment]; ?> </td> <td><?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->city_from); ?> </td> <td><?php echo htmlspecialchars($row->comment); ?> </td> </tr> <?php } ?> </table> </div> <?php } build_pages_footer($page, $pages); } } } //// ?> <script src="/wp-content/plugins/tzs/assets/js/search.js"></script> <script> var post = []; <?php echo "// POST dump here\n"; foreach ($_POST as $key => $value) { echo "post[" . tzs_encode2($key) . "] = " . tzs_encode2($value) . ";\n"; } if (!isset($_POST['type_id'])) { echo "post[" . tzs_encode2("type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } if (!isset($_POST['cur_type_id'])) { echo "post[" . tzs_encode2("cur_type_id") . "] = " . tzs_encode2($p_id) . ";\n"; } if (!isset($_POST['cur_post_name']) && $p_name !== '') { echo "post[" . tzs_encode2("cur_post_name") . "] = " . tzs_encode2($p_name) . ";\n"; } ?> function showSearchDialog() { doSearchDialog('auctions', post, null); } jQuery(document).ready(function(){ jQuery('#tbl_products').on('click', 'td', function(e) { var nonclickable = 'true' == e.delegateTarget.rows[0].cells[this.cellIndex].getAttribute('nonclickable'); var id = this.parentNode.getAttribute("rid"); if (!nonclickable) document.location = "/account/view-auction/?id="+id; }); hijackLinks(post); }); </script> <?php $output = ob_get_contents(); ob_end_clean(); return $output; }