| Current Path : /home/wuectly/www/03cbe/ |
| Current File : /home/wuectly/www/03cbe/event.php.tar |
home/wuectly/www/libraries/joomla/event/event.php 0000604 00000003341 15245570401 0016224 0 ustar 00 <?php
/**
* @package Joomla.Platform
* @subpackage Event
*
* @copyright (C) 2005 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
/**
* JEvent Class
*
* @since 1.5
* @deprecated 4.0 The CMS' Event classes will be replaced with the `joomla/event` package
*/
abstract class JEvent extends JObject
{
/**
* Event object to observe.
*
* @var object
* @since 2.5
*/
protected $_subject = null;
/**
* Constructor
*
* @param object &$subject The object to observe.
*
* @since 2.5
*/
public function __construct(&$subject)
{
// Register the observer ($this) so we can be notified
$subject->attach($this);
// Set the subject to observe
$this->_subject = &$subject;
}
/**
* Method to trigger events.
* The method first generates the even from the argument array. Then it unsets the argument
* since the argument has no bearing on the event handler.
* If the method exists it is called and returns its return value. If it does not exist it
* returns null.
*
* @param array &$args Arguments
*
* @return mixed Routine return value
*
* @since 1.5
*/
public function update(&$args)
{
// First let's get the event from the argument array. Next we will unset the
// event argument as it has no bearing on the method to handle the event.
$event = $args['event'];
unset($args['event']);
/*
* If the method to handle an event exists, call it and return its return
* value. If it does not exist, return null.
*/
if (method_exists($this, $event))
{
return call_user_func_array(array($this, $event), array_values($args));
}
}
}
home/wuectly/www/libraries/f0f/utils/observable/event.php 0000604 00000003631 15245605472 0017572 0 ustar 00 <?php
/**
* @package FrameworkOnFramework
* @subpackage utils
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('F0F_INCLUDED') or die;
/**
* Defines an observable event.
*
* This class is based on JEvent as found in Joomla! 3.2.0
*/
abstract class F0FUtilsObservableEvent extends F0FUtilsObject
{
/**
* Event object to observe.
*
* @var object
*/
protected $_subject = null;
/**
* Constructor
*
* @param object &$subject The object to observe.
*/
public function __construct(&$subject)
{
// Register the observer ($this) so we can be notified
$subject->attach($this);
// Set the subject to observe
$this->_subject = &$subject;
}
/**
* Method to trigger events.
* The method first generates the even from the argument array. Then it unsets the argument
* since the argument has no bearing on the event handler.
* If the method exists it is called and returns its return value. If it does not exist it
* returns null.
*
* @param array &$args Arguments
*
* @return mixed Routine return value
*/
public function update(&$args)
{
// First let's get the event from the argument array. Next we will unset the
// event argument as it has no bearing on the method to handle the event.
$event = $args['event'];
unset($args['event']);
/*
* If the method to handle an event exists, call it and return its return
* value. If it does not exist, return null.
*/
if (method_exists($this, $event))
{
return call_user_func_array(array($this, $event), $args);
}
else
{
return null;
}
}
}
home/wuectly/www/administrator/components/com_icagenda/models/event.php 0000604 00000034177 15245632666 0022616 0 ustar 00 <?php
/**
*------------------------------------------------------------------------------
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
*------------------------------------------------------------------------------
* @package com_icagenda
* @copyright Copyright (c)2012-2015 Cyril Rezé, Jooml!C - All rights reserved
*
* @license GNU General Public License version 3 or later; see LICENSE.txt
* @author Cyril Rezé (Lyr!C)
* @link http://www.joomlic.com
*
* @version 3.5.12 2015-09-25
* @since 1.0
*------------------------------------------------------------------------------
*/
// No direct access to this file
defined('_JEXEC') or die();
jimport('joomla.application.component.modeladmin');
/**
* iCagenda model.
*/
class iCagendaModelEvent extends JModelAdmin
{
/**
* @var string The prefix to use with controller messages.
* @since 1.0
*/
protected $text_prefix = 'COM_ICAGENDA';
/**
* Method to test whether a record can be deleted.
*
* @param object $record A record object.
*
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
*
* @since 3.5.6
*/
protected function canDelete($record)
{
if ( ! empty($record->id))
{
if ($record->state != -2)
{
return false;
}
$user = JFactory::getUser();
if ($user->authorise('core.delete'))
{
icagendaCustomfields::deleteData($record->id, 2);
icagendaCustomfields::cleanData(2);
return true;
}
}
return false;
}
/**
* Prepare and sanitise the table prior to saving.
*
* @param JTable $table A JTable object.
*
* @return void
*
* @since 1.0
*/
protected function prepareTable( $table )
{
$date = JFactory::getDate();
$user = JFactory::getUser();
$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
if (empty($table->id))
{
// Set the values
$table->created = $date->toSql();
// Set ordering to the last item if not set
if (empty($table->ordering))
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('MAX(ordering)')
->from($db->quoteName('#__icagenda_events'));
$db->setQuery($query);
$max = $db->loadResult();
$table->ordering = $max + 1;
}
}
else
{
// Set the values
$table->modified = $date->toSql();
$table->modified_by = $user->get('id');
}
}
/**
* Returns a Table object, always creating it.
*
* @param string $type The table type to instantiate
* @param string $prefix A prefix for the table class name. Optional.
* @param array $config Configuration array for model. Optional.
*
* @return JTable A database object
*
* @since 1.0
*/
public function getTable($type = 'Event', $prefix = 'iCagendaTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
/**
* Method to get a single record.
*
* @param integer $pk The id of the primary key.
*
* @return mixed Object on success, false on failure.
*
* @since 1.0
*/
public function getItem($pk = null)
{
if ($item = parent::getItem($pk))
{
// Do any procesing on fields here if needed
}
return $item;
}
/**
* Method to get the record form.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
*
* @return mixed A JForm object on success, false on failure
*
* @since 1.0
*/
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_icagenda.event', 'event',
array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
/**
* Method to get the data that should be injected in the form.
*
* @return mixed The data for the form.
*
* @since 1.0
*/
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$data_array = $app->getUserState('com_icagenda.edit.event.data', array());
if (empty($data_array))
{
$data = $this->getItem();
}
else
{
$data = new JObject;
$data->setProperties($data_array);
}
// If not array, creates array with week days data
if ( ! is_array($data->weekdays))
{
$data->weekdays = explode(',', $data->weekdays);
}
// Retrieves data, to display selected week days
$arrayWeekDays = $data->weekdays;
foreach ($arrayWeekDays as $allTest)
{
if ($allTest == '')
{
$data->weekdays = '0,1,2,3,4,5,6';
}
}
// Set displaytime default value
if ( ! isset($data->displaytime))
{
$data->displaytime = JComponentHelper::getParams('com_icagenda')->get('displaytime', '1');
}
// Set Features
$data->features = $this->getFeatures($data->id);
// Convert features into an array so that the form control can be set
if ( ! isset($data->features))
{
$data->features = array();
}
if ( ! is_array($data->features))
{
$data->features = explode(',', $data->features);
}
return $data;
}
/**
* Method to save the form data.
*
* @param array $data The form data.
*
* @return boolean True on success.
*
* @since 3.4.0
*/
public function save($data)
{
$input = JFactory::getApplication()->input;
$date = JFactory::getDate();
$user = JFactory::getUser();
// Fix version before 3.4.0 to set a created date (will use last modified date if exists, or current date)
if (empty($data['created']))
{
$data['created'] = ( ! empty($data['modified'])) ? $data['modified'] : $date->toSql();
}
// Alter the title for save as copy
if ($input->get('task') == 'save2copy')
{
$origTable = clone $this->getTable();
$origTable->load($input->getInt('id'));
if ($data['title'] == $origTable->title)
{
list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']);
$data['title'] = $title;
$data['alias'] = $alias;
}
else
{
if ($data['alias'] == $origTable->alias)
{
$data['alias'] = '';
}
}
$data['state'] = 0;
}
// Automatic handling of alias for empty fields
if (in_array($input->get('task'), array('apply', 'save', 'save2new')) && (int) $input->get('id') == 0)
{
if ($data['alias'] == null)
{
if (JFactory::getConfig()->get('unicodeslugs') == 1)
{
$data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']);
}
else
{
$data['alias'] = JFilterOutput::stringURLSafe($data['title']);
}
$table = JTable::getInstance('Event', 'iCagendaTable');
if ($table->load(array('alias' => $data['alias'], 'catid' => $data['catid'])))
{
$msg = JText::_('COM_ICAGENDA_ALERT_EVENT_SAVE_WARNING');
}
list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']);
$data['alias'] = $alias;
if (isset($msg))
{
JFactory::getApplication()->enqueueMessage($msg, 'warning');
}
}
}
// Generates Alias if empty
if ($data['alias'] == null || empty($data['alias']))
{
$data['alias'] = JFilterOutput::stringURLSafe($data['title']);
if ($data['alias'] == null || empty($data['alias']))
{
if (JFactory::getConfig()->get('unicodeslugs') == 1)
{
$data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']);
}
else
{
$data['alias'] = JFilterOutput::stringURLSafe($data['created']);
}
}
}
// Set File Uploaded
if ( ! isset($data['file']))
{
$file = JRequest::getVar('jform', null, 'files', 'array');
$fileUrl = $this->upload($file);
$data['file'] = $fileUrl;
}
// Set Creator infos
$userId = $user->get('id');
$userName = $user->get('name');
if (empty($data['created_by']))
{
$data['created_by'] = (int) $userId;
}
$data['username'] = $userName;
// Set Params
if (isset($data['params']) && is_array($data['params']))
{
// Convert the params field to a string.
$parameter = new JRegistry;
$parameter->loadArray($data['params']);
$data['params'] = (string)$parameter;
}
// Get Event ID from the result back to the Table after saving.
$table = $this->getTable();
if ($table->save($data) === true)
{
$data['id'] = $table->id;
}
else
{
$data['id'] = null;
}
if (parent::save($data))
{
// Save Features to database
$this->maintainFeatures($data);
// Save Custom Fields to database
if (isset($data['custom_fields']) && is_array($data['custom_fields']))
{
icagendaCustomfields::saveToData($data['custom_fields'], $data['id'], 2);
}
return true;
}
return false;
}
/**
* Upload
*
* @since 3.5.3
*/
function upload($file)
{
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
$filename = JFile::makeSafe($file['name']['file']);
// Get media path
$params_media = JComponentHelper::getParams('com_media');
$image_path = $params_media->get('image_path', 'images');
// Paths to thumbs folder
$thumbsPath = $image_path . '/icagenda/thumbs';
if ($filename != '')
{
$src = $file['tmp_name']['file'];
$dest = JPATH_SITE . '/' . $image_path . '/icagenda/files/' . $filename;
if ( ! is_dir($dest))
{
mkdir($intDir, 0755);
}
if (JFile::upload($src, $dest, false))
{
echo 'upload';
return $image_path . '/icagenda/files/' . $filename;
}
return $image_path . '/icagenda/files/' . $filename;
}
}
/**
* Maintain features to data
*
* @since 3.4.0
*/
protected function maintainFeatures($data)
{
// Get the list of feature ids to be linked to the event
$features = isset($data['features']) && is_array($data['features']) ? implode(',', $data['features']) : '';
$db = JFactory::getDbo();
// Write any new feature records to the icagenda_feature_xref table
if ( ! empty($features))
{
// Get a list of the valid features already present for this event
$query = $db->getQuery(true);
$query->select('feature_id')
->from($db->qn('#__icagenda_feature_xref'));
$query->where('event_id = ' . (int) $data['id']);
$query->where('feature_id IN (' . $features . ')');
$db->setQuery($query);
$existing_features = $db->loadColumn(0);
// Identify the insert list
if (empty($existing_features))
{
$new_features = $data['features'];
}
else
{
$new_features = array();
foreach ($data['features'] as $feature)
{
if ( ! in_array($feature, $existing_features))
{
$new_features[] = $feature;
}
}
}
// Write the needed xref records
if ( ! empty($new_features))
{
$xref = new JObject;
$xref->set('event_id', $data['id']);
foreach ($new_features as $feature)
{
$xref->set('feature_id', $feature);
$db->insertObject('#__icagenda_feature_xref', $xref);
$db->setQuery($query);
if ( ! $db->execute())
{
return false;
}
}
}
}
// Delete any unwanted feature records from the icagenda_feature_xref table
$query = $db->getQuery(true);
$query->delete($db->qn('#__icagenda_feature_xref'));
$query->where('event_id = ' . (int) $data['id']);
if ( ! empty($features))
{
// Delete only unwanted features
$query->where('feature_id NOT IN (' . $features . ')');
}
$db->setQuery($query);
$db->execute($query);
if ( ! $db->execute())
{
return false;
}
return true;
}
/**
* Extracts the list of Feature IDs linked to the event and returns an array
*
* @param integer $event_id
*
* @return array/integer Set of Feature IDs
*
* @since 3.5.3
*/
protected function getFeatures($event_id)
{
// Write any new feature records to the icagenda_feature_xref table
if (empty($event_id))
{
return '';
}
else
{
$db = JFactory::getDbo();
// Get a comma separated list of the ids of features present for this event
// Note: Direct extraction of a comma separated list is avoided because each db type uses proprietary syntax
$query = $db->getQuery(true);
$query->select('fx.feature_id')
->from($db->qn('#__icagenda_events', 'e'))
->innerJoin('#__icagenda_feature_xref AS fx ON e.id=fx.event_id')
->innerJoin('#__icagenda_feature AS f ON fx.feature_id=f.id AND f.state=1');
$query->where('e.id = ' . (int) $event_id);
$db->setQuery($query);
$features = $db->loadColumn(0);
// Return a comma separated list
return implode(',', $features);
}
}
/**
* Approve Function.
*
* @since 3.2.0
*/
function approve($cid, $publish)
{
if (count($cid))
{
JArrayHelper::toInteger($cid);
$cids = implode( ',', $cid );
$query = 'UPDATE #__icagenda_events'
. ' SET approval = '.(int) $publish
. ' WHERE id IN ( '.$cids.' )';
$this->_db->setQuery( $query );
if ( ! $this->_db->query())
{
$this->setError($this->_db->getErrorMsg());
return false;
}
}
return true;
}
/**
* Method to test whether a record can be deleted.
*
* @param object $record A record object.
*
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
*
* @since 3.6.0
*/
// protected function canDelete($record)
// {
// if ( ! empty($record->id))
// {
// if ($record->state != -2)
// {
// return false;
// }
// $user = JFactory::getUser();
// return $user->authorise('core.delete', 'com_icagenda.event.' . (int) $record->id);
// }
// return false;
// }
/**
* Method to test whether a record can have its state edited.
*
* @param object $record A record object.
*
* @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component.
*
* @since 3.6.0
*/
// protected function canEditState($record)
// {
// $user = JFactory::getUser();
// Check for existing event.
// if (!empty($record->id))
// {
// return $user->authorise('core.edit.state', 'com_icagenda.event.' . (int) $record->id);
// }
// New event, so check against the category.
// elseif (!empty($record->catid))
// {
// return $user->authorise('core.edit.state', 'com_icagenda.event.' . (int) $record->catid);
// }
// Default to component settings if neither event nor category known.
// else
// {
// return parent::canEditState('com_icagenda');
// }
// }
}
home/wuectly/www/libraries/joomla/facebook/event.php 0000604 00000040427 15245657417 0016677 0 ustar 00 <?php
/**
* @package Joomla.Platform
* @subpackage Facebook
*
* @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Facebook API User class for the Joomla Platform.
*
* @link http://developers.facebook.com/docs/reference/api/event/
* @since 3.2.0
* @deprecated 4.0 Use the `joomla/facebook` package via Composer instead
*/
class JFacebookEvent extends JFacebookObject
{
/**
* Method to get information about an event visible to the current user. Requires authentication.
*
* @param string $event The event id.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getEvent($event)
{
return $this->get($event);
}
/**
* Method to get the event's wall. Requires authentication.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
* @param string $until A unix timestamp or any date accepted by strtotime.
* @param string $since A unix timestamp or any date accepted by strtotime.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getFeed($event, $limit = 0, $offset = 0, $until = null, $since = null)
{
return $this->getConnection($event, 'feed', '', $limit, $offset, $until, $since);
}
/**
* Method to post a link on event's feed which the current_user is or maybe attending. Requires authentication and publish_stream permission.
*
* @param string $event The event id.
* @param string $link Link URL.
* @param string $message Link message.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function createLink($event, $link, $message = null)
{
// Set POST request parameters.
$data = array();
$data['link'] = $link;
$data['message'] = $message;
return $this->createConnection($event, 'feed', $data);
}
/**
* Method to delete a link. Requires authentication and publish_stream permission.
*
* @param mixed $link The Link ID.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function deleteLink($link)
{
return $this->deleteConnection($link);
}
/**
* Method to post on event's wall. Message or link parameter is required. Requires authentication and publish_stream permission.
*
* @param string $event The event id.
* @param string $message Post message.
* @param string $link Post URL.
* @param string $picture Post thumbnail image (can only be used if link is specified)
* @param string $name Post name (can only be used if link is specified).
* @param string $caption Post caption (can only be used if link is specified).
* @param string $description Post description (can only be used if link is specified).
* @param array $actions Post actions array of objects containing name and link.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function createPost($event, $message = null, $link = null, $picture = null, $name = null, $caption = null,
$description = null, $actions = null)
{
// Set POST request parameters.
$data = array();
$data['message'] = $message;
$data['link'] = $link;
$data['name'] = $name;
$data['caption'] = $caption;
$data['description'] = $description;
$data['actions'] = $actions;
$data['picture'] = $picture;
return $this->createConnection($event, 'feed', $data);
}
/**
* Method to delete a post. Note: you can only delete the post if it was created by the current user.
* Requires authentication and publish_stream permission.
*
* @param string $post The Post ID.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function deletePost($post)
{
return $this->deleteConnection($post);
}
/**
* Method to post a status message on behalf of the user on the event's wall. Requires authentication and publish_stream permission.
*
* @param string $event The event id.
* @param string $message Status message content.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function createStatus($event, $message)
{
// Set POST request parameters.
$data = array();
$data['message'] = $message;
return $this->createConnection($event, 'feed', $data);
}
/**
* Method to delete a status. Note: you can only delete the post if it was created by the current user.
* Requires authentication and publish_stream permission.
*
* @param string $status The Status ID.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function deleteStatus($status)
{
return $this->deleteConnection($status);
}
/**
* Method to get the list of invitees for the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getInvited($event, $limit = 0, $offset = 0)
{
return $this->getConnection($event, 'invited', '', $limit, $offset);
}
/**
* Method to check if a user is invited to the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param mixed $user Either an integer containing the user ID or a string containing the username.
*
* @return array The decoded JSON response or an empty array if the user is not invited.
*
* @since 3.2.0
*/
public function isInvited($event, $user)
{
return $this->getConnection($event, 'invited/' . $user);
}
/**
* Method to invite users to the event. Requires authentication and create_event permission.
*
* @param string $event The event id.
* @param string $users Comma separated list of user ids.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function createInvite($event, $users)
{
// Set POST request parameters.
$data = array();
$data['users'] = $users;
return $this->createConnection($event, 'invited', $data);
}
/**
* Method to delete an invitation. Note: you can only delete the invite if the current user is the event admin.
* Requires authentication and rsvp_event permission.
*
* @param string $event The event id.
* @param string $user The user id.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function deleteInvite($event, $user)
{
return $this->deleteConnection($event, 'invited/' . $user);
}
/**
* Method to get the list of attending users. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getAttending($event, $limit = 0, $offset = 0)
{
return $this->getConnection($event, 'attending', '', $limit, $offset);
}
/**
* Method to check if a user is attending an event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param mixed $user Either an integer containing the user ID or a string containing the username.
*
* @return array The decoded JSON response or an empty array if the user is not invited.
*
* @since 3.2.0
*/
public function isAttending($event, $user)
{
return $this->getConnection($event, 'attending/' . $user);
}
/**
* Method to set the current user as attending. Requires authentication and rsvp_event permission.
*
* @param string $event The event id.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function createAttending($event)
{
return $this->createConnection($event, 'attending');
}
/**
* Method to get the list of maybe attending users. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getMaybe($event, $limit = 0, $offset = 0)
{
return $this->getConnection($event, 'maybe', '', $limit, $offset);
}
/**
* Method to check if a user is maybe attending an event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param mixed $user Either an integer containing the user ID or a string containing the username.
*
* @return array The decoded JSON response or an empty array if the user is not invited.
*
* @since 3.2.0
*/
public function isMaybe($event, $user)
{
return $this->getConnection($event, 'maybe/' . $user);
}
/**
* Method to set the current user as maybe attending. Requires authentication and rscp_event permission.
*
* @param string $event The event id.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function createMaybe($event)
{
return $this->createConnection($event, 'maybe');
}
/**
* Method to get the list of users which declined the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getDeclined($event, $limit = 0, $offset = 0)
{
return $this->getConnection($event, 'declined', '', $limit, $offset);
}
/**
* Method to check if a user responded 'no' to the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param mixed $user Either an integer containing the user ID or a string containing the username.
*
* @return array The decoded JSON response or an empty array if the user is not invited.
*
* @since 3.2.0
*/
public function isDeclined($event, $user)
{
return $this->getConnection($event, 'declined/' . $user);
}
/**
* Method to set the current user as declined. Requires authentication and rscp_event permission.
*
* @param string $event The event id.
*
* @return boolean Returns true if successful, and false otherwise.
*
* @since 3.2.0
*/
public function createDeclined($event)
{
return $this->createConnection($event, 'declined');
}
/**
* Method to get the list of users which have not replied to the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getNoreply($event, $limit = 0, $offset = 0)
{
return $this->getConnection($event, 'noreply', '', $limit, $offset);
}
/**
* Method to check if a user has not replied to the event. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param mixed $user Either an integer containing the user ID or a string containing the username.
*
* @return array The decoded JSON response or an empty array if the user is not invited.
*
* @since 3.2.0
*/
public function isNoreply($event, $user)
{
return $this->getConnection($event, 'noreply/' . $user);
}
/**
* Method to get the event's profile picture. Requires authentication and user_events or friends_events permission.
*
* @param string $event The event id.
* @param boolean $redirect If false this will return the URL of the picture without a 302 redirect.
* @param string $type To request a different photo use square | small | normal | large.
*
* @return string The URL to the event's profile picture.
*
* @since 3.2.0
*/
public function getPicture($event, $redirect = true, $type = null)
{
$extra_fields = '';
if ($redirect == false)
{
$extra_fields = '?redirect=false';
}
if ($type)
{
$extra_fields .= (strpos($extra_fields, '?') === false) ? '?type=' . $type : '&type=' . $type;
}
return $this->getConnection($event, 'picture', $extra_fields);
}
/**
* Method to get photos published on event's wall. Requires authentication.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
* @param string $until A unix timestamp or any date accepted by strtotime.
* @param string $since A unix timestamp or any date accepted by strtotime.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getPhotos($event, $limit = 0, $offset = 0, $until = null, $since = null)
{
return $this->getConnection($event, 'photos', '', $limit, $offset, $until, $since);
}
/**
* Method to post a photo on event's wall. Requires authentication and publish_stream permission.
*
* @param string $event The event id.
* @param string $source Path to photo.
* @param string $message Photo description.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function createPhoto($event, $source, $message = null)
{
// Set POST request parameters.
$data = array();
$data[basename($source)] = '@' . realpath($source);
if ($message)
{
$data['message'] = $message;
}
return $this->createConnection($event, 'photos', $data, array('Content-Type' => 'multipart/form-data'));
}
/**
* Method to get videos published on event's wall. Requires authentication.
*
* @param string $event The event id.
* @param integer $limit The number of objects per page.
* @param integer $offset The object's number on the page.
* @param string $until A unix timestamp or any date accepted by strtotime.
* @param string $since A unix timestamp or any date accepted by strtotime.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function getVideos($event, $limit = 0, $offset = 0, $until = null, $since = null)
{
return $this->getConnection($event, 'videos', '', $limit, $offset, $until, $since);
}
/**
* Method to post a video on event's wall. Requires authentication and publish_stream permission.
*
* @param string $event The event id.
* @param string $source Path to photo.
* @param string $title Video title.
* @param string $description Video description.
*
* @return mixed The decoded JSON response or false if the client is not authenticated.
*
* @since 3.2.0
*/
public function createVideo($event, $source, $title = null, $description = null)
{
// Set POST request parameters.
$data = array();
$data[basename($source)] = '@' . realpath($source);
if ($title)
{
$data['title'] = $title;
}
if ($description)
{
$data['description'] = $description;
}
return $this->createConnection($event, 'videos', $data, array('Content-Type' => 'multipart/form-data'));
}
}
home/wuectly/www/administrator/components/com_icagenda/tables/event.php 0000604 00000046062 15245662350 0022572 0 ustar 00 <?php
/**
*------------------------------------------------------------------------------
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
*------------------------------------------------------------------------------
* @package com_icagenda
* @copyright Copyright (c)2012-2015 Cyril Rezé, Jooml!C - All rights reserved
*
* @license GNU General Public License version 3 or later; see LICENSE.txt
* @author Cyril Rezé (Lyr!C)
* @link http://www.joomlic.com
*
* @version 3.5.10 2015-08-14
* @since 1.0
*------------------------------------------------------------------------------
*/
// No direct access to this file
defined('_JEXEC') or die();
/**
* event Table class
*/
class iCagendaTableEvent extends JTable
{
/**
* @var array $custom_fields Property for the array of custom fields.
* This needs to be specified because there is no column for features in the events table
*/
protected $custom_fields = array();
/**
* Constructor
*
* @param JDatabase A database connector object
*/
public function __construct(&$_db)
{
parent::__construct('#__icagenda_events', 'id', $_db);
}
/**
* Overloaded bind function to pre-process the params.
*
* @param array Named array
* @return null|string null is operation was satisfactory, otherwise returns an error
* @see JTable:bind
* @since 1.3
*/
public function bind($array, $ignore = '')
{
$lang = JFactory::getLanguage();
// Serialize Single Dates
$dev_option = '0';
// Set Vars
$eventTimeZone = null;
$nodate = '0000-00-00 00:00:00';
$date_today = JHtml::date('now', 'Y-m-d'); // Joomla Time Zone
if (iCString::isSerialized($array['dates']))
{
$dates = unserialize($array['dates']);
}
elseif ($dev_option == '1') // DEV.
{
$dates = $this->setDatesOptions($array['dates']);
}
else
{
$dates = $this->getDates($array['dates']);
if ($lang->getTag() == 'fa-IR'
&& $dates != array('0000-00-00 00:00')
&& $dates != array('')
)
{
$dates_to_sql = array();
foreach ($dates AS $date)
{
if (iCDate::isDate($date))
{
$year = date('Y', strtotime($date));
$month = date('m', strtotime($date));
$day = date('d', strtotime($date));
$time = date('H:i', strtotime($date));
$converted_date = iCGlobalizeConvert::jalaliToGregorian($year, $month, $day, true) . ' ' . $time;
$dates_to_sql[] = date('Y-m-d H:i', strtotime($converted_date));
}
}
$dates = $dates_to_sql;
}
}
$dates = ($dates == array('')) ? array('0000-00-00 00:00') : $dates;
rsort($dates);
if ($dev_option == '1') // DEV.
{
$array['dates'] = $array['dates'];
}
else
{
$array['dates'] = serialize($dates);
}
/**
* Set Week Days
*/
if (!isset($array['weekdays']))
{
$array['weekdays'] = '';
}
elseif (is_array($array['weekdays']))
{
$array['weekdays'] = implode(',', $array['weekdays']);
}
// Return the dates of the period.
$startdate = ($array['startdate'] == NULL) ? $nodate : $array['startdate'];
$enddate = ($array['enddate'] == NULL) ? $nodate : $array['enddate'];
if (($startdate == $nodate) && ($enddate != $nodate))
{
$enddate = $nodate;
}
if (strtotime($startdate) > strtotime($enddate))
{
$errorperiod = '1';
}
else
{
$errorperiod = '';
$period_all_dates_array = iCDatePeriod::listDates($startdate, $enddate, $eventTimeZone);
$WeeksDays = iCDatePeriod::weekdaysToArray($array['weekdays']);
$period_array = array();
foreach ($period_all_dates_array AS $date_in_weekdays)
{
$datetime_period_date = JHtml::date($date_in_weekdays, 'Y-m-d H:i', $eventTimeZone);
if (in_array(date('w', strtotime($datetime_period_date)), $WeeksDays))
{
array_push($period_array, $datetime_period_date);
}
}
}
// Serialize Period Dates
if (($startdate != $nodate) && ($enddate != $nodate))
{
if ($errorperiod != '1')
{
$array['period'] = serialize($period_array);
$period = (iCString::isSerialized($array['period'])) ? unserialize($array['period']) : array();
if ($lang->getTag() == 'fa-IR')
{
$period_to_sql = array();
foreach ($period AS $date)
{
if (iCDate::isDate($date))
{
$year = date('Y', strtotime($date));
$month = date('m', strtotime($date));
$day = date('d', strtotime($date));
$time = date('H:i', strtotime($date));
$converted_date = iCGlobalizeConvert::jalaliToGregorian($year, $month, $day, true) . ' ' . $time;
$period_to_sql[] = date('Y-m-d H:i', strtotime($converted_date));
}
}
$period = $period_to_sql;
}
rsort($period);
$array['period'] = serialize($period);
}
else
{
$array['period'] = '';
}
}
else
{
$array['period'] = '';
}
// Set Next Date
$NextDates = $this->getNextDates($dates);
$NextPeriod = isset($period)
? $this->getNextPeriod($period, $array['weekdays'])
: $this->getNextDates($dates);
$date_NextDates = JHtml::date($NextDates, 'Y-m-d', $eventTimeZone);
$date_NextPeriod = JHtml::date($NextPeriod, 'Y-m-d', $eventTimeZone);
$time_NextDates = JHtml::date($NextDates, 'H:i', $eventTimeZone);
$time_NextPeriod = JHtml::date($NextPeriod, 'H:i', $eventTimeZone);
// $date_NextDates = date('Y-m-d', strtotime($NextDates));
// $date_NextPeriod = date('Y-m-d', strtotime($NextPeriod));
// $time_NextDates = date('H:i', strtotime($NextDates));
// $time_NextPeriod = date('H:i', strtotime($NextPeriod));
// Control the next date
if ((strtotime($date_NextDates) >= strtotime($date_today)) && (strtotime($date_NextPeriod) >= strtotime($date_today)))
{
if (strtotime($date_NextDates) < strtotime($date_NextPeriod))
{
$array['next'] = $this->getNextDates($dates);
}
if (strtotime($date_NextDates) > strtotime($date_NextPeriod))
{
$array['next'] = $this->getNextPeriod($period, $array['weekdays']);
}
if (strtotime($date_NextDates) == strtotime($date_NextPeriod))
{
if (strtotime($time_NextDates) >= strtotime($time_NextPeriod))
{
if (isset($period))
{
$array['next'] = $this->getNextPeriod($period, $array['weekdays']);
}
else
{
$array['next'] = $this->getNextDates($dates);
}
}
else
{
$array['next'] = $this->getNextDates($dates);
}
}
}
elseif ((strtotime($date_NextDates) < strtotime($date_today)) && (strtotime($date_NextPeriod) >= strtotime($date_today)))
{
$array['next'] = $this->getNextPeriod($period, $array['weekdays']);
}
elseif ((strtotime($date_NextDates) >= strtotime($date_today)) && (strtotime($date_NextPeriod) < strtotime($date_today)))
{
$array['next'] = $this->getNextDates($dates);
}
elseif ((strtotime($date_NextDates) < strtotime($date_today)) && (strtotime($date_NextPeriod) < strtotime($date_today)))
{
if (strtotime($date_NextDates) < strtotime($date_NextPeriod))
{
$array['next'] = $this->getNextPeriod($period, $array['weekdays']);
}
else
{
$array['next'] = $this->getNextDates($dates);
}
}
// Control of dates if valid (EDIT SINCE VERSION 3.0 - update 3.1.4)
if (((strtotime($NextDates) >= '943916400')
&& (strtotime($NextDates) <= '944002800'))
&& ($errorperiod == '1'))
{
$array['next'] = '-3600';
}
if (((strtotime($NextDates)=='943916400') || (strtotime($NextDates)=='943920000'))
&& ((strtotime($NextPeriod)=='943916400') || (strtotime($NextPeriod)=='943920000')))
{
$array['next'] = '-3600';
}
if ($array['next'] == '-3600')
{
$state = 0;
$this->_db->setQuery(
'UPDATE `#__icagenda_events`' .
' SET `state` = '.(int) $state .
' WHERE `id` = '. (int) $array['id']
);
if(version_compare(JVERSION, '3.0', 'lt'))
{
$this->_db->query();
}
else
{
$this->_db->execute();
}
}
$return[] = parent::bind($array, $ignore);
// ====================================
// START : HACK FOR A FEW PRO USERS !!!
// ====================================
$mail_new_event = JComponentHelper::getParams('com_icagenda')->get('mail_new_event', '0');
if ($mail_new_event == 1)
{
$title = $array['title'];
$id_event = $array['id'];
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id AS eventID')
->from('#__icagenda_events')
->order('id DESC');
$db->setQuery($query);
$eventID = $db->loadResult();
$new_event = JRequest::getVar('new_event');
$title = $array['title'];
$description = $array['desc'];
$venue = '';
if ($array['place']) $venue.= $array['place'].' - ';
if ($array['city']) $venue.= $array['city'];
if ($array['city'] && $array['country']) $venue.= ', ';
if ($array['country']) $venue.= $array['country'];
if (strtotime($array['startdate']))
{
$date = 'Du '.$array['startdate'].' au '.$array['startdate'];
}
else
{
$date = $array['next'];
}
$baseURL = JURI::base();
$baseURL = str_replace('/administrator', '', $baseURL);
$baseURL = ltrim($baseURL, '/');
if ($array['image']) $image = '<img src="'.$baseURL.'/'.$array['image'].'" />';
if ($new_event == '1' && $eventID && $array['state'] == '1' && $array['approval'] == '0')
{
$return[] = self::notificationNewEvent(($eventID+1), $title, $description, $venue, $date, $image, $new_event);
}
}
// ====================================
// END : HACK FOR A FEW PRO USERS !!!
// ====================================
return $return;
}
/**
* DEV.
*/
function setDatesOptions($dates) // DEV.
{
$dates = str_replace('day=', '', $dates);
$dates = str_replace('start=', '', $dates);
$dates = str_replace('end=', '', $dates);
// $dates = str_replace('+', ' ', $dates);
$dates = str_replace('%3A', ':', $dates);
$dates = str_replace('&', ',', $dates);
$ex_dates = explode(',stop=stop', $dates);
$singles_dates = array();
foreach ($ex_dates AS $sd)
{
if ($sd != '')
{
array_push($singles_dates, $sd);
}
}
return $singles_dates;
}
/**
* Get Dates for Single Dates Script Input
*/
function getDates($dates)
{
$dates = str_replace('d=', '', $dates);
$dates = str_replace('+', ' ', $dates);
$dates = str_replace('%3A', ':', $dates);
$ex_dates = explode('&', $dates);
return $ex_dates;
}
/**
* Get Next Date from Single Dates
*/
function getNextDates($dates)
{
// Set Vars
$eventTimeZone = null;
$date_today = JHtml::date('now', 'Y-m-d'); // Joomla Time Zone
// Get Next
$next = JRequest::getVar('next');
if (count($dates))
{
while (strtotime($next) <= strtotime($date_today))
{
$nextDate = $dates[0];
foreach ($dates as $d)
{
if (strtotime($d) >= strtotime($date_today))
{
$nextDate = $d;
}
}
// return JHtml::date($nextDate, 'Y-m-d H:i', $eventTimeZone);
return date('Y-m-d H:i', strtotime($nextDate));
}
}
}
/**
* Get Next Date from Period
*/
function getNextPeriod($period, $i_weekdays)
{
// Set Vars
$eventTimeZone = null;
$date_today = JHtml::date('now', 'Y-m-d'); // Joomla Time Zone
$WeeksDays = iCDatePeriod::weekdaysToArray($i_weekdays);
// Set Next Date for Period, if dates exist in Period
if (count($period))
{
$nextPeriod = $period[0];
foreach ($period as $e)
{
if (in_array(date('w', strtotime($e)), $WeeksDays))
{
if (strtotime($e) >= strtotime($date_today)) // if datetime in period >= date today
{
$nextPeriod = $e;
}
}
}
// return JHtml::date($nextPeriod, 'Y-m-d H:i', $eventTimeZone);
return date('Y-m-d H:i', strtotime($nextPeriod));
}
}
/**
* Overloaded check function
*/
public function check()
{
// If there is an ordering column and this is a new row then get the next ordering value
if (property_exists($this, 'ordering') && $this->id == 0)
{
$this->ordering = self::getNextOrder();
}
return parent::check();
}
/**
* Method to set the publishing state for a row or list of rows in the database
* table. The method respects checked out rows by other users and will attempt
* to checkin rows that it can after adjustments are made.
*
* @param mixed An optional array of primary key values to update. If not
* set the instance property value is used.
* @param integer The publishing state. eg. [0 = unpublished, 1 = published]
* @param integer The user id of the user performing the operation.
* @return boolean True on success.
* @since 1.0.4
*/
public function publish($pks = null, $state = 1, $userId = 0)
{
// Initialise variables.
$k = $this->_tbl_key;
// Sanitize input.
JArrayHelper::toInteger($pks);
$userId = (int) $userId;
$state = (int) $state;
// If there are no primary keys set check to see if the instance key is set.
if (empty($pks))
{
if ($this->$k)
{
$pks = array($this->$k);
}
// Nothing to set publishing state on, return false.
else
{
$this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED'));
return false;
}
}
// Build the WHERE clause for the primary keys.
$where = $k.'='.implode(' OR '.$k.'=', $pks);
// Determine if there is checkin support for the table.
if (!property_exists($this, 'checked_out') || !property_exists($this, 'checked_out_time'))
{
$checkin = '';
}
else
{
$checkin = ' AND (checked_out = 0 OR checked_out = '.(int) $userId.')';
}
// Update the publishing state for rows with the given primary keys.
$this->_db->setQuery(
'UPDATE `'.$this->_tbl.'`' .
' SET `state` = '.(int) $state .
' WHERE ('.$where.')' .
$checkin
);
$this->_db->query();
// Check for a database error.
if ($this->_db->getErrorNum())
{
$this->setError($this->_db->getErrorMsg());
return false;
}
// If checkin is supported and all rows were adjusted, check them in.
if ($checkin && (count($pks) == $this->_db->getAffectedRows()))
{
// Checkin the rows.
foreach($pks as $pk)
{
$this->checkin($pk);
}
}
// If the JTable instance value is in the list of primary keys that were set, set the instance.
if (in_array($this->$k, $pks))
{
$this->state = $state;
}
$this->setError('');
return true;
}
/**
* HACK FOR A FEW PRO USERS !!!
*
* Will be removed when creation of a notification plugin
*
*/
function notificationNewEvent ($eventid, $title, $description, $venue, $date, $image, $new_event)
{
// Load iCagenda Global Options
$iCparams = JComponentHelper::getParams('com_icagenda');
// Load Joomla Config
$config = JFactory::getConfig();
// Switch Joomla 3.x / 2.5
if (version_compare(JVERSION, '3.0', 'ge'))
{
// Get the site name
$sitename = $config->get('sitename');
// Get Global Joomla Contact Infos
$mailfrom = $config->get('mailfrom');
$fromname = $config->get('fromname');
// Get default language
$langdefault = $config->get('language');
}
else
{
// Get the site name
$sitename = $config->getValue('config.sitename');
// Get Global Joomla Contact Infos
$mailfrom = $config->getValue('config.mailfrom');
$fromname = $config->getValue('config.fromname');
// Get default language
$langdefault = $config->getValue('config.language');
}
$siteURL = JURI::base();
$siteURL = rtrim($siteURL,'/');
$iCmenuitem = false;
// Itemid Request (automatic detection of the first iCagenda menu-link, by menuID, and depending of current language)
$langFrontend = $langdefault;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id AS idm')
->from('#__menu')
->where( "(link = 'index.php?option=com_icagenda&view=list') AND (published > 0) AND (language = '$langFrontend')" );
$db->setQuery($query);
$idm = $db->loadResult();
$mItemid = $idm;
if ($mItemid == NULL)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id AS noidm')
->from('#__menu')
->where( "(link = 'index.php?option=com_icagenda&view=list') AND (published > 0) AND (language = '*')" );
$db->setQuery($query);
$noidm = $db->loadResult();
}
$nolink = '';
if ($noidm == NULL && $mItemid == NULL)
{
$nolink = 1;
}
if (is_numeric($iCmenuitem))
{
$lien = $iCmenuitem;
}
else
{
if ($mItemid == NULL)
{
$lien = $noidm;
}
else
{
$lien = $mItemid;
}
}
// Set Notification Email to each User groups allowed to receive a notification email when a new event created
$groupid = $iCparams->get('newevent_Groups', array("8"));
jimport( 'joomla.access.access' );
$newevent_Groups_Array = array();
foreach ($groupid AS $gp) {
$GroupUsers = JAccess::getUsersByGroup($gp, False);
$newevent_Groups_Array = array_merge($newevent_Groups_Array, $GroupUsers);
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$matches = implode(',', $newevent_Groups_Array);
$query->select('ui.username AS username, ui.email AS email, ui.password AS passw, ui.block AS block, ui.activation AS activation')
->from('#__users AS ui')
->where( "ui.id IN ($matches) ");
$db->setQuery($query);
$users = $db->loadObjectList();
foreach ($users AS $user)
{
// Create Notification Mailer
$new_mailer = JFactory::getMailer();
// Set Sender of Notification Email
$new_mailer->setSender(array( $mailfrom, $fromname ));
$username = $user->username;
$passw = $user->passw;
$email = $user->email;
// Set Recipient of Notification Email
$new_recipient = $email;
$new_mailer->addRecipient($email);
// Set Subject of New Event Notification Email
$new_subject = 'Nouvel évènement, '.$sitename;
$new_mailer->setSubject($new_subject);
// Set Url to preview new event
$baseURL = JURI::base();
$baseURL = str_replace('/administrator', '', $baseURL);
$urlpreview = str_replace('&','&', JRoute::_($baseURL.'index.php?option=com_icagenda&view=list&layout=event&id='.(int)$eventid.'&Itemid='.(int)$lien));
// Set Body of User Notification Email
$new_body_hello = 'Bonjour,';
$new_bodycontent = $new_body_hello.'<br /><br />';
$new_body_text = $sitename.' vous propose un nouvel évènement :';
$new_bodycontent.= $new_body_text.'<br /><br />';
// Event Details
$new_bodycontent.= $title ? 'Titre: '.$title.'<br />' : '';
$new_bodycontent.= $description ? 'Description: '.$description.'<br />' : '';
$new_bodycontent.= $venue ? 'Lieu: '.$venue.'<br />' : '';
$new_bodycontent.= $date ? 'Date: '.$date.'<br /><br />' : '';
$new_bodycontent.= $image.'<br /><br />';
// Link to event details view
$new_bodycontent.= '<a href="'.$urlpreview.'">'.$urlpreview.'</a><br /><br />';
// Footer
$new_body_footer = 'Do not answer to this e-mail notification as it is a generated e-mail. You are receiving this email message because you are registered at '.$sitename.'.';
$new_bodycontent.= '<hr><small>'.$new_body_footer.'<small>';
// Removes spaces (leading, ending) from Body
$new_body = rtrim($new_bodycontent);
// Authorizes HTML
$new_mailer->isHTML(true);
$new_mailer->Encoding = 'base64';
// Set Body
$new_mailer->setBody($new_body);
// Send User Notification Email
if (isset($email)) {
if($user->block == '0' && empty($user->activation)){
$send = $new_mailer->Send();
}
}
}
}
}
home/wuectly/www/libraries/fof/utils/observable/event.php 0000604 00000003631 15245667507 0017700 0 ustar 00 <?php
/**
* @package FrameworkOnFramework
* @subpackage utils
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('FOF_INCLUDED') or die;
/**
* Defines an observable event.
*
* This class is based on JEvent as found in Joomla! 3.2.0
*/
abstract class FOFUtilsObservableEvent extends FOFUtilsObject
{
/**
* Event object to observe.
*
* @var object
*/
protected $_subject = null;
/**
* Constructor
*
* @param object &$subject The object to observe.
*/
public function __construct(&$subject)
{
// Register the observer ($this) so we can be notified
$subject->attach($this);
// Set the subject to observe
$this->_subject = &$subject;
}
/**
* Method to trigger events.
* The method first generates the even from the argument array. Then it unsets the argument
* since the argument has no bearing on the event handler.
* If the method exists it is called and returns its return value. If it does not exist it
* returns null.
*
* @param array &$args Arguments
*
* @return mixed Routine return value
*/
public function update(&$args)
{
// First let's get the event from the argument array. Next we will unset the
// event argument as it has no bearing on the method to handle the event.
$event = $args['event'];
unset($args['event']);
/*
* If the method to handle an event exists, call it and return its return
* value. If it does not exist, return null.
*/
if (method_exists($this, $event))
{
return call_user_func_array(array($this, $event), $args);
}
else
{
return null;
}
}
}