#database #plugins #joomla
#База данных #Плагины #joomla
Вопрос:
Я хочу написать плагин Joomla для подключения к пользовательским таблицам в базе данных (одним способом).
Таким образом, при регистрации нового пользователя пользователь будет продублирован и сохранен также во второй таблице (другой скрипт). Это основная цель. Такие вещи, как обновление при смене / удалении пароля и т.д., Можно оставить на потом.
Есть идеи, где я могу найти информацию, помогающую мне написать подобный плагин для Joomla 1.6? Где я могу получить регистрационные данные пользователя и т.д.?
Ответ №1:
Я написал плагин для Joomla 1.6, который принимает идентификатор нового зарегистрированного пользователя и помещает его в другую таблицу. Он также удаляет информацию о пользователе из дополнительной таблицы, если учетная запись пользователя удалена. Это должно вас подтолкнуть, взгляните на мой код ниже:
Это для плагина под названием: plg_foo_user
foouser.php
<?php
defined('_JEXEC') or die();
jimport('joomla.plugin.plugin');
class plgUserFooUser extends JPlugin
{
function onUserAfterSave( $user, $isnew, $success, $msg ) {
//JError::raiseWarning(100, 'here1');
if ($isnew amp;amp; $success) {
$db = amp;JFactory::getDBO();
$db->setQuery( 'INSERT INTO #__foo_users (user_id) VALUES ('.$user['id'].')' );
$db->query();
}
}
function onUserAfterDelete( $user, $success, $msg ) {
//JError::raiseWarning(100, 'here2');
$db = amp;JFactory::getDBO();
if ($success) {
$db->setQuery( 'DELETE FROM #__foo_users WHERE user_id ='.$user['id'] );
$db->query();
return true;
}
}
}
?>
foouser.xml
<?xml version="1.0" encoding="utf-8"?>
<extension
version="1.6"
type="plugin"
group="user">
<name>Foo User</name>
<author>Martin Rose</author>
<creationDate>January 2011</creationDate>
<copyright>(C) 2011 Open Source Matters. All rights reserved.</copyright>
<license>GNU/GPL</license>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<version>1.0</version>
<description>Making foo happen</description>
<files>
<filename plugin="foouser">foouser.php</filename>
<filename>index.html</filename>
</files>
</extension>