diff --git a/README.md b/README.md index 3c9f74f8e2..99d1b6e858 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,33 @@ -Phraseanet - Digital Asset Management application +Phraseanet 3.5 - Digital Asset Management application ================================================= -#Installation +#Features : -**Nginx** +Metadatas Management (include Thesaurus and DublinCore Mapping) +Search Engine (Sphinx Search Integration) +RestFull APIS (See Developer Documentation http://docs.phraseanet.com/Devel) +Bridge to Youtube/Dailymotion/Flickr +#Documentation : + +http://docs.phraseanet.com + +#Easy Installation + +**Fetch Sources** + +
+
+git clone git://github.com/alchemy-fr/Phraseanet.git Phraseanet
+cd Phraseanet
+./vendors.php
+
+
+ + +**Setup your webserver** + +***Nginx***
 server {
   listen       80;
@@ -15,58 +38,21 @@ server {
 
 
   location /web {
-    alias /home/grosroro/workspace/Phraseanet-Trunk/datas/web;
+    alias /path/to/Phraseanet/datas/web;
   }
   location /download {
     internal;
-    alias /home/grosroro/workspace/Phraseanet-Trunk/tmp/download;
+    alias /path/to/Phraseanet/tmp/download;
   }
   location /lazaret {
     internal;
-    alias /home/grosroro/workspace/Phraseanet-Trunk/tmp/lazaret;
+    alias /path/to/Phraseanet/tmp/lazaret;
   }
 }
 
-#Pimp my install -**xsendfile** -
-  location /protected {
-    internal;
-    alias /home/grosroro/workspace/Phraseanet-Trunk/datas/noweb/;
-  }
-
- -**MP4 pseudo stream** -
-  location /mp4_video {
-    internal;
-    mp4;
-    alias /home/grosroro/workspace/Phraseanet-Trunk/datas/noweb/;
-  }
-
-  location /mp4_videos {
-    secure_download on;
-    secure_download_secret S3cre3t;
-    secure_download_path_mode file;
-
-    if ($secure_download = "-1") {
-      return 403;
-    }
-    if ($secure_download = "-2") {
-      return 403;
-    }
-    if ($secure_download = "-3") {
-      return 500;
-    }
-    rewrite ^/mp4_videos(.*)/[0-9a-zA-Z]*/[0-9a-zA-Z]*$ /mp4_video$1 last;
-  }
-
- -#RESTFULL APIs - -See the [online developer reference] [1] +Let's go ! #License diff --git a/config/stamp/.gitignore b/config/stamp/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/config/stamp/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/config/topics/.gitignore b/config/topics/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/config/topics/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/config/wm/.gitignore b/config/wm/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/config/wm/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/lib/classes/Feed/Entry/Adapter.class.php b/lib/classes/Feed/Entry/Adapter.class.php index 58776f3f3e..ef7c035543 100644 --- a/lib/classes/Feed/Entry/Adapter.class.php +++ b/lib/classes/Feed/Entry/Adapter.class.php @@ -357,6 +357,16 @@ class Feed_Entry_Adapter implements Feed_Entry_Interface, cache_cacheableInterfa return $this->publisher; } + + /** + * + * @param User_adapter $user + * @return boolean + */ + public function is_publisher(User_adapter $user) + { + return $user->get_id() === $this->get_publisher()->get_user()->get_id(); + } /** * diff --git a/lib/classes/Session/Handler.class.php b/lib/classes/Session/Handler.class.php index 100d09abb4..2834457b1e 100644 --- a/lib/classes/Session/Handler.class.php +++ b/lib/classes/Session/Handler.class.php @@ -576,7 +576,7 @@ class Session_Handler $sql = 'SELECT v.id as validate_id, v.usr_id, v.ssel_id , s.usr_id as owner, t.value FROM (validate v, ssel s) - LEFT JOIN tokens t + INNER JOIN tokens t ON (t.datas = s.ssel_id AND v.usr_id=t.usr_id AND t.type="validate") WHERE expires_on < :expires_on @@ -594,7 +594,8 @@ class Session_Handler 'ssel_id' => $row['ssel_id'], 'from' => $row['owner'], 'validate_id' => $row['validate_id'], - 'url' => $registry->get('GV_ServerName') . 'lightbox/validate/'.$row['ssel_id'].'/?LOG=' . $row['value'] + 'url' => $registry->get('GV_ServerName') + . 'lightbox/validate/'.$row['ssel_id'].'/?LOG=' . $row['value'] ); $events_mngr->trigger('__VALIDATION_REMINDER__', $params); diff --git a/lib/classes/User/Adapter.class.php b/lib/classes/User/Adapter.class.php index 3cb03cda7e..98a374e720 100644 --- a/lib/classes/User/Adapter.class.php +++ b/lib/classes/User/Adapter.class.php @@ -399,7 +399,14 @@ class User_Adapter implements User_Interface, cache_cacheableInterface { if (!trim($email)) $email = null; + + $test_user = User_Adapter::get_usr_id_from_email($email); + if($test_user && $test_user != $this->get_id()) + { + throw new Exception_InvalidArgument (sprintf(_('A user already exists with email addres %s'), $email)); + } + $sql = 'UPDATE usr SET usr_mail = :new_email WHERE usr_id = :usr_id'; $stmt = $this->appbox->get_connection()->prepare($sql); $stmt->execute(array(':new_email' => $email, ':usr_id' => $this->get_id())); @@ -1231,6 +1238,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface protected function load_preferences() { if ($this->_prefs) + return $this; $sql = 'SELECT prop, value FROM usr_settings WHERE usr_id= :id'; $stmt = $this->appbox->get_connection()->prepare($sql); @@ -1324,7 +1332,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface } catch (Exception $e) { - + } return $this; @@ -1556,6 +1564,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface $appbox = appbox::get_instance(); $session = $appbox->get_session(); if (!$session->is_authenticated()) + return; $ses_id = $session->get_ses_id(); @@ -1614,7 +1623,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface } catch (Exception $e) { - + } } } @@ -1678,7 +1687,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface } catch (Exception $e) { - + } return false; @@ -1765,7 +1774,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface } catch (Exception $e) { - + } return $locale; @@ -1831,6 +1840,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface public function get_nonce() { if ($this->nonce) + return $this->nonce; $nonce = false; @@ -1848,6 +1858,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface return $this->nonce; } + public function __sleep() { $vars = array(); diff --git a/lib/classes/mail.class.php b/lib/classes/mail.class.php index 59bd8d00c0..ab04900fad 100644 --- a/lib/classes/mail.class.php +++ b/lib/classes/mail.class.php @@ -255,8 +255,7 @@ class mail $mail->ConfirmReadingTo = $reading_confirm_to; } - $mail->MsgHTML(strip_tags($body)); -// $mail->MsgHTML(p4string::cleanTags($body)); + $mail->MsgHTML(strip_tags($body, '

')); foreach ($files as $f) { diff --git a/lib/classes/module/api/V1.php b/lib/classes/module/api/V1.php index 1e9398f30c..eec372c476 100644 --- a/lib/classes/module/api/V1.php +++ b/lib/classes/module/api/V1.php @@ -148,9 +148,9 @@ $app->before(function($request) use ($app) return; } - catch (Exception $e) + catch (\Exception $e) { - + } } $auth = new Session_Authentication_None($app['p4user']); diff --git a/lib/classes/module/prod.class.php b/lib/classes/module/prod.class.php index ac3d52fed7..4c6757d98a 100644 --- a/lib/classes/module/prod.class.php +++ b/lib/classes/module/prod.class.php @@ -49,7 +49,7 @@ class module_prod 'sbas_id' => $sbas_id ); - foreach($user->ACL()->get_granted_base(array(), array($databox->get_sbas_id())) as $coll) + foreach ($user->ACL()->get_granted_base(array(), array($databox->get_sbas_id())) as $coll) { $selected = ($searchSet && isset($searchSet->bases) && @@ -75,12 +75,19 @@ class module_prod else $dates[$id] = array('sbas' => array($sbas_id), 'fieldname' => $name); } + + if (isset($fields[$name])) + { + $fields[$name]['sbas'][] = $sbas_id; + } else { - if (isset($fields[$name])) - $fields[$name]['sbas'][] = $sbas_id; - else - $fields[$name] = array('sbas' => array($sbas_id), 'fieldname' => $name, 'id' => $id); + $fields[$name] = array( + 'sbas' => array($sbas_id) + , 'fieldname' => $name + , 'type' => $meta->get_type() + , 'id' => $id + ); } } diff --git a/lib/classes/random.class.php b/lib/classes/random.class.php index a3b03f91fa..21f692c70d 100644 --- a/lib/classes/random.class.php +++ b/lib/classes/random.class.php @@ -56,7 +56,7 @@ class random } } - $sql = 'DELETE FROM tokens WHERE expire_on < :date'; + $sql = 'DELETE FROM tokens WHERE expire_on < :date and type="download"'; $stmt = $conn->prepare($sql); $stmt->execute(array(':date' => $date)); $stmt->closeCursor(); @@ -201,7 +201,9 @@ class random self::cleanTokens(); $conn = connection::getPDOConnection(); - $sql = 'SELECT * FROM tokens WHERE value = :token '; + $sql = 'SELECT * FROM tokens + WHERE value = :token + AND (expire_on > NOW() OR expire_on IS NULL)'; $stmt = $conn->prepare($sql); $stmt->execute(array(':token' => $token)); $row = $stmt->fetch(PDO::FETCH_ASSOC); diff --git a/lib/classes/searchEngine/adapter/phrasea/engine.class.php b/lib/classes/searchEngine/adapter/phrasea/engine.class.php index 4123f26a1b..965eb33c4a 100644 --- a/lib/classes/searchEngine/adapter/phrasea/engine.class.php +++ b/lib/classes/searchEngine/adapter/phrasea/engine.class.php @@ -56,7 +56,7 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract /** * - * @var boolean + * @var searchEngine_options */ protected $options = false; @@ -142,6 +142,8 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract */ public function set_options(searchEngine_options $options) { + $this->options = $options; + $this->opt_search_type = (int) $options->get_search_type(); $this->opt_bases = $options->get_bases(); $this->opt_fields = $options->get_fields(); @@ -394,34 +396,37 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract $total_time = 0; + $sort = ''; + + if($this->options->get_sortby()) + { + switch($this->options->get_sortord()) + { + case searchEngine_options::SORT_MODE_ASC: + $sort = '+'; + break; + case searchEngine_options::SORT_MODE_DESC: + default: + $sort = '-'; + break; + } + $sort .= '0' . $this->options->get_sortby(); + } + foreach ($this->queries as $sbas_id => $qry) { - if ($this->opt_search_type == 1) - { - $this->results[$sbas_id] = phrasea_query2( - $session->get_ses_id() - , $sbas_id - , $this->colls[$sbas_id] - , $this->arrayq[$sbas_id] - , $registry->get('GV_sit') - , (string) $session->get_usr_id() - , false - , PHRASEA_MULTIDOC_REGONLY - ); - } - else - { - $this->results[$sbas_id] = phrasea_query2( - $session->get_ses_id() - , $sbas_id - , $this->colls[$sbas_id] - , $this->arrayq[$sbas_id] - , $registry->get('GV_sit') - , (string) $session->get_usr_id() - , false - , PHRASEA_MULTIDOC_DOCONLY - ); - } + $this->results[$sbas_id] = phrasea_query2( + $session->get_ses_id() + , $sbas_id + , $this->colls[$sbas_id] + , $this->arrayq[$sbas_id] + , $registry->get('GV_sit') + , (string) $session->get_usr_id() + , false + , $this->opt_search_type == 1 ? PHRASEA_MULTIDOC_REGONLY : PHRASEA_MULTIDOC_DOCONLY + , $sort + ); + $total_time += $this->results[$sbas_id]['time_all']; if ($this->results[$sbas_id]) diff --git a/lib/classes/setup.class.php b/lib/classes/setup.class.php index 2ff85bfdcc..f906ed0f67 100644 --- a/lib/classes/setup.class.php +++ b/lib/classes/setup.class.php @@ -436,7 +436,7 @@ class setup $message = 'Directory MUST be writable'; break; case 'version': - $result = version_compare($value, '1.17.0.2', '>='); + $result = version_compare($value, '1.18.0.3', '>='); if ($result) $message = sprintf ('Phrasea version %s is ok', $value); else diff --git a/lib/classes/supertwig.class.php b/lib/classes/supertwig.class.php index 2fcf9d3ea6..81026e4323 100644 --- a/lib/classes/supertwig.class.php +++ b/lib/classes/supertwig.class.php @@ -100,11 +100,10 @@ class supertwig $options = array_merge($default_options, $options); $extensions = array_merge($default_extensions, $extensions); - $this->init_twig(); - try { $this->set_options($options); + $this->init_twig(); $this->set_extensions($extensions); $this->addFilter(array('round' => 'round')); } diff --git a/lib/unitTest/testfiles/cestlafete.jpg b/lib/unitTest/testfiles/cestlafete.jpg old mode 100644 new mode 100755 diff --git a/lib/version.inc b/lib/version.inc index 9297194a5c..653ac130be 100644 --- a/lib/version.inc +++ b/lib/version.inc @@ -15,5 +15,5 @@ * @license http://opensource.org/licenses/gpl-3.0 GPLv3 * @link www.phraseanet.com */ -define('GV_version', '3.5.0.0RC1'); -define('GV_version_name', 'Archaeopteryx'); +define('GV_version', '3.6.0.0a1'); +define('GV_version_name', 'Brachiosaurus'); diff --git a/templates/web/admin/databox/doc_structure.twig b/templates/web/admin/databox/doc_structure.twig index 0487d8168f..c327079b2a 100644 --- a/templates/web/admin/databox/doc_structure.twig +++ b/templates/web/admin/databox/doc_structure.twig @@ -227,55 +227,58 @@
-
-
- - - - - - - - - - - - - - - - - - - - + {% trans 'boutton::ajouter' %} + + + + +
- - {% trans 'Nom' %} - - {% trans 'Source' %}Source - - DCES - - {% trans 'Multivalue' %} - - {% trans 'Indexable' %} - - {% trans 'Lecture seule' %} - - {% trans 'Branche Thesaurus' %} - - {% trans 'Affiche dans report' %} - - Regdate - - Regname - - Regdesc - - {% trans 'Afficher en titre' %} -
+ + + + + + + + + + + + + + + + + + + {% for field in fields %} {% set disabled = '' %} {% if field.is_on_error() %} @@ -309,6 +312,14 @@ + diff --git a/templates/web/admin/editusers.twig b/templates/web/admin/editusers.twig index e165e40072..8e7a18f87e 100644 --- a/templates/web/admin/editusers.twig +++ b/templates/web/admin/editusers.twig @@ -15,7 +15,7 @@ {% set display = 'block' %} - {% if right[name] != users|length and name != 'access' and right['access'] != users|length %} + {% if right[name] != users|length and name != 'access' and right['access'] != users|length and type != 'sbas' %} {% set display = 'none' %} {% endif %} diff --git a/templates/web/admin/publications/list.html b/templates/web/admin/publications/list.html index 2666a37bcf..7cb557186a 100644 --- a/templates/web/admin/publications/list.html +++ b/templates/web/admin/publications/list.html @@ -48,7 +48,7 @@ - + @@ -72,7 +72,7 @@
+ + {% trans 'Nom' %} + + {% trans 'Source' %}Source + + DCES + + {% trans 'Multivalue' %} + + {% trans 'Indexable' %} + + {% trans 'Lecture seule' %} + + {% trans 'Type' %} + + {% trans 'Branche Thesaurus' %} + + {% trans 'Affiche dans report' %} + + Regdate + + Regname + + Regdesc + + {% trans 'Afficher en titre' %} +
+ + {% trans 'Titre' %} {% trans 'Date Creation' %} {% trans 'Restriction' %}{% trans 'Visible sur la homepage' %}{% trans 'Public' %}
{% if feed.is_public() %} - + {% endif %} diff --git a/templates/web/common/index.twig b/templates/web/common/index.twig index 5e3765f273..12b66755c3 100644 --- a/templates/web/common/index.twig +++ b/templates/web/common/index.twig @@ -14,7 +14,7 @@
{% include 'common/menubar.twig' %}
-
+
{% block content %}{% endblock %}
diff --git a/templates/web/prod/actions/publish/publish.html b/templates/web/prod/actions/publish/publish.html index 623da38a2a..9b3c0847e4 100644 --- a/templates/web/prod/actions/publish/publish.html +++ b/templates/web/prod/actions/publish/publish.html @@ -55,6 +55,9 @@ {% if feed.is_publisher(user) %}
{{ feed.get_title() }} + {% if feed.is_public() %} + + {% endif %}
{% endif %} diff --git a/templates/web/prod/feeds/entry_macro.html b/templates/web/prod/feeds/entry_macro.html index 5d3d1fbf83..167a120188 100644 --- a/templates/web/prod/feeds/entry_macro.html +++ b/templates/web/prod/feeds/entry_macro.html @@ -15,7 +15,7 @@
- {% if entry.get_feed().is_owner(user) %} + {% if entry.get_feed().is_owner(user) or entry.is_publisher(user) %} @@ -55,8 +55,8 @@
{% for item in entry.get_content() %} {% set record = item.get_record() %} - {% set prefix = 'PUBLI' %} - {{record_format.block(record, user, session, false, null, prefix, entry.get_id(), item.get_id())}} + {% set prefix = 'PUBLI_' ~ item.get_id() %} + {{record_format.block(record, user, session, false, null, prefix, entry.get_id())}} {% endfor %}
diff --git a/templates/web/prod/index.html b/templates/web/prod/index.html index ec0653af24..d6c4d0d7d6 100644 --- a/templates/web/prod/index.html +++ b/templates/web/prod/index.html @@ -372,18 +372,31 @@
{% if registry.get('GV_sphinx') %} {% trans 'Trier par ' %} - - - {% trans 'rechercher par stemme' %} + + + {% trans 'rechercher par stemme' %} {% else %} - + {% trans 'Trier par ' %} + + + {% endif %}
@@ -392,7 +405,9 @@
diff --git a/templates/web/prod/results/record.html b/templates/web/prod/results/record.html index 4ba407d89d..14ed145861 100644 --- a/templates/web/prod/results/record.html +++ b/templates/web/prod/results/record.html @@ -1,4 +1,4 @@ -{% macro block(record, user, session, highlight, searchEngine, prefix, entry_id, suffix)%} +{% macro block(record, user, session, highlight, searchEngine, prefix, entry_id)%} {% import 'common/thumbnail.html' as thumbnail %} {% import 'common/doctype_icons.html' as doctype_icons %} {% import 'common/drop_down_options.html' as drop_down %} @@ -6,7 +6,7 @@ {% set sbas_id = record.get_base_id|sbasFromBas %} {% if entry_id %}
{% elseif record.is_grouping() %} diff --git a/tmp/.gitignore b/tmp/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/tmp/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/www/admin/databases.php b/www/admin/databases.php index 2b647675e2..689562885c 100644 --- a/www/admin/databases.php +++ b/www/admin/databases.php @@ -63,7 +63,6 @@ phrasea::headers(); $code = _('Propositions de modifications des tables') . '
' . $code . '
'; - ?>
             
@@ -87,10 +86,11 @@ phrasea::headers();
       {
         if (!$parm['new_settings'] && $parm['new_dbname'] && $parm['new_data_template'])
         {
-
           if (p4string::hasAccent($parm['new_dbname']))
-            $error['new_dbname'] = 'No special chars in dbname';
-
+          {
+            $error[] = _('Database name can not contains special characters');
+          }
+          
           if (count($error) === 0)
           {
             try
@@ -99,23 +99,34 @@ phrasea::headers();
               $data_template = new system_file($registry->get('GV_RootPath') . 'lib/conf.d/data_templates/' . $parm['new_data_template'] . '.xml');
 
               $connbas = new connection_pdo('databox_creation', $hostname, $port, $user, $password, $parm['new_dbname']);
-              $base = databox::create($appbox, $connbas, $data_template, $registry);
-              $base->registerAdmin($user_obj);
-              $createBase = $sbas_id = $base->get_sbas_id();
+
+              try
+              {
+                $base = databox::create($appbox, $connbas, $data_template, $registry);
+                $base->registerAdmin($user_obj);
+                $createBase = $sbas_id = $base->get_sbas_id();
+              }
+              catch (Exception $e)
+              {
+                $error[] = $e->getMessage();
+              }
             }
             catch (Exception $e)
             {
-              $errors = $e->getMessage();
+              $error[] = _('Database does not exists or can not be accessed');
             }
           }
         }
-        elseif ($parm['new_settings'] && $parm['new_hostname'] && $parm['new_port'] && $parm['new_user'] && $parm['new_password']
+        elseif ($parm['new_settings'] && $parm['new_hostname'] && $parm['new_port'] 
+                && $parm['new_user'] && $parm['new_password']
                 && $parm['new_dbname'] && $parm['new_data_template'])
         {
 
           if (p4string::hasAccent($parm['new_dbname']))
-            $error['new_dbname'] = 'No special chars in dbname';
-
+          {
+            $error[] = _('Database name can not contains special characters');
+          }
+          
           if (count($error) === 0)
           {
 
@@ -129,7 +140,7 @@ phrasea::headers();
             }
             catch (Exception $e)
             {
-              $errors = $e->getMessage();
+              $error[] = $e->getMessage();
             }
           }
         }
@@ -140,7 +151,7 @@ phrasea::headers();
         {
 
           if (p4string::hasAccent($parm['new_dbname']))
-            $error['new_dbname'] = 'No special chars in dbname';
+            $error[] = _('Database name can not contains special characters');
 
           if (count($error) === 0)
           {
@@ -156,7 +167,7 @@ phrasea::headers();
             catch (Exception $e)
             {
               $appbox->get_connection()->rollBack();
-              $errors = $e->getMessage();
+              $error[] = $e->getMessage();
             }
           }
         }
@@ -165,7 +176,7 @@ phrasea::headers();
         {
 
           if (p4string::hasAccent($parm['new_dbname']))
-            $error['new_dbname'] = 'No special chars in dbname';
+            $error[] = 'No special chars in dbname';
 
           if (count($error) === 0)
           {
@@ -174,13 +185,12 @@ phrasea::headers();
               $appbox->get_connection()->beginTransaction();
               $base = databox::mount($appbox, $parm['new_hostname'], $parm['new_port'], $parm['new_user'], $parm['new_password'], $parm['new_dbname'], $registry);
               $base->registerAdmin($user_obj);
-//              $createBase = $sbas_id = $base->get_sbas_id();
               $appbox->get_connection()->commit();
             }
             catch (Exception $e)
             {
               $appbox->get_connection()->rollBack();
-              $errors = $e->getMessage();
+              $error[] = $e->getMessage() . '@' . $e->getFile() . $e->getLine();
             }
           }
         }
