mowgli Posted January 25, 2018 Share Posted January 25, 2018 (edited) Witam, Potrzebuję pomocy w następującej kwestii. Od frontu, w historii klienta chciałbym dodać kolumnę w której będą widoczne uwagi, które klient wpisał w trakcie składania zamówienia (screen1). Samą kolumnę udało mi się dodać, przydałoby się jeszcze żeby coś w niej się pojawiło. Klient przy składaniu zamówienia ma możliwość dodania komentarza do zamówienia. Ten komentarz wysyłany jest jako wiadomość. Chciałbym aby treść ostatniej wiadomości (lub część treści, tak żeby kolumna się nie rozjeżdżała w przypadku dłuższych wiadomości) była widoczna w kolumnie uwagi. Jak można zrobić coś takiego? Dodam, że nie jestem specem od presty, dla tego prosiłbym o możliwie łopatologiczne podpowiedzi. Z góry dzięki Edited January 25, 2018 by mowgli (see edit history) Link to comment Share on other sites More sharing options...
endriu107 Posted January 25, 2018 Share Posted January 25, 2018 Jak klikniesz na szczegóły to ten tekst jest wyświetlany więc raczej tylko kwestia przeniesienia go w odpowiednie miejsce. 1 Link to comment Share on other sites More sharing options...
e_com Posted January 25, 2018 Share Posted January 25, 2018 @endriu107 nie takie to proste jak się wydaje na pierwszy rzut oka. Górę obsługuje HistoryController i on nie wysyła zmiennej $messages do templatki history.tpl. Natomiast dół obsługuje OrderDetailController i on wysyła tą zmienną do order-detail.tpl. Także tylko przeróbka kontrolera jeśli chcemy na siłę wcisnąć wiadomości do górnej templatki. 1 Link to comment Share on other sites More sharing options...
atomek Posted January 25, 2018 Share Posted January 25, 2018 Spróbuj w ten sposób: 1. utwórz plik /override/controllers/front/HistoryController.php z zawartością: <?php /* * dodanie pola z ostatnia wiadomoscia klienta * */ class HistoryController extends HistoryControllerCore { public function initContent() { FrontController::initContent(); if ($orders = Order::getCustomerOrders($this->context->customer->id)) { foreach ($orders as &$order) { $myOrder = new Order((int)$order['id_order']); if (Validate::isLoadedObject($myOrder)) { $order['virtual'] = $myOrder->isVirtual(false); } // START - dodanie ostatniej wiadomosci klienta $messages = CustomerMessage::getMessagesByOrderId((int)$order['id_order'], false); $message = end($messages); $order['message'] = $message['message']; // END - dodanie ostatniej wiadomosci klienta } } // d($orders); $this->context->smarty->assign(array( 'orders' => $orders, 'invoiceAllowed' => (int)Configuration::get('PS_INVOICE'), 'reorderingAllowed' => !(bool)Configuration::get('PS_DISALLOW_HISTORY_REORDERING'), 'slowValidation' => Tools::isSubmit('slowvalidation') )); $this->setTemplate(_PS_THEME_DIR_.'history.tpl'); } // END ----------------------------------------------- initContent() } 2. w pliku history.tpl Twojej templatki dodaj kod: {foreach from=$orders item=order name=myLoop} .... .... .... .... <td class="history_message"> {$order.message|truncate:35:'...'|escape:'html':'UTF-8'} </td> {/foreach} 3. wyczyść cache/usuń plik /cache/class_index.php powinno działać (PS 1.6) 1 Link to comment Share on other sites More sharing options...
mowgli Posted January 26, 2018 Author Share Posted January 26, 2018 Dziękuję za podpowiedzi, ale przede wszystkim za gotowca Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now