Updated with JCB v2.10.0

This commit is contained in:
Llewellyn van der Merwe 2019-08-14 04:14:40 +02:00
parent 5e34938710
commit 001a426dac
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
151 changed files with 1481 additions and 438 deletions

View File

@ -13,38 +13,38 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/) + *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/)
+ *First Build*: 6th July, 2018 + *First Build*: 6th July, 2018
+ *Last Build*: 12th June, 2019 + *Last Build*: 14th August, 2019
+ *Version*: 2.0.x + *Version*: 2.0.x
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
## Build Time ## 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)) 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**, > (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.) > never making one mistake or taking any coffee break.)
+ *Line count*: **41627** + *Line count*: **42672**
+ *File count*: **237** + *File count*: **237**
+ *Folder count*: **61** + *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: > (with the following break down:
> **debugging @29hours** = codingtime / 4; > **debugging @30hours** = codingtime / 4;
> **planning @17hours** = codingtime / 7; > **planning @17hours** = codingtime / 7;
> **mapping @12hours** = codingtime / 10; > **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) (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**, > (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.) > 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). > This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) > Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -13,38 +13,38 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/) + *Name*: [Members Manager](https://www.joomlacomponentbuilder.com/)
+ *First Build*: 6th July, 2018 + *First Build*: 6th July, 2018
+ *Last Build*: 12th June, 2019 + *Last Build*: 14th August, 2019
+ *Version*: 2.0.x + *Version*: 2.0.x
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
## Build Time ## 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)) 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**, > (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.) > never making one mistake or taking any coffee break.)
+ *Line count*: **41627** + *Line count*: **42672**
+ *File count*: **237** + *File count*: **237**
+ *Folder count*: **61** + *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: > (with the following break down:
> **debugging @29hours** = codingtime / 4; > **debugging @30hours** = codingtime / 4;
> **planning @17hours** = codingtime / 7; > **planning @17hours** = codingtime / 7;
> **mapping @12hours** = codingtime / 10; > **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) (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**, > (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.) > 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). > This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) > Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */
.no-click { .no-click {
pointer-events: none; pointer-events: none;

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -6,6 +6,7 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* JS Document */ /* JS Document */

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -41,7 +42,7 @@ class MembersmanagerControllerAjax extends JControllerLegacy
// Check Token! // Check Token!
$token = JSession::getFormToken(); $token = JSession::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM'); $call_token = $jinput->get('token', 0, 'ALNUM');
if($token == $call_token) if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
{ {
$task = $this->getTask(); $task = $this->getTask();
switch($task) switch($task)

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -37,8 +38,95 @@ class MembersmanagerControllerMember extends JControllerForm
{ {
$this->view_list = 'Members'; // safeguard for setting the return view listing to the main view. $this->view_list = 'Members'; // safeguard for setting the return view listing to the main view.
parent::__construct($config); 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. * Method override to check if you can add a new record.
* *
@ -79,7 +167,11 @@ class MembersmanagerControllerMember extends JControllerForm
$user = JFactory::getUser(); $user = JFactory::getUser();
// get record id. // get record id.
$recordId = (int) isset($data[$key]) ? $data[$key] : 0; $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 check.
$access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager')); $access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager'));

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_PLATFORM') or die; defined('JPATH_PLATFORM') or die;

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -210,7 +211,7 @@ abstract class MembersmanagerHelper
**/ **/
protected static function setMemberEditURL($item) 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; return $url;
} }
@ -227,8 +228,8 @@ abstract class MembersmanagerHelper
{ {
self::$params = JComponentHelper::getParams('com_membersmanager'); self::$params = JComponentHelper::getParams('com_membersmanager');
} }
// only load link if open to public or is logged in // only load link if open to public or has access
if (2 == self::$params->get('login_required', 1) || JFactory::getUser()->id > 0) 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); 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 * The Key to Access Memory
* *
@ -765,13 +759,12 @@ abstract class MembersmanagerHelper
} }
} }
// check memory first // check memory first
self::$acK3y = md5($user->get('id', 'not_set') . '_' . $type); self::$acK3y = 'membersmanager_user_access_' . $user->get('id', 'not_set') . '_' . $type;
if (isset(self::$accessMemory[self::$acK3y])) // 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 // get DB
if (!$db) if (!$db)
{ {
@ -780,14 +773,14 @@ abstract class MembersmanagerHelper
// get user Access groups // get user Access groups
if (2 == $type) if (2 == $type)
{ {
self::$accessMemory[self::$acK3y] = self::getAccessGroups($user, $db); self::set(self::$acK3y, self::getAccessGroups($user, $db));
} }
elseif (1 == $type) elseif (1 == $type)
{ {
// return access types // 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) 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 // 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 // function to setup the group array
$setGroups = function ($groups) { $setGroups = function ($groups) {
// convert to array // convert to array
@ -841,7 +837,7 @@ abstract class MembersmanagerHelper
foreach ($types as $groups) foreach ($types as $groups)
{ {
$groups_access = $setGroups($groups['groups_access']); $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']); $groups_target = $setGroups($groups['groups_target']);
foreach ($groups_target as $group_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) 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 // 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 // function to setup the group array
$setGroups = function ($groups) { $setGroups = function ($groups) {
// convert to array // 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'); $app->enqueueMessage(JText::_('COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_EDIT_THIS_MEMBER_RELATIONSHIPS_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR'), 'warning');
return; return;
} }
// get database object
$db = JFactory::getDbo();
// check if there is relationships and members in those relationships // 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']) 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) && ($relation_types = self::getRelationshipsByTypes($data['type'], $db, true)) !== false)
{ {
// get database object
$db = JFactory::getDbo();
// get the post object // get the post object
$post = JFactory::getApplication()->input->post; $post = JFactory::getApplication()->input->post;
// Create a new query object. // Create a new query object.
@ -5587,6 +5586,24 @@ abstract class MembersmanagerHelper
{ {
return 'membersmanager'; 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. * Load the Component xml manifest.
**/ **/
@ -6497,38 +6514,42 @@ abstract class MembersmanagerHelper
/** /**
* Get any component's model * 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 // fix the name
$name = self::safeString($name); $name = self::safeString($name);
// full path // full path to models
$fullPath = $path . '/models'; $fullPathModels = $path . '/models';
// set prefix
$prefix = $component.'Model';
// load the model file // 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 // get instance
$model = JModelLegacy::getInstance($name, $prefix, $config); $model = JModelLegacy::getInstance($name, $Component . 'Model', $config);
// if model not found (strange) // if model not found (strange)
if ($model == false) if ($model == false)
{ {
jimport('joomla.filesystem.file'); jimport('joomla.filesystem.file');
// get file path // get file path
$filePath = $path.'/'.$name.'.php'; $filePath = $path . '/' . $name . '.php';
$fullPath = $fullPath.'/'.$name.'.php'; $fullPathModel = $fullPathModels . '/' . $name . '.php';
// check if it exists // check if it exists
if (JFile::exists($filePath)) if (JFile::exists($filePath))
{ {
// get the file // get the file
require_once $filePath; require_once $filePath;
} }
elseif (JFile::exists($fullPath)) elseif (JFile::exists($fullPathModel))
{ {
// get the file // get the file
require_once $fullPath; require_once $fullPathModel;
} }
// build class names // build class names
$modelClass = $prefix.$name; $modelClass = $Component . 'Model' . $name;
if (class_exists($modelClass)) if (class_exists($modelClass))
{ {
// initialize the model // initialize the model

View File

@ -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_LABEL="Mobile Phone"
COM_MEMBERSMANAGER_CONFIG_MOBILE_PHONE_MESSAGE="Error! Please add mobile phone number here." COM_MEMBERSMANAGER_CONFIG_MOBILE_PHONE_MESSAGE="Error! Please add mobile phone number here."
COM_MEMBERSMANAGER_CONFIG_NO="No" COM_MEMBERSMANAGER_CONFIG_NO="No"
COM_MEMBERSMANAGER_CONFIG_NOTE_CORE_MEMBER_PLACEHOLDERS_DESCRIPTION=" COM_MEMBERSMANAGER_CONFIG_NOTE_CORE_MEMBER_PLACEHOLDERS_DESCRIPTION="<div id='core_member_placeholders'>Loading placeholders.<span class='loading-dots' ></span></div>
<div id='core_member_placeholders'>Loading placeholders.<span class='loading-dots' ></span></div>
<script type='text/javascript'> <script type='text/javascript'>
var token; var token;
jQuery(document).ready(function($) { jQuery(document).ready(function($) {
@ -297,7 +296,7 @@ COM_MEMBERSMANAGER_CONFIG_PHONE_DESCRIPTION="The phone number of the contact per
COM_MEMBERSMANAGER_CONFIG_PHONE_HINT="Phone Number Here!" COM_MEMBERSMANAGER_CONFIG_PHONE_HINT="Phone Number Here!"
COM_MEMBERSMANAGER_CONFIG_PHONE_LABEL="Phone Number" COM_MEMBERSMANAGER_CONFIG_PHONE_LABEL="Phone Number"
COM_MEMBERSMANAGER_CONFIG_PHONE_MESSAGE="Error! Please add phone number here." COM_MEMBERSMANAGER_CONFIG_PHONE_MESSAGE="Error! Please add phone number here."
COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_DESCRIPTION="to use in main template " COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_DESCRIPTION="to use in main template"
COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_HINT="component_name_1" COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_HINT="component_name_1"
COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_LABEL="Unique Placeholder" COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_LABEL="Unique Placeholder"
COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_PREFIX_DESCRIPTION="What would like to use as the prefix of the values when used in templates." COM_MEMBERSMANAGER_CONFIG_PLACEHOLDER_PREFIX_DESCRIPTION="What would like to use as the prefix of the values when used in templates."
@ -338,8 +337,7 @@ COM_MEMBERSMANAGER_CONFIG_TABLE_ROW_TEMPLATE_HINT="// html for a single row
<tr> <tr>
<td>[member_name]</td> <td>[member_name]</td>
<td>[member_email]</td> <td>[member_email]</td>
</tr> </tr>"
"
COM_MEMBERSMANAGER_CONFIG_TABLE_ROW_TEMPLATE_LABEL="Table Row Template" 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_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) COM_MEMBERSMANAGER_CONFIG_TABLE_TEMPLATE_HINT="// html for the table surrounding the rows (items)
@ -376,7 +374,7 @@ COM_MEMBERSMANAGER_CONTRIBUTORS="Contributors"
COM_MEMBERSMANAGER_CORE_PLACEHOLDERS="Core Placeholders" COM_MEMBERSMANAGER_CORE_PLACEHOLDERS="Core Placeholders"
COM_MEMBERSMANAGER_COULD_NOT_UPLOAD_THE_FILE="Could not upload the file!" COM_MEMBERSMANAGER_COULD_NOT_UPLOAD_THE_FILE="Could not upload the file!"
COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE="cPanel (Site) Access" COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE="cPanel (Site) Access"
COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE_DESC=" Allows the users in this group to access site cpanel." COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE_DESC="Allows the users in this group to access site cpanel."
COM_MEMBERSMANAGER_CREATE_NEW_S="Create New %s" COM_MEMBERSMANAGER_CREATE_NEW_S="Create New %s"
COM_MEMBERSMANAGER_DASH="Dashboard" COM_MEMBERSMANAGER_DASH="Dashboard"
COM_MEMBERSMANAGER_DASHBOARD="Members Manager Dashboard" COM_MEMBERSMANAGER_DASHBOARD="Members Manager Dashboard"
@ -385,14 +383,14 @@ COM_MEMBERSMANAGER_DOES_NOT_HAVE_A_VALID_FILE_TYPE="Does not have a valid file t
COM_MEMBERSMANAGER_DOWNLOAD="Download" COM_MEMBERSMANAGER_DOWNLOAD="Download"
COM_MEMBERSMANAGER_EDIT="Edit" COM_MEMBERSMANAGER_EDIT="Edit"
COM_MEMBERSMANAGER_EDIT_CREATED_BY="Edit Created By" COM_MEMBERSMANAGER_EDIT_CREATED_BY="Edit Created By"
COM_MEMBERSMANAGER_EDIT_CREATED_BY_DESC=" Allows users in this group to edit created by." COM_MEMBERSMANAGER_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
COM_MEMBERSMANAGER_EDIT_CREATED_DATE="Edit Created Date" COM_MEMBERSMANAGER_EDIT_CREATED_DATE="Edit Created Date"
COM_MEMBERSMANAGER_EDIT_CREATED_DATE_DESC=" Allows users in this group to edit created date." COM_MEMBERSMANAGER_EDIT_CREATED_DATE_DESC="Allows users in this group to edit created date."
COM_MEMBERSMANAGER_EDIT_S="Edit %s" COM_MEMBERSMANAGER_EDIT_S="Edit %s"
COM_MEMBERSMANAGER_EDIT_VERSIONS="Edit Version" COM_MEMBERSMANAGER_EDIT_VERSIONS="Edit Version"
COM_MEMBERSMANAGER_EDIT_VERSIONS_DESC=" Allows users in this group to edit versions." COM_MEMBERSMANAGER_EDIT_VERSIONS_DESC="Allows users in this group to edit versions."
COM_MEMBERSMANAGER_EXPORT_DATA="Export Data" COM_MEMBERSMANAGER_EXPORT_DATA="Export Data"
COM_MEMBERSMANAGER_EXPORT_DATA_DESC=" Allows users in this group to export data." COM_MEMBERSMANAGER_EXPORT_DATA_DESC="Allows users in this group to export data."
COM_MEMBERSMANAGER_EXPORT_FAILED="Export Failed" COM_MEMBERSMANAGER_EXPORT_FAILED="Export Failed"
COM_MEMBERSMANAGER_GREAT_SS_IS_AVAILABLE="Great, %s(%s) is available!" COM_MEMBERSMANAGER_GREAT_SS_IS_AVAILABLE="Great, %s(%s) is available!"
COM_MEMBERSMANAGER_HELP_MANAGER="Help" COM_MEMBERSMANAGER_HELP_MANAGER="Help"
@ -400,7 +398,7 @@ COM_MEMBERSMANAGER_HTWOCURL_NOT_FOUNDHTWOPPLEASE_SETUP_CURL_ON_YOUR_SYSTEM_OR_BM
COM_MEMBERSMANAGER_IMAGE="Image" COM_MEMBERSMANAGER_IMAGE="Image"
COM_MEMBERSMANAGER_IMPORT_CONTINUE="Continue" COM_MEMBERSMANAGER_IMPORT_CONTINUE="Continue"
COM_MEMBERSMANAGER_IMPORT_DATA="Import Data" COM_MEMBERSMANAGER_IMPORT_DATA="Import Data"
COM_MEMBERSMANAGER_IMPORT_DATA_DESC=" Allows users in this group to import data." COM_MEMBERSMANAGER_IMPORT_DATA_DESC="Allows users in this group to import data."
COM_MEMBERSMANAGER_IMPORT_ERROR="Import error." COM_MEMBERSMANAGER_IMPORT_ERROR="Import error."
COM_MEMBERSMANAGER_IMPORT_FAILED="Import Failed" COM_MEMBERSMANAGER_IMPORT_FAILED="Import Failed"
COM_MEMBERSMANAGER_IMPORT_FILE_COLUMNS="File Columns" COM_MEMBERSMANAGER_IMPORT_FILE_COLUMNS="File Columns"
@ -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_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_FOR_TYPES="Select the file to import data to types."
COM_MEMBERSMANAGER_IMPORT_SELECT_FILE_URL="Enter file URL" 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_TABLE_COLUMNS="Table Columns"
COM_MEMBERSMANAGER_IMPORT_TITLE="Data Importer" COM_MEMBERSMANAGER_IMPORT_TITLE="Data Importer"
COM_MEMBERSMANAGER_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE="Package to import not found." COM_MEMBERSMANAGER_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE="Package to import not found."
@ -457,7 +455,7 @@ COM_MEMBERSMANAGER_MEMBERS_ACCESS_PASSWORD_DESC="Allows the users in this group
COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE="Members Access Profile Image" COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE="Members Access Profile Image"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE_DESC="Allows the users in this group to access profile image of member" COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE_DESC="Allows the users in this group to access profile image of member"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE="Members (Site) Access" COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE="Members (Site) Access"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE_DESC=" Allows the users in this group to access site members." COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE_DESC="Allows the users in this group to access site members."
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL="Members Access Useremail" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL="Members Access Useremail"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL_DESC="Allows the users in this group to access useremail of member" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL_DESC="Allows the users in this group to access useremail of member"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USERNAME="Members Access Username" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USERNAME="Members Access Username"
@ -576,7 +574,7 @@ COM_MEMBERSMANAGER_MEMBER_ERROR_UNIQUE_ALIAS="Another Member has the same alias.
COM_MEMBERSMANAGER_MEMBER_ID="Id" COM_MEMBERSMANAGER_MEMBER_ID="Id"
COM_MEMBERSMANAGER_MEMBER_ID_MISMATCH_SS_COULD_NOT_BE_SAVED="Member ID mismatch, %s-%s could not be saved." COM_MEMBERSMANAGER_MEMBER_ID_MISMATCH_SS_COULD_NOT_BE_SAVED="Member ID mismatch, %s-%s could not be saved."
COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS="Member Import Joomla Users Button Access" COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS="Member Import Joomla Users Button Access"
COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS_DESC=" Allows the users in this group to access the import joomla users button." COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS_DESC="Allows the users in this group to access the import joomla users button."
COM_MEMBERSMANAGER_MEMBER_IS_ALREADY_LINKED_TO_AN_USER_THIS_CAN_NOT_BE_CHANGED_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_IF_YOU_NEED_MORE_HELP="Member is already linked to an USER, this can not be changed. Contact your system administrator if you need more help." COM_MEMBERSMANAGER_MEMBER_IS_ALREADY_LINKED_TO_AN_USER_THIS_CAN_NOT_BE_CHANGED_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_IF_YOU_NEED_MORE_HELP="Member is already linked to an USER, this can not be changed. Contact your system administrator if you need more help."
COM_MEMBERSMANAGER_MEMBER_MAIN="Main" COM_MEMBERSMANAGER_MEMBER_MAIN="Main"
COM_MEMBERSMANAGER_MEMBER_MAIN_LOGIN="Main & Login" COM_MEMBERSMANAGER_MEMBER_MAIN_LOGIN="Main & Login"
@ -604,10 +602,9 @@ COM_MEMBERSMANAGER_MEMBER_PASSWORD_DESCRIPTION="Enter the password for the membe
COM_MEMBERSMANAGER_MEMBER_PASSWORD_LABEL="Password" COM_MEMBERSMANAGER_MEMBER_PASSWORD_LABEL="Password"
COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions" COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions"
COM_MEMBERSMANAGER_MEMBER_PROFILE_ACCESS_SITE="Member Profile (Site) Access" 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_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="Profile Image"
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION=" COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="<div id='uikittwo-profile-image-uploader' style='display:none'>
<div id='uikittwo-profile-image-uploader' style='display:none'>
<div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'> <div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'>
<br /><br /> <br /><br />
<i class='uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right'></i> <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_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_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_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_ACCESS_GRANTED="No Access Granted!"
COM_MEMBERSMANAGER_NO_IMPORT_FILE_SELECTED="No import file selected." 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." COM_MEMBERSMANAGER_NO_MEMBERS_ARE_SET_PLEASE_SET_SOME_AND_TRY_AGAIN="No members are set, please set some and try again."
@ -818,7 +815,7 @@ COM_MEMBERSMANAGER_TYPE_TYPE="Type"
COM_MEMBERSMANAGER_TYPE_TYPE_DESCRIPTION="Select the type/s" COM_MEMBERSMANAGER_TYPE_TYPE_DESCRIPTION="Select the type/s"
COM_MEMBERSMANAGER_TYPE_TYPE_LABEL="can Link" COM_MEMBERSMANAGER_TYPE_TYPE_LABEL="can Link"
COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS="Type Update Types Button Access" COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS="Type Update Types Button Access"
COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS_DESC=" Allows the users in this group to access the update types button." COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS_DESC="Allows the users in this group to access the update types button."
COM_MEMBERSMANAGER_TYPE_VERSION_DESC="A count of the number of times this Type has been revised." COM_MEMBERSMANAGER_TYPE_VERSION_DESC="A count of the number of times this Type has been revised."
COM_MEMBERSMANAGER_TYPE_VERSION_LABEL="Revision" COM_MEMBERSMANAGER_TYPE_VERSION_LABEL="Revision"
COM_MEMBERSMANAGER_TYPE_VIEW_RELATIONSHIP="View Relationship" COM_MEMBERSMANAGER_TYPE_VIEW_RELATIONSHIP="View Relationship"
@ -828,7 +825,7 @@ COM_MEMBERSMANAGER_TYPE_YES="Yes"
COM_MEMBERSMANAGER_UPDATE_SUCCESS="Update Success!" COM_MEMBERSMANAGER_UPDATE_SUCCESS="Update Success!"
COM_MEMBERSMANAGER_UPDATE_TYPES="Update Types" COM_MEMBERSMANAGER_UPDATE_TYPES="Update Types"
COM_MEMBERSMANAGER_USE_BATCH="Use Batch" COM_MEMBERSMANAGER_USE_BATCH="Use Batch"
COM_MEMBERSMANAGER_USE_BATCH_DESC=" Allows users in this group to use batch copy/update method." COM_MEMBERSMANAGER_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
COM_MEMBERSMANAGER_VALUE_ALREADY_TAKEN_PLEASE_TRY_AGAIN="Value already taken, please try again." COM_MEMBERSMANAGER_VALUE_ALREADY_TAKEN_PLEASE_TRY_AGAIN="Value already taken, please try again."
COM_MEMBERSMANAGER_VERSION="Version" COM_MEMBERSMANAGER_VERSION="Version"
COM_MEMBERSMANAGER_WARNING_IMPORT_FILE_ERROR="Warning, import file error." COM_MEMBERSMANAGER_WARNING_IMPORT_FILE_ERROR="Warning, import file error."

View File

@ -1,17 +1,17 @@
COM_MEMBERSMANAGER="Members Manager" COM_MEMBERSMANAGER="Members Manager"
COM_MEMBERSMANAGER_CONFIGURATION="Members Manager Configuration" COM_MEMBERSMANAGER_CONFIGURATION="Members Manager Configuration"
COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE="cPanel (Site) Access" COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE="cPanel (Site) Access"
COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE_DESC=" Allows the users in this group to access site cpanel." COM_MEMBERSMANAGER_CPANEL_ACCESS_SITE_DESC="Allows the users in this group to access site cpanel."
COM_MEMBERSMANAGER_EDIT_CREATED_BY="Edit Created By" COM_MEMBERSMANAGER_EDIT_CREATED_BY="Edit Created By"
COM_MEMBERSMANAGER_EDIT_CREATED_BY_DESC=" Allows users in this group to edit created by." COM_MEMBERSMANAGER_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
COM_MEMBERSMANAGER_EDIT_CREATED_DATE="Edit Created Date" COM_MEMBERSMANAGER_EDIT_CREATED_DATE="Edit Created Date"
COM_MEMBERSMANAGER_EDIT_CREATED_DATE_DESC=" Allows users in this group to edit created date." COM_MEMBERSMANAGER_EDIT_CREATED_DATE_DESC="Allows users in this group to edit created date."
COM_MEMBERSMANAGER_EDIT_VERSIONS="Edit Version" COM_MEMBERSMANAGER_EDIT_VERSIONS="Edit Version"
COM_MEMBERSMANAGER_EDIT_VERSIONS_DESC=" Allows users in this group to edit versions." COM_MEMBERSMANAGER_EDIT_VERSIONS_DESC="Allows users in this group to edit versions."
COM_MEMBERSMANAGER_EXPORT_DATA="Export Data" COM_MEMBERSMANAGER_EXPORT_DATA="Export Data"
COM_MEMBERSMANAGER_EXPORT_DATA_DESC=" Allows users in this group to export data." COM_MEMBERSMANAGER_EXPORT_DATA_DESC="Allows users in this group to export data."
COM_MEMBERSMANAGER_IMPORT_DATA="Import Data" COM_MEMBERSMANAGER_IMPORT_DATA="Import Data"
COM_MEMBERSMANAGER_IMPORT_DATA_DESC=" Allows users in this group to import data." COM_MEMBERSMANAGER_IMPORT_DATA_DESC="Allows users in this group to import data."
COM_MEMBERSMANAGER_MEMBERS_ACCESS="Members Access" COM_MEMBERSMANAGER_MEMBERS_ACCESS="Members Access"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_DESC="Allows the users in this group to access access members" COM_MEMBERSMANAGER_MEMBERS_ACCESS_DESC="Allows the users in this group to access access members"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_EMAIL="Members Access Email" COM_MEMBERSMANAGER_MEMBERS_ACCESS_EMAIL="Members Access Email"
@ -23,7 +23,7 @@ COM_MEMBERSMANAGER_MEMBERS_ACCESS_PASSWORD_DESC="Allows the users in this group
COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE="Members Access Profile Image" COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE="Members Access Profile Image"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE_DESC="Allows the users in this group to access profile image of member" COM_MEMBERSMANAGER_MEMBERS_ACCESS_PROFILE_IMAGE_DESC="Allows the users in this group to access profile image of member"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE="Members (Site) Access" COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE="Members (Site) Access"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE_DESC=" Allows the users in this group to access site members." COM_MEMBERSMANAGER_MEMBERS_ACCESS_SITE_DESC="Allows the users in this group to access site members."
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL="Members Access Useremail" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL="Members Access Useremail"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL_DESC="Allows the users in this group to access useremail of member" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USEREMAIL_DESC="Allows the users in this group to access useremail of member"
COM_MEMBERSMANAGER_MEMBERS_ACCESS_USERNAME="Members Access Username" COM_MEMBERSMANAGER_MEMBERS_ACCESS_USERNAME="Members Access Username"
@ -105,9 +105,9 @@ COM_MEMBERSMANAGER_MEMBERS_VIEW_USERNAME="Members View Username"
COM_MEMBERSMANAGER_MEMBERS_VIEW_USERNAME_DESC="Allows the users in this group to view username of member" COM_MEMBERSMANAGER_MEMBERS_VIEW_USERNAME_DESC="Allows the users in this group to view username of member"
COM_MEMBERSMANAGER_MEMBERS_VIEW_USER_DESC="Allows the users in this group to view user of member" COM_MEMBERSMANAGER_MEMBERS_VIEW_USER_DESC="Allows the users in this group to view user of member"
COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS="Member Import Joomla Users Button Access" COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS="Member Import Joomla Users Button Access"
COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS_DESC=" Allows the users in this group to access the import joomla users button." COM_MEMBERSMANAGER_MEMBER_IMPORT_JOOMLA_USERS_BUTTON_ACCESS_DESC="Allows the users in this group to access the import joomla users button."
COM_MEMBERSMANAGER_MEMBER_PROFILE_ACCESS_SITE="Member Profile (Site) Access" 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_ACCESS_SITE_DESC="Allows the users in this group to access site member profile."
COM_MEMBERSMANAGER_MENU="&#9733; Members Manager" COM_MEMBERSMANAGER_MENU="&#9733; Members Manager"
COM_MEMBERSMANAGER_MENU_CPANEL_DESC="Control Panel for Members" COM_MEMBERSMANAGER_MENU_CPANEL_DESC="Control Panel for Members"
COM_MEMBERSMANAGER_MENU_CPANEL_OPTION="cPanel" COM_MEMBERSMANAGER_MENU_CPANEL_OPTION="cPanel"
@ -162,6 +162,6 @@ COM_MEMBERSMANAGER_TYPES_IMPORT_DESC="Allows the users in this group to import i
COM_MEMBERSMANAGER_TYPES_SUBMENU="Types Submenu" COM_MEMBERSMANAGER_TYPES_SUBMENU="Types Submenu"
COM_MEMBERSMANAGER_TYPES_SUBMENU_DESC="Allows the users in this group to submenu of type" COM_MEMBERSMANAGER_TYPES_SUBMENU_DESC="Allows the users in this group to submenu of type"
COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS="Type Update Types Button Access" COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS="Type Update Types Button Access"
COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS_DESC=" Allows the users in this group to access the update types button." COM_MEMBERSMANAGER_TYPE_UPDATE_TYPES_BUTTON_ACCESS_DESC="Allows the users in this group to access the update types button."
COM_MEMBERSMANAGER_USE_BATCH="Use Batch" COM_MEMBERSMANAGER_USE_BATCH="Use Batch"
COM_MEMBERSMANAGER_USE_BATCH_DESC=" Allows users in this group to use batch copy/update method." COM_MEMBERSMANAGER_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_BASE') or die; defined('JPATH_BASE') or die;

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'token',
'account', 'account',
'user' 'user'
@ -23,6 +35,7 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<div class="form-inline form-inline-header"> <div class="form-inline form-inline-header">
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?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 echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'type',
'name', 'name',
'surname', 'surname',
@ -31,9 +43,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,21 +9,35 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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' 'profile_image_uploader'
); );
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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',
'created_by', 'created_by',
'modified', 'modified',
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'published',
'ordering', 'ordering',
'access', 'access',
@ -26,9 +38,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'add_relationship',
'type', 'type',
'edit_relationship', 'edit_relationship',
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'communicate',
'field_type' 'field_type'
); );
@ -22,9 +34,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'name',
'alias' 'alias'
); );
@ -22,6 +34,7 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<div class="form-inline form-inline-header"> <div class="form-inline form-inline-header">
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?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 echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<?php endif; ?>

View File

@ -9,18 +9,31 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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' 'description'
); );
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<div class="form-vertical"> <div class="form-vertical">
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?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 echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<?php endif; ?>

View File

@ -9,21 +9,35 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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' 'groups_target'
); );
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,21 +9,35 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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' 'groups_access'
); );
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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',
'created_by', 'created_by',
'modified', 'modified',
@ -24,9 +36,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,12 +9,24 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
// get the form
$form = $displayData->getForm(); $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', 'published',
'ordering', 'ordering',
'access', 'access',
@ -26,9 +38,11 @@ $fields = $displayData->get('fields') ?: array(
$hiddenFields = $displayData->get('hidden_fields') ?: array(); $hiddenFields = $displayData->get('hidden_fields') ?: array();
?> ?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?> <?php foreach($fields as $field): ?>
<?php if (in_array($field, $hiddenFields)) : ?> <?php if (in_array($field, $hiddenFields)) : ?>
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?> <?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
<?php endif; ?> <?php endif; ?>
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?> <?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?>

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tabstate'); JHtml::_('behavior.tabstate');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -670,7 +671,7 @@ class MembersmanagerModelAjax extends JModelList
$header = ''; $header = '';
} }
// get the core component helper class & get placeholders // 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;">' . return '<div>' . $header . '<code style="display: inline-block; padding: 2px; margin: 3px;">' .
implode('</code> <code style="display: inline-block; padding: 2px; margin: 3px;">', $placeholders) . implode('</code> <code style="display: inline-block; padding: 2px; margin: 3px;">', $placeholders) .

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -38,15 +39,15 @@ class JFormFieldMainmembers extends JFormFieldList
protected function getInput() protected function getInput()
{ {
// see if we should add buttons // see if we should add buttons
$setButton = $this->getAttribute('button'); $set_button = $this->getAttribute('button');
// get html // get html
$html = parent::getInput(); $html = parent::getInput();
// if true set button // if true set button
if ($setButton === 'true') if ($set_button === 'true')
{ {
$button = array(); $button = array();
$script = array(); $script = array();
$buttonName = $this->getAttribute('name'); $button_code_name = $this->getAttribute('name');
// get the input from url // get the input from url
$app = JFactory::getApplication(); $app = JFactory::getApplication();
$jinput = $app->input; $jinput = $app->input;
@ -70,55 +71,52 @@ class JFormFieldMainmembers extends JFormFieldList
$ref .= '&amp;return=' . $_return; $ref .= '&amp;return=' . $_return;
$refJ .= '&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(); $user = JFactory::getUser();
// only add if user allowed to create member // only add if user allowed to create member
if ($user->authorise('member.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area. if ($user->authorise('member.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
{ {
// build Create button // build Create button
$buttonNamee = trim($buttonName); $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;"
$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;"
href="index.php?option=com_membersmanager&amp;view=member&amp;layout=edit'.$ref.'" > href="index.php?option=com_membersmanager&amp;view=member&amp;layout=edit'.$ref.'" >
<span class="icon-new icon-white"></span></a>'; <span class="icon-new icon-white"></span></a>';
} }
// only add if user allowed to edit member // 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 // build edit button
$buttonNamee = trim($buttonName); $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="#" >
$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="#" >
<span class="icon-edit"></span></a>'; <span class="icon-edit"></span></a>';
// build script // build script
$script[] = " $script[] = "
jQuery(document).ready(function() { jQuery(document).ready(function() {
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
e.preventDefault(); e.preventDefault();
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
function ".$buttonName."Button(value) { function ".$button_code_name."Button(value) {
if (value > 0) { if (value > 0) {
// hide the create button // hide the create button
jQuery('#".$buttonName."Create').hide(); jQuery('#".$button_code_name."Create').hide();
// show edit button // 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."'; 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 { } else {
// show the create button // show the create button
jQuery('#".$buttonName."Create').show(); jQuery('#".$button_code_name."Create').show();
// hide edit button // hide edit button
jQuery('#".$buttonName."Edit').hide(); jQuery('#".$button_code_name."Edit').hide();
} }
}"; }";
} }

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -38,15 +39,15 @@ class JFormFieldTypes extends JFormFieldList
protected function getInput() protected function getInput()
{ {
// see if we should add buttons // see if we should add buttons
$setButton = $this->getAttribute('button'); $set_button = $this->getAttribute('button');
// get html // get html
$html = parent::getInput(); $html = parent::getInput();
// if true set button // if true set button
if ($setButton === 'true') if ($set_button === 'true')
{ {
$button = array(); $button = array();
$script = array(); $script = array();
$buttonName = $this->getAttribute('name'); $button_code_name = $this->getAttribute('name');
// get the input from url // get the input from url
$app = JFactory::getApplication(); $app = JFactory::getApplication();
$jinput = $app->input; $jinput = $app->input;
@ -70,55 +71,52 @@ class JFormFieldTypes extends JFormFieldList
$ref .= '&amp;return=' . $_return; $ref .= '&amp;return=' . $_return;
$refJ .= '&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(); $user = JFactory::getUser();
// only add if user allowed to create type // only add if user allowed to create type
if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area. if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
{ {
// build Create button // build Create button
$buttonNamee = trim($buttonName); $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;"
$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;"
href="index.php?option=com_membersmanager&amp;view=type&amp;layout=edit'.$ref.'" > href="index.php?option=com_membersmanager&amp;view=type&amp;layout=edit'.$ref.'" >
<span class="icon-new icon-white"></span></a>'; <span class="icon-new icon-white"></span></a>';
} }
// only add if user allowed to edit type // 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 // build edit button
$buttonNamee = trim($buttonName); $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="#" >
$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="#" >
<span class="icon-edit"></span></a>'; <span class="icon-edit"></span></a>';
// build script // build script
$script[] = " $script[] = "
jQuery(document).ready(function() { jQuery(document).ready(function() {
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
e.preventDefault(); e.preventDefault();
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
function ".$buttonName."Button(value) { function ".$button_code_name."Button(value) {
if (value > 0) { if (value > 0) {
// hide the create button // hide the create button
jQuery('#".$buttonName."Create').hide(); jQuery('#".$button_code_name."Create').hide();
// show edit button // 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."'; 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 { } else {
// show the create button // show the create button
jQuery('#".$buttonName."Create').show(); jQuery('#".$button_code_name."Create').show();
// hide edit button // hide edit button
jQuery('#".$buttonName."Edit').hide(); jQuery('#".$button_code_name."Edit').hide();
} }
}"; }";
} }

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -38,15 +39,15 @@ class JFormFieldTypesonmember extends JFormFieldList
protected function getInput() protected function getInput()
{ {
// see if we should add buttons // see if we should add buttons
$setButton = $this->getAttribute('button'); $set_button = $this->getAttribute('button');
// get html // get html
$html = parent::getInput(); $html = parent::getInput();
// if true set button // if true set button
if ($setButton === 'true') if ($set_button === 'true')
{ {
$button = array(); $button = array();
$script = array(); $script = array();
$buttonName = $this->getAttribute('name'); $button_code_name = $this->getAttribute('name');
// get the input from url // get the input from url
$app = JFactory::getApplication(); $app = JFactory::getApplication();
$jinput = $app->input; $jinput = $app->input;
@ -70,55 +71,52 @@ class JFormFieldTypesonmember extends JFormFieldList
$ref .= '&amp;return=' . $_return; $ref .= '&amp;return=' . $_return;
$refJ .= '&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(); $user = JFactory::getUser();
// only add if user allowed to create type // only add if user allowed to create type
if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area. if ($user->authorise('type.create', 'com_membersmanager') && $app->isAdmin()) // TODO for now only in admin area.
{ {
// build Create button // build Create button
$buttonNamee = trim($buttonName); $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;"
$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;"
href="index.php?option=com_membersmanager&amp;view=type&amp;layout=edit'.$ref.'" > href="index.php?option=com_membersmanager&amp;view=type&amp;layout=edit'.$ref.'" >
<span class="icon-new icon-white"></span></a>'; <span class="icon-new icon-white"></span></a>';
} }
// only add if user allowed to edit type // 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 // build edit button
$buttonNamee = trim($buttonName); $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="#" >
$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="#" >
<span class="icon-edit"></span></a>'; <span class="icon-edit"></span></a>';
// build script // build script
$script[] = " $script[] = "
jQuery(document).ready(function() { jQuery(document).ready(function() {
jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
e.preventDefault(); e.preventDefault();
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$buttonName."Button(".$buttonName."Value); ".$button_code_name."Button(".$button_code_name."Value);
}); });
function ".$buttonName."Button(value) { function ".$button_code_name."Button(value) {
if (value > 0) { if (value > 0) {
// hide the create button // hide the create button
jQuery('#".$buttonName."Create').hide(); jQuery('#".$button_code_name."Create').hide();
// show edit button // 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."'; 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 { } else {
// show the create button // show the create button
jQuery('#".$buttonName."Create').show(); jQuery('#".$button_code_name."Create').show();
// hide edit button // hide edit button
jQuery('#".$buttonName."Edit').hide(); jQuery('#".$button_code_name."Edit').hide();
} }
}"; }";
} }

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// Some Global Values // Some Global Values
jform_vvvvvvvvvv_required = false; jform_vvvvvvvvvv_required = false;
jform_vvvvvvwvvw_required = false; jform_vvvvvvwvvw_required = false;

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// Some Global Values // Some Global Values
jform_vvvvvvyvvz_required = false; jform_vvvvvvyvvz_required = false;
jform_vvvvvvyvwa_required = false; jform_vvvvvvyvwa_required = false;

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -18,13 +19,44 @@ use Joomla\Registry\Registry;
* Membersmanager Member Model * Membersmanager Member Model
*/ */
class MembersmanagerModelMember extends JModelAdmin 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. * @var string The prefix to use with controller messages.
* @since 1.6 * @since 1.6
*/ */
protected $text_prefix = 'COM_MEMBERSMANAGER'; protected $text_prefix = 'COM_MEMBERSMANAGER';
/** /**
* The type alias for this content type. * The type alias for this content type.
* *
@ -1688,19 +1720,39 @@ class MembersmanagerModelMember extends JModelAdmin
// check if token is set // check if token is set
if (empty($data['token'])) if (empty($data['token']))
{ {
// get a token if (!isset($data['surname']))
$token = call_user_func(function($data) { {
// get the name of this member // get a token
if (isset($data['account']) && (1 == $data['account'] || 4 == $data['account']) && isset($data['user']) && $data['user'] > 0) $token = call_user_func(function($data) {
{ // get the name of this member
return JFactory::getUser($data['user'])->name; if (isset($data['account']) && (1 == $data['account'] || 4 == $data['account']) && isset($data['user']) && $data['user'] > 0)
} {
elseif (isset($data['name']) && MembersmanagerHelper::checkString($data['name'])) return JFactory::getUser($data['user'])->name;
{ }
return $data['name']; elseif (isset($data['name']) && MembersmanagerHelper::checkString($data['name']))
} {
return MembersmanagerHelper::randomkey(8); return $data['name'];
}, $data); }
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 // split at upper case
$tokenArray = (array) preg_split('/(?=[A-Z])/', trim($token), -1, PREG_SPLIT_NO_EMPTY); $tokenArray = (array) preg_split('/(?=[A-Z])/', trim($token), -1, PREG_SPLIT_NO_EMPTY);
// make string safe // make string safe

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_PLATFORM') or die; defined('JPATH_PLATFORM') or die;

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_PLATFORM') or die; defined('JPATH_PLATFORM') or die;

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_PLATFORM') or die; defined('JPATH_PLATFORM') or die;

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -18,13 +19,48 @@ use Joomla\Registry\Registry;
* Membersmanager Type Model * Membersmanager Type Model
*/ */
class MembersmanagerModelType extends JModelAdmin 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. * @var string The prefix to use with controller messages.
* @since 1.6 * @since 1.6
*/ */
protected $text_prefix = 'COM_MEMBERSMANAGER'; protected $text_prefix = 'COM_MEMBERSMANAGER';
/** /**
* The type alias for this content type. * The type alias for this content type.
* *

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
Joomla.submitbutton = function(task) Joomla.submitbutton = function(task)
{ {
if (task == ''){ if (task == ''){

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -243,7 +244,27 @@ class MembersmanagerViewMember extends JViewLegacy
$this->document->addScript( JURI::root(true) .'/media/com_membersmanager/uikit-v3/js/uikit-icons'.$size.'.js', (MembersmanagerHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript'); $this->document->addScript( JURI::root(true) .'/media/com_membersmanager/uikit-v3/js/uikit-icons'.$size.'.js', (MembersmanagerHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
} }
// add var key // add var key
$this->document->addScriptDeclaration("var vastDevMod = '".$this->get('VDM')."';"); $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 // need to add some language strings
JText::script('COM_MEMBERSMANAGER_VALUE_ALREADY_TAKEN_PLEASE_TRY_AGAIN'); JText::script('COM_MEMBERSMANAGER_VALUE_ALREADY_TAKEN_PLEASE_TRY_AGAIN');
JText::script('view not acceptable. Error'); JText::script('view not acceptable. Error');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
Joomla.submitbutton = function(task) Joomla.submitbutton = function(task)
{ {
if (task == ''){ if (task == ''){

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -6,7 +6,8 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
body { body {
background: rgb(204,204,204); background: rgb(204,204,204);

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade"> <extension type="component" version="3.2" method="upgrade">
<name>COM_MEMBERSMANAGER</name> <name>COM_MEMBERSMANAGER</name>
<creationDate>12th June, 2019</creationDate> <creationDate>14th August, 2019</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail> <authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>https://www.joomlacomponentbuilder.com/</authorUrl> <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>index.html</filename>
<filename>router.php</filename> <filename>router.php</filename>
<filename>membersmanager.php</filename> <filename>membersmanager.php</filename>
<filename>membersmanager.php</filename> <filename>router.php</filename>
<filename>router.php</filename>
<filename>controller.php</filename>
<folder>assets</folder> <folder>assets</folder>
<folder>helpers</folder> <folder>helpers</folder>
<folder>controllers</folder> <folder>controllers</folder>
@ -83,11 +81,6 @@ Watch this [tutorial](https://youtu.be/lkE0ZiSWufg) to see how.</p>
<filename>controller.php</filename> <filename>controller.php</filename>
<filename>index.html</filename> <filename>index.html</filename>
<filename>membersmanager.php</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> <filename>README.txt</filename>
<folder>assets</folder> <folder>assets</folder>
<folder>controllers</folder> <folder>controllers</folder>

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -20,21 +21,27 @@ JHTML::_('behavior.modal');
class com_membersmanagerInstallerScript 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 // Get Application object
$app = JFactory::getApplication(); $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 // get application
$app = JFactory::getApplication(); $app = JFactory::getApplication();
// is redundant ...hmmm // is redundant or so it seems ...hmmm let me know if it works again
if ($type == 'uninstall') if ($type === 'uninstall')
{ {
return true; return true;
} }
// the default for both install and update // the default for both install and update
$jversion = new JVersion(); $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; return false;
} }
// do any updates needed // do any updates needed
if ($type == 'update') if ($type === 'update')
{ {
} }
// do any install needed // 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 // get application
$app = JFactory::getApplication(); $app = JFactory::getApplication();
// set the default component settings // set the default component settings
if ($type == 'install') if ($type === 'install')
{ {
// Get The Database object // Get The Database object
@ -518,7 +531,7 @@ class com_membersmanagerInstallerScript
</a>'; </a>';
} }
// do any updates needed // do any updates needed
if ($type == 'update') if ($type === 'update')
{ {
// Get The Database object // Get The Database object
@ -588,5 +601,6 @@ class com_membersmanagerInstallerScript
</a> </a>
<h3>Upgrade to Version 2.0.6 Was Successful! Let us know if anything is not working as expected.</h3>'; <h3>Upgrade to Version 2.0.6 Was Successful! Let us know if anything is not working as expected.</h3>';
} }
return true;
} }
} }

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */

View File

@ -8,6 +8,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* CSS Document */ /* CSS Document */
.no-click { .no-click {
pointer-events: none; pointer-events: none;

View File

@ -6,7 +6,8 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* JS Document */ /* JS Document */
// the search method // the search method

View File

@ -6,7 +6,8 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* JS Document */ /* JS Document */
// Get report based on id & element from Server // Get report based on id & element from Server

View File

@ -6,6 +6,7 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
/* JS Document */ /* JS Document */

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -44,7 +45,7 @@ class MembersmanagerControllerAjax extends JControllerLegacy
// Check Token! // Check Token!
$token = JSession::getFormToken(); $token = JSession::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM'); $call_token = $jinput->get('token', 0, 'ALNUM');
if($token == $call_token) if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
{ {
$task = $this->getTask(); $task = $this->getTask();
switch($task) switch($task)

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -37,8 +38,95 @@ class MembersmanagerControllerMember extends JControllerForm
{ {
$this->view_list = 'cpanel'; // safeguard for setting the return view listing to the default site view. $this->view_list = 'cpanel'; // safeguard for setting the return view listing to the default site view.
parent::__construct($config); 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. * Method override to check if you can add a new record.
* *
@ -79,7 +167,11 @@ class MembersmanagerControllerMember extends JControllerForm
$user = JFactory::getUser(); $user = JFactory::getUser();
// get record id. // get record id.
$recordId = (int) isset($data[$key]) ? $data[$key] : 0; $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 check.
$access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager')); $access = ($user->authorise('member.access', 'com_membersmanager.member.' . (int) $recordId) && $user->authorise('member.access', 'com_membersmanager'));

View File

@ -7,7 +7,8 @@
* @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager> * @github Joomla Members Manager <https://github.com/vdm-io/Joomla-Members-Manager>
* @copyright Copyright (C) 2015. All Rights Reserved * @copyright Copyright (C) 2015. All Rights Reserved
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@ -210,7 +211,7 @@ abstract class MembersmanagerHelper
**/ **/
protected static function setMemberEditURL($item) 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; return $url;
} }
@ -227,8 +228,8 @@ abstract class MembersmanagerHelper
{ {
self::$params = JComponentHelper::getParams('com_membersmanager'); self::$params = JComponentHelper::getParams('com_membersmanager');
} }
// only load link if open to public or is logged in // only load link if open to public or has access
if (2 == self::$params->get('login_required', 1) || JFactory::getUser()->id > 0) 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); 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 * The Key to Access Memory
* *
@ -765,13 +759,12 @@ abstract class MembersmanagerHelper
} }
} }
// check memory first // check memory first
self::$acK3y = md5($user->get('id', 'not_set') . '_' . $type); self::$acK3y = 'membersmanager_user_access_' . $user->get('id', 'not_set') . '_' . $type;
if (isset(self::$accessMemory[self::$acK3y])) // 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 // get DB
if (!$db) if (!$db)
{ {
@ -780,14 +773,14 @@ abstract class MembersmanagerHelper
// get user Access groups // get user Access groups
if (2 == $type) if (2 == $type)
{ {
self::$accessMemory[self::$acK3y] = self::getAccessGroups($user, $db); self::set(self::$acK3y, self::getAccessGroups($user, $db));
} }
elseif (1 == $type) elseif (1 == $type)
{ {
// return access types // 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) 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 // 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 // function to setup the group array
$setGroups = function ($groups) { $setGroups = function ($groups) {
// convert to array // convert to array
@ -841,7 +837,7 @@ abstract class MembersmanagerHelper
foreach ($types as $groups) foreach ($types as $groups)
{ {
$groups_access = $setGroups($groups['groups_access']); $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']); $groups_target = $setGroups($groups['groups_target']);
foreach ($groups_target as $group_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) 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 // 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 // function to setup the group array
$setGroups = function ($groups) { $setGroups = function ($groups) {
// convert to array // 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'); $app->enqueueMessage(JText::_('COM_MEMBERSMANAGER_YOU_DO_NOT_HAVE_PERMISSION_TO_EDIT_THIS_MEMBER_RELATIONSHIPS_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR'), 'warning');
return; return;
} }
// get database object
$db = JFactory::getDbo();
// check if there is relationships and members in those relationships // 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']) 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) && ($relation_types = self::getRelationshipsByTypes($data['type'], $db, true)) !== false)
{ {
// get database object
$db = JFactory::getDbo();
// get the post object // get the post object
$post = JFactory::getApplication()->input->post; $post = JFactory::getApplication()->input->post;
// Create a new query object. // Create a new query object.
@ -5587,6 +5586,24 @@ abstract class MembersmanagerHelper
{ {
return 'membersmanager'; 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') public static function jsonToString($value, $sperator = ", ", $table = null, $id = 'id', $name = 'name')
{ {
@ -5712,38 +5729,42 @@ abstract class MembersmanagerHelper
/** /**
* Get any component's model * 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 // fix the name
$name = self::safeString($name); $name = self::safeString($name);
// full path // full path to models
$fullPath = $path . '/models'; $fullPathModels = $path . '/models';
// set prefix
$prefix = $component.'Model';
// load the model file // 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 // get instance
$model = JModelLegacy::getInstance($name, $prefix, $config); $model = JModelLegacy::getInstance($name, $Component . 'Model', $config);
// if model not found (strange) // if model not found (strange)
if ($model == false) if ($model == false)
{ {
jimport('joomla.filesystem.file'); jimport('joomla.filesystem.file');
// get file path // get file path
$filePath = $path.'/'.$name.'.php'; $filePath = $path . '/' . $name . '.php';
$fullPath = $fullPath.'/'.$name.'.php'; $fullPathModel = $fullPathModels . '/' . $name . '.php';
// check if it exists // check if it exists
if (JFile::exists($filePath)) if (JFile::exists($filePath))
{ {
// get the file // get the file
require_once $filePath; require_once $filePath;
} }
elseif (JFile::exists($fullPath)) elseif (JFile::exists($fullPathModel))
{ {
// get the file // get the file
require_once $fullPath; require_once $fullPathModel;
} }
// build class names // build class names
$modelClass = $prefix.$name; $modelClass = $Component . 'Model' . $name;
if (class_exists($modelClass)) if (class_exists($modelClass))
{ {
// initialize the model // initialize the model

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');

View File

@ -96,8 +96,7 @@ COM_MEMBERSMANAGER_MEMBER_PASSWORD_DESCRIPTION="Enter the password for the membe
COM_MEMBERSMANAGER_MEMBER_PASSWORD_LABEL="Password" COM_MEMBERSMANAGER_MEMBER_PASSWORD_LABEL="Password"
COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions" COM_MEMBERSMANAGER_MEMBER_PERMISSION="Permissions"
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE="Profile Image" COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE="Profile Image"
COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION=" COM_MEMBERSMANAGER_MEMBER_PROFILE_IMAGE_UPLOADER_DESCRIPTION="<div id='uikittwo-profile-image-uploader' style='display:none'>
<div id='uikittwo-profile-image-uploader' style='display:none'>
<div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'> <div id='uikittwo-upload-drop-profile-image' class='uk-placeholder uk-text-center'>
<br /><br /> <br /><br />
<i class='uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right'></i> <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_AUTHORISED_TO_VIEW_PROFILE="Not authorised to view profile!"
COM_MEMBERSMANAGER_NOT_ENOUGH_DATA="Not enough data" COM_MEMBERSMANAGER_NOT_ENOUGH_DATA="Not enough data"
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="No Access"
COM_MEMBERSMANAGER_NO_ACCESS_GRANTED="No Access Granted!" COM_MEMBERSMANAGER_NO_ACCESS_GRANTED="No Access Granted!"
COM_MEMBERSMANAGER_NO_ACCESS_TO_VIEW_DETAILS="No Access to View Details" COM_MEMBERSMANAGER_NO_ACCESS_TO_VIEW_DETAILS="No Access to View Details"
COM_MEMBERSMANAGER_NO_DETAILS_FOUND="No Details Found" 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_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="Print"
COM_MEMBERSMANAGER_PRINT_CLOSE="Print & Close" COM_MEMBERSMANAGER_PRINT_CLOSE="Print & Close"
COM_MEMBERSMANAGER_PROFILE="Member Profile" COM_MEMBERSMANAGER_PROFILE="Profile"
COM_MEMBERSMANAGER_PROFILE_DESC="Member Profile" COM_MEMBERSMANAGER_PROFILE_DESC="Member Profile"
COM_MEMBERSMANAGER_PROPORTIONALLY="proportionally" COM_MEMBERSMANAGER_PROPORTIONALLY="proportionally"
COM_MEMBERSMANAGER_RELATIONSHIPS="Relationships" 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_WARNING_IMPORT_UPLOAD_ERROR="Warning, import upload error."
COM_MEMBERSMANAGER_WELCOME_S_UPDATE_YOUR_DETAILS="Welcome %s, update your details" 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_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_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_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." 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."

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_BASE') or die('Restricted access'); defined('JPATH_BASE') or die('Restricted access');

View File

@ -9,6 +9,7 @@
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
*/ */
// No direct access to this file // No direct access to this file
defined('JPATH_BASE') or die('Restricted access'); defined('JPATH_BASE') or die('Restricted access');

Some files were not shown because too many files have changed in this diff Show More