?
avatar farhadst
farhadst
24 Apr 2015

After update joomla to 3.4.1
in Extension manager - Update page
when click on Find Updates button
shown white screen! (test on firefox 37.0.2 and chrome 42)
i have replace administrator folder but does not matter!

Extension manager - Update page
find update1

after click!
find update2

avatar farhadst farhadst - open - 24 Apr 2015
avatar OctavianC
OctavianC - comment - 24 Apr 2015

Go to System > Global Configuration, click on the Server tab and set Error Reporting to Development. Save you new config and re-test the Find Updates button. There should be an error message showing now.

avatar farhadst
farhadst - comment - 24 Apr 2015

error:
Fatal error: Call to undefined method InstallerModelUpdate::getDisabledUpdateSites() in /home/.../domains/.../public_html/administrator/components/com_installer/controllers/update.php on line 93

avatar infograf768
infograf768 - comment - 24 Apr 2015

Looks like your update went wrong. as the method exists and we can't reproduce your issue.

avatar brianteeman brianteeman - change - 25 Apr 2015
Labels Added: ?
avatar zero-24 zero-24 - change - 29 Apr 2015
Category Updating
avatar zero-24 zero-24 - change - 29 Apr 2015
Status New Information Required
avatar zero-24
zero-24 - comment - 29 Apr 2015

Moving to Information required until we get feedback by @farhadst. If he can fix the issue by reset the files.


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/6833.

avatar farhadst
farhadst - comment - 30 Apr 2015

@zero-24 can u explain more!

avatar zero-24
zero-24 - comment - 30 Apr 2015

ok :smile:

  • Download the last Joomla 3.4.1 Package
  • extract it
  • remove the folder instalation
  • copy and replace all files over your current installation (e.g. via FTP)
  • notice: all core hacks (changes at core files) will be removed if you use a customised core template you can remove the templates folder also.
  • after this please clean your cache (Browser and Joomla) and try again :smile:
avatar OctavianC
OctavianC - comment - 30 Apr 2015

You can also use the Extensions > Extension Manager to install the latest Joomla! package - it works if upload_max_filesize and post_max_size (in php.ini) are set correctly (Joomla! package is ~11MB, so you'll need a value of 16M for both of them to be on the safe side).

avatar farhadst
farhadst - comment - 1 May 2015

@zero-24 i think u speaking about specific file, in first post i say replace admin folder and important folder but it doesn't work! :)

i have install joomla 3.4.1 and replace database table by old site and its work fine!

avatar zero-24
zero-24 - comment - 1 May 2015

@zero-24 i think u speaking about specific file, in first post i say replace admin folder and important folder but it doesn't work! :)

I guess you have also to restore/replace the libraries folder.

But the savest way i think is to replace all files as maybe also other files are not updated because of a wrong update ;)

avatar farhadst
farhadst - comment - 2 May 2015

@zero-24 i have replace all folder by joomla 3.4.1 but doesn't work! :|

avatar farhadst
farhadst - comment - 2 May 2015

@OctavianC i have install latest joomla package as extension manager but problem dosen't fix!

avatar bertmert
bertmert - comment - 2 May 2015

The model was found. Otherwise error message would be another.

So download file
/administrator/components/com_installer/models/update.php
open in editor and search for
public function getDisabledUpdateSites()
(line 148)

avatar farhadst
farhadst - comment - 2 May 2015

@bertmert i found public function getDisabledUpdateSites() in update.php line 148

avatar ggppdk
ggppdk - comment - 11 May 2015

I have seen this before, and the answer is somewhat the only remaining logical conclusion,

-- the desire model file is never loaded, and it was not loaded because:

using:
JTable::getInstance('update');

-- does not guarantee that the correct file will be loaded (please take a look at the getInstance function),
instead if some other extensions has already loaded any file like
/any_extension/models/update.php

then the using: JTable::getInstance('update');
will not load any new file

If i remember correctly, this can be with doing this:
JTable::getInstance('update', $prefix='InstallerModel');

thus forcing getInstance() to load and use the correct file

avatar ggppdk
ggppdk - comment - 11 May 2015

I forgot to say that the /any_extension/models/update.php,
could have been loaded by a system plugin already

avatar mbabker
mbabker - comment - 11 May 2015

Are you talking model or table classes at this point? Those are two totally different things loaded in different ways.

avatar ggppdk
ggppdk - comment - 11 May 2015

I am guessing by looking at code, and by having possilbly the same problem in the past,
i will try to make a test run to see if it is the same case as i had experienced before, when 2 extensions tried load a model file:

//models/item.php

and the second one had failed because it used:
JTable::getInstance('item');

but by the words of 'farhadst',

  • the conclusion is that the correct model file is not loaded ??, since he made sure that he has an up to date model file in his site
avatar mbabker
mbabker - comment - 11 May 2015

