<?php

/**

 * Pimcore

 *

 * LICENSE

 *

 * This source file is subject to the new BSD license that is bundled

 * with this package in the file LICENSE.txt.

 * It is also available through the world-wide-web at this URL:

 * http://www.pimcore.org/license

 *

 * @category   Pimcore

 * @package    Object|Class

 * @copyright  Copyright (c) 2009-2014 pimcore GmbH (http://www.pimcore.org)

 * @license    http://www.pimcore.org/license     New BSD License

 */



namespace Pimcore\Model\Object\ClassDefinition\Data;



use Pimcore\Model;

use Pimcore\Tool; 



class Languagemultiselect extends Model\Object\ClassDefinition\Data\Multiselect {



    /**

     * Static type of this element

     *

     * @var string

     */

    public $fieldtype = "languagemultiselect";





    /**

     * @var bool

     */

    public $onlySystemLanguages = false;



    /**

     *

     */

    public function configureOptions () {



        $validLanguages = (array) Tool::getValidLanguages();

        $locales = Tool::getSupportedLocales();

        $options = array();



        foreach ($locales as $short => $translation) {



            if($this->getOnlySystemLanguages()) {

                if(!in_array($short, $validLanguages)) {

                    continue;

                }

            }



            $options[] = array(

                "key" => $translation,

                "value" => $short

            );

        }



        $this->setOptions($options);

    }



    /**

     * @return bool

     */

    public function getOnlySystemLanguages () {

        return $this->onlySystemLanguages;

    }



    /**

     * @param $value

     * @return $this

     */

    public function setOnlySystemLanguages ($value) {

        $this->onlySystemLanguages = (bool) $value;

        return $this;

    }



    /**

     *

     */

    public function __wakeup () {

        $this->configureOptions();

    }

}

