Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/system/basics/social.php
Строк: 128
<?php

namespace ConcreteControllerSinglePageDashboardSystemBasics;

use 
ConcreteCorePageControllerDashboardPageController;
use 
ConcreteCoreSharingSocialNetworkLink;
use 
ConcreteCoreSharingSocialNetworkServiceList;
use 
ConcreteCoreSharingSocialNetworkService;
use 
Core;

class 
Social extends DashboardPageController
{

    public function 
view()
    {
        
$this->set('links'Link::getList());
    }

    public function 
link_updated()
    {
        
$this->set('success't("Link Updated."));
        
$this->view();
    }

    public function 
link_deleted()
    {
        
$this->set('success't("Link Deleted."));
        
$this->view();
    }

    public function 
link_added()
    {
        
$this->set('success't("Social Link Added."));
        
$this->view();
    }

    protected function 
validatePageRequest($token)
    {
        if (!
$this->token->validate($token)) {
            
$this->error->add($this->token->getErrorMessage());
        }

        
$ssHandle $this->request->request->get('ssHandle');
        
$existingLink false;
        if (
$ssHandle) {
            
$service Service::getByHandle($ssHandle);
            
$existingLink Link::getByServiceHandle($ssHandle);
        }
        
$sec Core::make('helper/security');
        
$url $sec->sanitizeURL($this->request->request->get('url'));
        if (!
$url) {
            
$this->error->add(t('You must specify a valid URL.'));
        }
        if (!
is_object($service)) {
            
$this->error->add(t('You must choose a service.'));
        }
        return array(
$ssHandle$url$existingLink);
    }

    public function 
add_link()
    {
        
$r $this->validatePageRequest('add_link');
        list(
$ssHandle$url$existingLink) = $r;
        if (
$existingLink) {
            
$this->error->add(t('This social link already exists.'));
        }
        if (!
$this->error->has()) {
            
$link = new Link();
            
$link->setServiceHandle($ssHandle);
            
$link->setURL($url);
            
$link->save();
            
$this->redirect('/dashboard/system/basics/social''link_added');
        }
        
$this->add();
    }

    public function 
delete_link()
    {
        
$slID $this->request->request->get('slID');
        if (
Core::make("helper/validation/numbers")->integer($slID)) {
            if (
$slID 0) {
                
$link Link::getByID($slID);
            }
        }

        if (!
is_object($link)) {
            
$this->error->add(t('Invalid link.'));
        }
        if (!
$this->token->validate('delete_link')) {
            
$this->error->add($this->token->getErrorMessage());
        }

        if (!
$this->error->has()) {
            
$link->delete();
            
$this->redirect('/dashboard/system/basics/social''link_deleted');
        }

        
$this->edit($slID);
    }

    public function 
edit_link($slID null)
    {
        
$r $this->validatePageRequest('edit_link');
        
$this->edit($slID);
        list(
$ssHandle$url$existingLink) = $r;
        if (
$existingLink && $existingLink->getID() != $slID) {
            
$this->error->add(t('This social link already exists.'));
        }
        if (!
$this->error->has()) {
            
$link $this->socialLink;
            
$link->setServiceHandle($ssHandle);
            
$link->setURL($url);
            
$link->save();
            
$this->redirect('/dashboard/system/basics/social''link_updated');
        }
    }

    public function 
add()
    {
        
$services = array('' => t('Choose a Service'));
        
$list ServiceList::get();
        foreach(
$list as $service) {
            
$services[$service->getHandle()] = $service->getName();
        }
        
$this->set('services'$services);
    }

    public function 
edit($slID null)
    {
        if (
Core::make("helper/validation/numbers")->integer($slID)) {
            if (
$slID 0) {
                
$link Link::getByID($slID);
            }
        }

        if (!
is_object($link)) {
            
$this->redirect('/dashboard/system/basics/social');
        }
        
$this->socialLink $link;

        
$this->set('link'$link);
        
$this->add();
    }

}
Онлайн: 0
Реклама