/** * Add label * * @return void */ protected function doActionAdd() { $name = substr(\XLite\Core\Request::getInstance()->name, 0, 255); $label = \XLite\Core\Request::getInstance()->label; $codeDefault = $codeInterface = static::getDefaultLanguage(); if (!$name) { \XLite\Core\TopMessage::addError('The text label has not been added, because its name has not been specified'); } elseif (\XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->findOneByName($name)) { \XLite\Core\TopMessage::addError('The text label has not been added, because such a text label already exists'); } elseif (!isset($label[$codeDefault]) || !$label[$codeDefault]) { \XLite\Core\TopMessage::addError('The text label has not been added, because its translation to the default application language has not been specified'); } elseif (!isset($label[$codeInterface]) || !$label[$codeInterface]) { \XLite\Core\TopMessage::addError('The text label has not been added, because its translation to the default interface language has not been specified'); } else { $lbl = new \XLite\Model\LanguageLabel(); $lbl->setName($name); foreach ($label as $code => $text) { if (!empty($text)) { $lbl->setEditLanguage($code)->setLabel($text); } } \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->insert($lbl); \XLite\Core\Translation::getInstance()->reset(); \XLite\Core\TopMessage::addInfo('The text label has been added successfully'); } }
/** * Add label * * @return void */ protected function doActionAdd() { $requestData = \XLite\Core\Request::getInstance()->getNonFilteredData(); $name = substr($requestData['name'], 0, 255); $label = $requestData['label']; if (!$name) { $this->valid = false; \XLite\Core\TopMessage::addError('The text label has not been added, because its name has not been specified'); } elseif (\XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->findOneByName($name)) { $this->valid = false; \XLite\Core\TopMessage::addError('The text label has not been added, because such a text label already exists'); } else { $lbl = new \XLite\Model\LanguageLabel(); $lbl->setName($name); foreach ($label as $code => $text) { if (!empty($text)) { $lbl->setEditLanguage($code)->setLabel($text); } } $lbl = \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->insert($lbl); if ($lbl && $lbl->getLabelId()) { // Save added label ID in session $addedLabels = \XLite\Core\Session::getInstance()->added_labels; if (is_array($addedLabels)) { array_push($addedLabels, $lbl->getLabelId()); } else { $addedLabels = array($lbl->getLabelId()); } \XLite\Core\Session::getInstance()->added_labels = $addedLabels; $this->setHardRedirect(); } \XLite\Core\Translation::getInstance()->reset(); \XLite\Core\TopMessage::addInfo('The text label has been added successfully'); } }