示例#1
0
 /**
  * <p>Получение данных о галереях по ID. Статичный метод.</p>
  *
  *
  * @param mixed $id  идентификатор галереи
  *
  * @param mixed $lang = LANGUAGE_ID Идентификатор языка для получения локализации, по умолчанию
  * LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения
  * всех локализаций)
  *
  * @return mixed <p>Возвращает массив с данными о галерее. </p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/main/reference/csmilegallery/getbyid.php
  * @author Bitrix
  */
 public static function getById($id, $lang = LANGUAGE_ID)
 {
     return CSmileSet::getById($id, $lang);
 }
示例#2
0
        }
        if ($_REQUEST['action'] == 'delete') {
            CSmile::delete($ID);
        }
    }
}
if ($lAdmin->EditAction()) {
    foreach ($FIELDS as $ID => $arFields) {
        $ID = IntVal($ID);
        if ($ID <= 0) {
            continue;
        }
        CSmile::update($ID, array('LANG' => array(LANGUAGE_ID => $arFields['NAME']), 'SORT' => $arFields['SORT'], 'TYPING' => $arFields['TYPING']));
    }
}
$arSmileSet = CSmileSet::getById($arFilter['SET_ID']);
$dbResultList = CSmile::getList(array('SELECT' => array('ID', 'SET_ID', 'SET_NAME', 'TYPE', 'NAME', 'SORT', 'TYPING', 'IMAGE', 'IMAGE_WIDTH', 'IMAGE_HEIGHT'), 'FILTER' => $arFilter, 'ORDER' => array($by => $order), 'NAV_PARAMS' => array("nPageSize" => CAdminResult::GetNavSize($sTableID)), 'RETURN_RES' => 'Y'));
$dbResultList = new CAdminResult($dbResultList, $sTableID);
$dbResultList->NavStart();
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("SMILE_NAV")));
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("SMILE_ID"), "sort" => "ID", "default" => false), array("id" => "TYPE", "content" => GetMessage('SMILE_TYPE'), "default" => true), array("id" => "NAME", "content" => GetMessage("SMILE_NAME"), "default" => true), array("id" => "TYPING", "content" => GetMessage("SMILE_TYPING"), "default" => true), array("id" => "ICON", "content" => GetMessage("SMILE_ICON"), "default" => true), array("id" => "SORT", "content" => GetMessage("SMILE_SORT"), "sort" => "SORT", "default" => true, "align" => "right"), array("id" => "SET_NAME", "content" => GetMessage("SMILE_SET_NAME"), "default" => false), array("id" => "IMAGE", "content" => GetMessage("SMILE_IMAGE_FILE"), "default" => false)));
$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
while ($arForum = $dbResultList->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arForum);
    $row->AddField("ID", $f_ID);
    $row->AddField("SORT", $f_SORT);
    $row->AddField("TYPE", $f_TYPE == CSmile::TYPE_ICON ? GetMessage("SMILE_TYPE_ICON") : GetMessage("SMILE_TYPE_SMILE"));
    $row->AddViewField("SET_NAME", '<a title="' . GetMessage("SMILE_EDIT_DESCR") . '" href="' . "smile_set_edit.php?ID=" . $f_SET_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . (strlen($f_SET_NAME) > 0 ? $f_SET_NAME : GetMessage('SMILE_SET_NO_NAME', array('#ID#' => $f_SET_ID))) . '</a>');
    $row->AddViewField("NAME", '<a title="' . GetMessage("SMILE_EDIT_DESCR") . '" href="' . "smile_edit.php?ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . (strlen($f_NAME) > 0 ? $f_NAME : GetMessage('SMILE_NO_NAME')) . '</a>');
    $row->AddField("TYPING", $f_TYPING);
    $row->AddField("ICON", "<img src=\"" . ($f_TYPE == CSmile::TYPE_ICON ? CSmile::PATH_TO_ICON : CSmile::PATH_TO_SMILE) . $f_SET_ID . "/" . $f_IMAGE . "\" border=\"0\" " . (IntVal($f_IMAGE_WIDTH) > 0 ? "width=\"" . $f_IMAGE_WIDTH . "\"" : "") . " " . (IntVal($f_IMAGE_HEIGHT) > 0 ? "height=\"" . $f_IMAGE_HEIGHT . "\"" : "") . ">");
示例#3
0
            LocalRedirect(isset($_REQUEST['IMPORT']) ? "smile_import.php?lang=" . LANG . "&SET_ID=" . $ID : (strlen($save) > 0 ? "smile_set.php?GALLERY_ID=" . $parentId . "&lang=" . LANG . "&" . GetFilterParams("filter_", false) : "smile_set_edit.php?GALLERY_ID=" . $parentId . "&lang=" . LANG . "&ID=" . $ID . "&" . GetFilterParams("filter_", false)));
        }
    }
    $e = new CAdminException($arError);
    $message = new CAdminMessage($ID > 0 ? GetMessage("ERROR_EDIT_SMILE") : GetMessage("ERROR_ADD_SMILE"), $e);
    $bInitVars = true;
}
if ($bInitVars && !empty($arFields)) {
    if (isset($arFields['NAME'])) {
        foreach ($arFields['NAME'] as $key => $value) {
            $arFields['NAME'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value);
        }
    }
    $arSmileSet = array("SORT" => isset($arFields['SORT']) ? intval($arFields['SORT']) : 300, "STRING_ID" => isset($arFields['STRING_ID']) ? htmlspecialcharsbx($arFields['STRING_ID']) : "", "NAME" => isset($arFields['NAME']) ? $arFields['NAME'] : array(), "PARENT_ID" => isset($arFields['GALLERY_ID']) ? $arFields['GALLERY_ID'] : 0);
} elseif ($ID > 0) {
    $arSmileSet = CSmileSet::getById($ID, CSmileSet::GET_ALL_LANGUAGE);
} else {
    if (isset($_REQUEST['NAME'])) {
        foreach ($_REQUEST['NAME'] as $key => $value) {
            $_REQUEST['NAME'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value);
        }
    }
    $arSmileSet = array("SORT" => isset($_REQUEST['SORT']) ? intval($_REQUEST['SORT']) : 300, "STRING_ID" => isset($_REQUEST['STRING_ID']) ? htmlspecialcharsbx($_REQUEST['STRING_ID']) : "", "NAME" => isset($_REQUEST['NAME']) ? $_REQUEST['NAME'] : array(), "PARENT_ID" => isset($_REQUEST['GALLERY_ID']) ? $_REQUEST['GALLERY_ID'] : 0);
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
$aMenu = array(array("TEXT" => GetMessage("SMILE_BTN_BACK"), "LINK" => "/bitrix/admin/smile_set.php?GALLERY_ID=" . $arSmileSet['PARENT_ID'] . "&lang=" . LANG . "&" . GetFilterParams("filter_", false), "ICON" => "btn_list"));
if ($ID > 0) {
    $aMenu[] = array("SEPARATOR" => "Y");
    $aMenu[] = array("TEXT" => GetMessage("SMILE_BTN_NEW"), "LINK" => "/bitrix/admin/smile_set_edit.php?GALLERY_ID=" . $arSmileSet['PARENT_ID'] . "&lang=" . LANG . "&" . GetFilterParams("filter_", false), "ICON" => "btn_new");
    if (!in_array($arSmileSet["STRING_ID"], array('bitrix_main'))) {
        $aMenu[] = array("TEXT" => GetMessage("SMILE_BTN_DELETE"), "LINK" => "javascript:if(confirm('" . GetMessage("SMILE_BTN_DELETE_CONFIRM") . "')) window.location='/bitrix/admin/smile_set.php?GALLERY_ID=" . $arSmileSet['PARENT_ID'] . "&action=delete&ID[]=" . $ID . "&lang=" . LANG . "&" . bitrix_sessid_get() . "#tb';", "ICON" => "btn_delete");
示例#4
0
文件: smile.php 项目: ASDAFF/open_bx
 public static function import($arParams)
 {
     global $APPLICATION;
     // check fields
     $aMsg = array();
     $arParams['SET_ID'] = intval($arParams['SET_ID']);
     $arParams['IMPORT_IF_FILE_EXISTS'] = isset($arParams['IMPORT_IF_FILE_EXISTS']) && $arParams['IMPORT_IF_FILE_EXISTS'] == 'Y' ? true : false;
     if (isset($arParams['FILE']) && GetFileExtension($arParams['FILE']) != 'zip') {
         $aMsg["FILE_EXT"] = array("id" => "FILE_EXT", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_EXT_ERROR"));
     } else {
         if (!isset($arParams['FILE']) || !file_exists($arParams['FILE'])) {
             $aMsg["FILE"] = array("id" => "FILE", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_ERROR"));
         } else {
             if ($arParams['SET_ID'] <= 0) {
                 $aMsg["SET_ID"] = array("id" => "SET_ID", "text" => GetMessage("MAIN_SMILE_IMPORT_SET_ID_ERROR"));
             }
         }
     }
     if (!empty($aMsg)) {
         $e = new CAdminException($aMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     $sUnpackDir = CTempFile::GetDirectoryName(1);
     CheckDirPath($sUnpackDir);
     /** @var IBXArchive $oArchiver */
     $oArchiver = CBXArchive::GetArchive($arParams['FILE'], "ZIP");
     $oArchiver->SetOptions(array("STEP_TIME" => 300));
     if (!$oArchiver->Unpack($sUnpackDir)) {
         $aMsg["UNPACK"] = array("id" => "UNPACK", "text" => GetMessage("MAIN_SMILE_IMPORT_UNPACK_ERROR"));
         $e = new CAdminException($aMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     $arSmiles = array();
     if (file_exists($sUnpackDir . 'install.csv')) {
         $arLang = array();
         $db_res = CLanguage::GetList($b = "sort", $o = "asc");
         while ($res = $db_res->Fetch()) {
             if (file_exists($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv')) {
                 $arSmiles = array();
                 $csvFile = new CCSVData();
                 $csvFile->LoadFile($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv');
                 $csvFile->SetFieldsType("R");
                 $csvFile->SetFirstHeader(false);
                 while ($smile = $csvFile->Fetch()) {
                     if (defined('FX_UTF') && FX_UTF && $res["LID"] == 'ru') {
                         $smile[1] = $APPLICATION->ConvertCharset($smile[1], 'windows-1251', 'utf-8');
                     }
                     $arLang[$smile[0]][$res["LID"]] = $smile[1];
                 }
             }
         }
         $csvFile = new CCSVData();
         $csvFile->LoadFile($sUnpackDir . 'install.csv');
         $csvFile->SetFieldsType("R");
         $csvFile->SetFirstHeader(false);
         while ($smile = $csvFile->Fetch()) {
             if (!in_array($smile[0], array(CSmile::TYPE_SMILE, CSmile::TYPE_ICON))) {
                 continue;
             }
             $smile[3] = GetFileName($smile[3]);
             $imgArray = CFile::GetImageSize($sUnpackDir . $smile[3]);
             if (!is_array($imgArray)) {
                 continue;
             }
             $arInsert = array('TYPE' => $smile[0], 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => $smile[1] == 'Y' ? 'Y' : 'N', 'SORT' => intval($smile[2]), 'IMAGE' => $smile[3], 'IMAGE_WIDTH' => intval($smile[4]), 'IMAGE_HEIGHT' => intval($smile[5]), 'IMAGE_HR' => $smile[6] == 'Y' ? 'Y' : 'N', 'TYPING' => $smile[8]);
             if (isset($smile[7]) && isset($arLang[$smile[7]])) {
                 $arInsert['LANG'] = $arLang[$smile[7]];
             }
             $arSmiles[] = $arInsert;
         }
     } else {
         $smileSet = CSmileSet::getById($arParams['SET_ID']);
         if ($handle = @opendir($sUnpackDir)) {
             $sort = 300;
             while (($file = readdir($handle)) !== false) {
                 if ($file == "." || $file == "..") {
                     continue;
                 }
                 if (is_file($sUnpackDir . $file)) {
                     $imgArray = CFile::GetImageSize($sUnpackDir . $file);
                     if (is_array($imgArray)) {
                         $smileHR = 'N';
                         $smileType = CSmile::TYPE_SMILE;
                         $smileCode = GetFileNameWithoutExtension($file);
                         if (strpos($file, 'smile_') !== false && strpos($file, 'smile_') == 0) {
                             $smileCode = substr($smileCode, 6);
                         } else {
                             if (strpos($file, 'smile') !== false && strpos($file, 'smile') == 0) {
                                 $smileCode = substr($smileCode, 5);
                             } elseif (strpos($file, 'icon_') !== false && strpos($file, 'icon_') == 0) {
                                 $smileType = CSmile::TYPE_ICON;
                                 $smileCode = substr($smileCode, 5);
                             } else {
                                 if (strpos($file, 'icon') !== false && strpos($file, 'icon') == 0) {
                                     $smileType = CSmile::TYPE_ICON;
                                     $smileCode = substr($smileCode, 4);
                                 }
                             }
                         }
                         if (strrpos($smileCode, '_hr') !== false && strrpos($smileCode, '_hr') == strlen($smileCode) - 3) {
                             $smileHR = 'Y';
                             $smileCode = substr($smileCode, 0, strrpos($smileCode, '_hr'));
                         }
                         if ($pos = strpos($smileCode, '_hr_')) {
                             echo substr($smileCode, 0, $pos);
                             $smileHR = 'Y';
                             $smileCode = substr($smileCode, 0, $pos) . '_' . substr($smileCode, $pos + 4);
                         }
                         $arSmiles[] = array('TYPE' => $smileType, 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => 'Y', 'SORT' => $sort, 'IMAGE' => $file, 'IMAGE_WIDTH' => intval($imgArray[0]), 'IMAGE_HEIGHT' => intval($imgArray[1]), 'IMAGE_HR' => $smileHR, 'TYPING' => ':' . (isset($smileSet['STRING_ID']) ? $smileSet['STRING_ID'] : $smileSet['ID']) . '/' . $smileCode . ':');
                         $sort = $sort + 5;
                     }
                 }
             }
             @closedir($handle);
         }
     }
     $importSmile = 0;
     foreach ($arSmiles as $smile) {
         $sUploadDir = ($smile['TYPE'] == CSmile::TYPE_ICON ? CSmile::PATH_TO_ICON : CSmile::PATH_TO_SMILE) . intval($smile["SET_ID"]) . '/';
         if (file_exists($sUnpackDir . $smile['IMAGE']) && ($arParams['IMPORT_IF_FILE_EXISTS'] || !file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE']))) {
             if (CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $sUploadDir)) {
                 $insertId = CSmile::add($smile);
                 if ($insertId) {
                     if ($arParams['IMPORT_IF_FILE_EXISTS'] && file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) {
                         $importSmile++;
                     } else {
                         if (copy($sUnpackDir . $smile['IMAGE'], $_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) {
                             @chmod($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'], FX_FILE_PERMISSIONS);
                             $importSmile++;
                         } else {
                             CSmile::delete($insertId);
                         }
                     }
                 }
                 $APPLICATION->ResetException();
             }
         }
     }
     return $importSmile;
 }
示例#5
0
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
IncludeModuleLangFile(__FILE__);
$sTableID = "tbl_smile_set";
$oSort = new CAdminSorting($sTableID, "ID", "asc");
$lAdmin = new CAdminList($sTableID, $oSort);
$arFilterFields = array();
$lAdmin->InitFilter($arFilterFields);
$arFilter = array();
if ($arID = $lAdmin->GroupAction()) {
    foreach ($arID as $ID) {
        if (strlen($ID) <= 0) {
            continue;
        }
        if ($_REQUEST['action'] == 'delete') {
            $arSmileSet = CSmileSet::getById($ID);
            if (!in_array($arSmileSet["STRING_ID"], array('bitrix_main'))) {
                CSmileSet::delete($ID);
            }
        }
    }
}
if ($lAdmin->EditAction()) {
    foreach ($FIELDS as $ID => $arFields) {
        $ID = IntVal($ID);
        if ($ID <= 0) {
            continue;
        }
        CSmileSet::update($ID, array('LANG' => array(LANGUAGE_ID => $arFields['NAME']), 'STRING_ID' => $arFields['STRING_ID'], 'SORT' => $arFields['SORT']));
    }
}
示例#6
0
            $arFields['LANG'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value);
        }
    }
    $arSmile = array("SORT" => isset($arFields['SORT']) ? intval($arFields['SORT']) : 300, "TYPE" => isset($arFields['TYPE']) ? htmlspecialcharsbx($arFields['TYPE']) : CSmile::TYPE_SMILE, "TYPING" => isset($arFields['TYPING']) ? htmlspecialcharsbx($arFields['TYPING']) : "", "HIDDEN" => isset($arFields['HIDDEN']) ? $arFields['HIDDEN'] : "N", "IMAGE" => "", "IMAGE_DEFINITION" => isset($arFields['IMAGE_DEFINITION']) ? $arFields['IMAGE_DEFINITION'] : CSmile::IMAGE_SD, "SET_ID" => isset($arFields['SET_ID']) ? intval($arFields['SET_ID']) : 0, "LANG" => isset($arFields['LANG']) ? $arFields['LANG'] : array());
} elseif ($ID > 0) {
    $arSmile = CSmile::getById($ID, CSmile::GET_ALL_LANGUAGE);
    $arSmile['LANG'] = $arSmile['NAME'];
} else {
    if (isset($_REQUEST['LANG'])) {
        foreach ($_REQUEST['LANG'] as $key => $value) {
            $_REQUEST['LANG'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value);
        }
    }
    $arSmile = array("SORT" => isset($_REQUEST['SORT']) ? intval($_REQUEST['SORT']) : 300, "TYPE" => isset($_REQUEST['TYPE']) ? htmlspecialcharsbx($_REQUEST['TYPE']) : CSmile::TYPE_SMILE, "TYPING" => isset($_REQUEST['TYPING']) ? htmlspecialcharsbx($_REQUEST['TYPING']) : "", "HIDDEN" => isset($_REQUEST['HIDDEN']) ? "Y" : "N", "IMAGE" => "", "IMAGE_DEFINITION" => isset($_REQUEST['IMAGE_DEFINITION']) ? $_REQUEST['IMAGE_DEFINITION'] : CSmile::IMAGE_SD, "SET_ID" => isset($_REQUEST['SET_ID']) ? intval($_REQUEST['SET_ID']) : 0, "LANG" => isset($_REQUEST['LANG']) ? $_REQUEST['LANG'] : array());
}
$smileSet = CSmileSet::getById($arSmile['SET_ID']);
$arSmile['PARENT_ID'] = $smileSet['PARENT_ID'];
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
$aMenu = array(array("TEXT" => GetMessage("SMILE_BTN_BACK"), "LINK" => "/bitrix/admin/smile.php?SET_ID=" . $arSmile['SET_ID'] . "&lang=" . LANG . "&" . GetFilterParams("filter_", false), "ICON" => "btn_list"));
if ($ID > 0) {
    $aMenu[] = array("SEPARATOR" => "Y");
    $aMenu[] = array("TEXT" => GetMessage("SMILE_BTN_NEW"), "LINK" => "/bitrix/admin/smile_edit.php?lang=" . LANG . "&SET_ID=" . $arSmile['SET_ID'] . "&" . GetFilterParams("filter_", false), "ICON" => "btn_new");
    $aMenu[] = array("TEXT" => GetMessage("SMILE_BTN_DELETE"), "LINK" => "javascript:if(confirm('" . GetMessage("SMILE_BTN_DELETE_CONFIRM") . "')) window.location='/bitrix/admin/smile.php?SET_ID=" . $arSmile['SET_ID'] . "&action=delete&ID[]=" . $ID . "&lang=" . LANG . "&" . bitrix_sessid_get() . "#tb';", "ICON" => "btn_delete");
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
if (isset($message) && $message) {
    echo $message->Show();
}
?>
	<form method="POST" action="<?php