Jump to content

Modulo BankWire e index.tpl non trovato


Recommended Posts

Ciao, chiedo a qualche buon samaritano una mano su questo strano messaggio che appare nell'ultima fase di carrello , una volta che l'utente ha confermato di voler pagare con bonifico bancario

 

[PrestaShopException]

Template '/home/mio_sito/www/shop/themes/mio_tema/index.tpl'' not found
at line 61 in file classes/controller/ModuleFrontController.php

55. 		if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template))56. 			$this->template = _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template;57. 		elseif (Tools::file_exists_cache($this->getTemplatePath().$template))58. 			$this->template = $this->getTemplatePath().$template;59. 		else60. 			throw new PrestaShopException("Template '$template'' not found");61. 	}62. 63. 	/**64. 	 * Get path to front office templates for the module65. 	 *
  • ModuleFrontControllerCore->setTemplate - [line 457 - classes/controller/FrontController.php] - [1 Arguments]
  • FrontControllerCore->initContent - [line 40 - modules/bankwire/controllers/front/payment.php] - [0 Argument]
  • BankwirePaymentModuleFrontController->initContent - [line 167 - classes/controller/Controller.php] - [0 Argument]
  • ControllerCore->run - [line 348 - classes/Dispatcher.php] - [0 Argument]
  • DispatcherCore->dispatch - [line 28 - index.php] - [0 Argument]

 

 

Ho controllato ed in file in questione è presente all'interno della directory, e ha i giusti permessi .

 

Uso Joomla 1.5.3.1.

 

Grazie in anticipo

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

Allora, ho risolto, magari in modo poco elegante, ma almeno i clienti riescono a procedere nel pagamento con bonifico. Spero possa dare una mano a qualcuno

 

Il problema sta nel controller del modulo bankwire

 modules/bankwire/controllers/front/payment.php che estende ModuleFrontController

 

nel costruttore, ancor prima di settare il tema principale del modulo (payment_execution.tpl) , viene chiamato il metodo initContent() sul parent (parent::initContent() )

Questa chiamata, nella mia versione probabilmente, genera un'eccezione, perchè il parent cerca il file index.tpl che non trova per quel particolare modulo.

 

Ecco il codice della funzione setTemplate() del parent ( ModuleFrontController.php)

 

public function setTemplate($template)

{

     if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template))

                     $this->template = _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template;
      else if (Tools::file_exists_cache($this->getTemplatePath().$template))
                    $this->template = $this->getTemplatePath().$template;
      else
                   throw new PrestaShopException("Template '$template'' not found");
}
 
Ho cambiato così
 
public function setTemplate($template)
{
     //Fix.  Durante il debug $template ha un path completo, ho bisogno di prendere solo la parte finale, index.tpl, per logica, basandomi sul resto del codice preesistente
     if( strpos($template, _PS_ROOT_DIR_) !== false ) {
             $template = basename($template);
     }
    //---------------fine Fix.
 

     if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template))

                     $this->template = _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template;
      else if (Tools::file_exists_cache($this->getTemplatePath().$template))
                    $this->template = $this->getTemplatePath().$template;
      else
                   throw new PrestaShopException("Template '$template'' not found");
}
 
Ho inoltre creato un file vuoto, index.tpl , all'interno della directory /modules/bankwire/views/templates/front/ , in modo da non far generare l'eccezione.
 
 
Funziona. Purtroppo no capisco come il modulo abbia potuto funzionare fino ad adesso, prima del verificarsi del problema, dato che io non ho toccato nulla....mistero :)
Edited by ilsikulo (see edit history)
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...