Dzięki Jola za reakcję na mojego prv. Jak widzisz męczy mnie ten problem już kilka dni, a przecież to nie jest moduł odsługujący start wachadłowca.
Więc tak.
1. Jeśli chodzi o nazwy:
Folder: pktgratis
W nim trzy pliki: index.html, pktgratis.php, pktgratis.xml
Plik XML:
Kod HTML:
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="user">
<name>plg_user_pktgratis</name>
<author>Piotr Balicki</author>
<creationDate>December 2014</creationDate>
<copyright>(C) 2015. Piotr Balicki All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<version>3.0.0</version>
<description>Przekazuje nowo zarejestrowanemu uzytkownikowi punkty gratis</description>
<files>
<filename plugin="pktgratis">pktgratis.php</filename>
<filename>index.html</filename>
</files>
<languages>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
</fieldset>
</fields>
</config>
</extension>
Plik PHP:
Kod PHP:
<?php
defined('_JEXEC') or die;
class PlgUserPktgratis extends JPlugin
{
public function onUserAfterSave($user, $isnew, $success, $msg)
{
if($isnew)
{
//Tworzenie połączenia z bazy danych
$db = JFactory::getDbo();
//Tworzenie oraz wypełnienie obiektu
$data =new stdClass();
$data->user_id = $user['id'];
$data->points = 13;
$data->description = 'gratis na start';
$data->date = date("Y-n-j H:i:s");
$result->JFactory::getDbo()->insertObject( '#__djcf_users_points', $data);
}
}
}
?>
Plik PHP to pktgratis.php w nazwa plasy to PlgUserPktgratis. Jak widać jest taki sam jak tylko klasa posiada przedrostek: PlgUser.
2. Składnia zapisu do bazy
Wzorowałem się na dokumentacji Joomla:http://wiki.joomla.pl/Dost%C4%99p_do...niem_JDatabase
Takiej składni użyto w Wstawianie rekordu -> Używając obiektu
Kod PHP:
// tworzenie i wypełnianie obiektu
$profile = new stdClass();
$profile->user_id = 1001;
$profile->profile_key='custom.message';
$profile->profile_value='Wstawianie rekordu przy użyciu insertObject()';
$profile->ordering=1;
// Wstawiaie obiektu do odpowiedniej tabeli
$result = JFactory::getDbo()->insertObject('#__user_profiles', $profile);