get_id(); $request = http_request::getInstance(); $parm = $request->get_parms( 'act', 'sbas', 'presetid', 'title', 'f', 'debug' ); $ret = array('parm' => $parm); switch ($parm['act']) { case 'DELETE': $sql = 'DELETE FROM edit_presets WHERE edit_preset_id = :editpresetid AND usr_id = :usr_id'; $params = array( ':editpresetid' => $parm['presetid'], ':usr_id' => $usr_id ); $stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute($params); $stmt->closeCursor(); $ret['html'] = xlist($app, $parm['sbas'], $usr_id); break; case 'SAVE': $dom = new DOMDocument('1.0', 'UTF-8'); $dom->standalone = true; $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $xml = '' . $parm['f'] . ''; $dom->loadXML($xml); $sql = 'INSERT INTO edit_presets (creation_date, sbas_id, usr_id, title, xml) VALUES (NOW(), :sbas_id, :usr_id, :title, :presets)'; $params = array( ':sbas_id' => $parm['sbas'] , ':usr_id' => $usr_id , ':title' => $parm['title'] , ':presets' => $dom->saveXML() ); $stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute($params); $ret['html'] = xlist($app, $parm['sbas'], $usr_id); break; case 'LIST': $ret['html'] = xlist($app, $parm['sbas'], $usr_id); break; case "LOAD": $sql = 'SELECT edit_preset_id, creation_date, title, xml FROM edit_presets WHERE edit_preset_id = :edit_preset_id'; $stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute(array(':edit_preset_id' => $parm['presetid'])); $row = $stmt->fetch(PDO::FETCH_ASSOC); $stmt->closeCursor(); $fields = array(); if ($row && ($sx = simplexml_load_string($row['xml']))) { foreach ($sx->fields->children() as $fn => $fv) { if ( ! array_key_exists($fn, $fields)) $fields[$fn] = array(); $fields[$fn][] = trim($fv); } } $ret['fields'] = $fields; break; } function xlist(Application $app, $sbas_id, $usr_id) { $conn = connection::getPDOConnection($app); $html = ''; $sql = 'SELECT edit_preset_id, creation_date, title, xml FROM edit_presets WHERE usr_id = :usr_id AND sbas_id = :sbas_id ORDER BY creation_date ASC'; $stmt = $conn->prepare($sql); $stmt->execute(array(':sbas_id' => $sbas_id, ':usr_id' => $usr_id)); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt->closeCursor(); foreach ($rs as $row) { if ( ! ($sx = simplexml_load_string($row['xml']))) continue; $t_desc = array(); foreach ($sx->fields->children() as $fn => $fv) { if ( ! array_key_exists($fn, $t_desc)) $t_desc[$fn] = trim($fv); else $t_desc[$fn] .= ' ; ' . trim($fv); } $desc = ''; foreach ($t_desc as $fn => $fv) $desc .= '

' . $fn . ': ' . str_replace(array('&', '<', '>'), array('&', '<', '>'), $fv) . '

' . "\n"; ob_start(); ?>