Jump to content

[Solved] many modules missing


Recommended Posts

I seem to be missing some modules from the list - I can't find the Home text editor, homeslider, cash on delivery (although it appears this module may have been rmvd by ps).

 

I did try to change the blocklayered.php module (to allow selection from all categories), but it didn't work - I received error: Le(s) module(s) suivant(s) ne peuvent pas être chargé.:

blocklayered (erreur de syntaxe dans /modules/blocklayered/blocklayered.php)

blocklayered (classe manquante dans /modules/blocklayered/blocklayered.php)

 

So I changed it back, but it hasn't worked.  It was after this that I noticed there were only 73 modules showing.

 

At the bottom of the list of modules it says:

 

[PrestaShop] Fatal error in module Module.php(1077) : eval()'d :
syntax error, unexpected '?'

 

Can anyone tell me how to access the missing modules?  They exist in FO, but not BO.

 

Thanks.

PS v.1.5.5.0

my site : http://tinyurl.com/mm4vc3m

post-606148-0-35134700-1388871235_thumb.png

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

HI, thanks for replying :)

 

I played around with the blocklayered.php file 2 days ago (I tried to do this: http://forge.prestashop.com/browse/PNM-1687), that's when the first error started.  I reversed what I'd done, but it hasn't helped.  I'm assuming I lost access to the other modules at the same time, but I'm not sure... 

 

The other syntax error is right at the bottom of the module page (see attached).  

 

I occassionally get a blank page when saving a category or product, but a refresh fixes it.  Other than that, everything else seems to be working.

 

module.png

Link to comment
Share on other sites

Make sure you reverted all changes exactly in blocklayered.php. There's probably some invalid characters. Copy it from prestashop's install package if needed.

Just in case edit classes\module\Module.php and copy to this thread code from lines 1076-1078

  • Like 1
Link to comment
Share on other sites

errors in Module.php file are usually strictly related to modules.

if some of the modules you've got has got parse error, you will see that error is related to module.php file.

 

anyway, revert changes as Sharak suggested, will see what's going on then.

  • Like 1
Link to comment
Share on other sites

Thanks for your help guys.  I reversed the changes to blocklayered.php, but maybe I missed something because it hasn't helped.  I'm using v.1.5.5.0.  If I download the latest version of prestashop again, can I just copy it and paste over the current blocklayered.php?  Will different versions matter?

 

This is what I have now:

 

blocklayered.php

			$root_category = array('id_category' => '0', 'name' => $this->l('Root'));

			$helper = new Helper();
			$html .= $helper->renderCategoryTree(null, $selected_cat, 'categoryBox');
			
			$html .= '

blocklayered.php

});
						
						$(\'label a#inline\').fancybox({ 
							\'hideOnContentClick\': false,
							\'onClosed\': function() {
								lock_treeview_hidding = false;
								$(\'#categories-treeview\').parent().parent().hide();
								updCatCounter();
								if ($(\'#categories-treeview\').find(\'input:checked\').length == 0)
									$(\'#error-treeview\').show();
								else
									$(\'#error-treeview\').hide();
								updElements(0, 0);
							},
This is what I was originally trying to do (where I had made changes):
 

replace line 1774 :
$html .= $helper->renderCategoryTree(null, $selected_cat, 'categoryBox')
with
$html .= $helper->renderCategoryTree(null, $selected_cat, 'categoryBox', false, false, array(), true);

and line 1933:
\'onClosed\': function() {
with
\'beforeClose\': function() {

(from post at http://forge.prestas...browse/PNM-1687)

 

The ";" at the end of line 1774 confused me a little, but with or without didn't seem to help...

 

Thanks again.

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

This is classes\module\Module.php

// If (false) is a trick to not load the class with "eval".
					// This way require_once will works correctly
					if (eval('if (false){	'.$file.' }') !== false)
						require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
					else
						$errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
				}
Link to comment
Share on other sites

ok, thanks.

 

By REMOVE do you mean delete the blocklayered folder via ftp. (/modules/blocklayered)?  

 

I removed the module from the FO after my failed attempt to fix it, via live edit, as that was the only way I could access the module.

 

Or I can see it in Modules>positions:

 

module2.png

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