create toggleDefault method in lang method and modify in Country model
This commit is contained in:
@@ -3,9 +3,13 @@
|
||||
namespace Thelia\Model;
|
||||
|
||||
use Propel\Runtime\Connection\ConnectionInterface;
|
||||
use Propel\Runtime\Exception\PropelException;
|
||||
use Propel\Runtime\Propel;
|
||||
use Thelia\Core\Event\Lang\LangEvent;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
use Thelia\Model\Base\Lang as BaseLang;
|
||||
use Thelia\Model\Base\LangQuery;
|
||||
use Thelia\Model\Map\LangTableMap;
|
||||
|
||||
class Lang extends BaseLang {
|
||||
|
||||
@@ -25,6 +29,30 @@ class Lang extends BaseLang {
|
||||
return $default_lang;
|
||||
}
|
||||
|
||||
public function toggleDefault()
|
||||
{
|
||||
if($this->getId() === null) {
|
||||
throw new \RuntimeException("impossible to just uncheck default language, choose a new one");
|
||||
}
|
||||
$con = Propel::getWriteConnection(LangTableMap::DATABASE_NAME);
|
||||
$con->beginTransaction();
|
||||
try {
|
||||
LangQuery::create()
|
||||
->filterByByDefault(1)
|
||||
->update(array('ByDefault' => 0), $con);
|
||||
|
||||
$this
|
||||
->setByDefault(1)
|
||||
->save($con);
|
||||
|
||||
$con->commit();
|
||||
} catch(PropelException $e) {
|
||||
$con->rollBack();
|
||||
throw $e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function preInsert(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->dispatchEvent(TheliaEvents::BEFORE_CREATELANG, new LangEvent($this));
|
||||
|
||||
Reference in New Issue
Block a user