Skip to content

Instantly share code, notes, and snippets.

@charlycoste
Created January 6, 2013 08:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charlycoste/4466144 to your computer and use it in GitHub Desktop.
Save charlycoste/4466144 to your computer and use it in GitHub Desktop.
Makes User objects as containers and move all articles bookmarks to users subnodes.
<?php
$output = new ezcConsoleOutput();
$options = array(
'successChar' => $output->formatText( '+', 'success' ),
'failureChar' => $output->formatText( '-', 'failure' ),
);
$status = new ezcConsoleStatusbar( $output, $options );
$script = eZScript::instance();
$script->setUseSiteAccess('private');
$script->startup();
$script->initialize();
$userClass = eZContentClass::fetchByIdentifier('user');
if ($userClass->attribute('is_container') == '0') {
$userClass->setAttribute('is_container','1');
$userClass->store();
}
$users = $userClass->objectList();
$db = eZDB::instance();
$db->begin();
foreach ($users as $user)
{
$bookmarks = eZContentBrowseBookmark::fetchListForUser($user->attribute('id'));
foreach ($bookmarks as $bookmark) {
$object = $bookmark->fetchNode()->object();
if ($object->contentClassIdentifier() == 'article')
{
$newNode = $object->addLocation($user->mainNodeID());
$success = !empty($newNode);
$status->add($success);
if ($success) {
$bookmark->remove();
}
}
}
}
$db->commit();
$output->outputLine();
$output->outputLine( 'Success: ' . $status->getSuccessCount() . ', Failed: ' . $status->getFailureCount() );
$script->shutdown(); // Finish execution
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment