| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 188 | 2 | 3 | 0.998 | class_member_list[6] |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 188 | 282 | administrator/components/com_categories/models/category.php |
| 2 | 188 | 402 | administrator/components/com_menus/models/item.php |
| ||||
/**
* Method to delete rows.
*
* @param array An array of item ids.
*
* @return boolean Returns true on success, false on failure.
*/
public
function delete($pks) {
$pks= (array) $pks;
// Get a row instance.
$table= &$this->getTable();
// Iterate the items to delete each one.
foreach ($pks as $pk)
{
if (!$table->delete( (int) $pk))
{
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method to publish categories.
*
* @param array The ids of the items to publish.
* @param int The value of the published state
*
* @return boolean True on success.
*/
function publish($pks, $value= 1) {
$pks= (array) $pks;
// Get the current user object.
$user= &JFactory::getUser();
// Get an instance of the table row.
$table= &$this->getTable();
// Attempt to publish the items.
if (!$table->publish($pks, $value, $user->get('id')))
{
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to adjust the ordering of a row.
*
* @param int The numeric id of the row to move.
* @param integer Increment, usually +1 or -1
* @return boolean False on failure or error, true otherwise.
*/
public
function ordering($pk, $direction= 0) {
// Sanitize the id and adjustment.
$pk= (!empty($pk))
? $pk
: (int) $this->getState('category.id');
// If the ordering direction is 0 then we aren't moving anything.
if ($direction == 0) {
return TRUE;
}
// Get a row instance.
$table= &$this->getTable();
// Move the row down in the ordering.
if ($direction> 0)
{
if (!$table->orderDown($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
// Move the row up in the ordering.
else
{
if (!$table->orderUp($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method rebuild the entire nested set tree.
*
* @return boolean False on failure or error, true otherwise.
*/
public
function rebuild() {
// Get an instance of the table obejct.
$table= &$this->getTable();
if (!$table->rebuild())
{
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to perform batch operations on a category or a set of categories.
*
* @param array An array of commands to perform.
* @param array An array of category ids.
*
* @return boolean Returns true on success, false on failure.
*/
function batch($commands, $pks) {
// Sanitize user ids.
$pks= array_unique($pks);
JArrayHelper::toInteger($pks);
// Remove any values of zero.
if (array_search(0, $pks, TRUE)) {
unset ($pks[array_search(0, $pks, TRUE)]);
}
if (empty($pks)) {
$this->setError(JText::_('JError_No_items_selected'));
return FALSE;
}
$done= FALSE;
if (!empty($commands['assetgroup_id']))
{
if (!$this->_batchAccess($commands['assetgroup_id'], $pks)) {
return FALSE;
}
$done= TRUE;
}
if (!empty($commands['category_id']))
{
$cmd= JArrayHelper::getValue($commands, 'move_copy', 'c');
if ($cmd == 'c'
&& !$this->_batchCopy($commands['category_id'], $pks)) {
return FALSE;
}
else if ($cmd == 'm'
&& !$this->_batchMove($commands['category_id'], $pks)) {
return FALSE;
}
$done= TRUE;
}
if (!$done)
{
$this->setError('Categories_Error_Insufficient_batch_information');
return FALSE;
}
return TRUE;
}
/**
* Batch access level changes for a group of rows.
*
* @param int The new value matching an Asset Group ID.
* @param array An array of row IDs.
*
* @return booelan True if successful, false otherwise and internal error is set.
*/
protected
function _batchAccess($value, $pks) {
$table= &$this->getTable();
foreach ($pks as $pk)
{
$table->reset();
$table->load($pk);
$table->access = (int) $value;
if (!$table->store())
{
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
|
| ||||
/**
* Method to delete rows.
*
* @param array An array of item ids.
*
* @return boolean Returns true on success, false on failure.
*/
public
function delete($pks) {
$pks= (array) $pks;
// Get a row instance.
$table= &$this->getTable();
// Iterate the items to delete each one.
foreach ($pks as $pk)
{
if (!$table->delete( (int) $pk))
{
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method to publish categories.
*
* @param array The ids of the items to publish.
* @param int The value of the published state
*
* @return boolean True on success.
*/
function publish($pks, $value= 1) {
$pks= (array) $pks;
// Get the current user object.
$user= &JFactory::getUser();
// Get an instance of the table row.
$table= &$this->getTable();
// Attempt to publish the items.
if (!$table->publish($pks, $value, $user->get('id')))
{
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to adjust the ordering of a row.
*
* @param int The numeric id of the row to move.
* @param integer Increment, usually +1 or -1
* @return boolean False on failure or error, true otherwise.
*/
public
function ordering($pk, $direction= 0) {
// Sanitize the id and adjustment.
$pk= (!empty($pk))
? $pk
: (int) $this->getState('item.id');
// If the ordering direction is 0 then we aren't moving anything.
if ($direction == 0) {
return TRUE;
}
// Get a row instance.
$table= &$this->getTable();
// Move the row down in the ordering.
if ($direction> 0)
{
if (!$table->orderDown($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
// Move the row up in the ordering.
else
{
if (!$table->orderUp($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method rebuild the entire nested set tree.
*
* @return boolean False on failure or error, true otherwise.
*/
public
function rebuild() {
// Get an instance of the table obejct.
$table= &$this->getTable();
if (!$table->rebuild())
{
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to perform batch operations on a category or a set of categories.
*
* @param array An array of commands to perform.
* @param array An array of category ids.
*
* @return boolean Returns true on success, false on failure.
*/
function batch($commands, $pks) {
// Sanitize user ids.
$pks= array_unique($pks);
JArrayHelper::toInteger($pks);
// Remove any values of zero.
if (array_search(0, $pks, TRUE)) {
unset ($pks[array_search(0, $pks, TRUE)]);
}
if (empty($pks)) {
$this->setError(JText::_('JError_No_items_selected'));
return FALSE;
}
$done= FALSE;
if (!empty($commands['assetgroup_id']))
{
if (!$this->_batchAccess($commands['assetgroup_id'], $pks)) {
return FALSE;
}
$done= TRUE;
}
if (!empty($commands['menu_id']))
{
$cmd= JArrayHelper::getValue($commands, 'move_copy', 'c');
if ($cmd == 'c'
&& !$this->_batchCopy($commands['menu_id'], $pks)) {
return FALSE;
}
else if ($cmd == 'm'
&& !$this->_batchMove($commands['menu_id'], $pks)) {
return FALSE;
}
$done= TRUE;
}
if (!$done)
{
$this->setError('Menus_Error_Insufficient_batch_information');
return FALSE;
}
return TRUE;
}
/**
* Batch access level changes for a group of rows.
*
* @param int The new value matching an Asset Group ID.
* @param array An array of row IDs.
*
* @return booelan True if successful, false otherwise and internal error is set.
*/
protected
function _batchAccess($value, $pks) {
$table= &$this->getTable();
foreach ($pks as $pk)
{
$table->reset();
$table->load($pk);
$table->access = (int) $value;
if (!$table->store())
{
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
|
| |||
/**
* Method to delete rows.
*
* @param array An array of item ids.
*
* @return boolean Returns true on success, false on failure.
*/
public
function delete($pks) {
$pks= (array) $pks;
// Get a row instance.
$table= &$this->getTable();
// Iterate the items to delete each one.
foreach ($pks as $pk) {
if (!$table->delete( (int) $pk)) {
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method to publish categories.
*
* @param array The ids of the items to publish.
* @param int The value of the published state
*
* @return boolean True on success.
*/
function publish($pks,$value=1) {
$pks= (array) $pks;
// Get the current user object.
$user= &JFactory::getUser();
// Get an instance of the table row.
$table= &$this->getTable();
// Attempt to publish the items.
if (!$table->publish($pks,$value,$user->get('id'))) {
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to adjust the ordering of a row.
*
* @param int The numeric id of the row to move.
* @param integer Increment, usually +1 or -1
* @return boolean False on failure or error, true otherwise.
*/
public
function ordering($pk,$direction=0) {
// Sanitize the id and adjustment.
$pk=(!empty($pk))
? $pk
: (int) $this->getState( [[#variable541a9a20]]);
// If the ordering direction is 0 then we aren't moving anything.
if ($direction == 0) {
return TRUE;
}
// Get a row instance.
$table= &$this->getTable();
// Move the row down in the ordering.
if ($direction>0) {
if (!$table->orderDown($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
// Move the row up in the ordering.
else {
if (!$table->orderUp($pk)) {
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
/**
* Method rebuild the entire nested set tree.
*
* @return boolean False on failure or error, true otherwise.
*/
public
function rebuild() {
// Get an instance of the table obejct.
$table= &$this->getTable();
if (!$table->rebuild()) {
$this->setError($table->getError());
return FALSE;
}
return TRUE;
}
/**
* Method to perform batch operations on a category or a set of categories.
*
* @param array An array of commands to perform.
* @param array An array of category ids.
*
* @return boolean Returns true on success, false on failure.
*/
function batch($commands,$pks) {
// Sanitize user ids.
$pks=array_unique($pks);
JArrayHelper::toInteger($pks);
// Remove any values of zero.
if (array_search(0,$pks,TRUE)) {
unset ($pks[array_search(0,$pks,TRUE)]);
}
if (empty($pks)) {
$this->setError(JText::_('JError_No_items_selected'));
return FALSE;
}
$done=FALSE;
if (!empty($commands['assetgroup_id'])) {
if (!$this->_batchAccess($commands['assetgroup_id'],$pks)) {
return FALSE;
}
$done=TRUE;
}
if (!empty($commands[ [[#variable541a97c0]]])) {
$cmd=JArrayHelper::getValue($commands,'move_copy','c');
if ($cmd == 'c'
&& !$this->_batchCopy($commands[ [[#variable541a97c0]]],$pks)) {
return FALSE;
}
else if ($cmd == 'm'
&& !$this->_batchMove($commands[ [[#variable541a97c0]]],$pks)) {
return FALSE;
}
$done=TRUE;
}
if (!$done) {
$this->setError( [[#variable541a9800]]);
return FALSE;
}
return TRUE;
}
/**
* Batch access level changes for a group of rows.
*
* @param int The new value matching an Asset Group ID.
* @param array An array of row IDs.
*
* @return booelan True if successful, false otherwise and internal error is set.
*/
protected
function _batchAccess($value,$pks) {
$table= &$this->getTable();
foreach ($pks as $pk) {
$table->reset();
$table->load($pk);
$table->access = (int) $value;
if (!$table->store()) {
$this->setError($table->getError());
return FALSE;
}
}
return TRUE;
}
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| 1 | 1 | [[#541a9a20]] | 'category.id' |
| 1 | 2 | [[#541a9a20]] | 'item.id' |
| 2 | 1 | [[#541a97c0]] | 'category_id' |
| 2 | 2 | [[#541a97c0]] | 'menu_id' |
| 3 | 1 | [[#541a9800]] | 'Categories_Error_Insufficient_batch_information' |
| 3 | 2 | [[#541a9800]] | 'Menus_Error_Insufficient_batch_information' |