Calling JTable::getInstance() doesn't load a model class, it loads a table class. That's where I'm getting confused by your comments; you're referring to file paths that would load model classes and your JTable::getInstance('update', $prefix='InstallerModel'); line is a bad example where you're specifying a model class name while trying to load a JTable object.

If you're trying to load JTableUpdate, then JTable::getInstance('update'); is just fine as the second param defaults to JTable in that method. If you're trying to load InstallerModelUpdate, then you should be calling JModelLegacy::getInstance('Update', 'InstallerModel'); and you pretty much need to specify both parameters unless you're in the context of a controller class.

avatar ggppdk
ggppdk - comment - 12 May 2015

@mbabker
yes you are right,
i tested,
this is called exactly:
JModelLegacy::getInstance('Update', 'InstallerModel');

so the problem must be that some 3rd party extension has already loaded a custom class file
that contains class: InstallerModelUpdate
because in this case JModelLegacy::getInstance will not try to load a file again,
and that can also explain why the function does not exist

avatar OctavianC
OctavianC - comment - 12 May 2015

@farhadst if you're still having issues, can you please edit administrator/components/com_installer/controllers/update.php and just after the following lines:

// Find updates.
/** @var InstallerModelUpdate $model */
$model = $this->getModel('update');

Add the following:

$class = new ReflectionClass($model);
var_dump($class->getName());
var_dump($class->getFileName());
die();

Let me know what messages are showing up now after you click the Find Updates button.

avatar farhadst
farhadst - comment - 12 May 2015

@OctavianC i have replace following code after this line $model = $this->getModel('update');
and this not work

@mbabker i found all update.php and rename but problem not fix

avatar OctavianC
OctavianC - comment - 12 May 2015

And what message are you getting now? If you're not seeing a different message (there should be some strings there instead of the Fatal Error), I'm guessing you have some PHP Code caching module on your server and it's still using the old update.php file.

avatar farhadst
farhadst - comment - 12 May 2015

Fatal error: Call to undefined method InstallerModelUpdate::getDisabledUpdateSites() in /home/.../domains/.../public_html/administrator/components/com_installer/controllers/update.php on line 96

avatar OctavianC
OctavianC - comment - 12 May 2015

It's still the same error - this means that the code I've supplied is not run. Either it's PHP Caching or you have added it to the wrong function ($model = $this->getModel('update'); appears in multiple lines, that's why I added the three lines so you can better identify it).

avatar farhadst
farhadst - comment - 12 May 2015

yes, i have replace code in wrong line
i get this error after correct:
public_html/plugins/system/egoltupdate/update-j3.php

and when rename this file (update-j3.php) get this error:

Warning: require_once(public_html/plugins/system/egoltupdate/update-j3.php): failed to open stream: No such file or directory in public_html/plugins/system/egoltupdate/egoltupdate.php on line 26 Fatal error: require_once(): Failed opening required 'public_html/plugins/system/egoltupdate/update-j3.php' (include_path='.:/usr/local/php5/lib/php') in /public_html/plugins/system/egoltupdate/egoltupdate.php on line 26

avatar OctavianC
OctavianC - comment - 12 May 2015

There you have it - you have a System Plugin that's loading a different model. You'll have to disable the plugin "Egolt Update" for this to work... you can also contact the plugin's developers and let them know about this. They'll probably need to rename some files or classes in their plugin to fix this.

avatar brianteeman
brianteeman - comment - 12 May 2015

Now that we can see that this is an extension and not the core of joomla (great detective work) I am closing this here

avatar brianteeman brianteeman - change - 12 May 2015
Status Information Required Closed
Closed_Date 0000-00-00 00:00:00 2015-05-12 11:30:40
Closed_By brianteeman
avatar brianteeman brianteeman - close - 12 May 2015
avatar brianteeman brianteeman - close - 12 May 2015
avatar farhadst
farhadst - comment - 12 May 2015

i have disable plugin and get this error now
string(20) "InstallerModelUpdate" string(106) "public_html/administrator/components/com_installer/models/update.php"

avatar OctavianC
OctavianC - comment - 12 May 2015

Revert the changes you did to the update.php file. Good luck! This issue has been resolved.

avatar farhadst
farhadst - comment - 12 May 2015

@OctavianC
after disable plugin, i have delete 3 line code
$class = new ReflectionClass($model);
var_dump($class->getName());
var_dump($class->getFileName());
die();

and error fix
thanks :)

avatar novinfard
novinfard - comment - 28 Nov 2015

Hello,

It's about the new method of getDisabledUpdateSites in Joomla! 3.X version which break the Egolt Update Plugin. We've solved the problem:
http://www.egolt.com/blog/256-important-update-on-all-products

Just download again and install the new version of your extension.

Thanks for the bug reporting.


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/6833.

Add a Comment

Login with GitHub to post a comment