Inheriting global disable setting for export & embed when saving [HFP-277]

improved-embed-and-download
Paal Joergensen 2016-12-16 13:29:18 +01:00
parent ea0362c3da
commit 7b39a6900c
1 changed files with 21 additions and 9 deletions

View File

@ -2465,21 +2465,33 @@ class H5PCore {
} }
/** /**
* Determine disable state from sources. * Create representation of display options as int
* *
* @param array $sources * @param array $sources
* @param int $current * @param int $current
* @return int * @return int
*/ */
public function getDisplayOptionsAsByte(&$sources, $current) { public function getStorableDisplayOptions(&$sources, $current) {
// Download - force setting it if always on or always off
$export = $this->h5pF->getOption('export', H5PDisplayOptionBehaviour::ALWAYS_SHOW);
if ($export == H5PDisplayOptionBehaviour::ALWAYS_SHOW ||
$export == H5PDisplayOptionBehaviour::NEVER_SHOW) {
$sources['download'] = ($export == H5PDisplayOptionBehaviour::ALWAYS_SHOW);
}
// Embed - force setting it if always on or always off
$embed = $this->h5pF->getOption('embed', H5PDisplayOptionBehaviour::ALWAYS_SHOW);
if ($embed == H5PDisplayOptionBehaviour::ALWAYS_SHOW ||
$embed == H5PDisplayOptionBehaviour::NEVER_SHOW) {
$sources['embed'] = ($embed == H5PDisplayOptionBehaviour::ALWAYS_SHOW);
}
foreach (H5PCore::$disable as $bit => $option) { foreach (H5PCore::$disable as $bit => $option) {
if ($this->h5pF->getOption(($bit & H5PCore::DISABLE_DOWNLOAD ? 'export' : $option), TRUE)) { if (!isset($sources[$option]) || !$sources[$option]) {
if (!isset($sources[$option]) || !$sources[$option]) { $current |= $bit; // Disable
$current |= $bit; // Disable }
} else {
else { $current &= ~$bit; // Enable
$current &= ~$bit; // Enable
}
} }
} }
return $current; return $current;