function tzs_build_product_types_id_str($post_parent, $delim = ',') { $res_str = ''; $res = tzs_get_children_pages($post_parent); if (count($res) > 0) { $counter = 0; foreach ($res as $row) { if (strlen($res_str) > 0) { $res_str .= $delim; } $res_str .= $row['id']; $counter++; } } return $res_str; }
function tzs_front_end_view_product_handler($atts) { ob_start(); global $wpdb; $user_id = get_current_user_id(); $sh_id = isset($_GET['id']) && is_numeric($_GET['id']) ? intval($_GET['id']) : 0; if ($sh_id <= 0) { print_error('Товар/услуга не найден'); } else { $sql = "SELECT * FROM " . TZS_PRODUCTS_TABLE . " WHERE id={$sh_id};"; $row = $wpdb->get_row($sql); if (count($row) == 0 && $wpdb->last_error != null) { print_error('Не удалось отобразить информацию о товаре/услуге. Свяжитесь, пожалуйста, с администрацией сайта.'); } else { if ($row == null) { print_error('Товар/услуга не найден'); } else { if (isset($_GET['spis'])) { echo "<a id='edit_search' href='/account/my-products/'>Назад к списку</a> <div style='clear: both'></div>"; } elseif (isset($_GET['link'])) { echo "<a id='edit_search' href='/" . $_GET['link'] . "/'>Назад к списку</a> <div style='clear: both'></div>"; } else { echo "<button id='edit_search' onclick='history.back()'>Назад к списку</button> <div style='clear: both'></div>"; } ?> <div id=""> <table border="0" id="view_ship"> <tr> <td>Номер товара/услуги</td> <td><?php echo $row->id; ?> </td> </tr> <tr> <td>Активно</td> <td><?php echo $row->active == 1 ? 'Да' : 'Нет'; ?> </td> </tr> <tr> <td>Дата размещения</td> <td><?php echo convert_date_no_year($row->created); ?> <?php echo convert_time_only($row->time); ?> </td> </tr> <?php if ($row->last_edited != null) { ?> <tr> <td>Дата последнего изменения</td> <td><?php echo convert_date_no_year($row->last_edited); ?> <?php echo convert_time_only($row->last_edited); ?> </td> </tr> <?php } ?> <?php if ($row->expiration != null) { ?> <tr> <td>Дата окончания публикации</td> <td><?php echo convert_date_no_year($row->expiration); ?> </td> </tr> <?php } ?> <?php if ($row->type_id > 0) { ?> <tr> <td>Категория</td> <td><?php echo $row->type_id; $res = tzs_get_children_pages(TZS_PR_ROOT_CATEGORY_PAGE_ID); $key = array_search(intval($row->type_id), $res); if ($key) { echo $res[$key]['title']; } ?> </td> </tr> <?php } ?> <tr> <td>Краткое описание товара/услуги</td> <td><?php echo htmlspecialchars($row->title); ?> </td> </tr> <tr> <td>Полное описание товара/услуги</td> <td><?php echo htmlspecialchars($row->description); ?> </td> </tr> <?php if ($row->copies > 0) { ?> <tr> <td>Количество</td> <td><?php echo $row->copies; ?> </td> </tr> <?php } ?> <?php if ($row->price > 0) { ?> <tr> <td>Стоимость товара</td> <td><?php echo $row->price . " " . $GLOBALS['tzs_pr_curr'][$row->currency]; ?> </td> </tr> <?php } ?> <?php if ($row->payment > 0) { ?> <tr> <td>Форма оплаты</td> <td><?php echo $GLOBALS['tzs_pr_payment'][$row->payment]; ?> </td> </tr> <?php } ?> <tr> <td>Местонахождение</td> <td><?php echo tzs_city_to_str($row->from_cid, $row->from_rid, $row->from_sid, $row->city_from); ?> </td> </tr> <?php if (strlen($row->comment) > 0) { ?> <tr> <td>Комментарии</td> <td><?php echo htmlspecialchars($row->comment); ?> </td> </tr> <?php } ?> <?php if (strlen($row->image_id_lists) > 0) { ?> <tr> <td>Изображения</td> <td><?php //$img_names = explode(';', $row->pictures); $img_names = explode(';', $row->image_id_lists); $main_image_id = $row->main_image_id; if (count($img_names) > 0) { ?> <table> <?php // Вначале выведем главное изображение $attachment_info = wp_get_attachment_image_src($main_image_id, 'full'); if ($attachment_info !== false) { echo '<tr><td><img src="' . $attachment_info[0] . '" alt=""></td></tr>'; } // Затем выведем все остальные изображения for ($i = 0; $i < count($img_names); $i++) { if ($img_names[$i] !== $main_image_id) { $attachment_info = wp_get_attachment_image_src($img_names[$i], 'full'); //if (file_exists(ABSPATH . $img_names[$i])) { if ($attachment_info !== false) { echo '<tr><td><img src="' . $attachment_info[0] . '" alt=""></td></tr>'; } } } ?> </table> <?php } ?> </td> </tr> <?php } else { $img_names = array(); } ?> </table> </div> <?php if ($user_id == 0 && $GLOBALS['tzs_au_contact_view_all'] == false) { ?> <div>Для просмотра контактов необходимо <a href="/account/login/">войти</a> или <a href="/account/registration/">зарегистрироваться</a></div> <?php } else { if ($user_id != $row->user_id) { ?> <br/> <h1 class="entry-title">Контактная информация</h1> <?php tzs_print_user_table($row->user_id); ?> <script src="/wp-content/plugins/tzs/assets/js/feedback.js"></script> <button id="view_feedback" onClick="<?php echo tzs_feedback_build_url($row->user_id); ?> ">Отзывы <span>|</span> Рейтинг пользователя</button> <?php } else { ?> <button id="view_del" onClick="javascript: promptDelete(<?php echo $row->id; ?> );">Удалить</button> <button id="view_edit" onClick="javascript: window.open('/account/edit-product/?id=<?php echo $row->id; ?> ', '_self');">Изменить</button> <?php } } ?> <script> function promptDelete(id) { jQuery('<div></div>').appendTo('body') .html('<div><h6>Удалить запись '+id+'?</h6></div>') .dialog({ modal: true, title: 'Удаление', zIndex: 10000, autoOpen: true, width: 'auto', resizable: false, buttons: { 'Да': function () { jQuery(this).dialog("close"); doDelete(id); }, 'Нет': function () { jQuery(this).dialog("close"); } }, close: function (event, ui) { jQuery(this).remove(); } }); } function doDelete(id) { var data = { 'action': 'tzs_delete_product', 'id': id }; jQuery.post(ajax_url, data, function(response) { if (response == '1') { window.open('/account/my-products/', '_self'); } else { alert('Не удалось удалить: '+response); } }); } </script> <?php } } } $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_tables_reload() { // Возвращаемые переменные $output_info = ''; $output_error = ''; $output_tbody = ''; $output_pnav = ''; $lastrecid = 0; $form_type = get_param_def('form_type', ''); $type_id = get_param_def('type_id', '0'); $rootcategory = get_param_def('rootcategory', '0'); $cur_type_id = get_param_def('cur_type_id', '0'); $cur_post_name = get_param_def('cur_post_name', ''); $p_title = get_param_def('p_title', ''); $page = get_param_def('page', '1'); $records_per_page = get_param_def('records_per_page', '' . TZS_RECORDS_PER_PAGE); $record_pickup_time = get_option('t3s_setting_record_pickup_time', '30'); //$p_id = get_the_ID(); //$p_title = the_title('', '', false); // Если указан параметр rootcategory, то выводим все товары раздела // Иначе - товары категории if ($rootcategory === '1' && $type_id === '0') { $sql1 = ' AND type_id IN (' . tzs_build_product_types_id_str($cur_type_id) . ')'; $p_name = ''; } else { //$sql1 = ' AND type_id='.$type_id; $sql1 = ''; $p_name = get_post_field('post_name', $type_id); } if ($form_type === 'products') { $sp = tzs_validate_pr_search_parameters(); } else { $sp = tzs_validate_search_parameters(); } $errors = $sp['errors']; switch ($form_type) { case 'products': $pr_type_array = tzs_get_children_pages(TZS_PR_ROOT_CATEGORY_PAGE_ID); $table_name = TZS_PRODUCTS_TABLE; $table_error_msg = 'товаров'; $table_order_by = 'created'; $order_table_prefix = 'PR'; break; case 'trucks': $table_name = TZS_TRUCK_TABLE; $table_error_msg = 'транспорта'; $table_order_by = 'time'; $table_prefix = 'tr'; $order_table_prefix = 'TR'; break; case 'shipments': $table_name = TZS_SHIPMENT_TABLE; $table_error_msg = 'грузов'; $table_order_by = 'time'; $table_prefix = 'sh'; $order_table_prefix = 'SH'; break; default: array_push($errors, "Неверно указан тип формы"); } if (count($errors) > 0) { $output_error = print_errors($errors); } if (count($errors) == 0) { if ($form_type === 'products') { $s_sql = tzs_search_pr_parameters_to_sql($sp, ''); $s_title = tzs_search_pr_parameters_to_str($sp); } else { $s_sql = tzs_search_parameters_to_sql($sp, $table_prefix); $s_title = tzs_search_parameters_to_str($sp); } $output_info = $p_title; if (strlen($s_title) > 0) { $output_info .= ' * ' . $s_title; } //$page = current_page_number(); global $wpdb; //$url = current_page_url(); $pp = floatval($records_per_page); $sql = "SELECT COUNT(*) as cnt FROM " . $table_name . " a WHERE active=1 {$sql1} {$s_sql};"; $res = $wpdb->get_row($sql); if (count($res) == 0 && $wpdb->last_error != null) { $output_error .= '<div>Не удалось отобразить список ' . $table_error_msg . '. Свяжитесь, пожалуйста, с администрацией сайта.<br>' . $sql . '<br>' . $wpdb->last_error . '</div>'; } 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 ".$table_name." WHERE active=1 $sql1 $s_sql ORDER BY ".$table_order_by." DESC LIMIT $from,$pp;"; // Хитрый запрос для отбора ТОП $sql = "SELECT a.*,"; $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." . $table_order_by . ") 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"; if ($form_type != 'products') { $sql .= ", LOWER(d.code) AS to_code"; } $sql .= " FROM " . $table_name . " a"; $sql .= " LEFT OUTER JOIN wp_tzs_orders b ON (b.tbl_type = '" . $order_table_prefix . "' AND a.id = b.tbl_id AND b.status = 1 AND b.dt_expired > NOW())"; $sql .= " LEFT OUTER JOIN wp_tzs_countries c ON (a.from_cid = c.country_id)"; if ($form_type != 'products') { $sql .= " LEFT OUTER JOIN wp_tzs_countries d ON (a.to_cid = d.country_id)"; } $sql .= " WHERE active=1 {$sql1} {$s_sql}"; $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) { $output_error .= '<div>Не удалось отобразить список ' . $table_error_msg . '. Свяжитесь, пожалуйста, с администрацией сайта.<br>' . $sql . '<br>' . $wpdb->last_error . '</div>'; } else { if (count($res) == 0) { $output_error .= '<div>По Вашему запросу ничего не найдено.</div>'; } else { foreach ($res as $row) { if ($form_type === 'products') { $output_tbody .= tzs_products_table_record_out($row, $form_type, $pr_type_array); } else { $output_tbody .= tzs_tr_sh_table_record_out($row, $form_type); } $lastrecid = $row->id; } } // Пагинация if ($pages > 1) { if ($page > 1) { $page0 = $page - 1; $output_pnav .= '<a tag="page" page="' . $page0 . '" href="javascript:TblTbodyReload(' . $page0 . ')">« Предыдущая</a> '; } $start = 1; $stop = $pages; for ($i = $start; $i <= $stop; $i++) { if ($i == $page) { $output_pnav .= ' <span>' . $i . '</span> '; } else { $output_pnav .= ' <a tag="page" page="' . $i . '" href="javascript:TblTbodyReload(' . $i . ')">' . $i . '</a> '; } } if ($page < $pages) { $page1 = $page + 1; $output_pnav .= ' <a tag="page" page="' . $page1 . '" href="javascript:TblTbodyReload(' . $page1 . ')">Следующая »</a>'; } } } } } $output = array('output_info' => $output_info, 'output_error' => $output_error, 'output_tbody' => $output_tbody, 'output_pnav' => $output_pnav, 'output_tbody_cnt' => count($res), 'lastrecid' => $lastrecid, 'type_id' => $type_id, 'rootcategory' => $rootcategory, 'sql' => $sql, 'sql1' => $sql1, 's_sql' => $s_sql); //echo json_encode($output); // print_r($output_tbody); return $output; }