Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Conversation/Rating/Type.php
Строк: 321
<?php

namespace ConcreteCoreConversationRating;

use 
ConcreteCoreConversationMessageMessage;
use 
ConcreteCoreFoundationObject;
use 
ConcreteCorePackagePackageList;
use 
Core;
use 
Database;

abstract class 
Type extends Object
{
    abstract public function 
outputRatingTypeHTML();
    abstract public function 
adjustConversationMessageRatingTotalScore(Message $message);
    abstract public function 
rateMessage();
    public function 
getRatingTypeHandle()
    {
        return 
$this->cnvRatingTypeHandle;
    }
    public function 
getRatingTypeID()
    {
        return 
$this->cnvRatingTypeID;
    }

    
/** Returns the list of all conversation rating types
     * @return array[Type]
     */
    
public static function getList()
    {
        
$db Database::connection();
        
$handles $db->GetCol('select cnvRatingTypeHandle from ConversationRatingTypes order by cnvRatingTypeHandle asc');
        
$types = array();
        foreach (
$handles as $handle) {
            
$ratingType = static::getByHandle($handle);
            if (
is_object($ratingType)) {
                
$types[] = $ratingType;
            }
        }

        return 
$types;
    }

    public static function 
add($cnvRatingTypeHandle$cnvRatingTypeName$cnvRatingTypeCommunityPoints$pkg false)
    {
        if (
is_object($pkg)) {
            
$pkgID $pkg->getPackageID();
        } else {
            
$pkgID $pkg ?: 0;
        }
        
$db Database::connection();
        
$db->Execute('insert into ConversationRatingTypes (cnvRatingTypeHandle, cnvRatingTypeName, cnvRatingTypeCommunityPoints, pkgID) values (?, ?, ?, ?)', array($cnvRatingTypeHandle$cnvRatingTypeName$cnvRatingTypeCommunityPoints$pkgID));

        return static::
getByHandle($cnvRatingTypeHandle);
    }

    public static function 
getByHandle($cnvRatingTypeHandle)
    {
        
$db Database::connection();
        
$r $db->GetRow('select cnvRatingTypeID, cnvRatingTypeHandle, cnvRatingTypeName, cnvRatingTypeCommunityPoints, pkgID from ConversationRatingTypes where cnvRatingTypeHandle = ?', array($cnvRatingTypeHandle));

        if (
is_array($r) && $r['cnvRatingTypeHandle']) {
            
$class '\Concrete\Core\Conversation\Rating\' . Core::make('helper/text')->camelcase($r['cnvRatingTypeHandle']) . 'Type';
            $sc = Core::make($class);
            $sc->setPropertiesFromArray($r);

            return $sc;
        }
    }

    public static function getByID($cnvRatingTypeID)
    {
        $db = Database::connection();
        $r = $db->GetRow('
select cnvRatingTypeIDcnvRatingTypeHandlecnvRatingTypeNamecnvRatingTypeCommunityPointspkgID from ConversationRatingTypes where cnvRatingTypeID = ?', array($cnvRatingTypeID));

        if (is_array($r) && $r['
cnvRatingTypeHandle']) {
            $class = '
\Concrete\Core\Conversation\Rating\' . Core::make('helper/text')->camelcase($r['cnvRatingTypeHandle']) . 'Type';
            $sc = Core::make($class);
            $sc->setPropertiesFromArray($r);

            return $sc;
        }
    }

    public function export($xml)
    {
        $type = $xml->addChild('
conversationratingtype');
        $type->addAttribute('
handle', $this->getConversationRatingTypeHandle());
        $type->addAttribute('
name', $this->getConversationRatingTypeName());
        $type->addAttribute('
package', $this->getPackageHandle());
        $type->addAttribute('
points', $this->getConversationRatingTypePoints());

    }

    public static function exportList($xml)
    {
        $list = static::getList();
        $nxml = $xml->addChild('
conversationratingtypes');
        foreach ($list as $sc) {
            $sc->export($nxml);
        }
    }

    public static function getListByPackage($pkg)
    {
        $db = Database::connection();
        $handles = $db->GetCol('
select cnvRatingTypeHandle from ConversationRatingTypes where pkgID = ? order by cnvRatingTypeHandle asc', array($pkg->getPackageID()));
        $types = array();
        foreach ($handles as $handle) {
            $ratingType = static::getByHandle($handle);
            if (is_object($ratingType)) {
                $types[] = $ratingType;
            }
        }

        return $types;
    }

    public function delete()
    {
        $db = Database::connection();
        $db->Execute('
delete from ConversationRatingTypes where cnvRatingTypeHandle = ?', array($this->cnvRatingTypeHandle));
    }

    public function getConversationRatingTypeHandle()
    {
        return $this->cnvRatingTypeHandle;
    }

    public function getConversationRatingTypeName()
    {
        return $this->cnvRatingTypeName;
    }

    public function getConversationRatingTypeID()
    {
        return $this->cnvRatingTypeID;
    }

    public function getConversationRatingTypePoints()
    {
        return $this->cnvRatingTypeCommunityPoints;
    }

    public function getPackageID()
    {
        return $this->pkgID;
    }

    public function getPackageHandle()
    {
        return PackageList::getHandle($this->pkgID);
    }

    public function getPackageObject()
    {
        return Package::getByID($this->pkgID);
    }

    /** Returns the display name for this instance (localized and escaped accordingly to $format)
     * @param string $format = '
html' Escape the result in html format (if $format is 'html'). If $format is 'text' or any other value, the display name won't be escaped.
     *
     * @return 
string
     
*/
    public function 
getConversationRatingTypeDisplayName($format 'html')
    {
        
$value tc('ConversationRatingTypeName'$this->cnvRatingTypeName);
        switch (
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }
}
Онлайн: 0
Реклама