<?php
/**
* Copyright (c) 2011-present Qualiteam software Ltd. All rights reserved.
* See https://www.x-cart.com/license-agreement.html for license details.
*/
namespace XLite\Model;
use Doctrine\ORM\Mapping as ORM;
/**
* Language label
*
* @ORM\Entity
* @ORM\Table (name="language_labels",
* uniqueConstraints={
* @ORM\UniqueConstraint (name="name", columns={"name"})
* }
* )
*/
class LanguageLabel extends \XLite\Model\Base\I18n
{
/**
* Unique id
*
* @var integer
*
* @ORM\Id
* @ORM\GeneratedValue (strategy="AUTO")
* @ORM\Column (type="integer")
*/
protected $label_id;
/**
* Label name
*
* @var string
*
* @ORM\Column (type="string", length=255, options={"collation":"utf8mb4_bin"})
*/
protected $name;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany (targetEntity="XLite\Model\LanguageLabelTranslation", mappedBy="owner", cascade={"all"})
*/
protected $translations;
/**
* Get label translation
*
* @param string $code Language code OPTIONAL
*
* @return \XLite\Model\LanguageLabelTranslation
*/
public function getLabelTranslation($code = null)
{
$result = null;
$query = \XLite\Core\Translation::getLanguageQuery($code);
foreach ($query as $code) {
$result = $this->getTranslation($code, true);
if (isset($result) || $code == 'en') {
break;
}
}
return $result;
}
/**
* Get label_id
*
* @return integer
*/
public function getLabelId()
{
return $this->label_id;
}
/**
* Set name
*
* @param string $name
* @return LanguageLabel
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $label
*
* @return void
*/
public function setLabel($label)
{
$this->setTranslationField(__FUNCTION__, $label);
}
}