Jump to content

Jak dodać kolumnę w historii zamówień


mowgli

Recommended Posts

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

screen1.jpg

Edited by mowgli (see edit history)
Link to comment
Share on other sites

@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.

 

  • Thanks 1
Link to comment
Share on other sites

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)

 

  • Thanks 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...