forked from joomla/Members-Manager
Updated with JCB v2.10.0
This commit is contained in:
parent
5e34938710
commit
001a426dac
16
README.md
16
README.md
@ -13,38 +13,38 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
+ *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/)
|
||||
+ *First Build*: 6th July, 2018
|
||||
+ *Last Build*: 12th June, 2019
|
||||
+ *Last Build*: 14th August, 2019
|
||||
+ *Version*: 2.0.x
|
||||
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
||||
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
## Build Time
|
||||
|
||||
**116 Hours** or **15 Eight Hour Days** (actual time the author saved -
|
||||
**119 Hours** or **15 Eight Hour Days** (actual time the author saved -
|
||||
due to [Automated Component Builder](http://joomlacomponentbuilder.com))
|
||||
|
||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
||||
> never making one mistake or taking any coffee break.)
|
||||
|
||||
+ *Line count*: **41627**
|
||||
+ *Line count*: **42672**
|
||||
+ *File count*: **237**
|
||||
+ *Folder count*: **61**
|
||||
|
||||
**77 Hours** or **9 Eight Hour Days** (the actual time the author spent)
|
||||
**78 Hours** or **10 Eight Hour Days** (the actual time the author spent)
|
||||
|
||||
> (with the following break down:
|
||||
> **debugging @29hours** = codingtime / 4;
|
||||
> **debugging @30hours** = codingtime / 4;
|
||||
> **planning @17hours** = codingtime / 7;
|
||||
> **mapping @12hours** = codingtime / 10;
|
||||
> **office @19hours** = codingtime / 6;)
|
||||
> **office @20hours** = codingtime / 6;)
|
||||
|
||||
**193 Hours** or **24 Eight Hour Days**
|
||||
**197 Hours** or **25 Eight Hour Days**
|
||||
(a total of the realistic time frame for this project)
|
||||
|
||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
||||
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
|
||||
|
||||
Project duration: **4.8 weeks** or **1 months**
|
||||
Project duration: **5 weeks** or **1 months**
|
||||
|
||||
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
|
@ -13,38 +13,38 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
+ *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/)
|
||||
+ *First Build*: 6th July, 2018
|
||||
+ *Last Build*: 12th June, 2019
|
||||
+ *Last Build*: 14th August, 2019
|
||||
+ *Version*: 2.0.x
|
||||
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
||||
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
## Build Time
|
||||
|
||||
**116 Hours** or **15 Eight Hour Days** (actual time the author saved -
|
||||
**119 Hours** or **15 Eight Hour Days** (actual time the author saved -
|
||||
due to [Automated Component Builder](http://joomlacomponentbuilder.com))
|
||||
|
||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
||||
> never making one mistake or taking any coffee break.)
|
||||
|
||||
+ *Line count*: **41627**
|
||||
+ *Line count*: **42672**
|
||||
+ *File count*: **237**
|
||||
+ *Folder count*: **61**
|
||||
|
||||
**77 Hours** or **9 Eight Hour Days** (the actual time the author spent)
|
||||
**78 Hours** or **10 Eight Hour Days** (the actual time the author spent)
|
||||
|
||||
> (with the following break down:
|
||||
> **debugging @29hours** = codingtime / 4;
|
||||
> **debugging @30hours** = codingtime / 4;
|
||||
> **planning @17hours** = codingtime / 7;
|
||||
> **mapping @12hours** = codingtime / 10;
|
||||
> **office @19hours** = codingtime / 6;)
|
||||
> **office @20hours** = codingtime / 6;)
|
||||
|
||||
**193 Hours** or **24 Eight Hour Days**
|
||||
**197 Hours** or **25 Eight Hour Days**
|
||||
(a total of the realistic time frame for this project)
|
||||
|
||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
||||
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
|
||||
|
||||
Project duration: **4.8 weeks** or **1 months**
|
||||
Project duration: **5 weeks** or **1 months**
|
||||
|
||||
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
.no-click {
|
||||
pointer-events: none;
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,4 +8,5 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* JS Document */
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -41,7 +42,7 @@ class MembersmanagerControllerAjax extends JControllerLegacy
|
||||
// Check Token!
|
||||
$token = JSession::getFormToken();
|
||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||
if($token == $call_token)
|
||||
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
||||
{
|
||||
$task = $this->getTask();
|
||||
switch($task)
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -39,6 +40,93 @@ class MembersmanagerControllerMember extends JControllerForm
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save a record and redirect to the profile
|
||||
*
|
||||
* @param string $key The name of the primary key of the URL variable.
|
||||
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
|
||||
*
|
||||
* @return boolean True if successful, false otherwise.
|
||||
*/
|
||||
public function saveprofile($key = null, $urlVar = null)
|
||||
{
|
||||
// Check id from post
|
||||
$id = $this->input->get('id', 0, 'INT');
|
||||
// to make sure the item is checkedin on redirect
|
||||
if ($id > 0)
|
||||
{
|
||||
$this->task = 'save';
|
||||
}
|
||||
// since this is a new record, we just create and remain in it
|
||||
else
|
||||
{
|
||||
$this->task = 'apply';
|
||||
}
|
||||
// safe the item
|
||||
$saved = parent::save($key, $urlVar);
|
||||
if (class_exists('MembersmanagerHelperRoute'))
|
||||
{
|
||||
if ($id > 0)
|
||||
{
|
||||
// get post
|
||||
$post = $this->input->post->get('jform', array(), 'array');
|
||||
// get the slug
|
||||
$slug = (isset($post['token'])) ? $id . ':' . $post['token'] : $id;
|
||||
// Redirect to the profile
|
||||
$this->setRedirect(JRoute::_(MembersmanagerHelperRoute::getProfileRoute($slug), true));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// get the referral options
|
||||
$this->ref = $this->input->get('ref', 0, 'word');
|
||||
$this->refid = $this->input->get('refid', 0, 'int');
|
||||
|
||||
// Check if there is a return value
|
||||
$return = $this->input->get('return', null, 'base64');
|
||||
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||
|
||||
// This is not needed since parent save already does this
|
||||
// Due to the ref and refid implementation we need to add this
|
||||
if ($canReturn)
|
||||
{
|
||||
$redirect = base64_decode($return);
|
||||
|
||||
// Redirect to the return value.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
$redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
elseif ($this->refid && $this->ref)
|
||||
{
|
||||
$redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid;
|
||||
|
||||
// Redirect to the item screen.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
'index.php?option=' . $this->option . $redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
elseif ($this->ref)
|
||||
{
|
||||
$redirect = '&view=' . (string)$this->ref;
|
||||
|
||||
// Redirect to the list screen.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
'index.php?option=' . $this->option . $redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $saved;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method override to check if you can add a new record.
|
||||
*
|
||||
@ -79,7 +167,11 @@ class MembersmanagerControllerMember extends JControllerForm
|
||||
$user = JFactory::getUser();
|
||||
// get record id.
|
||||
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||
|
||||
// make sure user can access member (it is always true for self)
|
||||
if (!MembersmanagerHelper::canAccessMember($recordId, null, $user))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Access check.
|
||||
$access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager'));
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -210,7 +211,7 @@ abstract class MembersmanagerHelper
|
||||
**/
|
||||
protected static function setMemberEditURL($item)
|
||||
{
|
||||
if (($url = self::getEditURL($item, 'member', 'members', '&return=' . self::$return_here)) !== false)
|
||||
if (self::canAccessMember($item->get('id', 0)) && ($url = self::getEditURL($item, 'member', 'members', '&return=' . self::$return_here)) !== false)
|
||||
{
|
||||
return $url;
|
||||
}
|
||||
@ -227,8 +228,8 @@ abstract class MembersmanagerHelper
|
||||
{
|
||||
self::$params = JComponentHelper::getParams('com_membersmanager');
|
||||
}
|
||||
// only load link if open to public or is logged in
|
||||
if (2 == self::$params->get('login_required', 1) || JFactory::getUser()->id > 0)
|
||||
// only load link if open to public or has access
|
||||
if (2 == self::$params->get('login_required', 1) || self::canAccessMember($object->get('id', 0)))
|
||||
{
|
||||
return JRoute::_('index.php?option=com_membersmanager&view=profile&id='. $object->get('id') . ':' . $object->get('token') . '&return=' . self::$return_here);
|
||||
}
|
||||
@ -726,13 +727,6 @@ abstract class MembersmanagerHelper
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The Access Memory
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $accessMemory = array();
|
||||
|
||||
/**
|
||||
* The Key to Access Memory
|
||||
*
|
||||
@ -765,13 +759,12 @@ abstract class MembersmanagerHelper
|
||||
}
|
||||
}
|
||||
// check memory first
|
||||
self::$acK3y = md5($user->get('id', 'not_set') . '_' . $type);
|
||||
if (isset(self::$accessMemory[self::$acK3y]))
|
||||
self::$acK3y = 'membersmanager_user_access_' . $user->get('id', 'not_set') . '_' . $type;
|
||||
// check if we have it globally stored
|
||||
if (($access = self::get(self::$acK3y, false)) !== false)
|
||||
{
|
||||
return self::$accessMemory[self::$acK3y];
|
||||
return $access;
|
||||
}
|
||||
// fallback to false
|
||||
self::$accessMemory[self::$acK3y] = false;
|
||||
// get DB
|
||||
if (!$db)
|
||||
{
|
||||
@ -780,14 +773,14 @@ abstract class MembersmanagerHelper
|
||||
// get user Access groups
|
||||
if (2 == $type)
|
||||
{
|
||||
self::$accessMemory[self::$acK3y] = self::getAccessGroups($user, $db);
|
||||
self::set(self::$acK3y, self::getAccessGroups($user, $db));
|
||||
}
|
||||
elseif (1 == $type)
|
||||
{
|
||||
// return access types
|
||||
self::$accessMemory[self::$acK3y] = self::getAccessTypes($user, $db);
|
||||
self::set(self::$acK3y, self::getAccessTypes($user, $db));
|
||||
}
|
||||
return self::$accessMemory[self::$acK3y];
|
||||
return self::get(self::$acK3y, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -820,7 +813,10 @@ abstract class MembersmanagerHelper
|
||||
if (self::checkArray($types) && ($userID = $user->get('id', false)) !== false && $userID > 0 && ($member_type = self::getVar('member', $userID, 'user', 'type')) !== false)
|
||||
{
|
||||
// get the groups this member belong to
|
||||
$member_access = self::getMemberGroupsByType($member_type);
|
||||
if (($member_access = self::getMemberGroupsByType($member_type)) == false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// function to setup the group array
|
||||
$setGroups = function ($groups) {
|
||||
// convert to array
|
||||
@ -841,7 +837,7 @@ abstract class MembersmanagerHelper
|
||||
foreach ($types as $groups)
|
||||
{
|
||||
$groups_access = $setGroups($groups['groups_access']);
|
||||
if (self::checkArray($groups_target) && $intersect($groups_access, $member_access))
|
||||
if (self::checkArray($groups_access) && $intersect($groups_access, $member_access))
|
||||
{
|
||||
$groups_target = $setGroups($groups['groups_target']);
|
||||
foreach ($groups_target as $group_target)
|
||||
@ -897,7 +893,10 @@ abstract class MembersmanagerHelper
|
||||
if (self::checkArray($types) && ($userID = $user->get('id', false)) !== false && $userID > 0 && ($member_type = self::getVar('member', $userID, 'user', 'type')) !== false)
|
||||
{
|
||||
// get the access groups
|
||||
$groups_access = self::getMemberGroupsByType($member_type);
|
||||
if (($groups_access = self::getMemberGroupsByType($member_type)) === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// function to setup the group array
|
||||
$setGroups = function ($groups) {
|
||||
// convert to array
|
||||
@ -5276,12 +5275,12 @@ abstract class MembersmanagerHelper
|
||||
$app->enqueueMessage(JText::_('COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_EDIT_THIS_MEMBER_RELATIONSHIPS_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR'), 'warning');
|
||||
return;
|
||||
}
|
||||
// get database object
|
||||
$db = JFactory::getDbo();
|
||||
// check if there is relationships and members in those relationships
|
||||
if (self::checkArray($data) && isset($data['id']) && is_numeric($data['id']) && $data['id'] > 0 && isset($data['type'])
|
||||
&& ($relation_types = self::getRelationshipsByTypes($data['type'], $db, true)) !== false)
|
||||
{
|
||||
// get database object
|
||||
$db = JFactory::getDbo();
|
||||
// get the post object
|
||||
$post = JFactory::getApplication()->input->post;
|
||||
// Create a new query object.
|
||||
@ -5587,6 +5586,24 @@ abstract class MembersmanagerHelper
|
||||
{
|
||||
return 'membersmanager';
|
||||
}
|
||||
/**
|
||||
* Can a member access another member's data
|
||||
*
|
||||
* @param mix $member The the member being accessed
|
||||
* To do a dynamic get of member ID use the following array
|
||||
* array( table, where, whereString, what)
|
||||
* @param array $types The type of member being accessed
|
||||
* @param mix $user The active user
|
||||
* @param object $db The database object
|
||||
*
|
||||
* @return bool true of can access
|
||||
*
|
||||
*/
|
||||
public static function canAccessMember($member = null, $types = null, $user = null, $db = null)
|
||||
{
|
||||
// here you can do your own custom validation
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Load the Component xml manifest.
|
||||
**/
|
||||
@ -6497,38 +6514,42 @@ abstract class MembersmanagerHelper
|
||||
/**
|
||||
* Get any component's model
|
||||
**/
|
||||
public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $component = 'Membersmanager', $config = array())
|
||||
public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $Component = 'Membersmanager', $config = array())
|
||||
{
|
||||
// fix the name
|
||||
$name = self::safeString($name);
|
||||
// full path
|
||||
$fullPath = $path . '/models';
|
||||
// set prefix
|
||||
$prefix = $component.'Model';
|
||||
// full path to models
|
||||
$fullPathModels = $path . '/models';
|
||||
// load the model file
|
||||
JModelLegacy::addIncludePath($fullPath, $prefix);
|
||||
JModelLegacy::addIncludePath($fullPathModels, $Component . 'Model');
|
||||
// make sure the table path is loaded
|
||||
if (!isset($config['table_path']) || !self::checkString($config['table_path']))
|
||||
{
|
||||
// This is the JCB default path to tables in Joomla 3.x
|
||||
$config['table_path'] = JPATH_ADMINISTRATOR . '/components/com_' . strtolower($Component) . '/tables';
|
||||
}
|
||||
// get instance
|
||||
$model = JModelLegacy::getInstance($name, $prefix, $config);
|
||||
$model = JModelLegacy::getInstance($name, $Component . 'Model', $config);
|
||||
// if model not found (strange)
|
||||
if ($model == false)
|
||||
{
|
||||
jimport('joomla.filesystem.file');
|
||||
// get file path
|
||||
$filePath = $path . '/' . $name . '.php';
|
||||
$fullPath = $fullPath.'/'.$name.'.php';
|
||||
$fullPathModel = $fullPathModels . '/' . $name . '.php';
|
||||
// check if it exists
|
||||
if (JFile::exists($filePath))
|
||||
{
|
||||
// get the file
|
||||
require_once $filePath;
|
||||
}
|
||||
elseif (JFile::exists($fullPath))
|
||||
elseif (JFile::exists($fullPathModel))
|
||||
{
|
||||
// get the file
|
||||
require_once $fullPath;
|
||||
require_once $fullPathModel;
|
||||
}
|
||||
// build class names
|
||||
$modelClass = $prefix.$name;
|
||||
$modelClass = $Component . 'Model' . $name;
|
||||
if (class_exists($modelClass))
|
||||
{
|
||||
// initialize the model
|
||||
|
@ -126,8 +126,7 @@ COM_MEMBERSMANAGER_CONFIG_MOBILE_PHONE_HINT="Mobile Phone Here"
|
||||
COM_MEMBERSMANAGER_CONFIG_MOBILE_PHONE_LABEL="Mobile Phone"
|
||||
COM_MEMBERSMANAGER_CONFIG_MOBILE_PHONE_MESSAGE="Error! Please add mobile phone number here."
|
||||
COM_MEMBERSMANAGER_CONFIG_NO="No"
|
||||
COM_MEMBERSMANAGER_CONFIG_NOTE_CORE_MEMBER_PLACEHOLDERS_DESCRIPTION="
|
||||
<div id='core_member_placeholders'>Loading placeholders.<span class='loading-dots' ></span></div>
|
||||
COM_MEMBERSMANAGER_CONFIG_NOTE_CORE_MEMBER_PLACEHOLDERS_DESCRIPTION="<div id='core_member_placeholders'>Loading placeholders.<span class='loading-dots' ></span></div>
|
||||
<script type='text/javascript'>
|
||||
var token;
|
||||
jQuery(document).ready(function($) {
|
||||
@ -338,8 +337,7 @@ COM_MEMBERSMANAGER_CONFIG_TABLE_ROW_TEMPLATE_HINT="// html for a single row
|
||||
<tr>
|
||||
<td>[member_name]</td>
|
||||
<td>[member_email]</td>
|
||||
</tr>
|
||||
"
|
||||
</tr>"
|
||||
COM_MEMBERSMANAGER_CONFIG_TABLE_ROW_TEMPLATE_LABEL="Table Row Template"
|
||||
COM_MEMBERSMANAGER_CONFIG_TABLE_TEMPLATE_DESCRIPTION="Set the HTML for the table surrounding the rows - to add items (all rows) use [load_items] placeholder"
|
||||
COM_MEMBERSMANAGER_CONFIG_TABLE_TEMPLATE_HINT="// html for the table surrounding the rows (items)
|
||||
@ -430,7 +428,7 @@ COM_MEMBERSMANAGER_IMPORT_SELECT_FILE_DIRECTORY="Set the path to file"
|
||||
COM_MEMBERSMANAGER_IMPORT_SELECT_FILE_FOR_MEMBERS="Select the file to import data to members."
|
||||
COM_MEMBERSMANAGER_IMPORT_SELECT_FILE_FOR_TYPES="Select the file to import data to types."
|
||||
COM_MEMBERSMANAGER_IMPORT_SELECT_FILE_URL="Enter file URL"
|
||||
COM_MEMBERSMANAGER_IMPORT_SUCCESS="Import Success!"
|
||||
COM_MEMBERSMANAGER_IMPORT_SUCCESS="Great! Import successful."
|
||||
COM_MEMBERSMANAGER_IMPORT_TABLE_COLUMNS="Table Columns"
|
||||
COM_MEMBERSMANAGER_IMPORT_TITLE="Data Importer"
|
||||
COM_MEMBERSMANAGER_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE="Package to import not found."
|
||||
@ -606,8 +604,7 @@ COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions"
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_ACCESS_SITE="Member Profile (Site) Access"
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_ACCESS_SITE_DESC="Allows the users in this group to access site member profile."
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE="Profile Image"
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="
|
||||
<div id='uikittwo-profile-image-uploader' style='display:none'>
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="<div id='uikittwo-profile-image-uploader' style='display:none'>
|
||||
<div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'>
|
||||
<br /><br />
|
||||
<i class='uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right'></i>
|
||||
@ -664,7 +661,7 @@ COM_MEMBERSMANAGER_MEMBER_VERSION_LABEL="Revision"
|
||||
COM_MEMBERSMANAGER_MEMBER_WAS_CREATED_SUCCESSFULLY_AND_THE_LOGIN_DETAILS_WAS_EMAILED_TO_THE_MEMBER="Member was created successfully, and the login details was emailed to the member."
|
||||
COM_MEMBERSMANAGER_MEMBER_WAS_NOT_ADDED_TO_ANY_GROUPS_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR="Member was not added to any groups. Please inform your system administrator."
|
||||
COM_MEMBERSMANAGER_NEW="New"
|
||||
COM_MEMBERSMANAGER_NOT_FOUND_OR_ACCESS_DENIED="Not found or access denied!"
|
||||
COM_MEMBERSMANAGER_NOT_FOUND_OR_ACCESS_DENIED="Not found, or access denied."
|
||||
COM_MEMBERSMANAGER_NO_ACCESS_GRANTED="No Access Granted!"
|
||||
COM_MEMBERSMANAGER_NO_IMPORT_FILE_SELECTED="No import file selected."
|
||||
COM_MEMBERSMANAGER_NO_MEMBERS_ARE_SET_PLEASE_SET_SOME_AND_TRY_AGAIN="No members are set, please set some and try again."
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'token',
|
||||
'account',
|
||||
'user'
|
||||
@ -23,6 +35,7 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<div class="form-inline form-inline-header">
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
@ -31,3 +44,4 @@ $hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'type',
|
||||
'name',
|
||||
'surname',
|
||||
@ -31,9 +43,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,21 +9,35 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'profile_image_uploader'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'created',
|
||||
'created_by',
|
||||
'modified',
|
||||
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'published',
|
||||
'ordering',
|
||||
'access',
|
||||
@ -26,9 +38,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'add_relationship',
|
||||
'type',
|
||||
'edit_relationship',
|
||||
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'communicate',
|
||||
'field_type'
|
||||
);
|
||||
@ -22,9 +34,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'name',
|
||||
'alias'
|
||||
);
|
||||
@ -22,6 +34,7 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<div class="form-inline form-inline-header">
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
@ -30,3 +43,4 @@ $hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
@ -9,18 +9,31 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<div class="form-vertical">
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
@ -29,3 +42,4 @@ $hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
@ -9,21 +9,35 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'groups_target'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,21 +9,35 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'groups_access'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'created',
|
||||
'created_by',
|
||||
'modified',
|
||||
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,12 +9,24 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// get the form
|
||||
$form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
// get the layout fields override method name (from layout path/ID)
|
||||
$layout_path_array = explode('.', $this->getLayoutId());
|
||||
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||
// this name combination of tab and layout in the method name is the only work around
|
||||
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||
// example of layout name: details_left.php
|
||||
// example of method name: getFields_details_left()
|
||||
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||
|
||||
// get the fields
|
||||
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'published',
|
||||
'ordering',
|
||||
'access',
|
||||
@ -26,9 +38,11 @@ $fields = $displayData->get('fields') ?: array(
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
||||
?>
|
||||
<?php if ($fields && count((array) $fields)) :?>
|
||||
<?php foreach($fields as $field): ?>
|
||||
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
JHtml::_('behavior.tabstate');
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -670,7 +671,7 @@ class MembersmanagerModelAjax extends JModelList
|
||||
$header = '';
|
||||
}
|
||||
// get the core component helper class & get placeholders
|
||||
if (($helperClass = MembersmanagerHelper::getHelperClass(MembersmanagerHelper::getCoreName())) !== false && ($placeholders = $helperClass::getAnyPlaceHolders($getType)) !== false)
|
||||
if (($helperClass = MembersmanagerHelper::getHelperClass('membersmanager')) !== false && ($placeholders = $helperClass::getAnyPlaceHolders($getType)) !== false)
|
||||
{
|
||||
return '<div>' . $header . '<code style="display: inline-block; padding: 2px; margin: 3px;">' .
|
||||
implode('</code> <code style="display: inline-block; padding: 2px; margin: 3px;">', $placeholders) .
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -38,15 +39,15 @@ class JFormFieldMainmembers extends JFormFieldList
|
||||
protected function getInput()
|
||||
{
|
||||
// see if we should add buttons
|
||||
$setButton = $this->getAttribute('button');
|
||||
$set_button = $this->getAttribute('button');
|
||||
// get html
|
||||
$html = parent::getInput();
|
||||
// if true set button
|
||||
if ($setButton === 'true')
|
||||
if ($set_button === 'true')
|
||||
{
|
||||
$button = array();
|
||||
$script = array();
|
||||
$buttonName = $this->getAttribute('name');
|
||||
$button_code_name = $this->getAttribute('name');
|
||||
// get the input from url
|
||||
$app = JFactory::getApplication();
|
||||
$jinput = $app->input;
|
||||
@ -70,55 +71,52 @@ class JFormFieldMainmembers extends JFormFieldList
|
||||
$ref .= '&return=' . $_return;
|
||||
$refJ .= '&return=' . $_return;
|
||||
}
|
||||
// get button label
|
||||
$button_label = trim($button_code_name);
|
||||
$button_label = preg_replace('/_+/', ' ', $button_label);
|
||||
$button_label = preg_replace('/\s+/', ' ', $button_label);
|
||||
$button_label = preg_replace("/[^A-Za-z ]/", '', $button_label);
|
||||
$button_label = ucfirst(strtolower($button_label));
|
||||
// get user object
|
||||
$user = JFactory::getUser();
|
||||
// only add if user allowed to create member
|
||||
if ($user->authorise('member.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build Create button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $buttonNamee).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
$button[] = '<a id="'.$button_code_name.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $button_label).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
href="index.php?option=com_membersmanager&view=member&layout=edit'.$ref.'" >
|
||||
<span class="icon-new icon-white"></span></a>';
|
||||
}
|
||||
// only add if user allowed to edit member
|
||||
if (($buttonName === 'member' || $buttonName === 'members') && $user->authorise('member.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
if ($user->authorise('member.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $buttonNamee).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $button_label).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) {
|
||||
jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
|
||||
e.preventDefault();
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
function ".$buttonName."Button(value) {
|
||||
function ".$button_code_name."Button(value) {
|
||||
if (value > 0) {
|
||||
// hide the create button
|
||||
jQuery('#".$buttonName."Create').hide();
|
||||
jQuery('#".$button_code_name."Create').hide();
|
||||
// show edit button
|
||||
jQuery('#".$buttonName."Edit').show();
|
||||
jQuery('#".$button_code_name."Edit').show();
|
||||
var url = 'index.php?option=com_membersmanager&view=members&task=member.edit&id='+value+'".$refJ."';
|
||||
jQuery('#".$buttonName."Edit').attr('href', url);
|
||||
jQuery('#".$button_code_name."Edit').attr('href', url);
|
||||
} else {
|
||||
// show the create button
|
||||
jQuery('#".$buttonName."Create').show();
|
||||
jQuery('#".$button_code_name."Create').show();
|
||||
// hide edit button
|
||||
jQuery('#".$buttonName."Edit').hide();
|
||||
jQuery('#".$button_code_name."Edit').hide();
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -38,15 +39,15 @@ class JFormFieldTypes extends JFormFieldList
|
||||
protected function getInput()
|
||||
{
|
||||
// see if we should add buttons
|
||||
$setButton = $this->getAttribute('button');
|
||||
$set_button = $this->getAttribute('button');
|
||||
// get html
|
||||
$html = parent::getInput();
|
||||
// if true set button
|
||||
if ($setButton === 'true')
|
||||
if ($set_button === 'true')
|
||||
{
|
||||
$button = array();
|
||||
$script = array();
|
||||
$buttonName = $this->getAttribute('name');
|
||||
$button_code_name = $this->getAttribute('name');
|
||||
// get the input from url
|
||||
$app = JFactory::getApplication();
|
||||
$jinput = $app->input;
|
||||
@ -70,55 +71,52 @@ class JFormFieldTypes extends JFormFieldList
|
||||
$ref .= '&return=' . $_return;
|
||||
$refJ .= '&return=' . $_return;
|
||||
}
|
||||
// get button label
|
||||
$button_label = trim($button_code_name);
|
||||
$button_label = preg_replace('/_+/', ' ', $button_label);
|
||||
$button_label = preg_replace('/\s+/', ' ', $button_label);
|
||||
$button_label = preg_replace("/[^A-Za-z ]/", '', $button_label);
|
||||
$button_label = ucfirst(strtolower($button_label));
|
||||
// get user object
|
||||
$user = JFactory::getUser();
|
||||
// only add if user allowed to create type
|
||||
if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build Create button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $buttonNamee).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
$button[] = '<a id="'.$button_code_name.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $button_label).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
href="index.php?option=com_membersmanager&view=type&layout=edit'.$ref.'" >
|
||||
<span class="icon-new icon-white"></span></a>';
|
||||
}
|
||||
// only add if user allowed to edit type
|
||||
if (($buttonName === 'type' || $buttonName === 'types') && $user->authorise('type.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
if ($user->authorise('type.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $buttonNamee).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $button_label).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) {
|
||||
jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
|
||||
e.preventDefault();
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
function ".$buttonName."Button(value) {
|
||||
function ".$button_code_name."Button(value) {
|
||||
if (value > 0) {
|
||||
// hide the create button
|
||||
jQuery('#".$buttonName."Create').hide();
|
||||
jQuery('#".$button_code_name."Create').hide();
|
||||
// show edit button
|
||||
jQuery('#".$buttonName."Edit').show();
|
||||
jQuery('#".$button_code_name."Edit').show();
|
||||
var url = 'index.php?option=com_membersmanager&view=types&task=type.edit&id='+value+'".$refJ."';
|
||||
jQuery('#".$buttonName."Edit').attr('href', url);
|
||||
jQuery('#".$button_code_name."Edit').attr('href', url);
|
||||
} else {
|
||||
// show the create button
|
||||
jQuery('#".$buttonName."Create').show();
|
||||
jQuery('#".$button_code_name."Create').show();
|
||||
// hide edit button
|
||||
jQuery('#".$buttonName."Edit').hide();
|
||||
jQuery('#".$button_code_name."Edit').hide();
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -38,15 +39,15 @@ class JFormFieldTypesonmember extends JFormFieldList
|
||||
protected function getInput()
|
||||
{
|
||||
// see if we should add buttons
|
||||
$setButton = $this->getAttribute('button');
|
||||
$set_button = $this->getAttribute('button');
|
||||
// get html
|
||||
$html = parent::getInput();
|
||||
// if true set button
|
||||
if ($setButton === 'true')
|
||||
if ($set_button === 'true')
|
||||
{
|
||||
$button = array();
|
||||
$script = array();
|
||||
$buttonName = $this->getAttribute('name');
|
||||
$button_code_name = $this->getAttribute('name');
|
||||
// get the input from url
|
||||
$app = JFactory::getApplication();
|
||||
$jinput = $app->input;
|
||||
@ -70,55 +71,52 @@ class JFormFieldTypesonmember extends JFormFieldList
|
||||
$ref .= '&return=' . $_return;
|
||||
$refJ .= '&return=' . $_return;
|
||||
}
|
||||
// get button label
|
||||
$button_label = trim($button_code_name);
|
||||
$button_label = preg_replace('/_+/', ' ', $button_label);
|
||||
$button_label = preg_replace('/\s+/', ' ', $button_label);
|
||||
$button_label = preg_replace("/[^A-Za-z ]/", '', $button_label);
|
||||
$button_label = ucfirst(strtolower($button_label));
|
||||
// get user object
|
||||
$user = JFactory::getUser();
|
||||
// only add if user allowed to create type
|
||||
if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build Create button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $buttonNamee).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
$button[] = '<a id="'.$button_code_name.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_CREATE_NEW_S', $button_label).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
|
||||
href="index.php?option=com_membersmanager&view=type&layout=edit'.$ref.'" >
|
||||
<span class="icon-new icon-white"></span></a>';
|
||||
}
|
||||
// only add if user allowed to edit type
|
||||
if (($buttonName === 'type' || $buttonName === 'types') && $user->authorise('type.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
if ($user->authorise('type.edit', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
|
||||
{
|
||||
// build edit button
|
||||
$buttonNamee = trim($buttonName);
|
||||
$buttonNamee = preg_replace('/_+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee);
|
||||
$buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee);
|
||||
$buttonNamee = ucfirst(strtolower($buttonNamee));
|
||||
$button[] = '<a id="'.$buttonName.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $buttonNamee).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('COM_MEMBERSMANAGER_EDIT_S', $button_label).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
|
||||
<span class="icon-edit"></span></a>';
|
||||
// build script
|
||||
$script[] = "
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) {
|
||||
jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
|
||||
e.preventDefault();
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val();
|
||||
".$buttonName."Button(".$buttonName."Value);
|
||||
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
|
||||
".$button_code_name."Button(".$button_code_name."Value);
|
||||
});
|
||||
function ".$buttonName."Button(value) {
|
||||
function ".$button_code_name."Button(value) {
|
||||
if (value > 0) {
|
||||
// hide the create button
|
||||
jQuery('#".$buttonName."Create').hide();
|
||||
jQuery('#".$button_code_name."Create').hide();
|
||||
// show edit button
|
||||
jQuery('#".$buttonName."Edit').show();
|
||||
jQuery('#".$button_code_name."Edit').show();
|
||||
var url = 'index.php?option=com_membersmanager&view=types&task=type.edit&id='+value+'".$refJ."';
|
||||
jQuery('#".$buttonName."Edit').attr('href', url);
|
||||
jQuery('#".$button_code_name."Edit').attr('href', url);
|
||||
} else {
|
||||
// show the create button
|
||||
jQuery('#".$buttonName."Create').show();
|
||||
jQuery('#".$button_code_name."Create').show();
|
||||
// hide edit button
|
||||
jQuery('#".$buttonName."Edit').hide();
|
||||
jQuery('#".$button_code_name."Edit').hide();
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// Some Global Values
|
||||
jform_vvvvvvvvvv_required = false;
|
||||
jform_vvvvvvwvvw_required = false;
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// Some Global Values
|
||||
jform_vvvvvvyvvz_required = false;
|
||||
jform_vvvvvvyvwa_required = false;
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -19,6 +20,37 @@ use Joomla\Registry\Registry;
|
||||
*/
|
||||
class MembersmanagerModelMember extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* The tab layout fields array.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $tabLayoutFields = array(
|
||||
'membership' => array(
|
||||
'left' => array(
|
||||
'type',
|
||||
'name',
|
||||
'surname',
|
||||
'username',
|
||||
'email',
|
||||
'useremail',
|
||||
'password',
|
||||
'password_check',
|
||||
'main_member',
|
||||
'not_required',
|
||||
'profile_image'
|
||||
),
|
||||
'right' => array(
|
||||
'profile_image_uploader'
|
||||
),
|
||||
'above' => array(
|
||||
'token',
|
||||
'account',
|
||||
'user'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 1.6
|
||||
@ -1687,6 +1719,8 @@ class MembersmanagerModelMember extends JModelAdmin
|
||||
}
|
||||
// check if token is set
|
||||
if (empty($data['token']))
|
||||
{
|
||||
if (!isset($data['surname']))
|
||||
{
|
||||
// get a token
|
||||
$token = call_user_func(function($data) {
|
||||
@ -1701,6 +1735,24 @@ class MembersmanagerModelMember extends JModelAdmin
|
||||
}
|
||||
return MembersmanagerHelper::randomkey(8);
|
||||
}, $data);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// get a token
|
||||
$token = call_user_func(function($data) {
|
||||
// get the name of this member
|
||||
if (isset($data['account']) && (1 == $data['account'] || 4 == $data['account']) && isset($data['user']) && $data['user'] > 0)
|
||||
{
|
||||
return JFactory::getUser($data['user'])->name . ' ' . $data['surname'];
|
||||
}
|
||||
elseif (isset($data['name']) && MembersmanagerHelper::checkString($data['name']))
|
||||
{
|
||||
return $data['name'] . ' ' . $data['surname'];
|
||||
}
|
||||
return MembersmanagerHelper::randomkey(8);
|
||||
}, $data);
|
||||
}
|
||||
// split at upper case
|
||||
$tokenArray = (array) preg_split('/(?=[A-Z])/', trim($token), -1, PREG_SPLIT_NO_EMPTY);
|
||||
// make string safe
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -19,6 +20,41 @@ use Joomla\Registry\Registry;
|
||||
*/
|
||||
class MembersmanagerModelType extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* The tab layout fields array.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $tabLayoutFields = array(
|
||||
'details' => array(
|
||||
'left' => array(
|
||||
'groups_target'
|
||||
),
|
||||
'right' => array(
|
||||
'groups_access'
|
||||
),
|
||||
'fullwidth' => array(
|
||||
'description'
|
||||
),
|
||||
'above' => array(
|
||||
'name',
|
||||
'alias'
|
||||
)
|
||||
),
|
||||
'advance' => array(
|
||||
'left' => array(
|
||||
'add_relationship',
|
||||
'type',
|
||||
'edit_relationship',
|
||||
'view_relationship'
|
||||
),
|
||||
'right' => array(
|
||||
'communicate',
|
||||
'field_type'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 1.6
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
Joomla.submitbutton = function(task)
|
||||
{
|
||||
if (task == ''){
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -244,6 +245,26 @@ class MembersmanagerViewMember extends JViewLegacy
|
||||
}
|
||||
// add var key
|
||||
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
|
||||
// when this is a create view
|
||||
if ((empty($this->item->id) || $this->item->id == 0) && !$isAdmin)
|
||||
{
|
||||
// update button
|
||||
$update_button = 'jQuery(document).ready(function($){';
|
||||
$update_button .= '$(\'#toolbar-save button\').attr("onClick", "Joomla.submitbutton(\'member.saveprofile\');");';
|
||||
$update_button .= '$(\'#toolbar-save button\').removeClass("btn btn-small button-new btn-success");';
|
||||
$update_button .= '$(\'#toolbar-save button\').addClass("btn btn-small button-new btn-success");';
|
||||
$update_button .= '$(\'#toolbar-save button\').html(\'<span class="icon-new icon-white" aria-hidden="true"></span> Create\');';
|
||||
$update_button .= '});';
|
||||
$this->document->addScriptDeclaration($update_button);
|
||||
}
|
||||
elseif (!$isAdmin && isset($this->item->id) && $this->item->id > 0)
|
||||
{
|
||||
// update button
|
||||
$update_button = 'jQuery(document).ready(function($){';
|
||||
$update_button .= '$(\'#toolbar-save button\').attr("onClick", "Joomla.submitbutton(\'member.saveprofile\');");';
|
||||
$update_button .= '});';
|
||||
$this->document->addScriptDeclaration($update_button);
|
||||
}
|
||||
// need to add some language strings
|
||||
JText::script('COM_MEMBERSMANAGER_VALUE_ALREADY_TAKEN_PLEASE_TRY_AGAIN');
|
||||
JText::script('view not acceptable. Error');
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
Joomla.submitbutton = function(task)
|
||||
{
|
||||
if (task == ''){
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
body {
|
||||
background: rgb(204,204,204);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="3.2" method="upgrade">
|
||||
<name>COM_MEMBERSMANAGER</name>
|
||||
<creationDate>12th June, 2019</creationDate>
|
||||
<creationDate>14th August, 2019</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
||||
<authorUrl>https://www.joomlacomponentbuilder.com/</authorUrl>
|
||||
@ -56,9 +56,7 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.</p>
|
||||
<filename>index.html</filename>
|
||||
<filename>router.php</filename>
|
||||
<filename>membersmanager.php</filename>
|
||||
<filename>membersmanager.php</filename>
|
||||
<filename>router.php</filename>
|
||||
<filename>controller.php</filename>
|
||||
<folder>assets</folder>
|
||||
<folder>helpers</folder>
|
||||
<folder>controllers</folder>
|
||||
@ -83,11 +81,6 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.</p>
|
||||
<filename>controller.php</filename>
|
||||
<filename>index.html</filename>
|
||||
<filename>membersmanager.php</filename>
|
||||
<filename>access.xml</filename>
|
||||
<filename>config.xml</filename>
|
||||
<filename>controller.php</filename>
|
||||
<filename>membersmanager.php</filename>
|
||||
<filename>README.txt</filename>
|
||||
<filename>README.txt</filename>
|
||||
<folder>assets</folder>
|
||||
<folder>controllers</folder>
|
||||
|
72
script.php
72
script.php
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -20,21 +21,27 @@ JHTML::_('behavior.modal');
|
||||
class com_membersmanagerInstallerScript
|
||||
{
|
||||
/**
|
||||
* method to install the component
|
||||
* Constructor
|
||||
*
|
||||
* @return void
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*/
|
||||
function install($parent)
|
||||
{
|
||||
|
||||
}
|
||||
public function __construct(JAdapterInstance $parent) {}
|
||||
|
||||
/**
|
||||
* method to uninstall the component
|
||||
* Called on installation
|
||||
*
|
||||
* @return void
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
function uninstall($parent)
|
||||
public function install(JAdapterInstance $parent) {}
|
||||
|
||||
/**
|
||||
* Called on uninstallation
|
||||
*
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*/
|
||||
public function uninstall(JAdapterInstance $parent)
|
||||
{
|
||||
// Get Application object
|
||||
$app = JFactory::getApplication();
|
||||
@ -404,57 +411,63 @@ class com_membersmanagerInstallerScript
|
||||
}
|
||||
|
||||
/**
|
||||
* method to update the component
|
||||
* Called on update
|
||||
*
|
||||
* @return void
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
function update($parent)
|
||||
{
|
||||
|
||||
}
|
||||
public function update(JAdapterInstance $parent){}
|
||||
|
||||
/**
|
||||
* method to run before an install/update/uninstall method
|
||||
* Called before any type of action
|
||||
*
|
||||
* @return void
|
||||
* @param string $type Which action is happening (install|uninstall|discover_install|update)
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
function preflight($type, $parent)
|
||||
public function preflight($type, JAdapterInstance $parent)
|
||||
{
|
||||
// get application
|
||||
$app = JFactory::getApplication();
|
||||
// is redundant ...hmmm
|
||||
if ($type == 'uninstall')
|
||||
// is redundant or so it seems ...hmmm let me know if it works again
|
||||
if ($type === 'uninstall')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// the default for both install and update
|
||||
$jversion = new JVersion();
|
||||
if (!$jversion->isCompatible('3.6.0'))
|
||||
if (!$jversion->isCompatible('3.8.0'))
|
||||
{
|
||||
$app->enqueueMessage('Please upgrade to at least Joomla! 3.6.0 before continuing!', 'error');
|
||||
$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0 before continuing!', 'error');
|
||||
return false;
|
||||
}
|
||||
// do any updates needed
|
||||
if ($type == 'update')
|
||||
if ($type === 'update')
|
||||
{
|
||||
}
|
||||
// do any install needed
|
||||
if ($type == 'install')
|
||||
if ($type === 'install')
|
||||
{
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* method to run after an install/update/uninstall method
|
||||
* Called after any type of action
|
||||
*
|
||||
* @return void
|
||||
* @param string $type Which action is happening (install|uninstall|discover_install|update)
|
||||
* @param JAdapterInstance $parent The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
function postflight($type, $parent)
|
||||
public function postflight($type, JAdapterInstance $parent)
|
||||
{
|
||||
// get application
|
||||
$app = JFactory::getApplication();
|
||||
// set the default component settings
|
||||
if ($type == 'install')
|
||||
if ($type === 'install')
|
||||
{
|
||||
|
||||
// Get The Database object
|
||||
@ -518,7 +531,7 @@ class com_membersmanagerInstallerScript
|
||||
</a>';
|
||||
}
|
||||
// do any updates needed
|
||||
if ($type == 'update')
|
||||
if ($type === 'update')
|
||||
{
|
||||
|
||||
// Get The Database object
|
||||
@ -588,5 +601,6 @@ class com_membersmanagerInstallerScript
|
||||
</a>
|
||||
<h3>Upgrade to Version 2.0.6 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* CSS Document */
|
||||
.no-click {
|
||||
pointer-events: none;
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* JS Document */
|
||||
// the search method
|
||||
function searchMembers(value){
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* JS Document */
|
||||
// Get report based on id & element from Server
|
||||
function getReport_server(report_key){
|
||||
|
@ -8,4 +8,5 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
/* JS Document */
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -44,7 +45,7 @@ class MembersmanagerControllerAjax extends JControllerLegacy
|
||||
// Check Token!
|
||||
$token = JSession::getFormToken();
|
||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||
if($token == $call_token)
|
||||
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
||||
{
|
||||
$task = $this->getTask();
|
||||
switch($task)
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -39,6 +40,93 @@ class MembersmanagerControllerMember extends JControllerForm
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save a record and redirect to the profile
|
||||
*
|
||||
* @param string $key The name of the primary key of the URL variable.
|
||||
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
|
||||
*
|
||||
* @return boolean True if successful, false otherwise.
|
||||
*/
|
||||
public function saveprofile($key = null, $urlVar = null)
|
||||
{
|
||||
// Check id from post
|
||||
$id = $this->input->get('id', 0, 'INT');
|
||||
// to make sure the item is checkedin on redirect
|
||||
if ($id > 0)
|
||||
{
|
||||
$this->task = 'save';
|
||||
}
|
||||
// since this is a new record, we just create and remain in it
|
||||
else
|
||||
{
|
||||
$this->task = 'apply';
|
||||
}
|
||||
// safe the item
|
||||
$saved = parent::save($key, $urlVar);
|
||||
if (class_exists('MembersmanagerHelperRoute'))
|
||||
{
|
||||
if ($id > 0)
|
||||
{
|
||||
// get post
|
||||
$post = $this->input->post->get('jform', array(), 'array');
|
||||
// get the slug
|
||||
$slug = (isset($post['token'])) ? $id . ':' . $post['token'] : $id;
|
||||
// Redirect to the profile
|
||||
$this->setRedirect(JRoute::_(MembersmanagerHelperRoute::getProfileRoute($slug), true));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// get the referral options
|
||||
$this->ref = $this->input->get('ref', 0, 'word');
|
||||
$this->refid = $this->input->get('refid', 0, 'int');
|
||||
|
||||
// Check if there is a return value
|
||||
$return = $this->input->get('return', null, 'base64');
|
||||
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||
|
||||
// This is not needed since parent save already does this
|
||||
// Due to the ref and refid implementation we need to add this
|
||||
if ($canReturn)
|
||||
{
|
||||
$redirect = base64_decode($return);
|
||||
|
||||
// Redirect to the return value.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
$redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
elseif ($this->refid && $this->ref)
|
||||
{
|
||||
$redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid;
|
||||
|
||||
// Redirect to the item screen.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
'index.php?option=' . $this->option . $redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
elseif ($this->ref)
|
||||
{
|
||||
$redirect = '&view=' . (string)$this->ref;
|
||||
|
||||
// Redirect to the list screen.
|
||||
$this->setRedirect(
|
||||
JRoute::_(
|
||||
'index.php?option=' . $this->option . $redirect, false
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $saved;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method override to check if you can add a new record.
|
||||
*
|
||||
@ -79,7 +167,11 @@ class MembersmanagerControllerMember extends JControllerForm
|
||||
$user = JFactory::getUser();
|
||||
// get record id.
|
||||
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||
|
||||
// make sure user can access member (it is always true for self)
|
||||
if (!MembersmanagerHelper::canAccessMember($recordId, null, $user))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Access check.
|
||||
$access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager'));
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
@ -210,7 +211,7 @@ abstract class MembersmanagerHelper
|
||||
**/
|
||||
protected static function setMemberEditURL($item)
|
||||
{
|
||||
if (($url = self::getEditURL($item, 'member', 'members', '&return=' . self::$return_here)) !== false)
|
||||
if (self::canAccessMember($item->get('id', 0)) && ($url = self::getEditURL($item, 'member', 'members', '&return=' . self::$return_here)) !== false)
|
||||
{
|
||||
return $url;
|
||||
}
|
||||
@ -227,8 +228,8 @@ abstract class MembersmanagerHelper
|
||||
{
|
||||
self::$params = JComponentHelper::getParams('com_membersmanager');
|
||||
}
|
||||
// only load link if open to public or is logged in
|
||||
if (2 == self::$params->get('login_required', 1) || JFactory::getUser()->id > 0)
|
||||
// only load link if open to public or has access
|
||||
if (2 == self::$params->get('login_required', 1) || self::canAccessMember($object->get('id', 0)))
|
||||
{
|
||||
return JRoute::_('index.php?option=com_membersmanager&view=profile&id='. $object->get('id') . ':' . $object->get('token') . '&return=' . self::$return_here);
|
||||
}
|
||||
@ -726,13 +727,6 @@ abstract class MembersmanagerHelper
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The Access Memory
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $accessMemory = array();
|
||||
|
||||
/**
|
||||
* The Key to Access Memory
|
||||
*
|
||||
@ -765,13 +759,12 @@ abstract class MembersmanagerHelper
|
||||
}
|
||||
}
|
||||
// check memory first
|
||||
self::$acK3y = md5($user->get('id', 'not_set') . '_' . $type);
|
||||
if (isset(self::$accessMemory[self::$acK3y]))
|
||||
self::$acK3y = 'membersmanager_user_access_' . $user->get('id', 'not_set') . '_' . $type;
|
||||
// check if we have it globally stored
|
||||
if (($access = self::get(self::$acK3y, false)) !== false)
|
||||
{
|
||||
return self::$accessMemory[self::$acK3y];
|
||||
return $access;
|
||||
}
|
||||
// fallback to false
|
||||
self::$accessMemory[self::$acK3y] = false;
|
||||
// get DB
|
||||
if (!$db)
|
||||
{
|
||||
@ -780,14 +773,14 @@ abstract class MembersmanagerHelper
|
||||
// get user Access groups
|
||||
if (2 == $type)
|
||||
{
|
||||
self::$accessMemory[self::$acK3y] = self::getAccessGroups($user, $db);
|
||||
self::set(self::$acK3y, self::getAccessGroups($user, $db));
|
||||
}
|
||||
elseif (1 == $type)
|
||||
{
|
||||
// return access types
|
||||
self::$accessMemory[self::$acK3y] = self::getAccessTypes($user, $db);
|
||||
self::set(self::$acK3y, self::getAccessTypes($user, $db));
|
||||
}
|
||||
return self::$accessMemory[self::$acK3y];
|
||||
return self::get(self::$acK3y, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -820,7 +813,10 @@ abstract class MembersmanagerHelper
|
||||
if (self::checkArray($types) && ($userID = $user->get('id', false)) !== false && $userID > 0 && ($member_type = self::getVar('member', $userID, 'user', 'type')) !== false)
|
||||
{
|
||||
// get the groups this member belong to
|
||||
$member_access = self::getMemberGroupsByType($member_type);
|
||||
if (($member_access = self::getMemberGroupsByType($member_type)) == false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// function to setup the group array
|
||||
$setGroups = function ($groups) {
|
||||
// convert to array
|
||||
@ -841,7 +837,7 @@ abstract class MembersmanagerHelper
|
||||
foreach ($types as $groups)
|
||||
{
|
||||
$groups_access = $setGroups($groups['groups_access']);
|
||||
if (self::checkArray($groups_target) && $intersect($groups_access, $member_access))
|
||||
if (self::checkArray($groups_access) && $intersect($groups_access, $member_access))
|
||||
{
|
||||
$groups_target = $setGroups($groups['groups_target']);
|
||||
foreach ($groups_target as $group_target)
|
||||
@ -897,7 +893,10 @@ abstract class MembersmanagerHelper
|
||||
if (self::checkArray($types) && ($userID = $user->get('id', false)) !== false && $userID > 0 && ($member_type = self::getVar('member', $userID, 'user', 'type')) !== false)
|
||||
{
|
||||
// get the access groups
|
||||
$groups_access = self::getMemberGroupsByType($member_type);
|
||||
if (($groups_access = self::getMemberGroupsByType($member_type)) === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// function to setup the group array
|
||||
$setGroups = function ($groups) {
|
||||
// convert to array
|
||||
@ -5276,12 +5275,12 @@ abstract class MembersmanagerHelper
|
||||
$app->enqueueMessage(JText::_('COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_EDIT_THIS_MEMBER_RELATIONSHIPS_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR'), 'warning');
|
||||
return;
|
||||
}
|
||||
// get database object
|
||||
$db = JFactory::getDbo();
|
||||
// check if there is relationships and members in those relationships
|
||||
if (self::checkArray($data) && isset($data['id']) && is_numeric($data['id']) && $data['id'] > 0 && isset($data['type'])
|
||||
&& ($relation_types = self::getRelationshipsByTypes($data['type'], $db, true)) !== false)
|
||||
{
|
||||
// get database object
|
||||
$db = JFactory::getDbo();
|
||||
// get the post object
|
||||
$post = JFactory::getApplication()->input->post;
|
||||
// Create a new query object.
|
||||
@ -5587,6 +5586,24 @@ abstract class MembersmanagerHelper
|
||||
{
|
||||
return 'membersmanager';
|
||||
}
|
||||
/**
|
||||
* Can a member access another member's data
|
||||
*
|
||||
* @param mix $member The the member being accessed
|
||||
* To do a dynamic get of member ID use the following array
|
||||
* array( table, where, whereString, what)
|
||||
* @param array $types The type of member being accessed
|
||||
* @param mix $user The active user
|
||||
* @param object $db The database object
|
||||
*
|
||||
* @return bool true of can access
|
||||
*
|
||||
*/
|
||||
public static function canAccessMember($member = null, $types = null, $user = null, $db = null)
|
||||
{
|
||||
// here you can do your own custom validation
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function jsonToString($value, $sperator = ", ", $table = null, $id = 'id', $name = 'name')
|
||||
{
|
||||
@ -5712,38 +5729,42 @@ abstract class MembersmanagerHelper
|
||||
/**
|
||||
* Get any component's model
|
||||
**/
|
||||
public static function getModel($name, $path = JPATH_COMPONENT_SITE, $component = 'Membersmanager', $config = array())
|
||||
public static function getModel($name, $path = JPATH_COMPONENT_SITE, $Component = 'Membersmanager', $config = array())
|
||||
{
|
||||
// fix the name
|
||||
$name = self::safeString($name);
|
||||
// full path
|
||||
$fullPath = $path . '/models';
|
||||
// set prefix
|
||||
$prefix = $component.'Model';
|
||||
// full path to models
|
||||
$fullPathModels = $path . '/models';
|
||||
// load the model file
|
||||
JModelLegacy::addIncludePath($fullPath, $prefix);
|
||||
JModelLegacy::addIncludePath($fullPathModels, $Component . 'Model');
|
||||
// make sure the table path is loaded
|
||||
if (!isset($config['table_path']) || !self::checkString($config['table_path']))
|
||||
{
|
||||
// This is the JCB default path to tables in Joomla 3.x
|
||||
$config['table_path'] = JPATH_ADMINISTRATOR . '/components/com_' . strtolower($Component) . '/tables';
|
||||
}
|
||||
// get instance
|
||||
$model = JModelLegacy::getInstance($name, $prefix, $config);
|
||||
$model = JModelLegacy::getInstance($name, $Component . 'Model', $config);
|
||||
// if model not found (strange)
|
||||
if ($model == false)
|
||||
{
|
||||
jimport('joomla.filesystem.file');
|
||||
// get file path
|
||||
$filePath = $path . '/' . $name . '.php';
|
||||
$fullPath = $fullPath.'/'.$name.'.php';
|
||||
$fullPathModel = $fullPathModels . '/' . $name . '.php';
|
||||
// check if it exists
|
||||
if (JFile::exists($filePath))
|
||||
{
|
||||
// get the file
|
||||
require_once $filePath;
|
||||
}
|
||||
elseif (JFile::exists($fullPath))
|
||||
elseif (JFile::exists($fullPathModel))
|
||||
{
|
||||
// get the file
|
||||
require_once $fullPath;
|
||||
require_once $fullPathModel;
|
||||
}
|
||||
// build class names
|
||||
$modelClass = $prefix.$name;
|
||||
$modelClass = $Component . 'Model' . $name;
|
||||
if (class_exists($modelClass))
|
||||
{
|
||||
// initialize the model
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
|
@ -96,8 +96,7 @@ COM_MEMBERSMANAGER_MEMBER_PASSWORD_DESCRIPTION="Enter the password for the membe
|
||||
COM_MEMBERSMANAGER_MEMBER_PASSWORD_LABEL="Password"
|
||||
COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions"
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE="Profile Image"
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="
|
||||
<div id='uikittwo-profile-image-uploader' style='display:none'>
|
||||
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="<div id='uikittwo-profile-image-uploader' style='display:none'>
|
||||
<div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'>
|
||||
<br /><br />
|
||||
<i class='uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right'></i>
|
||||
@ -160,6 +159,7 @@ COM_MEMBERSMANAGER_NOT_AUTHORISED_TO_VIEW_MEMBERS="Not authorised to view member
|
||||
COM_MEMBERSMANAGER_NOT_AUTHORISED_TO_VIEW_PROFILE="Not authorised to view profile!"
|
||||
COM_MEMBERSMANAGER_NOT_ENOUGH_DATA="Not enough data"
|
||||
COM_MEMBERSMANAGER_NOT_FOUND_OR_ACCESS_DENIED="Not found or access denied!"
|
||||
COM_MEMBERSMANAGER_NO_ACCESS="No Access"
|
||||
COM_MEMBERSMANAGER_NO_ACCESS_GRANTED="No Access Granted!"
|
||||
COM_MEMBERSMANAGER_NO_ACCESS_TO_VIEW_DETAILS="No Access to View Details"
|
||||
COM_MEMBERSMANAGER_NO_DETAILS_FOUND="No Details Found"
|
||||
@ -185,7 +185,7 @@ COM_MEMBERSMANAGER_PLEASE_ENABLE_POPUPS_IN_YOUR_BROWSER_FOR_THIS_WEBSITE_TO_PRIN
|
||||
COM_MEMBERSMANAGER_PLEASE_PUBLISH_A_LOGIN_MODULE_TO_THIS_CODESLOGINCODE_POSITION_AND_INSURE_THAT_YOU_TARGET_THESE_PAGES_THIS_IS_POSSIBLE_IF_YOU_ADD_THE_MODULE_TO_ALL_PAGES_SINCE_THIS_MODULE_POSITION_SHOULD_ONLY_BE_AVAILABLE_IN_THIS_COMPONENT="Please publish a login module to this <code>%s-login</code> position, and insure that you target these pages. This is possible if you add the module to all pages, since this module position should only be available in this component."
|
||||
COM_MEMBERSMANAGER_PRINT="Print"
|
||||
COM_MEMBERSMANAGER_PRINT_CLOSE="Print & Close"
|
||||
COM_MEMBERSMANAGER_PROFILE="Member Profile"
|
||||
COM_MEMBERSMANAGER_PROFILE="Profile"
|
||||
COM_MEMBERSMANAGER_PROFILE_DESC="Member Profile"
|
||||
COM_MEMBERSMANAGER_PROPORTIONALLY="proportionally"
|
||||
COM_MEMBERSMANAGER_RELATIONSHIPS="Relationships"
|
||||
@ -207,6 +207,7 @@ COM_MEMBERSMANAGER_WARNING_IMPORT_FILE_ERROR="Warning, import file error."
|
||||
COM_MEMBERSMANAGER_WARNING_IMPORT_UPLOAD_ERROR="Warning, import upload error."
|
||||
COM_MEMBERSMANAGER_WELCOME_S_UPDATE_YOUR_DETAILS="Welcome %s, update your details"
|
||||
COM_MEMBERSMANAGER_YOU_CAN_NOT_DELETE_BSB_FIRST_MOVE_ALL_SUB_ACCOUNTS_TO_NEW_MAIN_MEMBER="You can not delete <b>%s</b>, first move all sub account/s to new main member."
|
||||
COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_AREA="You do not have access to this area!"
|
||||
COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_ADD_DATA_TO_S_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR="You do not have permission to add data to %s, please contact your system administrator."
|
||||
COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_CREATE_MEMBERS="You do not have permission to create members."
|
||||
COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_EDIT_S_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR="You do not have permission to edit %s, please contact your system administrator."
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user