本文整理汇总了PHP中JTable::setLocation方法的典型用法代码示例。如果您正苦于以下问题:PHP JTable::setLocation方法的具体用法?PHP JTable::setLocation怎么用?PHP JTable::setLocation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JTable
的用法示例。
在下文中一共展示了JTable::setLocation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onBeforeSave
/**
* onBeforeSave method. Hook for chidlren model to prepare the data.
*
* @param array $data The data to be saved.
* @param JTable $table The table object.
*
* @return boolean
*/
protected function onBeforeSave(&$data, $table)
{
// User
$user = JFactory::getUser();
// Create action
if (!$table->id) {
// Detect the context
$context = isset($data['parent_id']) && $data['parent_id'] ? 'com_k2.category.' . $data['parent_id'] : 'com_k2';
// If the user has not the permission to create category stop the processs. Otherwise handle the category state
if (!$user->authorise('k2.category.create', $context)) {
$this->setError(JText::_('K2_YOU_ARE_NOT_AUTHORIZED_TO_PERFORM_THIS_OPERATION'));
return false;
} else {
// User can create the category but cannot edit it's state so we set the category state to 0
if (!$user->authorise('k2.category.edit.state', $context)) {
$data['state'] = 0;
}
}
}
// Edit action
if ($table->id) {
// Detect the context
$context = 'com_k2.category.' . $table->id;
// Actions
$canEdit = $user->authorise('k2.category.edit', $context) || $user->authorise('k2.item.edit.own', $context) && $user->id == $table->created_by;
$canEditState = $user->authorise('k2.item.edit.state', $context);
// User cannot edit the category neither it's state. Stop the process
if (!$canEdit && !$canEditState) {
$this->setError(JText::_('K2_YOU_ARE_NOT_AUTHORIZED_TO_PERFORM_THIS_OPERATION'));
return false;
} else {
// Store the input states values in case we need them after
$state = isset($data['state']) ? $data['state'] : $table->state;
// User cannot edit the item. Reset the input
if (!$canEdit) {
$data = array();
$data['id'] = $table->id;
}
// Set the states values depending on permissions
$data['state'] = $canEditState ? $state : $table->state;
}
}
// Get timezone
$configuration = JFactory::getConfig();
$userTimeZone = $user->getParam('timezone', $configuration->get('offset'));
// Handle date data
if ($data['id'] && isset($data['createdDate'])) {
// Convert date to UTC
$createdDateTime = $data['createdDate'] . ' ' . $data['createdTime'];
$data['created'] = JFactory::getDate($createdDateTime, $userTimeZone)->toSql();
}
// Update category location
if (isset($data['parent_id']) && $table->parent_id != $data['parent_id'] || !$data['id']) {
$table->setLocation($data['parent_id'], 'last-child');
}
if ($this->getState('patch') && isset($data['parent_id'])) {
$table->setLocation($data['parent_id'], 'first-child');
}
// Image
if (isset($data['image'])) {
// Detect if category has an image
$data['image']['flag'] = (int) (!$data['image']['remove'] && ($data['image']['id'] || $data['image']['temp']));
// Store the input of the image to state
$this->setState('image', $data['image']);
// Unset values we do not want to get stored to our database
unset($data['image']['path']);
unset($data['image']['id']);
unset($data['image']['temp']);
unset($data['image']['remove']);
// Encode the value to JSON
$data['image'] = json_encode($data['image']);
}
// Extra fields
if (isset($data['extra_fields'])) {
$data['extra_fields'] = json_encode($data['extra_fields']);
}
// Add flag for moving a category to trash
if (isset($data['state']) && $data['state'] == -1 && $table->state != -1) {
$this->setState('trash', true);
}
return true;
}