Skip to content
Snippets Groups Projects

Stable

Merged Laurent requested to merge stable into hotline-master
Compare and
+ 144
19
Preferences
Compare changes
Files
@@ -64,10 +64,10 @@ class Cosmo_FacetsController extends Zend_Controller_Action {
if (!$model->getIdThesaurus()) {
$libelle = preg_replace('/[^a-zA-Z0-9]/', '', $this->_getParam('libelle_facette'));
$libelle = substr($libelle, 0, 4);
$id_thesaurus = $this->generateNewIdThesaurusForLabel($libelle);
$model->setIdThesaurus($id_thesaurus);
$model->setCode($libelle);
$model->setCode($id_thesaurus);
}
$model->save();
@@ -76,10 +76,16 @@ class Cosmo_FacetsController extends Zend_Controller_Action {
protected function generateNewIdThesaurusForLabel($label) {
$id = substr(strtoupper($label), 0, 4);
if (strlen($id) == 4 && !Class_CodifThesaurus::findFirstBy(['id_thesaurus' => $id]))
return $id;
$label = substr(strtoupper($label), 0, 3);
$suffixes = array_merge(range(0, 9), range('a', 'z'));
while(!empty($suffixes)) {
$suffix = strtoupper(array_shift($suffixes));;
$id = sprintf("%'".$suffix."-4s", strtoupper($label));
$id = sprintf("%'".$suffix."-4s", $label);
if (!Class_CodifThesaurus::findFirstBy(['id_thesaurus' => $id]))
return $id;
}