* @author Claroline Team <*****@*****.**> * @author Frederic Minne <*****@*****.**> * @license http://www.gnu.org/copyleft/gpl.html * GNU GENERAL PUBLIC LICENSE version 2 or later * @package core.linker */ try { require_once dirname(__FILE__) . '/../inc/claro_init_global.inc.php'; FromKernel::uses('core/linker.lib', 'utils/ajax.lib', 'utils/input.lib'); ResourceLinker::init(); $userInput = Claro_UserInput::getInstance(); $userInput->setValidator('cmd', new Claro_Validator_AllowedList(array('getLinkList', 'getResourceList', 'resolveLocator'))); $cmd = $userInput->get('cmd', 'getResourceList'); $locator = isset($_REQUEST['crl']) && !empty($_REQUEST['crl']) ? ClarolineResourceLocator::parse(rawurldecode($_REQUEST['crl'])) : ResourceLinker::$Navigator->getCurrentLocator(array()); if ('getLinkList' == $cmd) { $linkListIt = ResourceLinker::getLinkList($locator); // FIXME : use getResourceName instead of the title recorded in database ! if (empty($linkListIt)) { $linkList = array(); } else { $linkList = array(); // $linkList = iterator_to_array( $linkListIt ); foreach ($linkListIt as $link) { $linkList[] = array('crl' => $link['crl'], 'name' => ResourceLinker::$Resolver->getResourceName(ClarolineResourceLocator::parse($link['crl']))); } } $response = new Json_Response($linkList); } elseif ('resolveLocator' == $cmd) { $resourceLinkerResolver = new ResourceLinkerResolver(); $url = $resourceLinkerResolver->resolve($locator); $response = new Json_Response(array('url' => $url));