function getManagementOfXML($fSelectorX, $fDivX, $labelX, $collection_id, $package_id, $itemName, $errorInDownload, $loc4msg, &$fCount, $resultMsg) { $resultText = ''; $isMultiPart = stripos($fSelectorX, '$') !== FALSE; $basename = DCTL_PROJECT_PATH . $collection_id; if ($package_id != '') { $basename .= SYS_PATH_SEP . $package_id; } $dPath = $basename; $regexp = str_ireplace(DCTL_PACKAGE_BODY_REGEXP1, DCTL_PACKAGE_BODY_REGEXP2, $fSelectorX); $variants = array(); $handle = opendir($dPath); while ($entry = readdir($handle)) { if (substr($entry, 0, 1) != '.') { if ($entry == DCTL_PACKAGE_FRONT || $entry == DCTL_PACKAGE_BACK || $isMultiPart) { $variants[] = $entry; } } } $variants = array_values(preg_grep('/^' . $regexp . '/', $variants)); $idx = count($variants); sort($variants); $fDiv0 = str_ireplace('$', '', $fDivX); $label0 = str_ireplace('$', '', $labelX); $resultText .= putOpenCloseLevel($fDiv0, $loc4msg, false, 'Gestione ' . $label0 . ' di "' . $itemName . '" (' . $idx . ')', &$resultMsg); if ($errorInDownload && $loc4msg == $fDiv0) { $resultText .= '<span class="error">ATTENZIONE: il file "' . $_REQUEST['file'] . '" di "' . $itemName . '" è già stato bloccato... download annullato!</span><br />'; } $resultText .= '<table>'; $resultText .= '<thead>'; $resultText .= '<tr>'; $resultText .= '<th class="label">nome</th>'; $resultText .= '<th>ult. modifica</th>'; $resultText .= '<th>operazioni</th>'; $resultText .= '<th>utente</th>'; $resultText .= '</tr>'; $resultText .= '</thead>'; $resultText .= '<tbody>'; foreach ($variants as $vKey => $fSelector) { switch ($vKey) { case 0: $label = str_ireplace('$', 'iniziale <em>(front)</em>', $labelX); break; case count($variants) - 1: $vKey = 999; $label = str_ireplace('$', 'finale <em>(back)</em>', $labelX); break; default: $idx = sprintf("%03d", $vKey); $label = str_ireplace('$', $idx . ' <em>(body)</em>', $labelX); break; } $idx = sprintf("%03d", $vKey); $fDiv = str_ireplace('$', $vKey, $fDivX); $fSelector = str_ireplace('$', $idx, $fSelectorX); $fPath = $basename . SYS_PATH_SEP . $fSelector; $who = ''; $content = array(); $label .= '<br/><span class="morelink">'; getPartRecord($fPath, &$packageRecord); if ($packageRecord['part_work'] != '') { $label .= $packageRecord['part_work']; } else { $label .= '???'; } $label .= '</span>'; $isLocked = checkIfLocked($fPath, &$who, &$content); $resultText .= '<tr>'; $resultText .= '<td>' . $label . '</td>'; if (is_file($fPath)) { $resultText .= '<td>' . date("d-m-y H:i", filemtime($fPath)) . '</td>'; if ($isLocked) { if ($who == DCTL_USER_ID) { $fCount++; $resultText .= '<td>'; $resultText .= '<form id="form' . $fDiv0 . '" action="' . $_SERVER['SCRIPT_NAME'] . '" method="' . DCTL_FORM_METHOD_POST . '" enctype="' . DCTL_FORM_ENCTYPE_POST . '">'; $resultText .= '<fieldset>'; $resultText .= '<span class="dctl_ok"><img src="' . DCTL_IMAGES . 'file_alert.gif" alt="(alert icon)" /> ' . 'Ricarica file</span><br />'; $resultText .= '<input type="file" name="FILE' . $fCount . '" value="' . $fPath . '" />'; $resultText .= '<input type="hidden" name="PATH" value="' . $fPath . '" />'; $resultText .= '<input type="hidden" name="ext" value="txt" />'; $resultText .= SYS_DBL_SPACE . '<input type="submit" name="upload" value="invia" />'; $resultText .= '</fieldset>'; $resultText .= '<br />'; $resultText .= '<fieldset>'; $resultText .= '<span class="dctl_ko"><img src="' . DCTL_IMAGES . 'file_alert.gif" alt="(alert icon)" /> ' . 'Sblocca il file senza ricaricare</span>'; $resultText .= '<input type="hidden" name="PATH" value="' . $fPath . '" />'; $resultText .= '<input type="hidden" name="ext" value="txt" />'; $resultText .= SYS_DBL_SPACE . '<input type="submit" name="reset" value="sblocca" />'; $resultText .= '</fieldset>'; $resultText .= '<fieldset>'; $resultText .= '<input type="hidden" name="posx" value="' . $fDiv0 . '" />'; $resultText .= '<input type="hidden" name="collection_id" value="' . $collection_id . '" />'; $resultText .= '<input type="hidden" name="package_id" value="' . $package_id . '" />'; $resultText .= '</fieldset>'; $resultText .= '</form>'; $resultText .= '</td>'; $resultText .= '<td><span class="dctl_ok">' . $who . '</span></td>'; } else { $resultText .= '<td><span class="dctl_ko"><img src="' . DCTL_IMAGES . 'page_lock.gif" alt="(locked file icon)" />  ' . 'File bloccato</span></td>'; $resultText .= '<td><span class="dctl_ko">' . $who . '</span></td>'; } } else { $resultText .= '<td id="xml-' . $fDiv . '">'; $resultText .= '<a href="indexDownload.php?'; $resultText .= 'file=' . $fPath . '&'; $resultText .= 'lock=yes&'; $resultText .= 'user='******'&'; $resultText .= 'error=yes&'; $resultText .= 'posx=' . $fDiv0 . '&'; $resultText .= 'collection_id=' . $collection_id . '&'; $resultText .= 'package_id=' . $package_id . '&'; $resultText .= '" onclick="javascript:document.getElementById(\'xml-' . $fDiv . '\').innerHTML=\''; $resultText .= '(bloccato)'; $resultText .= '\''; $resultText .= '" title="scarica il file e blocca">'; $resultText .= '<img src="' . DCTL_IMAGES . 'page_down.gif" alt="(download file icon)" />' . SYS_DBL_SPACE; $resultText .= 'Scarica e blocca</a>'; $resultText .= '</td>'; $resultText .= '<td>' . '-' . '</td>'; } } else { $resultText .= '<td>' . '<span class="error">(missing)</span>' . '</td>'; $resultText .= '<td>' . '-' . '</td>'; $resultText .= '<td>' . '-' . '</td>'; } $resultText .= '</tr>'; } if ($isMultiPart) { if (DCTL_USER_IS_EDITOR) { $resultText .= '<tr>'; $resultText .= '<td> </td>'; $resultText .= '<td> </td>'; $resultText .= '<td>'; $resultText .= '<form id="form' . $fDiv0 . '" action="' . $_SERVER['SCRIPT_NAME'] . '" method="' . DCTL_FORM_METHOD . '" enctype="' . DCTL_FORM_ENCTYPE . '">'; $resultText .= '<fieldset>'; $resultText .= '<input name="createPart" type="submit" value="Crea nuova Parte..." />'; $resultText .= '<input type="hidden" name="posx" value="' . $fDiv0 . '" />'; $resultText .= '<input type="hidden" name="collection_id" value="' . $collection_id . '" />'; $resultText .= '<input type="hidden" name="package_id" value="' . $package_id . '" />'; $resultText .= '</fieldset>'; $resultText .= '</form>'; $resultText .= '</td>'; $resultText .= '<td> </td>'; $resultText .= '</tr>'; } } $resultText .= '</tbody>'; $resultText .= '</table>'; $resultText .= '<br /></div>'; return $resultText; }
getPackageRecord($packagePath, &$packageRecord); $package_short = $packageRecord['package_short']; $returnText .= '<h2>Package "' . $packageRecord['package_short'] . ' - ' . $packageRecord['package_work'] . '"</h2>'; $package_ext = explode('_', $package_id); $package_ext = strtolower('_' . $package_ext[count($package_ext) - 1]); if (!in_array($package_ext, $EXTENSION_PACKAGE)) { $returnText .= '<span class="error">ERRORE: correggere il package "' . $packageRecord['package_short'] . '" ... estensione non riconosciuta!</span><br />'; } else { $header = $packagePath . DCTL_FILE_HEADER; $contents = cleanUpIndentation(file_get_contents($header)); $select = $PACKAGE_FIELDS['label']; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // EDIT PACKAGE $fDiv0 = 'divEditPackage'; $returnText .= putOpenCloseLevel($fDiv0, $loc4msg, $isEditPackage, 'Frontespizio Elettronico di "' . $package_short . '"', &$resultMsg); $returnText .= putEdit('editPack'); if ($isEditPackage) { $returnText .= '<form action="' . $_SERVER['PHP_SELF'] . '" method="' . DCTL_FORM_METHOD . '" enctype="' . DCTL_FORM_ENCTYPE . '">'; $returnText .= '<fieldset>'; } $returnText .= '<table>'; $returnText .= '<thead>'; $returnText .= '<tr>'; $returnText .= '<th class="label">nome</th>'; $returnText .= '<th>contenuto</th>'; $returnText .= '</tr>'; $returnText .= '</thead>'; $returnText .= '<tbody>'; $lines = explode('<!ENTITY ', $contents); foreach ($select as $field => $label) {
$returnText .= '</fieldset>'; $returnText .= '</form>'; $prosecute = in_array($packagePath, $packageList['path']); if ($prosecute) { getPackageRecord($packagePath, &$packageRecord); $package_short = $packageRecord['package_short']; $returnText .= '<h2>Package "' . $packageRecord['package_short'] . ' - ' . $packageRecord['package_work'] . '"</h2>'; $header = $packagePath . DCTL_FILE_HEADER; $contents = cleanUpIndentation(file_get_contents($header)); $select = $PACKAGE_FIELDS['label']; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // PUBBLICA $isPublished_pub = false; $fDiv0 = 'divPublishPackage'; $returnText .= putOpenCloseLevel($fDiv0, $loc4msg, $package_id != '', 'Procedure di Pubblicazione di "' . $packageRecord['package_short'] . '"', &$resultMsg); $packageState = ''; $packageState .= '<img src="' . DCTL_IMAGES . 'published_no.png" alt="(unpublished icon)" />'; $packageState .= ' non pubblicato'; $path2load = XMLDB_DBCTL_PUB . $collection_id . DB_PATH_SEP . $collection_id . DCTL_RESERVED_INFIX . $package_id . '.xml'; $xquery = ''; $xquery .= ' declare namespace xmldb="http://exist-db.org/xquery/xmldb"; '; $xquery .= ' if (fn:doc-available("' . $path2load . '")) then '; $xquery .= ' let $date := fn:adjust-dateTime-to-timezone(xmldb:last-modified("' . dirname($path2load) . '","' . basename($path2load) . '")) '; $xquery .= ' return '; $xquery .= ' <span>{fn:day-from-dateTime($date)}-{fn:month-from-dateTime($date)}-{fn:year-from-dateTime($date)} @ {fn:hours-from-dateTime($date)}:{fn:minutes-from-dateTime($date)}</span> '; $xquery .= ' else fn:string("") '; $result = $existQuery->xquery($xquery) or dump($existQuery->getError()); $resource = (array) $result; if (isset($resource['XML']) ? $resource['XML'] : false) { $isPublished_pub = true;