10 $iliasPDFTestPath =
'data/' . CLIENT_ID .
'/pdf_service/';
11 if (!file_exists($iliasPDFTestPath)) {
12 mkdir($iliasPDFTestPath);
14 return $iliasPDFTestPath;
24 $content = preg_replace(
'/@media[\s]* print/',
'@media nothing', $content);
36 $content = preg_replace(
'/src:\surl\([\',\"](..\/)*(\S)/',
"src: url(./$2", $content);
46 foreach (
$form->getItems() as $item) {
48 if ($item->getChecked() !=
null && ($item->getValue() ==
true || $item->getValue() ==
'1')) {
49 $item->setChecked(
true);
62 $result =
$ilDB->query(
'SELECT service, purpose FROM pdfgen_purposes ORDER BY service, purpose');
65 $purposes[
$row[
'service']][] =
$row[
'purpose'];
77 $result =
$ilDB->query(
'SELECT service, purpose, preferred, selected FROM pdfgen_map');
80 $mappings[
$row[
'service']][
$row[
'purpose']][
'selected'] =
$row[
'selected'];
81 $mappings[
$row[
'service']][
$row[
'purpose']][
'preferred'] =
$row[
'preferred'];
93 $result =
$ilDB->query(
'SELECT renderer, service, purpose FROM pdfgen_renderer_avail');
96 $renderers[
$row[
'service']][
$row[
'purpose']][] =
$row[
'renderer'];
114 array(
'selected' => array(
'text', $renderer) ),
116 'service' => array(
'text',
$service),
117 'purpose' => array(
'text', $purpose)
128 public static function getRendererConfig(
$service, $purpose, $renderer)
134 $query =
'SELECT config FROM pdfgen_conf WHERE renderer = ' .
$ilDB->quote($renderer,
'text') .
135 ' AND service = ' .
$ilDB->quote(
$service,
'text') .
' AND purpose = ' .
$ilDB->quote($purpose,
'text');
139 return self::getRendererDefaultConfig(
$service, $purpose, $renderer);
142 return json_decode(
$row[
'config'],
true);
152 public static function getRendererDefaultConfig(
$service, $purpose, $renderer)
155 $class_instance = self::getRendererInstance($renderer);
157 return $class_instance->getDefaultConfig(
$service, $purpose);
170 $query =
'DELETE FROM pdfgen_conf WHERE renderer = ' .
$ilDB->quote($renderer,
'text') .
171 ' AND service = ' .
$ilDB->quote(
$service,
'text') .
' AND purpose = ' .
$ilDB->quote($purpose,
'text');
181 public static function getRendererInstance($renderer)
187 $result =
$ilDB->query(
'SELECT path FROM pdfgen_renderer WHERE renderer = ' .
$ilDB->quote($renderer,
'text'));
190 throw new Exception(
'No such renderer - given: ' . $renderer);
194 include_once
$row[
'path'];
195 if (self::isRendererPlugin(
$row[
'path'])) {
196 $classname =
'il' . $renderer .
'RendererPlugin';
198 $classname =
'il' . $renderer .
'Renderer';
201 if (
false && !class_exists($classname)) {
203 'Class failed loading, including path ' .
$row[
'path']
204 .
' did not lead to class definition ' . $classname .
' being available.'
208 $class_instance =
new $classname;
209 return $class_instance;
218 $needle =
'Plugin.php';
219 $length = strlen($needle);
220 return (substr(
$path, -$length) === $needle);
229 public static function saveRendererPurposeConfig(
$service, $purpose, $renderer,
$config)
235 $query =
'DELETE FROM pdfgen_conf WHERE renderer = ' .
$ilDB->quote($renderer,
'text') .
236 ' AND service = ' .
$ilDB->quote(
$service,
'text') .
' AND purpose = ' .
$ilDB->quote($purpose,
'text');
243 'conf_id' => array(
'integer',
$ilDB->nextId(
'pdfgen_conf')),
244 'renderer' => array(
'text', $renderer),
245 'service' => array(
'text',
$service),
246 'purpose' => array(
'text', $purpose),
247 'config' => array(
'clob', json_encode(
$config))
257 public static function getRendererMapForPurpose(
$service, $purpose)
263 $result =
$ilDB->query(
'SELECT preferred, selected FROM pdfgen_map WHERE
264 service = ' .
$ilDB->quote(
$service,
'text') .
' AND purpose=' .
$ilDB->quote($purpose,
'text'));
267 return array(
'selected' =>
'TCPDF',
'preferred' =>
'TCPDF');
An exception for terminatinating execution or to throw for unit testing.
Class ilPDFGeneratorUtils.
static removeRendererConfig($service, $purpose, $renderer)
static removeWrongPathFromStyleFiles($path)
static updateRendererSelection($service, $purpose, $renderer)
static setCheckedIfTrue(\ilPropertyFormGUI $form)
static removePrintMediaDefinitionsFromStyleFile($path)
static isRendererPlugin($path)
if(isset($_POST['submit'])) $form