Example #1
0
    }
    $e = new CAdminException($arError);
    $message = new CAdminMessage($ID > 0 ? GetMessage("ERROR_EDIT_SMILE") : GetMessage("ERROR_ADD_SMILE"), $e);
    $bInitVars = true;
}
/********************************************************************
				/Action
********************************************************************/
if ($bInitVars && !empty($arFields)) {
    $arSmile = $arFields;
} elseif ($ID > 0) {
    $db_res = CForumSmile::GetList(array(), array("ID" => $ID));
    if ($db_res && ($arSmile = $db_res->Fetch())) {
        $arSmile["LANG"] = array();
        foreach ($arLang as $key => $val) {
            $name = CForumSmile::GetLangByID($ID, $key);
            $arSmile["LANG"][$key] = array("LID" => $key, "NAME" => $name["NAME"]);
        }
    }
} else {
    $arSmile = array("SORT" => 150, "TYPE" => "S", "TYPING" => "", "IMAGE" => "", "DESCRIPTION" => "", "LANG" => array());
}
foreach ($arSmile as $key => $val) {
    if ($key == "LANG") {
        continue;
    }
    $arSmile[$key] = htmlspecialcharsbx($val);
}
foreach ($arSmile["LANG"] as $key => $val) {
    $arSmile["LANG"][$key] = array("LID" => htmlspecialcharsbx($val["LID"]), "NAME" => htmlspecialcharsbx($val["NAME"]));
}
Example #2
0
$arResult["MID"] = intVal($arParams["MID"]);
$arResult["mode"] = $mode;
$arResult["SystemFolder"] = FORUM_SystemFolder;
$resFolder = CForumPMFolder::GetList(array(), array("USER_ID" => $USER->GetID()));
$arResult["UserFolder"] = array();
if ($resFolder && ($resF = $resFolder->GetNext())) {
    do {
        $arResult["UserFolder"][$resF["ID"]] = $resF;
    } while ($resF = $resFolder->GetNext());
}
// *****************************************************************************************
// Info about current user
$arResult["CurrUser"]["SHOW_NAME"] = trim($USER->GetFormattedName(false));
$arResult["CurrUser"]["SHOW_NAME"] = empty($arResult["CurrUser"]["SHOW_NAME"]) ? $USER->GetLogin() : $USER->GetFormattedName(false);
$arResult["ForumPrintSmilesList"] = ForumPrintSmilesList(3, LANGUAGE_ID);
$arResult["SMILES"] = CForumSmile::getSmiles("S", LANGUAGE_ID);
$arResult["FolderName"] = $arParams["FID"] <= $arResult["SystemFolder"] ? GetMessage("PM_FOLDER_ID_" . $arParams["FID"]) : $arResult["UserFolder"][$arParams["FID"]]["TITLE"];
// *****************************************************************************************
$arResult["POST_VALUES"] = array();
if (!$bVarsFromForm && ($mode == "edit" || $mode == "reply")) {
    $arResult["POST_VALUES"] = $arResult["MESSAGE"];
    if ($arParams["FID"] != 2) {
        $arParams["FID"] = intVal($res["FOLDER_ID"]);
    }
    if ($mode == "reply") {
        $arResult["POST_VALUES"]["POST_SUBJ"] = GetMessage("PM_REPLY") . $arResult["POST_VALUES"]["POST_SUBJ"];
        $arResult["POST_VALUES"]["~POST_MESSAGE"] = "[QUOTE]" . $arResult["POST_VALUES"]["~POST_MESSAGE"] . "[/QUOTE]";
        $arResult["POST_VALUES"]["POST_MESSAGE"] = "[QUOTE]" . $arResult["POST_VALUES"]["POST_MESSAGE"] . "[/QUOTE]";
        $arResult["POST_VALUES"]["USER_ID"] = $arResult["POST_VALUES"]["AUTHOR_ID"];
        $arResult["POST_VALUES"]["USER_LOGIN"] = htmlspecialcharsEx(GetUserName($arResult["POST_VALUES"]["USER_ID"], $arParams["NAME_TEMPLATE"]));
    }
Example #3
0
 function Add($arFields)
 {
     global $DB;
     if (!CForumSmile::CheckFields("ADD", $arFields)) {
         return false;
     }
     if (CACHED_b_forum_smile !== false) {
         $GLOBALS["CACHE_MANAGER"]->CleanDir("b_forum_smile");
     }
     $arInsert = $DB->PrepareInsert("b_forum_smile", $arFields);
     $strSql = "INSERT INTO b_forum_smile(" . $arInsert[0] . ") VALUES(" . $arInsert[1] . ")";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     $ID = intVal($DB->LastID());
     foreach ($arFields["LANG"] as $i => $val) {
         $arInsert = $DB->PrepareInsert("b_forum_smile_lang", $arFields["LANG"][$i]);
         $strSql = "INSERT INTO b_forum_smile_lang(SMILE_ID, " . $arInsert[0] . ") VALUES(" . $ID . ", " . $arInsert[1] . ")";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     }
     return $ID;
 }
Example #4
0
	$arResult["REVIEW_TEXT"] = htmlspecialcharsEx($arResult["~REVIEW_TEXT"]);
	$arResult["REVIEW_USE_SMILES"] = $arResult["~REVIEW_USE_SMILES"];
	$arResult["REVIEW_FILES"] = array();
	foreach ($_REQUEST["FILES"] as $key => $val):
		if (intVal($val) <= 0)
			return false;
		$arResult["REVIEW_FILES"][$val] = CFile::GetFileArray($val);
	endforeach;

	// Form Info
	$arResult["SHOW_PANEL_ATTACH_IMG"] = (in_array($arResult["FORUM"]["ALLOW_UPLOAD"], array("A", "F", "Y")) ? "Y" : "N");
	$arResult["TRANSLIT"] = (LANGUAGE_ID=="ru" ? "Y" : " N");
	if ($arResult["FORUM"]["ALLOW_SMILES"] == "Y"):
		$arResult["ForumPrintSmilesList"] = ($arResult["FORUM"]["ALLOW_SMILES"] == "Y" ?
			ForumPrintSmilesList(3, LANGUAGE_ID, $arParams["PATH_TO_SMILE"], $arParams["CACHE_TIME"]) : "");
		$arResult["SMILES"] = CForumSmile::GetByType("S", LANGUAGE_ID);
	endif;

	$arResult["CAPTCHA_CODE"] = "";
	if ($arParams["USE_CAPTCHA"] == "Y" && !$USER->IsAuthorized())
	{
		include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");
		$cpt = new CCaptcha();
		$captchaPass = COption::GetOptionString("main", "captcha_password", "");
		if (strLen($captchaPass) <= 0)
		{
			$captchaPass = randString(10);
			COption::SetOptionString("main", "captcha_password", $captchaPass);
		}
		$cpt->SetCodeCrypt($captchaPass);
		$arResult["CAPTCHA_CODE"] = htmlspecialcharsbx($cpt->GetCodeCrypt());
Example #5
0
 function textParser($strLang = False, $pathToSmile = false)
 {
     global $DB;
     static $arSmiles = array();
     $strLang = $strLang === false ? LANGUAGE_ID : $strLang;
     $pathToSmile = $pathToSmile === false ? "/bitrix/images/forum/smile/" : $pathToSmile;
     $id = md5($pathToSmile . "|" . $pathToSmile);
     if (!is_set($arSmiles, $id)) {
         $arCollection = $arPattern = $arReplacement = array();
         $db_res = CForumSmile::GetByType("S", $strLang);
         foreach ($db_res as $key => $val) {
             $tok = strtok($val["TYPING"], " ");
             while ($tok) {
                 $row = array("TYPING" => $tok, "IMAGE" => stripslashes($val["IMAGE"]), "DESCRIPTION" => stripslashes($val["NAME"]));
                 $tok = str_replace(array(chr(34), chr(39), "<", ">"), array("\v", "\f", "&lt;", "&gt;"), $tok);
                 $code = preg_quote(str_replace(array("\\"), array("&#092;"), $tok));
                 $patt = preg_quote($tok, "/");
                 $image = preg_quote($row["IMAGE"]);
                 $description = preg_quote(htmlspecialcharsbx($row["DESCRIPTION"], ENT_QUOTES), "/");
                 $arReplacement[] = "\$this->convert_emoticon('{$code}', '{$image}', '{$description}')";
                 $arPattern[] = "/(?<=[^\\w&]){$patt}(?=.\\W|\\W.|\\W\$)/ei" . BX_UTF_PCRE_MODIFIER;
                 $arCollection[] = $row;
                 $tok = strtok(" ");
             }
         }
         $arSmiles[$id] = array("smiles" => $arCollection, "pattern" => $arPattern, "replace" => $arReplacement);
     }
     $this->smiles = $arSmiles[$id]["smiles"];
     $this->preg_smiles = array("pattern" => $arSmiles[$id]["pattern"], "replace" => $arSmiles[$id]["replace"]);
     $this->path_to_smile = "";
 }
Example #6
0
        }
    }
}
$dbResultList = CForumSmile::GetList(array($by => $order), $arFilter);
$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" => true), array("id" => "NAME", "content" => GetMessage("FORUM_NAME"), "sort" => "", "default" => true), array("id" => "SORT", "content" => GetMessage("SMILE_SORT"), "sort" => "SORT", "default" => true, "align" => "right"), array("id" => "TYPE", "content" => GetMessage('SMILE_TYPE'), "sort" => "TYPE", "default" => true), array("id" => "TYPING", "content" => GetMessage("FORUM_TYPING"), "sort" => "", "default" => true), array("id" => "ICON", "content" => GetMessage("FORUM_SMILE_ICON"), "sort" => "", "default" => true), array("id" => "IMAGE", "content" => GetMessage("FORUM_IMAGE_FILE"), "sort" => "", "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 == "I" ? GetMessage("SMILE_TYPE_ICON") : GetMessage("SMILE_TYPE_SMILE"));
    if (in_array("NAME", $arVisibleColumns)) {
        $arSmileLang = CForumSmile::GetLangByID($f_ID, LANG);
        $fieldShow = htmlspecialcharsbx($arSmileLang["NAME"]);
        $row->AddViewField("NAME", '<a title="' . GetMessage("FORUM_EDIT_DESCR") . '" href="' . "forum_smile_edit.php?ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . $fieldShow . '</a>');
    }
    $row->AddField("TYPING", $f_TYPING);
    $row->AddField("ICON", "<img src=\"/bitrix/images/forum/" . ($f_TYPE == "I" ? "icon" : "smile") . "/" . $f_IMAGE . "\" border=\"0\" " . (IntVal($f_IMAGE_WIDTH) > 0 ? "width=\"" . $f_IMAGE_WIDTH . "\"" : "") . " " . (IntVal($f_IMAGE_WIDTH) > 0 ? "height=\"" . $f_IMAGE_HEIGHT . "\"" : "") . ">");
    $row->AddField("IMAGE", "/bitrix/images/forum/" . ($f_TYPE == "I" ? "icon" : "smile") . "/" . $f_IMAGE);
    $arActions = array();
    if ($forumModulePermissions >= "R") {
        $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("FORUM_EDIT_DESCR"), "ACTION" => $lAdmin->ActionRedirect("forum_smile_edit.php?ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . ""), "DEFAULT" => true);
    }
    if ($forumModulePermissions >= "W") {
        $arActions[] = array("SEPARATOR" => true);
        $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("FORUM_DELETE_DESCR"), "ACTION" => "if(confirm('" . GetMessage('SMILE_DEL_CONF') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete"));
    }
    $row->AddActions($arActions);
Example #7
0
 public static function GetByType($TYPE, $LANGUAGE_ID)
 {
     global $CACHE_MANAGER;
     $arFields = array();
     if (in_array($TYPE, array("S", "I"))) {
         $arFields["TYPE"] = $TYPE;
     }
     if (!empty($LANGUAGE_ID)) {
         $arFields["LID"] = $LANGUAGE_ID;
     }
     $cache_id = "b_forum_smile_" . implode("_", array_keys($arFields)) . "_" . implode("_", $arFields);
     $result = array();
     if (CACHED_b_forum_smile !== false && $CACHE_MANAGER->Read(CACHED_b_forum_smile, $cache_id, "b_forum_smile")) {
         $result = $CACHE_MANAGER->Get($cache_id);
     } else {
         $db_res = CForumSmile::GetListEx(array("SORT" => "ASC"), $arFields);
         while ($res = $db_res->Fetch()) {
             $result[] = $res;
         }
         if (CACHED_b_forum_smile !== false) {
             $CACHE_MANAGER->Set($cache_id, $result);
         }
     }
     return $result;
 }
Example #8
0
 protected static function getIcon($iconTyping)
 {
     if (!is_array(self::$icons)) {
         $result = array();
         $smiles = CForumSmile::GetByType(CSmile::TYPE_ICON, LANGUAGE_ID);
         foreach ($smiles as $smile) {
             $result[$smile["TYPING"]] = $smile["IMAGE"];
         }
         self::$icons = $result;
     }
     return array_key_exists($iconTyping, self::$icons) ? self::$icons[$iconTyping] : '';
 }
Example #9
0
/**
 * @deprecated
 * @param $num_cols
 * @param bool $strLang
 * @return string
 */
function ForumPrintSmilesList($num_cols, $strLang = false)
{
    $num_cols = intVal($num_cols);
    $num_cols = $num_cols > 0 ? $num_cols : 3;
    $strLang = $strLang === false ? LANGUAGE_ID : $strLang;
    $strPath2Icons = "/bitrix/images/forum/smile/";
    $arSmile = CForumSmile::getByType("S", $strLang);
    $res_str = "";
    $ind = 0;
    foreach ($arSmile as $res) {
        if ($ind == 0) {
            $res_str .= "<tr align=\"center\">";
        }
        $res_str .= "<td width=\"" . IntVal(100 / $num_cols) . "%\">";
        $strTYPING = strtok($res['TYPING'], " ");
        $res_str .= "<img src=\"" . $strPath2Icons . $res['IMAGE'] . "\" alt=\"" . $res['NAME'] . "\" title=\"" . $res['NAME'] . "\" border=\"0\"";
        if (IntVal($res['IMAGE_WIDTH']) > 0) {
            $res_str .= " width=\"" . $res['IMAGE_WIDTH'] . "\"";
        }
        if (IntVal($res['IMAGE_HEIGHT']) > 0) {
            $res_str .= " height=\"" . $res['IMAGE_HEIGHT'] . "\"";
        }
        $res_str .= " class=\"smiles-list\" alt=\"smile" . $strTYPING . "\" onclick=\"if(emoticon){emoticon('" . $strTYPING . "');}\" name=\"smile\"  id='" . $strTYPING . "' ";
        $res_str .= "/>&nbsp;</td>\n";
        $ind++;
        if ($ind >= $num_cols) {
            $ind = 0;
            $res_str .= "</tr>";
        }
    }
    if ($ind < $num_cols) {
        for ($i = 0; $i < $num_cols - $ind; $i++) {
            $res_str .= "<td> </td>";
        }
    }
    return $res_str;
}
Example #10
0
	<div class="forum-reply-header"><?php 
echo GetMessage("F_HEAD_MESS");
?>
<span class="forum-required-field">*</span></div>

	<div class="forum-reply-fields">
		<div class="forum-reply-field forum-reply-field-text">
			<?php 
$arSmiles = array();
foreach ($arResult["SMILES"] as $arSmile) {
    $arSmiles[] = array_change_key_case($arSmile, CASE_LOWER) + array('path' => $arSmile["IMAGE"], 'code' => array_shift(explode(" ", str_replace("\\\\", "\\", $arSmile["TYPING"]))));
}
CModule::IncludeModule("fileman");
$Editor = new CHTMLEditor();
$res = array_merge(array('height' => 200, 'minBodyWidth' => 350, 'normalBodyWidth' => 555, 'bAllowPhp' => false, 'limitPhpAccess' => false, 'showTaskbars' => false, 'showNodeNavi' => false, 'askBeforeUnloadPage' => true, 'bbCode' => true, 'siteId' => SITE_ID, 'autoResize' => true, 'autoResizeOffset' => 40, 'saveOnBlur' => true, 'controlsMap' => array(array('id' => 'Bold', 'compact' => true, 'sort' => 80), array('id' => 'Italic', 'compact' => true, 'sort' => 90), array('id' => 'Underline', 'compact' => true, 'sort' => 100), array('id' => 'Strikeout', 'compact' => true, 'sort' => 110), array('id' => 'RemoveFormat', 'compact' => true, 'sort' => 120), array('id' => 'Color', 'compact' => true, 'sort' => 130), array('id' => 'FontSelector', 'compact' => false, 'sort' => 135), array('id' => 'FontSize', 'compact' => false, 'sort' => 140), array('separator' => true, 'compact' => false, 'sort' => 145), array('id' => 'OrderedList', 'compact' => true, 'sort' => 150), array('id' => 'UnorderedList', 'compact' => true, 'sort' => 160), array('id' => 'AlignList', 'compact' => false, 'sort' => 190), array('separator' => true, 'compact' => false, 'sort' => 200), array('id' => 'InsertLink', 'compact' => true, 'sort' => 210, 'wrap' => 'bx-b-link-' . $arParams["FORM_ID"]), array('id' => 'InsertImage', 'compact' => false, 'sort' => 220), array('id' => 'InsertVideo', 'compact' => true, 'sort' => 230, 'wrap' => 'bx-b-video-' . $arParams["FORM_ID"]), array('id' => 'InsertTable', 'compact' => false, 'sort' => 250), array('id' => 'Code', 'compact' => true, 'sort' => 260), array('id' => 'Quote', 'compact' => true, 'sort' => 270, 'wrap' => 'bx-b-quote-' . $arParams["FORM_ID"]), array('id' => 'Smile', 'compact' => false, 'sort' => 280), array('separator' => true, 'compact' => false, 'sort' => 290), array('id' => 'Fullscreen', 'compact' => false, 'sort' => 310), array('id' => 'BbCode', 'compact' => true, 'sort' => 340), array('id' => 'More', 'compact' => true, 'sort' => 400))), array('name' => "POST_MESSAGE", 'id' => "POST_MESSAGE", 'width' => '100%', 'arSmilesSet' => CForumSmile::getSetsByType("S", LANGUAGE_ID), 'arSmiles' => $arSmiles, 'content' => isset($arResult['POST_VALUES']["~POST_MESSAGE"]) ? $arResult['POST_VALUES']["~POST_MESSAGE"] : $arResult['POST_VALUES']["POST_MESSAGE"], 'iframeCss' => 'body{font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 13px;}' . '.bx-spoiler {border:1px solid #C0C0C0;background-color:#fff4ca;padding: 4px 4px 4px 24px;color:#373737;border-radius:2px;min-height:1em;margin: 0;}' . (is_array($arParams["LHE"]) && isset($arParams["LHE"]["iframeCss"]) ? $arParams["LHE"]["iframeCss"] : "")));
$Editor->Show($res);
?>
		</div>

		<div class="forum-reply-field forum-reply-field-settings">
			<div class="forum-reply-field-setting">
				<input type="checkbox" name="USE_SMILES" id="USE_SMILES" <?php 
?>
value="Y" <?php 
echo $arResult["POST_VALUES"]["USE_SMILES"] != "N" ? "checked=\"checked\"" : "";
?>
 <?php 
?>
tabindex="<?php 
echo $tabIndex++;