Dík za rady. Jsem úplná programátorská lama a přiznám se, že řeším něco čemu zrovna moc nerozumím. Podle tvých rad jsem si odladil dotazy v MySQL Adminu. To by mělo být OK. Ale pořád mi to jako celek nechodí. Pokusil jsem se to tentokrát poupravit a zapracovat do fungujícího pluginu, který to stejné (tj. vyrobení kategorie) udělá pro uživatele, který se právě přihlásil. Moje úprava spočívající v tom, aby po přihlášení libovolného uživatele se kategorie vytvořily všem bohužel nefunguje právě správně. Vím, že je to blbost, ale pro moje ladění jsem to takto udělal a pokud vyrobím jednou to množství 850 kategorií, tak plugin v této upravené podobě už nebude třeba.
Ta moje úprava způsobí, že se sice vytvoří kategorie, bohužel jen jedna a jmenuje se 4. Místo podle nějakého username se jmenuje číslem. Vůbec netuším, kde se mi to bere. Přitom id všech uživatelů (teď mám pro testy pouze 3 uživatele) jsou v rozmezí 42-44.
Pomalu ztrácím víru. Už jsem na tom strávil tolik hodin času a pořád to nechodí.
Můj upravený plugin, resp. jeho funkce:
public function onUserLogin($user, $options)
{
$db =& JFactory::getDBO();
$query = 'SELECT `username`'
. ' FROM `j25_users`'
. ' WHERE username=username';
$db->setQuery( $query );
$clens = $db->loadObject();
if($clens){
$clen_object = JUser::getInstance($clens->username);
foreach($clens as $clen){
$clen['id'] = $clen_object->get('id');
$clen['name'] = $clen['fullname'];
$query = $db->getQuery(true)
->select('COUNT(cid)')
->from('#__joomgallery_catg')
->where('owner = '.(int) $clen['id']);
$db2 =& JFactory::getDBO();
$db2->setQuery($query);
if(!$db2->loadResult())
{
$this->_createCategory($clen['id']);
}
}
}
return true;
}
funkce createCategory:
protected function _createCategory($clen)
{
// Get the interface
require_once JPATH_ROOT.DS.'components'.DS.'com_joomgallery'.DS.'interface.php';
$jinterface = new JoomInterface();
// Create the category
switch($this->params->get('categoryname'))
{
case 0:
if($jinterface->getJConfig('jg_realname'))
{
$category->name = $clen['name'];
}
else
{
$category->name = $clen['username'];
}
break;
case 1:
$category->name = $clen['name'];
break;
default:
$category->name = $clen['username'];
break;
}
$category->owner = $clen['id'];
if($parent = $this->params->get('parent'))
{
$category->parent_id = intval($parent);
}
if($access = $this->params->get('access'))
{
$category->access = $access;
}
$category->published = $this->params->get('published');
$jinterface->createCategory($category);
}