$cdir = $this->wdir . '/commerce/';
$file = $cdir . $this->fluidbookSettings->basketReferences;
- $refs = ExcelToArray::excelToArrayKeyVars($file, 'Excel2007', true);
+ $refs = ExcelToArray::excelToArrayKeyVars($file, null, true);
$this->config->basketReferences = [];
foreach ($refs as $ean => $ref) {
- $this->config->basketReferences[$ean] = $ref;
- $this->config->basketReferences[$ean]['angle_url'] = base64_encode(file_get_contents($this->wdir . '/commerce/opt/' . $ean . '-angle.jpg'));
+ $this->config->set('basketReferences.' . $ean, $ref);
+ $f = $this->wdir . '/commerce/opt/' . $ean . '-angle.jpg';
+ if (file_exists($f)) {
+ $this->config->set('basketReferences.' . $ean . '.angle_url', base64_encode(file_get_contents($f)));
+ }
}
$odir = $cdir . '/opt/';
$this->config->$pagesList = $list;
}
- $this->checkTabsSVG($opt);
+ if (!$this->checkTabsSVG($opt)) {
+ $this->config->svgTabs = false;
+ $this->config->tabsHTML5 = '';
+ }
}
protected function checkTabsSVG($svg)
{
- $xmlsvg = simplexml_load_string(file_get_contents($svg));
- $xmlsvg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');
- $missing = [];
- for ($i = 1; $i <= count($this->config->tabsPages); $i++) {
- if (!$xmlsvg->xpath('//svg:g[@id="o' . $i . '"]')) {
- $missing[] = 'o' . $i;
+ try {
+ $xmlsvg = simplexml_load_string(file_get_contents($svg));
+ $xmlsvg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');
+ $missing = [];
+ for ($i = 1; $i <= count($this->config->tabsPages); $i++) {
+ if (!$xmlsvg->xpath('//svg:g[@id="o' . $i . '"]')) {
+ $missing[] = 'o' . $i;
+ }
}
- }
- if (count($missing)) {
- $this->addIssue(FluidbookHealthIssues::TYPE_TABS_MISSING_TAB_ID, ['missing_tabs' => implode(', ', $missing)]);
+ if (count($missing)) {
+ $this->addIssue(FluidbookHealthIssues::TYPE_TABS_MISSING_TAB_ID, ['missing_tabs' => implode(', ', $missing)]);
+ }
+ } catch (\Exception $e) {
+ $this->addIssue(FluidbookHealthIssues::TYPE_TABS_INVALID_SVG, ['error' => $e->getMessage()]);
+ return false;
}
+ return true;
}
}
const TYPE_THUMBS_PDF_MISSING = 8;
const TYPE_TIMEOUT_MAKE_SVG = 9;
const TYPE_NOT_VALID_IMAGE_IN_LINK = 10;
+ const TYPE_TABS_INVALID_SVG = 11;
const CRIT_ERROR = 5;
const CRIT_WARNING = 3;
'fixText' => __('Aller sur l\'éditeur de liens'),
'fixURL' => $linkeditorURL,
],
+ static::TYPE_TABS_INVALID_SVG =>
+ [
+ 'summary' => __('Fichier SVG des onglets non valide'),
+ 'criticality' => self::CRIT_ERROR,
+ 'text' => 'Le format du SVG des onglets est invalide. L\'erreur suivante est retournée : :error',
+ 'fixText' => __('Corriger le SVG'),
+ ],
];
}
if (!isset($data['fixText'])) {
$fix = '';
+ } else if (!isset($data['fixURL'])) {
+ $fix = $data['fixText'];
} else {
$fix = '<a class="btn-link" target="_blank" href="' . __($data['fixURL'], $replaceRaw) . '">' . $data['fixText'] . '</a>';
}
use App\Models\Traits\PublicationTags;
use App\Models\Traits\SCORMVersionTrait;
use App\Models\Traits\ToolboxSettings;
+use App\Slack\Mattermost;
use App\Slack\Slack;
use App\SubForms\Link\Base;
use Cubedesigners\UserDatabase\Permissions;