fix #1095 : task archive crashed

This commit is contained in:
jygaulier
2013-02-12 16:23:28 +01:00
committed by Romain Neutron
parent 4c4ebb6a8a
commit a29a1e5055
2 changed files with 24 additions and 7 deletions

View File

@@ -1929,7 +1929,8 @@ class record_adapter implements record_Interface, cache_cacheableInterface
throw new Exception('This record is not a grouping'); throw new Exception('This record is not a grouping');
} }
$sql = 'SELECT record_id if ($this->app['phraseanet.user']) {
$sql = 'SELECT record_id
FROM regroup g FROM regroup g
INNER JOIN (record r INNER JOIN (record r
INNER JOIN collusr c INNER JOIN collusr c
@@ -1942,11 +1943,22 @@ class record_adapter implements record_Interface, cache_cacheableInterface
ON (g.rid_child = r.record_id AND g.rid_parent = :record_id) ON (g.rid_child = r.record_id AND g.rid_parent = :record_id)
ORDER BY g.ord ASC, dateadd ASC, record_id ASC'; ORDER BY g.ord ASC, dateadd ASC, record_id ASC';
$params = array( $params = array(
':GV_site' => $this->app['phraseanet.registry']->get('GV_sit') ':GV_site' => $this->app['phraseanet.registry']->get('GV_sit'),
, ':usr_id' => $this->app['phraseanet.user']->get_id() ':usr_id' => $this->app['phraseanet.user']->get_id(),
, ':record_id' => $this->get_record_id() ':record_id' => $this->get_record_id(),
); );
} else {
$sql = 'SELECT record_id
FROM regroup g
INNER JOIN record r
ON (g.rid_child = r.record_id AND g.rid_parent = :record_id)
ORDER BY g.ord ASC, dateadd ASC, record_id ASC';
$params = array(
':record_id' => $this->get_record_id()
);
}
$stmt = $this->get_databox()->get_connection()->prepare($sql); $stmt = $this->get_databox()->get_connection()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);

View File

@@ -1611,6 +1611,7 @@ class task_period_archive extends task_abstract
$metadatasStructure = $databox->get_meta_structure(); $metadatasStructure = $databox->get_meta_structure();
$metadatas = $this->getIndexByFieldName($metadatasStructure, $media->getMetadatas()); $metadatas = $this->getIndexByFieldName($metadatasStructure, $media->getMetadatas());
$metaFields = null;
if ($captionFile !== null && true === $this->dependencyContainer['filesystem']->exists($captionFile)) { if ($captionFile !== null && true === $this->dependencyContainer['filesystem']->exists($captionFile)) {
$metaFields = $this->readXMLForDatabox($metadatasStructure, $captionFile); $metaFields = $this->readXMLForDatabox($metadatasStructure, $captionFile);
@@ -1625,7 +1626,10 @@ class task_period_archive extends task_abstract
$story->substitute_subdef('document', $media, $this->dependencyContainer); $story->substitute_subdef('document', $media, $this->dependencyContainer);
$story->set_metadatas($metadatas->toMetadataArray($metadatasStructure), true); $story->set_metadatas($metadatas->toMetadataArray($metadatasStructure), true);
$story->set_metadatas($metaFields->toMetadataArray($metadatasStructure), true);
if ($metaFields) {
$story->set_metadatas($metaFields->toMetadataArray($metadatasStructure), true);
}
$story->set_binary_status(databox_status::operation_or($this->dependencyContainer, $stat0, $stat1)); $story->set_binary_status(databox_status::operation_or($this->dependencyContainer, $stat0, $stat1));
$story->rebuild_subdefs(); $story->rebuild_subdefs();
@@ -1676,6 +1680,7 @@ class task_period_archive extends task_abstract
$metadatas = $this->getIndexByFieldName($metadatasStructure, $media->getMetadatas()); $metadatas = $this->getIndexByFieldName($metadatasStructure, $media->getMetadatas());
$metaFields = array();
if ($captionFile !== null && true === $this->dependencyContainer['filesystem']->exists($captionFile)) { if ($captionFile !== null && true === $this->dependencyContainer['filesystem']->exists($captionFile)) {
$metaFields = $this->readXMLForDatabox($metadatasStructure, $captionFile); $metaFields = $this->readXMLForDatabox($metadatasStructure, $captionFile);
$captionStatus = $this->parseStatusBit(@simplexml_load_file($captionFile)); $captionStatus = $this->parseStatusBit(@simplexml_load_file($captionFile));