Проверка на администраторский доступ в joomla

При написании своего компонента понадобилось на самом сайте определять является ли человеком администратором. Для администратора выводится дополнительная информация. Функция для определения админа выглядит так:

public function userIsAdmin(){
        $isadmin = false;
        $user           =&JFactory::getUser();
        $db = JFactory::getDbo();
        $userid         = intval($user->get( 'id' ));
        if($userid > 0){
            $query = $db->getQuery(true);
            $query->select('g.title AS group_name')
            ->from('#__usergroups AS g')
            ->leftJoin('#__user_usergroup_map AS map ON map.group_id = g.id')
            ->where('map.user_id = '.(int) $userid);
            $db->setQuery($query);
            $ugp = $db->loadObject();
            $usertype =  $ugp->group_name;
            if(is_string($usertype)) $usertype = array($usertype);
            if(in_array('Super Users', $usertype)){
                $isadmin = true;
            }
        }
        return $isadmin;
    }
В категориях: Joomla | Тэги , | Комментировать

Хранение ip адресов в mysql базе

Есть различные функции php для преобразования ip в число и наоборот, но эти функции работают только с ipv4. В настоящее же время лучше всего использовать средство mysql для этого, а именно INET_ATON и INET_NTOA . Эти функции упрощают хранение ip адресов и работу с ними.

Столбец, в котором должны хранится ip-адреса объявляется как `ip` INT UNSIGNED NOT NULL.

Для записи в БД используем синтаксис:


Далее >>>

В категориях: mySql, Php | Тэги , | Комментировать

Функция для преобразования многомерного массива в ассоциативный

Многомерный массив имеет вид:

Array
(
    [0] => Array
        (
            [0] => 1
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
        )
)

 

Ассоциативный же массив выглядит так:

 

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Функция для преобразования многомерного массива в ассоциативный:

function makeAssocArray ($arr, $offset = 0)
{
  $assoc = array();
 
  foreach ($arr as $k=>$v)
  {
    if (is_array($v))
    {
      $assocTemp = makeAssocArray($v, $offset);
      $assoc += $assocTemp;
      $offset += count($assocTemp);
    }
    else
    {
      $assoc[$offset] = $v;
      ++$offset;
    }
  }
  return $assoc;
}
В категориях: Php | Тэги , , , | Комментировать

Перенос с joomla 1.5 на 2.5 удачно завершен!

Ранее я писал про то, что собираюсь переносить сайт с joomla 1.5 на  2.5 . Перенос все-таки удался. Кое -что удалось перенести с помощью компонента jupgrade, а остальное пришлось переносить вручную. Благо, что компоненты написанные под версию 2.5 используют в базе данных практически те же поля, поэтому изменения в дампе были минимальные. Кое с чем конечно пришлось повозиться, но итог радует. Теперь Приднестровский Интернет Гид стоит на новой версии движка, что значительно упрощает мне, как разработчику, дальнейшую его поддержку и развитие.

В категориях: Joomla | Тэги , | Комментировать

Phoca gallery и youtube видео в полный экран

К сожалению разработчики phoca gallery не позаботились об удобстве пользователей при просмотре видео с ютуба. Функция просмотра видео в полном экране у них не работает. Но мне для сайта свадебного фотографа http://j-studio.pmrgid.com необходимо было сделать такую возможность.
Далее >>>

В категориях: Joomla | Тэги , , | Комментировать