ECCUBE3系では本来受注一覧ページでステータスごとに背景色を変える機能が備わっています。
マスタデータ管理のmtb_order_status_colorが背景色の一覧になります。
ただ、この機能私の環境ECCUBE3.0.10では動作しませんでした。
詳しく見たわけではありませんが、まだ実装された気配がありません。
どんなステータスであっても背景が白とグレーのストライプで表示されてしまいます。
↓before
そこでmtb_order_status_colorの色が反映されるようにファイルをカスタマイズしてみます。
1. EccubeServiceProvider.php
$appにOrderStatusColorのRepositoryが追加されていないので登録しておきます。
$app['eccube.repository.master.order_status_color'] = $app->share(function () use ($app) { return $app['orm.em']->getRepository('Eccube\Entity\Master\OrderStatusColor'); });
2. OrderController
orderStatusColorsの一覧をtwigに渡すデータに追加
return $app->render('Order/index.twig', array( 'searchForm' => $searchForm->createView(), 'pagination' => $pagination, 'disps' => $disps, 'pageMaxis' => $pageMaxis, 'page_no' => $page_no, 'page_status' => $page_status, 'page_count' => $page_count, 'active' => $active, 'orderStatusColors' => $app['eccube.repository.master.order_status_color']->findAll(), ));
3. Order/index.twig
受注テーブルのtrにorder-status-(ステータスID)というclassを追加
{% for Order in pagination %} <tr id="result_list_main__item--{{ Order.id }}" class="order-status-{{ Order.OrderStatus.Id }}">
CSSをtwig内に書いてしまいます。
{% block stylesheet %} <link rel="stylesheet" href="{{ app.config.admin_urlpath }}/assets/css/bootstrap-datetimepicker.min.css"> <style> {% for OrderStatusColor in statusColors %} tr.order-status-{{ OrderStatusColor.Id }} td,tr.order-status-{{ OrderStatusColor.Id }} th { background-color: {{ OrderStatusColor.name }} !important; } {% endfor %} </style> {% endblock stylesheet %}
これでひとまず背景色を反映させることはできました。
↓after
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。