| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | <?php/** * * PHP Pro Bid $Id$ DbD+d11pce1LnvcthMF6w3zJUcR0Zr/YRgzoMUWOl/M= * * @link        http://www.phpprobid.com * @copyright   Copyright (c) 2014 Online Ventures Software LTD & CodeCube SRL * @license     http://www.phpprobid.com/license Commercial License * * @version     7.0 *//** * settings table service class */namespace Ppb\Service;use Ppb\Db\Table\Settings as SettingsTable,        Cube\Controller\Front;class Settings extends AbstractService{    /**     *     * class constructor     */    public function __construct()    {        parent::__construct();        $this->setTable(            new SettingsTable());    }    /**     *     * save data in the settings table     *     * @param array $data     * @return \Ppb\Service\Settings     */    public function save(array $data)    {        foreach ($data as $key => $value) {            $row = $this->_table->fetchRow("name='{$key}'");            if (is_array($value)) {                $value = serialize($value);            }            if (count($row) > 0) {                $this->_table->update(array('value' => $value), "name='{$key}'");            }            else {                $this->_table->insert(array('name' => $key, 'value' => $value));            }        }        return $this;    }    /**     *     * get one or all settings table keys     *     * @param string  $key     * @param bool $force whether to force the sql query or try to fetch the settings array from the front controller     * @return array     */    public function get($key = null, $force = false)    {        $rows = array();        $data = array();        if ($key !== null) {            $rows = array($this->_table->fetchRow("name='{$key}'"));        }        else {            if ($force === false) {                $rows = Front::getInstance()->getBootstrap()->getResource('settings');            }            if (empty($rows)) {                $rows = $this->_table->fetchAll(                    $this->_table->select(array('name', 'value')));            }            else {                return $rows;            }        }        foreach ($rows as $row) {            $data[(string)$row['name']] = $row['value'];        }        return $data;    }}
 |