This is the API documentation for concrete5 version 5.6 and earlier. View Current API Documentation
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 
<?php 
defined('C5_EXECUTE') or die("Access Denied.");
/**
 * @package Workflow
 * @author Andrew Embler <[email protected]>
 * @copyright  Copyright (c) 2003-2012 concrete5. (http://www.concrete5.org)
 * @license    http://www.concrete5.org/license/     MIT License
 *
 */
 
class Concrete5_Model_ApprovePagePageWorkflowRequest extends PageWorkflowRequest {
    
    protected $wrStatusNum = 30;

    public function __construct() {
        $pk = PermissionKey::getByHandle('approve_page_versions');
        parent::__construct($pk);
    }
    
    public function setRequestedVersionID($cvID) {
        $this->cvID = $cvID;
    }

    public function getRequestedVersionID() {
        return $this->cvID;
    }

    public function getWorkflowRequestDescriptionObject() {
        $d = new WorkflowDescription();
        $c = Page::getByID($this->cID, 'RECENT');
        $link = Loader::helper('navigation')->getLinkToCollection($c, true);
        $d->setEmailDescription(t("\"%s\" has pending changes and needs to be approved. View the page here: %s.", $c->getCollectionName(), $link));
        $d->setDescription(t("Version %s of Page <a href=\"%s\">%s</a> submitted for Approval.", $this->cvID, $link, $c->getCollectionName()));
        $d->setInContextDescription(t("Page Version %s Submitted for Approval.", $this->cvID));
        $d->setShortStatus(t("Pending Approval"));
        return $d;
    }
    
    public function getWorkflowRequestStyleClass() {
        return 'info';
    }
    
    public function getWorkflowRequestApproveButtonClass() {
        return 'success';
    }
    
    public function getWorkflowRequestApproveButtonInnerButtonRightHTML() {
        return '<i class="icon-white icon-thumbs-up"></i>';
    }       
    
    public function getWorkflowRequestApproveButtonText() {
        return t('Approve Page');
    }
    
    public function getWorkflowRequestAdditionalActions(WorkflowProgress $wp) {
        
        $buttons = array();
        $c = Page::getByID($this->cID, 'ACTIVE');
        $cp = new Permissions($c);
        if ($cp->canViewPageVersions()) {
            $button = new WorkflowProgressAction();
            $button->setWorkflowProgressActionLabel(t('Compare Versions'));
            $button->addWorkflowProgressActionButtonParameter('dialog-title', t('Compare Versions'));
            $button->addWorkflowProgressActionButtonParameter('dialog-width', '90%');
            $button->addWorkflowProgressActionButtonParameter('dialog-height', '70%');
            $button->setWorkflowProgressActionStyleInnerButtonLeftHTML('<i class="icon-eye-open"></i>');
            $button->setWorkflowProgressActionURL(REL_DIR_FILES_TOOLS_REQUIRED . '/workflow/dialogs/approve_page_preview.php?wpID=' . $wp->getWorkflowProgressID());
            $button->setWorkflowProgressActionStyleClass('dialog-launch');
            $buttons[] = $button;
        }
        return $buttons;
    }

    public function approve(WorkflowProgress $wp) {
        $c = Page::getByID($this->getRequestedPageID());
        $v = CollectionVersion::get($c, $this->cvID);
        $v->approve(false);
        Events::fire('on_page_version_submit_approve', $c);
        $wpr = new WorkflowProgressResponse();
        $wpr->setWorkflowProgressResponseURL(BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $c->getCollectionID());
        return $wpr;
    }

    
}