Your IP : 172.28.240.42


Current Path : /var/www/html/clients/biblio.e-nkama.ru/bitrix/modules/artismedia.faq/install/
Upload File :
Current File : /var/www/html/clients/biblio.e-nkama.ru/bitrix/modules/artismedia.faq/install/index.php

<?
IncludeModuleLangFile(__FILE__);

Class artismedia_faq extends CModule {
    var $MODULE_ID = "artismedia.faq";
    var $MODULE_VERSION;
    var $MODULE_VERSION_DATE;
    var $MODULE_NAME;
    var $MODULE_DESCRIPTION;
    var $MODULE_CSS;
    var $MODULE_GROUP_RIGHTS = "N";

    function __construct() {
        $arModuleVersion = array();
        include("version.php");

        $this->MODULE_VERSION = $arModuleVersion["VERSION"];
        $this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];

        $this->MODULE_NAME = GetMessage("ARTISMEDIA_FAQ_INSTALL_NAME");
        $this->MODULE_DESCRIPTION = GetMessage("ARTISMEDIA_FAQ_INSTALL_DESCRIPTION");

        $this->PARTNER_NAME = "ArtisMedia";
        $this->PARTNER_URI = "http://www.artismedia.by/";
    }

    function InstallDB($install_wizard = true) {
        global $DB, $DBType, $APPLICATION;
        RegisterModule($this->MODULE_ID);
        return true;
    }

    function UnInstallDB($arParams = Array()) {
        global $DB, $DBType, $APPLICATION;
        UnRegisterModule($this->MODULE_ID);
        return true;
    }

    function InstallEvents() {
        include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/" . $this->MODULE_ID . "/install/events.php");
        return true;
    }

    function UnInstallEvents() {
        return true;
    }

    function InstallFiles() {
        $res = CopyDirFiles(dirname(__FILE__)."/components", $_SERVER["DOCUMENT_ROOT"]."/bitrix/components", false, true);
        return $res;
    }

    function InstallPublic() {
        /*Ïàðàìåòðû äëÿ ñîçäàíèÿ òèïà èíôîáëîêà*/
        $arFields = Array(
            'ID'=>'artismedia_faq',
            'SECTIONS'=>'Y',
            'SORT'=>100,
            'LANG'=>Array(
                'en'=>Array(
                    'NAME'=>'FAQ',
                ),
                'ru'=>Array(
                    'NAME'=>'FAQ',
                ),
            )
        );

        $ex_catalog_flag = 0;

        /*Ïðîâåðêà íà ñóùåñòâîâàíèå òèïà èíôîáëîêà*/
        if ($this->IncludeModule('iblock')) {
            $obBlocktype = new CIBlockType;
            $iblock = new CIBlock;
            $ibp = new CIBlockProperty;
            $el = new CIBlockElement;
            $db_iblock_type = CIBlockType::GetList();

            while($ar_iblock_type = $db_iblock_type->Fetch()) {
                if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG)) {
                    if ($arIBType["IBLOCK_TYPE_ID"] == "artismedia_faq") {
                        $ex_catalog_flag = 1;
                        $IBLOCK_TYPE_ID = $arIBType["IBLOCK_TYPE_ID"];
                    }
                }
            }

            /*Íå ñóùåñòâóåò ñîçäàåì íîâûé òèï èíôîáëîêà ñ ïàðàìåòðàìè âûøå*/
            if (!$ex_catalog_flag) {
                $res = $obBlocktype->Add($arFields);
                $IBLOCK_TYPE_ID = $res;

            }

            $rsSites = CSite::GetList($by="sort", $order="desc", Array( ))->Fetch();

            /*ïàðàìåòðû äëÿ èíôîáëîêà*/
            $arFields = array(
                "SITE_ID" => $rsSites["LID"],
                "ACTIVE" => "Y",
                "IBLOCK_TYPE_ID" => $IBLOCK_TYPE_ID,
                "NAME" => "FAQ",
                "CODE" => "FAQ",
                "SORT" => "100",
                "LIST_PAGE_URL" => "#SITE_DIR#/faq/index.php",
                "DETAIL_PAGE_URL" => "#SITE_DIR#/faq/detail.php",
				"GROUP_ID" => Array("2"=>"R"),
            );

            $res = CIBlock::GetList(array(), array("CODE" => "FAQ"))->GetNext();
			
			if(!$res) 
                $iblock->Add($arFields);
			
        } else {die("IBLOCK NOT INCLUDED!");}
    }

    function UnInstallFiles() {
        DeleteDirFilesEx("/bitrix/components/artismedia/faq");
        return true;
    }

    function DoInstall() {
        global $APPLICATION, $step, $arSites;
		
		$step = intval($step);
        $ob_sites = CSite::GetList($by = "id", $order = "asc", array("ACTIVE" => "Y"));
        while ($rs_site = $ob_sites->Fetch())
            $arSites[] = $rs_site;

        if (empty($arSites)) {
            CAdminMessage::ShowMessage(GetMessage('SITES_NOT_FOUND'));

            return false;
        }
		
        if (!$this->InstallFiles()) {
            CAdminMessage::ShowMessage('Failed to copy files. Catalog /bitrix/ must be writable');
        }
		
        $this->InstallEvents();
        $this->InstallPublic();
		$this->InstallDB(false);

        $APPLICATION->IncludeAdminFile(GetMessage("ARTISMEDIA_FAQ_INSTALL_TITLE"), dirname(__FILE__)."/step.php");

    }

    function DoUninstall() {
        global $APPLICATION, $step;

        $this->UnInstallDB();
        $this->UnInstallFiles();
        $this->UnInstallEvents();
        $APPLICATION->IncludeAdminFile(GetMessage("ARTISMEDIA_FAQ_UNINSTALL_TITLE"), dirname(__FILE__)."/unstep.php");
    }
}
?>