Tuesday 12 May 2009 4:49:16 am
For example, in a multilingual setup problems may arise with the 'hide' functionality. I don't want editors in one language to be able to hide items that have a translation in another language. So I want to restrict the ability to hide thing by language: only allow hiding items if there are no translations: In kernel/content/module.php:
$FunctionList['hide'] = array( 'Subtree' => $Subtree,'Language' => $Language );
in kernel/content/hide.php
$curNode = eZContentObjectTreeNode::fetch( $NodeID );
//start hack
$obj = $curNode->object();
$availableLanguages = $obj->availableLanguages();
foreach ($availableLanguages as $availableLanguage)
{
$moduleAccessAllowed = $obj->checkAccess( 'hide', false, false, false, $availableLanguage );
if (!$moduleAccessAllowed)
return $Module->handleError( eZError::KERNEL_ACCESS_DENIED, 'kernel' );
}
//end hack
Probably better if it goes to a page explaining the restriction, rather than serving a page with 'access denied'. And yes, I know. Don't touch the kernel.
Certified eZ publish developer with over 9 years of eZ publish experience. Available for challenging eZ publish projects as a technical consultant, project manager, trouble shooter or strategic advisor.
|