MSI Юзабилити "Списка заказов" Красим заказ в цвет его статуса

  • 21 Ответов
  • 1683 Просмотров

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

*

Оффлайн Cerber

  • ****
  • 289
  • [+]32 / [-]0
  • Пол: Мужской
  • Богиня Иштар и ее пес Пи..ц
    • Просмотр профиля
По существу, эту мелочь я делаю давно, но после того как увидел замечательный аддон "Order status color" на хорошем сайте ….
.. Я не знаю может у них там так принято, но у меня о нас другое мнение.
Вот мой ответ: всего за 99.99 ))


Вам понадобится файл по адресу:
administrator\components\com_jshopping\views\orders\tmpl\list.php

 1. На 75-й строке удалите класс "table-striped"
 2. На 149-й строчке после или вместо (без разницы)
Код: (php) [Выделить]
row<?php echo ($i  %2);?> добавьте этот код:
Код: (php) [Выделить]
backlight<?php echo $row->order_status?> 3. И в самом конце файла добавьте
<!--MSI-add//--><style>
.order_detail{padding: 0 0 25px;}
.backlight1 td{background-color:#CFC; border-top: 3px solid #FFF;}
.backlight2 td{background-color:#BDF; border-top: 3px solid #FFF;}
.backlight3 td{background-color:#FCC; border-top: 3px solid #FFF;}
.backlight4 td{background-color:#FCF; border-top: 3px solid #FFF;}
.backlight5 td{background-color:#FFC; border-top: 3px solid #FFF;}
.backlight6 td{background-color:#9D9; border-top: 3px solid #FFF;}
.backlight7 td{background-color:#F6F6F6; border-top: 3px solid #FFF;}
</style>
// <!--MSI-___//--> - Это просто для быстрого поиска правок


В общем файл должен выглядеть вот так  (Joomshopping 4.11.5)
[spoiler]
Цитировать
<?php
/**
* @version      4.10.0 22.10.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/
defined('_JEXEC') or die('Restricted access');
$rows=$this->rows;
$lists=$this->lists;
$pageNav=$this->pageNav;
$jshopConfig=JSFactory::getConfig();
$limitstart=JRequest::getVar('limitstart' ,'');
$limit=JRequest::getVar('limit', 10);
$status_id=JRequest::getVar('status_id', '');
$adv_string='&limitstart='.$limitstart.'&limit='.$limit.'&status_id='.$status_id.'&client_id='.$this->client_id;
JHtml::_('formbehavior.chosen', '.chosen-select');
?>
<div id="j-sidebar-container" class="span2">
    <?php echo $this->sidebar; ?>
</div>
<div id="j-main-container" class="span10">
<form name="adminForm" id="adminForm" method="post" action="index.php?option=com_jshopping&controller=orders">
<?php print $this->tmp_html_start?>

<div class="js-stools clearfix jshop_block_filter">
    
    <div class="js-stools-container-bar">
        <div class="filter-search btn-group pull-left">
            <input type="text" id="text_search" name="text_search" placeholder="<?php print _JSHOP_SEARCH?>" value="<?php echo htmlspecialchars($this->text_search);?>" />
        </div>

        <div class="btn-group pull-left hidden-phone">
            <button class="btn hasTooltip" type="submit" title="<?php print _JSHOP_SEARCH?>">
                <i class="icon-search"></i>
            </button>
            <button class="btn hasTooltip" onclick="document.id('text_search').value='';this.form.submit();" type="button" title="<?php print _JSHOP_CLEAR?>">
                <i class="icon-remove"></i>
            </button>
        </div>
        
    </div>
    
    <div class="clearfix"></div>
    
    <div class="js-stools-container-filters">

        <?php print $this->tmp_html_filter?>
        
        <div class="js-stools-field-filter">
            <label><?php print _JSHOP_ORDER_STATUS?>:</label>
            <div class="control"><?php print $lists['changestatus'];?></div>
        </div>
        <div class="js-stools-field-filter">
            <label><?php print _JSHOP_NOT_FINISHED?>:</label>
            <div class="control"><?php print $lists['notfinished'];?></div>
        </div>
        <div class="js-stools-field-filter">
            <label><?php print _JSHOP_DATE?>:</label>
            <div class="control"><?php print $lists['year']." : ".$lists['month']." : ".$lists['day'];?></div>
        </div>
        <div class="js-stools-field-filter">
            <div class="control">
                <button class="btn hasTooltip" type="submit" title="<?php print _JSHOP_SEARCH?>">
                    <i class="icon-search"></i>
                </button>
            </div>
        </div>
        
    </div>
    
</div>
 
 <table class="table" width="100%"> <!--MSI-del// class="table-striped" //-->
 <thead>
   <tr>
     <th width="20">
       #
     </th>
     <th width="20">
       <input type="checkbox" name="checkall-toggle" value="" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" onclick="Joomla.checkAll(this)" />
     </th>
     <th width="20">
       <?php echo JHTML::_('grid.sort', _JSHOP_NUMBER, 'order_number', $this->filter_order_Dir, $this->filter_order)?>
     </th>
    <?php print $this->_tmp_cols_1?>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_USER, 'name', $this->filter_order_Dir, $this->filter_order)?>
     </th>
     <?php print $this->_tmp_cols_after_user?>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_EMAIL, 'email', $this->filter_order_Dir, $this->filter_order)?>
     </th>
    <?php print $this->_tmp_cols_3?>
     <?php if ($this->show_vendor){?>
     <th>
       <?php echo _JSHOP_VENDOR?>
     </th>
     <?php }?>
     <th class="center">
       <?php echo _JSHOP_ORDER_PRINT_VIEW?>
     </th>
    <?php print $this->_tmp_cols_4?>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_DATE, 'order_date', $this->filter_order_Dir, $this->filter_order)?>
     </th>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_ORDER_MODIFY_DATE, 'order_m_date', $this->filter_order_Dir, $this->filter_order)?>
     </th>
    <?php print $this->_tmp_cols_5?>
     <?php if (!$jshopConfig->without_payment){?>
     <th>
       <?php echo _JSHOP_PAYMENT?>
     </th>
     <?php }?>
     <?php if (!$jshopConfig->without_shipping){?>
     <th>
       <?php echo _JSHOP_SHIPPINGS?>
     </th>
     <?php }?>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_STATUS, 'order_status', $this->filter_order_Dir, $this->filter_order)?>
     </th>
    <?php print $this->_tmp_cols_6?>
     <th>
       <?php echo _JSHOP_ORDER_UPDATE?>
     </th>
    <?php print $this->_tmp_cols_7?>
     <th>
       <?php echo JHTML::_('grid.sort', _JSHOP_ORDER_TOTAL, 'order_total', $this->filter_order_Dir, $this->filter_order)?>
     </th>
    <?php print $this->_tmp_cols_8?>
     <?php if ($jshopConfig->shop_mode==1){?>
     <th class="center">
       <?php echo _JSHOP_TRANSACTIONS?>
     </th>
     <?php }?>
     <th class="center">
       <?php echo _JSHOP_EDIT?>
     </th>  
   </tr>
   </thead>
   <?php
   $i=0;
   foreach($rows as $row){
       $display_info_order=$row->display_info_order;
   ?>
   <tr class="backlight<?php echo $row->order_status?>" <?php if (!$row->order_created) print "style='font-style:italic; color: #b00;'"?>> <!--MSI-add// backlight< php echo $row->order_status?> //-->
     <td>
       <?php echo $pageNav->getRowOffset($i);?>
     </td>
     <td>
        <?php if ($row->blocked){?>
            <img src="components/com_jshopping/images/checked_out.png" />
        <?php }else{?>
            <?php echo JHtml::_('grid.id', $i, $row->order_id);?>
        <?php }?>
     </td>
     <td>
       <a class="order_detail" href = "index.php?option=com_jshopping&controller=orders&task=show&order_id=<?php echo $row->order_id?>"><?php echo $row->order_number;?></a>
       <?php if (!$row->order_created) print "("._JSHOP_NOT_FINISHED.")";?>
      <?php print $row->_tmp_ext_info_order_number?>
     </td>
    <?php print $row->_tmp_cols_1?>
     <td>        
         <?php echo $row->name?>
     </td>
     <?php print $row->_tmp_cols_after_user?>
     <td><?php echo $row->email?></td>
    <?php print $row->_tmp_cols_3?>
     <?php if ($this->show_vendor){?>
     <td>
        <?php print $row->vendor_name;?>
     </td>
     <?php }?>
     <td class="center">
      <?php if ($jshopConfig->generate_pdf){?>
            <?php if ($display_info_order && $row->order_created && $row->pdf_file!=''){?>
                <a href = "javascript:void window.open('<?php echo $jshopConfig->pdf_orders_live_path."/".$row->pdf_file?>', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=800,height=600,directories=no,location=no');">
                    <img border="0" src="components/com_jshopping/images/jshop_print.png" alt="print" />
                </a>
            <?php }?>
        <?php }else{?>
            <a href = "javascript:void window.open('index.php?option=com_jshopping&controller=orders&task=printOrder&order_id=<?php echo $row->order_id?>&tmpl=component', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,width=800,height=600,directories=no,location=no');">
                <img border="0" src="components/com_jshopping/images/jshop_print.png" alt="printhtml" />
            </a>
        <?php }?>
        <?php if (isset($row->_ext_order_info)) echo $row->_ext_order_info;?>
     </td>
    <?php print $row->_tmp_cols_4?>
     <td>
       <?php echo formatdate($row->order_date, 1);?>
     </td>
     <td>
       <?php echo formatdate($row->order_m_date, 1);?>
     </td>
    <?php print $row->_tmp_cols_5?>
     <?php if (!$jshopConfig->without_payment){?>
     <td>
       <?php echo $row->payment_name?>
     </td>
     <?php }?>
     <?php if (!$jshopConfig->without_shipping){?>
     <td>
       <?php echo $row->shipping_name?>
     </td>
     <?php }?>
     <td>
        <?php if ($display_info_order && $row->order_created){
            echo JHTML::_('select.genericlist', $lists['status_orders'], 'select_status_id['.$row->order_id.']', 'class="inputbox" style = "width: 100px" id="status_id_'.$row->order_id.'"', 'status_id', 'name', $row->order_status );
        }else{
            print $this->list_order_status[$row->order_status];
        }
        ?>
      <?php print $row->_tmp_ext_info_status?>
     </td>
    <?php print $row->_tmp_cols_6?>
     <td>
     <?php if ($row->order_created && $display_info_order){?>
        <input class="inputbox" type="checkbox" name="order_check_id[<?php echo $row->order_id?>]" id="order_check_id_<?php echo $row->order_id?>" />
        <label for="order_id_<?php echo $row->order_id?>"><?php echo _JSHOP_NOTIFY_CUSTOMER?></label>
        <input class="button btn btn-small" type="button" name="" value="<?php echo _JSHOP_UPDATE_STATUS?>" onclick="verifyStatus(<?php echo $row->order_status; ?>, <?php echo $row->order_id; ?>, '<?php echo _JSHOP_CHANGE_ORDER_STATUS;?>', 0, '<?php echo $adv_string?>');" />
     <?php }?>
     <?php if ($display_info_order && !$row->order_created && !$row->blocked){?>
        <a href="index.php?option=com_jshopping&controller=orders&task=finish&order_id=<?php print $row->order_id?>&js_nolang=1"><?php print _JSHOP_FINISH_ORDER?></a>
     <?php }?>
    <?php print $row->_tmp_ext_info_update?>
     </td>
    <?php print $row->_tmp_cols_7?>
     <td>
       <?php if ($display_info_order) echo formatprice( $row->order_total,$row->currency_code)?>
      <?php print $row->_tmp_ext_info_order_total?>
     </td>
    <?php print $row->_tmp_cols_8?>
     <?php if ($jshopConfig->shop_mode==1){?>
     <td class="center">
       <a class="btn btn-micro" href='index.php?option=com_jshopping&controller=orders&task=transactions&order_id=<?php print $row->order_id;?>'>
        <img src='components/com_jshopping/images/jshop_options_s.png'>
       </a>
     </td>
     <?php }?>
     <td class="center">
     <?php if ($display_info_order){?>
        <a class="btn btn-micro" href='index.php?option=com_jshopping&controller=orders&task=edit&order_id=<?php print $row->order_id;?>&client_id=<?php print $this->client_id;?>'>
            <i class="icon-edit"></i>
        </a>
     <?php }?>
   </td>
   </tr>
   <?php
   $i++;
   }
   ?>
<tr>
   <?php
    $cols = 10;
    if (!$jshopConfig->without_payment) $cols++;
    if (!$jshopConfig->without_shipping) $cols++;
    if ($this->show_vendor) $cols++;
    ?>
    <?php print $this->_tmp_cols_foot_total?>
    <td colspan="<?php print $cols+(int)$this->deltaColspan0?>" class="right"><b><?php print _JSHOP_TOTAL?></b></td>
    <td><b><?php print formatprice($this->total, getMainCurrencyCode())?></b></td>
    <?php if ($jshopConfig->shop_mode==1){?>
     <td></td>
    <?php }?>
    <td></td>
</tr>
<tfoot>
<tr>
   <?php
    $cols = 20;
    if (!$jshopConfig->without_payment) $cols++;
    if (!$jshopConfig->without_shipping) $cols++;
    if ($this->show_vendor) $cols++;
    ?>
<?php print $this->tmp_html_col_before_td_foot?>
<td colspan="<?php print $cols+(int)$this->deltaColspan?>">
   <div class="jshop_list_footer"><?php echo $pageNav->getListFooter(); ?></div>
    <div class="jshop_limit_box"><?php echo $pageNav->getLimitBox(); ?></div>
</td>
<?php print $this->tmp_html_col_after_td_foot?>
</tr>
</tfoot>  
</table>

<input type="hidden" name="filter_order" value="<?php echo $this->filter_order?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->filter_order_Dir?>" />
<input type="hidden" name="task" value="" />
<input type = "hidden" name = "boxchecked" value = "0" />
<input type = "hidden" name = "client_id" value ="<?php echo $this->client_id?>" />
<?php print $this->tmp_html_end?>
</form>
<?php print $this->_tmp_order_list_html_end;?>
</div>
<!--MSI-add//--><style>
   .order_detail{padding: 0 0 25px;}
   .backlight1 td{background-color:#CFC; border-top: 3px solid #FFF;}
   .backlight2 td{background-color:#BDF; border-top: 3px solid #FFF;}
   .backlight3 td{background-color:#FCC; border-top: 3px solid #FFF;}
   .backlight4 td{background-color:#FCF; border-top: 3px solid #FFF;}
   .backlight5 td{background-color:#FFC; border-top: 3px solid #FFF;}
   .backlight6 td{background-color:#9D9; border-top: 3px solid #FFF;}
   .backlight7 td{background-color:#F6F6F6; border-top: 3px solid #FFF;}
</style>
[/spoiler]
^-^ А админка должна выглядить как-то так :)
[spoiler][/spoiler]

// == Инструкция: Оверрайд шаблона админки JS == //

« Последнее редактирование: 24.12.2015, 13:37:20 от Cerber »

*

Оффлайн dmitry_stas

отличное решение. имхо вполне достойно попасть в FAQ

напомню только, что вывод для админ панели можно переопределять в шаблоне в папке HTML точно также, как и на фронте. т.е. в данном случае нужно скопировать указанный файл в \administrator\templates\hathor\html\com_jshopping\orders\list.php (если шаблон админки Hathor), и уже в нем проводить изменения, чтобы не иметь проблем с перезаписью файла при обновлении
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн vipiusss

  • ********
  • 5844
  • [+]324 / [-]10
  • Пол: Мужской
  • Skype: renor_
    • Просмотр профиля
Плюсанул ТСу.
dmitry_stas если не трудно:исправьте без обновления и в факью, уверен не только нам это пригодится!
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

Оффлайн dmitry_stas

ну я же вам говорил уже :) я не модератор, я не могу редактировать чужие посты, переносить их и т.п.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн vipiusss

  • ********
  • 5844
  • [+]324 / [-]10
  • Пол: Мужской
  • Skype: renor_
    • Просмотр профиля
ну я же вам говорил уже :) я не модератор, я не могу редактировать чужие посты, переносить их и т.п.
а я не сказал, что вы модератор, но за "ниточки" знаете кому и за что дёргать )))
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

Оффлайн nevigen

  • *****
  • 9339
  • [+]771 / [-]17
  • Пол: Мужской
  • http://n*****n.com
    • Просмотр профиля
    • Nevigen.com -разработки для Joomla
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?

*

Онлайн vipiusss

  • ********
  • 5844
  • [+]324 / [-]10
  • Пол: Мужской
  • Skype: renor_
    • Просмотр профиля
Нев, ты мою цитату знаешь про тебя: не буду блестать банальностью!
 *DRINK*
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

Оффлайн Biss

Да, что тут скажешь. Уже давно можно было это запихнуть в коробку. всего делов-то - поправить один файл, но нет надо сделать аддон и продавать за 23 евро   ^-^

*

Оффлайн dmitry_stas

ну вы ж поймите... в аддоне во-первых не только эти 5 строк, в аддоне есть например настройки, которые задают цвет от статуса, а статусы могут добавляться/удаляться, это надо учитывать, и так далее. я не говорю, что это архисложно, но если универсально - то тем не менее много моментов. плюс к этому - это надо далеко не всем. мне например вообще не надо :) плюс к этому - бесплатный компонент интернет-магазина не особо помогает в магазине продуктовом... видимо поэтому и аддон :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн Biss

Да, я видел что там настройки есть. не написал о них в предыдущем посте, и чувствовал что мне об этом напомнят  ^-^. не хочу сказать что всё должно быть бесплатно, такого ж не бывает, просто хочется что б админка тоже развивалась и не только в плане функционала, добавлялись описания к параметрам и так далее, а компонент вообще и так супер, лучше его считаю что нет

*

Оффлайн dmitry_stas

Цитировать
просто хочется что б админка тоже развивалась и не только в плане функционала, добавлялись описания к параметрам и так далее
ну тут да, тут бесспорно.  с этим согласен на 100%
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн vipiusss

  • ********
  • 5844
  • [+]324 / [-]10
  • Пол: Мужской
  • Skype: renor_
    • Просмотр профиля
если бы вы мои по пунктам "фэ" прочитали.вы бы ох...ли.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

У меня почему-то только некоторые статусы заказов поняли цвета, остальные серые!
Как этот метод определяет к какому статусу какой цвет?

Upd: у меня странные метаморфозы с цветами, при пагинации или обновлении страницы заказов
Иногда даже так:
« Последнее редактирование: 19.12.2015, 14:20:50 от threemonkeys »

*

Оффлайн zeher

.backlight1 - где 1 это id статуса, просмотрите id ваших статусов и поменяйте.

Отчищаю кэш, все нормально.
Перемещаюсь по страницам заказов, цвета то корректно отображаются, то например все статусы зеленым подсвечиваются!
Ничего не понимаю

*

Оффлайн Cerber

  • ****
  • 289
  • [+]32 / [-]0
  • Пол: Мужской
  • Богиня Иштар и ее пес Пи..ц
    • Просмотр профиля
Проверьте корректно сделали правки или для проверки вставить весь вышеуказанный код.
В админке применяются аддоны?
Какая версия?
Кэш включен, родной?
Какой браузер?

Система Кэш отключена.
Есть плагин NoNumber Cache Cleaner
Joomla 3.4.6
JS 4.11.5
Все делал по образцу.
Вроде нормально сейчас, но иногда все статусы одни цветом, обычно ID 1. После обновления страницы все гуд!

*

Оффлайн dmitry_stas

Cerber, добро пожаловать в клуб по интересам :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн Cerber

  • ****
  • 289
  • [+]32 / [-]0
  • Пол: Мужской
  • Богиня Иштар и ее пес Пи..ц
    • Просмотр профиля
Наконец-то.. Ну наконец-то можно выкинуть клубную карточку VM :)

Есть плагин NoNumber Cache Cleaner
threemonkeys попробуйте отключить Cache Cleaner

Наконец-то.. Ну наконец-то можно выкинуть клубную карточку VM :)
threemonkeys попробуйте отключить Cache Cleaner
Все отключил.
Но при первом заходе в - Заказы, все заказы одним цветом, только обновление все исправляет.(

*

Оффлайн Cerber

  • ****
  • 289
  • [+]32 / [-]0
  • Пол: Мужской
  • Богиня Иштар и ее пес Пи..ц
    • Просмотр профиля
Попробуйте полностью скопировать готовый код выше и вставить в файл
+ для разнообразия зайти с другого браузера.

На этом все, без объекта играть в рулетку можно долго.

Попробуйте полностью скопировать готовый код выше и вставить в файл
+ для разнообразия зайти с другого браузера.
Версия файла такая как у вас. Но для убедительности вставил, тоже самое.
Браузер Safari

Upd.: есть подозрения что Сафари барогозит, в Chrome вроде норм
« Последнее редактирование: 22.12.2015, 19:11:22 от threemonkeys »