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

use 
Loader;
use 
Environment;
use 
ConcreteCoreFoundationObject;
use 
ConcreteCoreSharingSocialNetworkServiceList as ServiceList;
use 
ConcreteCoreSharingSocialNetworkService as Service;
use 
ConcreteCoreAttributeController as AttributeTypeController;

class 
Controller extends AttributeTypeController
{


    public function 
saveForm($data)
    {
        if (!
is_array($data['service'])) {
            
$data['service'] = array();
        }
        if (!
is_array($data['serviceInfo'])) {
            
$data['serviceInfo'] = array();
        }
        for (
$i 0$i count($data['service']); $i++) {
            
$values[$data['service'][$i]] = $data['serviceInfo'][$i];
        }
        
$this->saveValue($values);
    }

    public function 
saveValue($values)
    {
        
$db Loader::db();
        
$db->Execute('delete from atSocialLinks where avID = ?', array($this->getAttributeValueID()));
        foreach (
$values as $service => $serviceInfo) {
            if (
$serviceInfo) {
                
$serviceInfo filter_var($serviceInfoFILTER_SANITIZE_URL);
                
$service Loader::helper('text')->entities($service);
                
$serviceInfo Loader::helper('text')->entities($serviceInfo);
                
$db->Execute('insert into atSocialLinks (avID, service, serviceInfo) values (?, ?, ?)',
                    array(
$this->getAttributeValueID(), $service$serviceInfo));
            }
        }
    }

    public function 
exportValue(SimpleXMLElement $akn)
    {
        
$services $this->getValue();
        foreach (
$services as $service => $serviceInfo) {
            
$av $akn->addChild('link');
            
$av->addAttribute('service'$service);
            
$av->addAttribute('detail'$serviceInfo);
        }
    }

    public function 
getValue()
    {
        
$db Loader::db();
        
$services = array();
        
$r $db->Execute('select service, serviceInfo from atSocialLinks where avID = ? order by avsID asc',
            array(
$this->getAttributeValueID()));
        while (
$row $r->FetchRow()) {
            
$services[$row['service']] = $row['serviceInfo'];
        }
        return 
$services;
    }

    public function 
deleteKey()
    {
        
$db Loader::db();
        
$arr $this->attributeKey->getAttributeValueIDList();
        foreach (
$arr as $id) {
            
$db->Execute('delete from atSocialLinks where avID = ?', array($id));
        }
    }

    public function 
deleteValue()
    {
        
$db Loader::db();
        
$db->Execute('delete from atSocialLinks where avID = ?', array($this->getAttributeValueID()));
    }

    public function 
getDisplayValue()
    {
        
$html '';
        
$services $this->getValue();
        if (
count($services) > 0) {
            
$env Environment::get();
            
$url $env->getURL(DIRNAME_ATTRIBUTES '/social_links/view.css');
            
$this->addHeaderItem(Loader::helper('html')->css($url));
            
$html .= '<span class="ccm-social-link-attribute-display">';
            foreach (
$services as $service => $serviceInfo) {
                
$serviceObject Service::getByHandle($service);
                if (
is_object($serviceObject)) {
                    
$iconHtml $serviceObject->getServiceIconHTML();
                }
                
$html .= '<span class="ccm-social-link-service">';
                
$html .= '<span class="ccm-social-link-service-icon"><a href="' filter_var($serviceInfo,
                        
FILTER_VALIDATE_URL) . '">' $iconHtml '</a></span>';
                
$html .= '<span class="ccm-social-link-service-info"><a href="' filter_var($serviceInfo,
                        
FILTER_VALIDATE_URL) . '">' $serviceObject->getName() . '</a></span>';
                
$html .= '</span>';
            }
            
$html .= '</span>';
        }
        return 
$html;
    }

    public function 
form()
    {
        if (
$this->isPost()) {
            
$data['service'] = $this->post('service');
            
$data['serviceInfo'] = $this->post('serviceInfo');
        } else {
            
$d $this->getValue();
            foreach (
$d as $k => $v) {
                
$data['service'][] = $k;
                
$data['serviceInfo'][] = $v;
            }
        }
        if (!
is_array($data['service'])) {
            
$data['service'][] = 'facebook';
            
$data['serviceInfo'][] = '';
        }
        
$this->set('data'$data);
        
$this->set('services'ServiceList::get());
    }
}
Онлайн: 1
Реклама