function multisites_content_store($pObject, $pParamHash) { global $gBitSmarty, $gBitUser, $gBitSystem; if ($gBitSystem->isFeatureActive('multisites_per_site_content') && ($gBitUser->hasPermission('p_multisites_restrict_content') || $gBitUser->isRegistered())) { if (is_object($pObject) && empty($pParamHash['content_id'])) { $pParamHash['content_id'] = $pObject->mContentId; } if (!empty($pParamHash['content_id'])) { $multisites = new Multisites(); $multisitesList = $multisites->getMultisites(NULL, $pParamHash['content_id']); // Now we need to work out if we need to save at all $selectedItem = array(); if (!empty($multisitesList)) { foreach ($multisitesList as $site) { if (!empty($site[0]['selected'])) { $selectedItem[] = $site['multisite_id']; } } } // Quick and Dirty check to start of with if (empty($_REQUEST['multisites']) || count($_REQUEST['multisites']['multisite']) != count($selectedItem)) { $modified = TRUE; } else { // more thorough check foreach ($selectedItem as $item) { if (!in_array($item, $_REQUEST['multisites']['multisite'])) { $modified = TRUE; } } } if (!empty($modified)) { // first remove all entries with this content_id if ($multisites->expungeRestrictions(NULL, $pParamHash['content_id']) && !empty($_REQUEST['multisites'])) { // insert the content restrictions foreach ($_REQUEST['multisites']['multisite'] as $m_id) { $siteHash[] = array('multisite_id' => $m_id, 'content_id' => $pParamHash['content_id']); } if (!$multisites->insertRestriction($siteHash)) { $gBitSmarty->assign('msg', tra("There was a problem setting the site restriction.")); $gBitSmarty->display('error.tpl'); die; } } } } } }