Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Gathering/Item/Page.php
Строк: 125
<?php

namespace ConcreteCoreGatheringItem;

use 
Core;
use 
Database;
use 
ConcreteCoreGatheringDataSourceDataSource as GatheringDataSource;
use 
Exception;
use 
Permissions;

class 
Page extends Item
{
    public function 
canViewGatheringItem()
    {
        
$cp = new Permissions($this->page);

        return 
$cp->canViewPage();
    }

    public static function 
getListByItem($mixed)
    {
        
$ags GatheringDataSource::getByHandle('page');
        if (
is_object($ags)) {
            return 
Item::getListByKey($ags$mixed->getCollectionID());
        } else {
            return array();
        }
    }

    public static function 
add(GatheringDataSourceConfiguration $configurationPage $c)
    {
        
$gathering $configuration->getGatheringObject();
        try {
            
// we wrap this in a try because it MIGHT fail if it's a duplicate
            
$item parent::create($gathering$configuration->getGatheringDataSourceObject(), $c->getCollectionDatePublic(), $c->getCollectionName(), $c->getCollectionID());
        } catch (
Exception $e) {
        }

        if (
is_object($item)) {
            
$db Database::connection();
            
$db->executeQuery(
                
'insert into gaPage (gaiID, cID) values (?, ?)',
                array(
                    
$item->getGatheringItemID(),
                    
$c->getCollectionID(),
                )
            );
            
$item->assignFeatureAssignments($c);
            
$item->setAutomaticGatheringItemTemplate();

            return 
$item;
        }
    }

    public function 
assignFeatureAssignments($c)
    {
        
$this->addFeatureAssignment('title'$c->getCollectionName());
        
$this->addFeatureAssignment('date_time'$c->getCollectionDatePublic());
        
$this->addFeatureAssignment('link'Core::make('helper/navigation')->getLinkToCollection($c));
        if (
$c->getCollectionDescription() != '') {
            
$this->addFeatureAssignment('description'$c->getCollectionDescription());
        }
        if (
$c->getAttribute('is_featured')) {
            
$this->addFeatureAssignment('featured'1);
        }
        
$assignments $c->getFeatureAssignments();
        foreach (
$assignments as $fa) {
            
$this->copyFeatureAssignment($fa);
        }
    }

    public function 
duplicate(Gathering $gathering)
    {
        
$item parent::duplicate($gathering);
        
$db Database::connection();
        
$db->executeQuery(
            
'delete from gaPage where gaiID = ?',
            array(
$item->getGatheringItemID())
        );
        
$db->executeQuery(
            
'insert into gaPage (gaiID, cID) values (?, ?)',
            array(
                
$item->getGatheringItemID(),
                
$this->page->getCollectionID(),
            )
        );

        return 
$item;
    }

    public function 
delete()
    {
        
parent::delete();
        
$db Database::connection();
        
$db->executeQuery('delete from gaPage where gaiID = ?', array($this->getGatheringItemID()));
    }

    public function 
loadDetails()
    {
        
$db Database::connection();
        
$row $db->GetRow('select cID from gaPage where gaiID = ?', array($this->getGatheringItemID()));
        
$this->setPropertiesFromArray($row);
        
$this->page self::getByID($row['cID'], 'ACTIVE');
    }

    public function 
getCollectionObject()
    {
        return 
$this->page;
    }
}
Онлайн: 2
Реклама