@@ -216,7 +226,7 @@ phrasea::headers();
       }
       catch (Exception $e)
       {
-
+        
       }
     }
     ?>
@@ -227,7 +237,7 @@ if ($createBase || $mountBase)
   $user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
   $user->ACL()->delete_data_from_cache();
   ?>
-          parent.reloadTree('bases:bases');
+      parent.reloadTree('bases:bases');
   
 
     
+    
+    
+      
     

Bases actuelles :

    @@ -306,20 +325,20 @@ if ($createBase || $mountBase)
- +
@@ -358,20 +377,20 @@ if ($createBase || $mountBase)
- +
diff --git a/www/admin/description.php b/www/admin/description.php index 111ec47503..0900b4d7fe 100644 --- a/www/admin/description.php +++ b/www/admin/description.php @@ -21,7 +21,7 @@ $session = $appbox->get_session(); $request = http_request::getInstance(); $parm = $request->get_parms("srt", "ord", "act", "p0", // base_id - "str" // si act=CHGSTRUCTURE, structure en xml + "str" // si act=CHGSTRUCTURE, structure en xml ); @@ -61,7 +61,16 @@ if (!empty($_POST)) try { $local_parms = $httpRequest->get_parms( - 'name_' . $id, 'thumbtitle_' . $id, 'src_' . $id, 'multi_' . $id, 'indexable_' . $id, 'readonly_' . $id, 'tbranch_' . $id, 'report_' . $id, 'dces_' . $id + 'name_' . $id + , 'thumbtitle_' . $id + , 'src_' . $id + , 'multi_' . $id + , 'indexable_' . $id + , 'readonly_' . $id + , 'type_' . $id + , 'tbranch_' . $id + , 'report_' . $id + , 'dces_' . $id ); $field = databox_field::get_instance($databox, $id); @@ -71,6 +80,7 @@ if (!empty($_POST)) $field->set_multi($local_parms['multi_' . $id]); $field->set_indexable($local_parms['indexable_' . $id]); $field->set_readonly($local_parms['readonly_' . $id]); + $field->set_type($local_parms['type_' . $id]); $field->set_tbranch($local_parms['tbranch_' . $id]); $field->set_report($local_parms['report_' . $id]); @@ -107,7 +117,7 @@ if (!empty($_POST)) $parms = $httpRequest->get_parms('newfield'); - if($parms['newfield']) + if ($parms['newfield']) { databox_field::create($databox, $parms['newfield']); } @@ -124,7 +134,7 @@ if (!empty($_POST)) } catch (Exception $e) { - + } } } diff --git a/www/skins/lng/inclin-de.gif b/www/skins/lng/inclin-de.gif index 8ad6e70d9a..229f594a87 100644 Binary files a/www/skins/lng/inclin-de.gif and b/www/skins/lng/inclin-de.gif differ diff --git a/www/skins/lng/inclin-en.gif b/www/skins/lng/inclin-en.gif index 8ad6e70d9a..5b7ce96b90 100644 Binary files a/www/skins/lng/inclin-en.gif and b/www/skins/lng/inclin-en.gif differ diff --git a/www/skins/lng/inclin-fr.gif b/www/skins/lng/inclin-fr.gif index 6a661a05ea..166e4aa9fb 100644 Binary files a/www/skins/lng/inclin-fr.gif and b/www/skins/lng/inclin-fr.gif differ