It wasn't working for me neither, took the effort to track it down:
load() is indeed called from VM, but that's pretty normal, the problem happens when this call is made when the phoca module appears anywhere on the same screen/page (regardless of the integration setting) when this call is made.
Phoca modifies the search path returned by JTable::addIncludePath(), the Phoca path is placed in the first position (before Joomla!), and when the JTable::getInstance() searches the user.php file (which defines the JTableUser class), it founds the \administrator\components\com_phocagallery\tables\user.php file instead, and loads that file, but that file holds no information about the JTableUser class, so when the JUser->getTable() calls load(), it fails, the method is not defined.
As a workaround, I've simply threw
Code: Select all
require_once('libraries/joomla/database/table/user.php');
on top of the \administrator\components\com_phocagallery\tables\user.php file, so whenever the Joomla framework picks the wrong file, the right one will be available too.
I'm really not familiar with the new Joomla architecture, so there are certainly better way(s) to solve this, but that I'll leave that for someone else, let this post serve as a starting point.