Вход Регистрация
Файл: concrete5.7.5.6/concrete/attributes/boolean/controller.php
Строк: 120
<?php

namespace ConcreteAttributeBoolean;

use 
Core;
use 
Database;
use 
ConcreteCoreSearchItemListDatabaseAttributedItemList;
use 
ConcreteCoreAttributeController as AttributeTypeController;

class 
Controller extends AttributeTypeController
{
    
/**
     * Field definition in the ADODB Format. We omit the first column (name) though, since it's
     * automatically generated.
     *
     * @var array
     */
    
protected $searchIndexFieldDefinition = array('type' => 'boolean''options' => array('default' => 0'notnull' => false));

    public function 
searchForm($list)
    {
        
$list->filterByAttribute($this->attributeKey->getAttributeKeyHandle(), 1);

        return 
$list;
    }

    public function 
filterByAttribute(AttributedItemList $list$boolean$comparison '=')
    {
        
$qb $list->getQueryObject();
        
$column sprintf('ak_%s'$this->attributeKey->getAttributeKeyHandle());
        switch (
$comparison) {
            case 
'<>':
            case 
'!=':
                
$boolean $boolean false true;
                break;
        }
        if (
$boolean) {
            
$qb->andWhere("{$column} = 1");
        } else {
            
$qb->andWhere("{$column} <> 1 or {$column} is null");
        }
    }

    public function 
getValue()
    {
        
$db Database::get();
        
$value $db->GetOne("select value from atBoolean where avID = ?", array($this->getAttributeValueID()));

        return 
$value;
    }

    public function 
exportKey($akey)
    {
        
$this->load();
        
$type $akey->addChild('type');
        
$type->addAttribute('checked'$this->akCheckedByDefault);

        return 
$akey;
    }

    public function 
importKey($akey)
    {
        if (isset(
$akey->type)) {
            
$data = array();
            
$checked = (string) $akey->type['checked'];
            if (
$checked != '') {
                
$data['akCheckedByDefault'] = 1;
            } else {
                
$data['akCheckedByDefault'] = 0;
            }
            
$this->saveKey($data);
        }
    }

    public function 
getDisplayValue()
    {
        
$v $this->getValue();

        return (
$v == 1) ? t('Yes') : t('No');
    }

    protected function 
load()
    {
        
$ak $this->getAttributeKey();
        if (!
is_object($ak)) {
            return 
false;
        }

        
$db Database::get();
        
$row $db->GetRow('select akCheckedByDefault from atBooleanSettings where akID = ?', array($ak->getAttributeKeyID()));
        
$this->akCheckedByDefault $row['akCheckedByDefault'];
        
$this->set('akCheckedByDefault'$this->akCheckedByDefault);
    }

    public function 
label($customText false)
    {
    }

    public function 
form()
    {
        if (
is_object($this->attributeValue)) {
            
$value $this->getAttributeValue()->getValue();
            
$checked $value == true false;
        } else {
            
$this->load();
            if (
$this->akCheckedByDefault) {
                
$checked true;
            }
        }

        
$cb Core::make('helper/form')->checkbox($this->field('value'), 1$checked);
        print 
$cb ' <span>' $this->attributeKey->getAttributeKeyDisplayName() .  '</span>';
    }

    public function 
composer()
    {
        print 
'<div class="ccm-attribute ccm-attribute-boolean checkbox"><label>';
        
$this->form();
        print 
'</label></div>';
    }

    public function 
search()
    {
        print 
'<div class="ccm-attribute ccm-attribute-boolean checkbox"><label>' Core::make('helper/form')->checkbox($this->field('value'), 1$this->request('value') == 1) . ' ' $this->attributeKey->getAttributeKeyDisplayName() . '</label></div>';
    }

    public function 
type_form()
    {
        
$this->set('form'Core::make('helper/form'));
        
$this->load();
    }

    
// run when we call setAttribute(), instead of saving through the UI
    
public function saveValue($value)
    {
        
$db Database::get();
        
$value = ($value == false || $value == '0') ? 1;
        
$db->Replace('atBoolean', array('avID' => $this->getAttributeValueID(), 'value' => $value), 'avID'true);
    }

    public function 
deleteKey()
    {
        
$db Database::get();
        
$db->Execute('delete from atBooleanSettings where akID = ?', array($this->getAttributeKey()->getAttributeKeyID()));

        
$arr $this->attributeKey->getAttributeValueIDList();
        foreach (
$arr as $id) {
            
$db->Execute('delete from atBoolean where avID = ?', array($id));
        }
    }

    public function 
validateValue()
    {
        
$v $this->getValue();
        return 
$v == 1;
    }

    public function 
duplicateKey($newAK)
    {
        
$this->load();
        
$db Database::get();
        
$db->Execute('insert into atBooleanSettings (akID, akCheckedByDefault) values (?, ?)', array($newAK->getAttributeKeyID(), $this->akCheckedByDefault));
    }

    public function 
saveKey($data)
    {
        
$ak $this->getAttributeKey();
        
$db Database::get();
        
$akCheckedByDefault 0;
        if (isset(
$data['akCheckedByDefault']) && $data['akCheckedByDefault']) {
            
$akCheckedByDefault 1;
        }

        
$db->Replace('atBooleanSettings', array(
            
'akID' => $ak->getAttributeKeyID(),
            
'akCheckedByDefault' => $akCheckedByDefault,
        ), array(
'akID'), true);
    }

    public function 
saveForm($data)
    {
        
$this->saveValue(isset($data['value']) ? $data['value'] : false);
    }

    
// if this gets run we assume we need it to be validated/checked
    
public function validateForm($data)
    {
        return 
$data['value'] == 1;
    }

    public function 
deleteValue()
    {
        
$db Database::get();
        
$db->Execute('delete from atBoolean where avID = ?', array($this->getAttributeValueID()));
    }
}
Онлайн: 1
Реклама