<?php /** * Copyright © 2016 Ihor Vansach (ihor@magefan.com). All rights reserved. * See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php). * * Glory to Ukraine! Glory to the heroes! */ namespace Magefan\Blog\Model\Config\Source; /** * Authors list * */ class Author implements \Magento\Framework\Option\ArrayInterface { /** * @var \Magento\User\Model\ResourceModel\User\CollectionFactory */ protected $authorCollectionFactory; /** * @var array */ protected $options; /** * Initialize dependencies. * * @param \Magento\User\Model\ResourceModel\User\CollectionFactory $authorCollectionFactory * @param void */ public function __construct( \Magento\User\Model\ResourceModel\User\CollectionFactory $authorCollectionFactory ) { $this->authorCollectionFactory = $authorCollectionFactory; } /** * Options getter * * @return array */ public function toOptionArray() { if ($this->options === null) { $this->options = [['label' => __('Please select'), 'value' => 0]]; $collection = $this->authorCollectionFactory->create(); foreach ($collection as $item) { $this->options[] = [ 'label' => $item->getName(), 'value' => $item->getId(), ]; } } return $this->options; } /** * Get options in "key-value" format * * @return array */ public function toArray() { $array = []; foreach ($this->toOptionArray() as $item) { $array[$item['value']] = $item['label']; } return $array; } }