Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 3078 Просмотров
*

volkazirik

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Приветствую Господа!
Перерыл весь инет... нигде не могу найти. Может кто-нибудь встречал подобную тему.
Мне необходимо сделать в админке при просмотре списка заказов, чтобы была возможность показывать "ВСЕ" но сортировать по "статусу".
Если сложно с сортировкой, то хотя бы отмечать разными цветами строки таблицы. А лучше и то и другое :)
К сожалению моих знаний php не хватает чтобы сделать такую штуку.. пытаюсь но пока безуспешно ((

И так для начала я решил вставить в таблицу дополнительную ячейку и заливать фон определенный цветом исходя из статуса заказа.

Файл  /administrator/components/com_virtuemart/html/order.order_list.php
который выводит непосредственно список заказов

Я пытаюсь в этом файле сделать проверку индексов статуса заказа и в соответствии с определенным статусом выводить дополнительную ячейку разукрасив её в определенный цвет.   (в районе 230 строки)

Вот наковырял что в этом файле
/administrator/components/com_virtuemart/classes/ps_order_status.php
работает функция  getOrderStatusName
но как из неё вытащить значение переменной и передать в тот файл.

Может кто подскажет простое решение.. ну не силен я на сколько в пхпхе  ::)


Версия ВМ 1.1.9
« Последнее редактирование: 17.02.2012, 01:28:29 от volkazirik »
*

volkazirik

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Господа! Удалось решить эту задачу! Правда возможно кривоватым способом, но если кто-то предложит другой вариант - буду рад!  *DRINK*

1. Делаем цветовую индикацию заказов в списке заказов в зависимости от статуса заказа.
Открываем файл  /administrator/components/com_virtuemart/html/order.order_list.php
Все изменения будут в нем))
1.1 Нам нужно вставить ячейку в заголовок выводимой таблицы.
Для этого ищем строку под номером 94:
Код
 $VM_LANG->_('PHPSHOP_ORDER_LIST_STATUS') => '', 
И добавляем после нее строчку:
Код
'***' => '',

1.2 Далее ищем строку-комментарий примерно 230 номера:
Код
// Notify Customer checkbox 
и ПЕРЕД ней вставляем этот код:
Код
	// Color status indicator   
$colorstatus = $db->f("order_status");    
if ($colorstatus=='A') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_a.gif" width="20" height="40">';
if ($colorstatus=='C') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_c.gif" width="20" height="40">';
if ($colorstatus=='I') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_i.gif" width="20" height="40">';
if ($colorstatus=='O') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_o.gif" width="20" height="40">';
if ($colorstatus=='P') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_p.gif" width="20" height="40">';
if ($colorstatus=='X') $htmlcolorstatus = '<img src="http://www.вашдомен.ру/pics/st_x.gif" width="20" height="40">';
$listObj->addCell( $htmlcolorstatus );

В этом коде все просто. Символы которыми определяются статусы заказов можно настроить свои. Ну и по логике этого кода видно что каждому статусу присваивается свой файлик размером 1х1 пиксель определенного цвета, который потом растягивается до нужных размеров.
Хочу заметить, что при присваивании символов статусам лучше исходить из той логики, чтобы статусы сортировались по алфавиту по символам статуса. И тогда будет возможность нажав на ссылку "Все" всегда видеть сверху списка новые заказы, а далее вниз, уже прошедшие определенные этапы обработки, ну и в самом конце уже завершенные (отправленные) заказы.  Для этого делаем следующее:

1.2 Будем исходить из того что "символы" статусов вы настроили по алфавиту.
Все в том же файле  /administrator/components/com_virtuemart/html/order.order_list.php
ищем строку 43:
Код
$q .= "ORDER BY #__{vm}_orders.cdate DESC ";
и меняем её на эту:
Код
$q .= "ORDER BY #__{vm}_orders.order_status ";

И вуаля)) Теперь у меня заказы сортируются по статусам сверху вниз. См. скриншот в подкате:

Спойлер
[свернуть]

п.с.. единственное что я пока не решил, это чтобы была возможность выводить список из заказов с несколькими разными статусами (но не со всеми!). К сожалению код там так устроен что - либо только один статус выводим, либо все сразу. И конечно же все это от моего не знания PHP))  Если кто найдет решение - буду очень благодарен!
 
« Последнее редактирование: 16.02.2012, 23:54:33 от volkazirik »
*

volkazirik

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Небольшое дополнение..
Когда в системе VirtueMart регистрируется новый заказ, то ему присваивается статус с индексом 'P'.
Вообще в Вирте прописаны три индекса статуса которые "залочены" и из админки их изменить нельзя.
В файле /administrator/components/com_virtuemart/classes/ps_order_status.php
есть такая строчка, которая говорит сама за себя:
Код
var $_protected_status_codes = array( 'P', 'C', 'X' );
Не знаю зачем они залочены..) мне пришлось изменить статус 'P' на 'A' для того чтобы выстраивать статусы по алфавиту.

Чтобы новому заказу присваивался нужный статус - идем сюда:
/administrator/components/com_virtuemart/classes/ps_checkout.php
Строка 986:
Код
			'order_status' => 'A', 
тут думаю без комментариев и так все понятно :)
*

volkazirik

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Дополнение..

По поводу залоченых статусов спешу предупредить! Статусы 'P', 'C', 'X' используются и жестко прописаны в коде управления платежными системами. Если соберетесь менять эти статусы на другие, то советую взять локально дистрибутив жумлы с установленным виртом и запустить поиск файлов *.* по всему дистрибутиву с поиском конкретного текста в этих файлах, например текста   -   'P'
Тем самым Вы найдете где еще используются и жестко прописаны эти статусы. Для тех кто не знает.. такой поиск возможен например в программе Total Commander.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Слетело оформление заказов VirtueMart 1.1.8

Автор Zegeberg

Ответов: 0
Просмотров: 4208
Последний ответ 24.01.2017, 12:35:57
от Zegeberg
Как сбросить (обнулить) количество заказов?

Автор GDA

Ответов: 21
Просмотров: 11411
Последний ответ 27.05.2014, 00:01:12
от woland-w
Всем, у кого не отправлялись письма о поступлении новых заказов от VirtueMart и от Joomla!.

Автор Muxpyc

Ответов: 1
Просмотров: 3379
Последний ответ 21.10.2013, 14:14:08
от ZAIRA
Редактирование отображения списка заказов

Автор abdulidze

Ответов: 0
Просмотров: 1482
Последний ответ 27.09.2013, 17:57:26
от abdulidze
Добавить поле "телефон" в списке заказов а админке

Автор hudoy

Ответов: 10
Просмотров: 3133
Последний ответ 12.01.2013, 09:28:21
от SolopoV