Merge branch 'no-url-fopen' of https://github.com/h5p/h5p-php-library
commit
e76fc9eff3
|
@ -74,12 +74,6 @@ interface H5PFrameworkInterface {
|
||||||
*/
|
*/
|
||||||
public function getUploadedH5pFolderPath();
|
public function getUploadedH5pFolderPath();
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
* Path to the folder where all h5p files are stored
|
|
||||||
*/
|
|
||||||
public function getH5pPath();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the path to the last uploaded h5p file
|
* Get the path to the last uploaded h5p file
|
||||||
*
|
*
|
||||||
|
@ -1270,7 +1264,7 @@ class H5PStorage {
|
||||||
$contentId = $this->h5pC->saveContent($content, $contentMainId);
|
$contentId = $this->h5pC->saveContent($content, $contentMainId);
|
||||||
$this->contentId = $contentId;
|
$this->contentId = $contentId;
|
||||||
|
|
||||||
$contents_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content';
|
$contents_path = $this->h5pC->path . DIRECTORY_SEPARATOR . 'content';
|
||||||
if (!is_dir($contents_path)) {
|
if (!is_dir($contents_path)) {
|
||||||
mkdir($contents_path, 0777, true);
|
mkdir($contents_path, 0777, true);
|
||||||
}
|
}
|
||||||
|
@ -1298,7 +1292,7 @@ class H5PStorage {
|
||||||
$oldOnes = 0;
|
$oldOnes = 0;
|
||||||
|
|
||||||
// Find libraries directory and make sure it exists
|
// Find libraries directory and make sure it exists
|
||||||
$libraries_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'libraries';
|
$libraries_path = $this->h5pC->path . DIRECTORY_SEPARATOR . 'libraries';
|
||||||
if (!is_dir($libraries_path)) {
|
if (!is_dir($libraries_path)) {
|
||||||
mkdir($libraries_path, 0777, true);
|
mkdir($libraries_path, 0777, true);
|
||||||
}
|
}
|
||||||
|
@ -1396,8 +1390,9 @@ class H5PStorage {
|
||||||
* The content id
|
* The content id
|
||||||
*/
|
*/
|
||||||
public function deletePackage($contentId) {
|
public function deletePackage($contentId) {
|
||||||
H5PCore::deleteFileTree($this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId);
|
H5PCore::deleteFileTree($this->h5pC->path . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId);
|
||||||
$this->h5pF->deleteContentData($contentId);
|
$this->h5pF->deleteContentData($contentId);
|
||||||
|
// TODO: Delete export?
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1430,8 +1425,8 @@ class H5PStorage {
|
||||||
* The main id of the new content (used in frameworks that support revisioning)
|
* The main id of the new content (used in frameworks that support revisioning)
|
||||||
*/
|
*/
|
||||||
public function copyPackage($contentId, $copyFromId, $contentMainId = NULL) {
|
public function copyPackage($contentId, $copyFromId, $contentMainId = NULL) {
|
||||||
$source_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $copyFromId;
|
$source_path = $this->h5pC->path . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $copyFromId;
|
||||||
$destination_path = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId;
|
$destination_path = $this->h5pC->path . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR . $contentId;
|
||||||
$this->h5pC->copyFileTree($source_path, $destination_path);
|
$this->h5pC->copyFileTree($source_path, $destination_path);
|
||||||
|
|
||||||
$this->h5pF->copyLibraryUsage($contentId, $copyFromId, $contentMainId);
|
$this->h5pF->copyLibraryUsage($contentId, $copyFromId, $contentMainId);
|
||||||
|
@ -1467,7 +1462,7 @@ Class H5PExport {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function createExportFile($content) {
|
public function createExportFile($content) {
|
||||||
$h5pDir = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR;
|
$h5pDir = $this->h5pC->path . DIRECTORY_SEPARATOR;
|
||||||
$tempPath = $h5pDir . 'temp' . DIRECTORY_SEPARATOR . $content['id'];
|
$tempPath = $h5pDir . 'temp' . DIRECTORY_SEPARATOR . $content['id'];
|
||||||
$zipPath = $h5pDir . 'exports' . DIRECTORY_SEPARATOR . $content['id'] . '.h5p';
|
$zipPath = $h5pDir . 'exports' . DIRECTORY_SEPARATOR . $content['id'] . '.h5p';
|
||||||
|
|
||||||
|
@ -1570,7 +1565,7 @@ Class H5PExport {
|
||||||
* Identifier for the H5P
|
* Identifier for the H5P
|
||||||
*/
|
*/
|
||||||
public function deleteExport($contentId) {
|
public function deleteExport($contentId) {
|
||||||
$h5pDir = $this->h5pF->getH5pPath() . DIRECTORY_SEPARATOR;
|
$h5pDir = $this->h5pC->path . DIRECTORY_SEPARATOR;
|
||||||
$zipPath = $h5pDir . 'exports' . DIRECTORY_SEPARATOR . $contentId . '.h5p';
|
$zipPath = $h5pDir . 'exports' . DIRECTORY_SEPARATOR . $contentId . '.h5p';
|
||||||
if (file_exists($zipPath)) {
|
if (file_exists($zipPath)) {
|
||||||
unlink($zipPath);
|
unlink($zipPath);
|
||||||
|
@ -1639,11 +1634,12 @@ class H5PCore {
|
||||||
* @param boolean $export enabled?
|
* @param boolean $export enabled?
|
||||||
* @param int $development_mode mode.
|
* @param int $development_mode mode.
|
||||||
*/
|
*/
|
||||||
public function __construct($H5PFramework, $path, $language = 'en', $export = FALSE, $development_mode = H5PDevelopment::MODE_NONE) {
|
public function __construct($H5PFramework, $path, $url, $language = 'en', $export = FALSE, $development_mode = H5PDevelopment::MODE_NONE) {
|
||||||
$this->h5pF = $H5PFramework;
|
$this->h5pF = $H5PFramework;
|
||||||
|
|
||||||
$this->h5pF = $H5PFramework;
|
$this->h5pF = $H5PFramework;
|
||||||
$this->path = $path;
|
$this->path = $path;
|
||||||
|
$this->url = $url;
|
||||||
$this->exportEnabled = $export;
|
$this->exportEnabled = $export;
|
||||||
$this->development_mode = $development_mode;
|
$this->development_mode = $development_mode;
|
||||||
|
|
||||||
|
@ -1777,8 +1773,9 @@ class H5PCore {
|
||||||
* @param array $dependency
|
* @param array $dependency
|
||||||
* @param string $type
|
* @param string $type
|
||||||
* @param array $assets
|
* @param array $assets
|
||||||
|
* @param string $prefix Optional. Make paths relative to another dir.
|
||||||
*/
|
*/
|
||||||
private function getDependencyAssets($dependency, $type, &$assets) {
|
private function getDependencyAssets($dependency, $type, &$assets, $prefix = '') {
|
||||||
// Check if dependency has any files of this type
|
// Check if dependency has any files of this type
|
||||||
if (empty($dependency[$type]) || $dependency[$type][0] === '') {
|
if (empty($dependency[$type]) || $dependency[$type][0] === '') {
|
||||||
return;
|
return;
|
||||||
|
@ -1791,7 +1788,7 @@ class H5PCore {
|
||||||
|
|
||||||
foreach ($dependency[$type] as $file) {
|
foreach ($dependency[$type] as $file) {
|
||||||
$assets[] = (object) array(
|
$assets[] = (object) array(
|
||||||
'path' => $dependency['path'] . '/' . trim(is_array($file) ? $file['path'] : $file),
|
'path' => $prefix . $dependency['path'] . '/' . trim(is_array($file) ? $file['path'] : $file),
|
||||||
'version' => $dependency['version']
|
'version' => $dependency['version']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1807,7 +1804,19 @@ class H5PCore {
|
||||||
$urls = array();
|
$urls = array();
|
||||||
|
|
||||||
foreach ($assets as $asset) {
|
foreach ($assets as $asset) {
|
||||||
$urls[] = $asset->path . $asset->version;
|
$url = $asset->path;
|
||||||
|
|
||||||
|
// Add URL prefix if not external
|
||||||
|
if (strpos($asset->path, '://') === FALSE) {
|
||||||
|
$url = $this->url . $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add version/cache buster if set
|
||||||
|
if (isset($asset->version)) {
|
||||||
|
$url .= $asset->version;
|
||||||
|
}
|
||||||
|
|
||||||
|
$urls[] = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $urls;
|
return $urls;
|
||||||
|
@ -1817,23 +1826,24 @@ class H5PCore {
|
||||||
* Return file paths for all dependecies files.
|
* Return file paths for all dependecies files.
|
||||||
*
|
*
|
||||||
* @param array $dependencies
|
* @param array $dependencies
|
||||||
|
* @param string $prefix Optional. Make paths relative to another dir.
|
||||||
* @return array files.
|
* @return array files.
|
||||||
*/
|
*/
|
||||||
public function getDependenciesFiles($dependencies) {
|
public function getDependenciesFiles($dependencies, $prefix = '') {
|
||||||
$files = array(
|
$files = array(
|
||||||
'scripts' => array(),
|
'scripts' => array(),
|
||||||
'styles' => array()
|
'styles' => array()
|
||||||
);
|
);
|
||||||
foreach ($dependencies as $dependency) {
|
foreach ($dependencies as $dependency) {
|
||||||
if (isset($dependency['path']) === FALSE) {
|
if (isset($dependency['path']) === FALSE) {
|
||||||
$dependency['path'] = $this->path . '/libraries/' . H5PCore::libraryToString($dependency, TRUE);
|
$dependency['path'] = '/libraries/' . H5PCore::libraryToString($dependency, TRUE);
|
||||||
$dependency['preloadedJs'] = explode(',', $dependency['preloadedJs']);
|
$dependency['preloadedJs'] = explode(',', $dependency['preloadedJs']);
|
||||||
$dependency['preloadedCss'] = explode(',', $dependency['preloadedCss']);
|
$dependency['preloadedCss'] = explode(',', $dependency['preloadedCss']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$dependency['version'] = "?ver={$dependency['majorVersion']}.{$dependency['minorVersion']}.{$dependency['patchVersion']}";
|
$dependency['version'] = "?ver={$dependency['majorVersion']}.{$dependency['minorVersion']}.{$dependency['patchVersion']}";
|
||||||
$this->getDependencyAssets($dependency, 'preloadedJs', $files['scripts']);
|
$this->getDependencyAssets($dependency, 'preloadedJs', $files['scripts'], $prefix);
|
||||||
$this->getDependencyAssets($dependency, 'preloadedCss', $files['styles']);
|
$this->getDependencyAssets($dependency, 'preloadedCss', $files['styles'], $prefix);
|
||||||
}
|
}
|
||||||
return $files;
|
return $files;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue