}
}
- public static function copyLinks($args)
+ public static function copyLinks($args, $eraseTo = false)
{
- $from=$args[0];
- $to=$args[1];
+ $from = $args[0];
+ $to = $args[1];
global $core;
$dao = new wsDAODocument($core->con);
$dao->getLinksAndRulers($from, $fromlinks, $fromrulers);
- $dao->getLinksAndRulers($to, $tolinks, $torulers);
+ if (!$eraseTo) {
+ $dao->getLinksAndRulers($to, $tolinks, $torulers);
-
- $tolinks = array_merge($tolinks, $fromlinks);
- $torulers = array_merge($torulers, $fromrulers);
+ $tolinks = array_merge($tolinks, $fromlinks);
+ $torulers = array_merge($torulers, $fromrulers);
+ } else {
+ $tolinks = $fromlinks;
+ $torulers = $fromrulers;
+ }
$wt = WS_BOOKS . '/working/' . $to;
$wf = WS_BOOKS . '/working/' . $from;
$c->document_page = $infos['document_page'];
$c->insert();
}
+
+ $daoBook = new wsDAOBook($core->con);
+ $daoBook->saveCompositionVersion($to);
}
protected static function _duplicateLines($table, $key, $currentKey, $newKey)
$dao = new wsDAOBook($core->con);
for ($i = 0; $i < $times; $i++) {
- $newbook = $dao->duplicate($book_id, $core->user->utilisateur_id, null, false, true);
+ $newbook = $dao->duplicate($book_id, $core->user->utilisateur_id, null, true, true);
$new_id = $newbook->book_id;
self::copyComposition([$book_id, $new_id]);
- self::copyLinks([$book_id,$new_id]);
-
- $from_assets = WS_FILES . '/books/working/' . $book_id . '/';
- $to_assets = WS_FILES . '/books/working/' . $new_id . '/';
-
- `cp -r $from_assets $to_assets`;
+ self::copyLinks([$book_id, $new_id], true);
}
}
$args = cubePage::getArgs($args);
$book_id = $args[0];
+
$dao = new wsDAODocument($core->con);
$updates = $dao->getLinksVersions($book_id);
krsort($updates);
$this->saveCompositionVersion($book_id);
-
return $this->selectById($book_id);
}
public function supprime($book_id)
{
+ $this->con->execute('DELETE FROM book_pages_versions WHERE book_id=\'' . $this->con->escape($book_id) . '\'');
$this->con->execute('DELETE FROM book_pages WHERE book_id=\'' . $this->con->escape($book_id) . '\'');
return $this->con->execute('DELETE FROM books WHERE book_id=\'' . $this->con->escape($book_id) . '\'');
}
return $res;
}
- public function getPagesOfBook($book_id, $conversion = true)
+ public function getPagesOfBook($book_id, $conversion = true, $force = false)
{
- if (!isset(self::$pagesOfBookCache[$book_id])) {
+ if ($force || !isset(self::$pagesOfBookCache[$book_id])) {
$pages = array();
$sql = 'SELECT b.*,d.numberSections AS num,d.conversionInfos AS conversion,d.pages AS doc_pages,d.version AS version FROM book_pages b JOIN documents d ON d.document_id=b.document_id WHERE b.book_id=\'' . $this->con->escape($book_id) . '\' ORDER BY book_page';
{
$time = is_null($time) ? TIME : $time;
- $pages = $this->getPagesOfBook($book_id);
+ $pages = $this->getPagesOfBook($book_id, true, true);
$c = $this->con->openCursor('book_pages_versions');
$c->update = $time;
}
public function getLinksVersions($book_id) {
+
$r = $this->con->select('SELECT * FROM special_links_versions WHERE book_id=\'' . $this->con->escape($book_id) . '\'');
$specials = array();
while ($r->fetch()) {
$specials[$r->update] = array('links' => count($ll), 'rulers' => count($lr));
}
-
// Get composition versions
$r = $this->con->select('SELECT * FROM book_pages_versions WHERE book_id=\'' . $this->con->escape($book_id) . '\'');
$docs = array();
}
$res = array();
- $r = $this->con->select('SELECT l.*,u.prenom,u.nom FROM document_links_versions l LEFT JOIN utilisateurs u ON l.user=u.utilisateur_id WHERE document_id IN(' . implode(',', $docs) . ')');
+ $sql='SELECT l.*,u.prenom,u.nom FROM document_links_versions l LEFT JOIN utilisateurs u ON l.user=u.utilisateur_id WHERE document_id IN(' . implode(',', $docs) . ')';
+ $r = $this->con->select($sql);
+
+
while ($r->fetch()) {
if (!isset($res[$r->update])) {
if (isset($specials[$r->update])) {
}
$res[$r->update]['user'] = $user;
}
+
return $res;
}
$res = array('width' => 0, 'height' => 0);
if (file_exists($d . '/index.html')) {
$doc = new DOMDocument();
- $doc->loadHTMLFile($d . '/index.html');
+ @$doc->loadHTMLFile($d . '/index.html');
$xpath = new DOMXPath($doc);
$c = $xpath->query("//canvas");
foreach ($c as $canvas) {