示例#1
0
文件: smile.php 项目: rasuldev/torino
 public static function Update($ID, $arFields)
 {
     global $DB, $CACHE_MANAGER;
     $ID = IntVal($ID);
     if ($ID <= 0) {
         return False;
     }
     if (!CBlogSmile::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_blog_smile", $arFields);
     $strSql = "UPDATE b_blog_smile SET " . $strUpdate . " WHERE ID = " . $ID;
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     if (is_set($arFields, "LANG")) {
         $DB->Query("DELETE FROM b_blog_smile_lang WHERE SMILE_ID = " . $ID . "");
         for ($i = 0; $i < count($arFields["LANG"]); $i++) {
             $arInsert = $DB->PrepareInsert("b_blog_smile_lang", $arFields["LANG"][$i]);
             $strSql = "INSERT INTO b_blog_smile_lang(SMILE_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")";
             $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
     }
     $CACHE_MANAGER->Clean("b_blog_smile");
     BXClearCache(true, "/blog/smiles/");
     return $ID;
 }
示例#2
0
	function blogTextParser($strLang = False, $pathToSmile = false)
	{
		$this->CTextParser();
		global $CACHE_MANAGER;
		if ($strLang===False)
			$strLang = LANGUAGE_ID;

		if(strlen($pathToSmile) <= 0)
			$pathToSmile = "/bitrix/images/blog/smile/";
		$this->pathToSmile = $pathToSmile;
		$this->imageWidth = COption::GetOptionString("blog", "image_max_width", 600);
		$this->imageHeight = COption::GetOptionString("blog", "image_max_height", 1000);
		$this->showedImages = array();
		$this->ajaxPage = $GLOBALS["APPLICATION"]->GetCurPageParam("", array("bxajaxid", "logout"));
		$this->blogImageSizeEvents = GetModuleEvents("blog", "BlogImageSize", true);
		$this->arUserfields = array();
		$arSmiles = array();

		$this->smiles = array();
		if($CACHE_MANAGER->Read(60*60*24*365, "b_blog_smile"))
		{
			$arSmiles = $CACHE_MANAGER->Get("b_blog_smile");
		}
		else
		{
			$db_res = CBlogSmile::GetList(array("SORT" => "ASC"), array("SMILE_TYPE" => "S"/*, "LANG_LID" => $strLang*/), false, false, Array("LANG_LID", "ID", "IMAGE", "DESCRIPTION", "TYPING", "SMILE_TYPE", "SORT"));
			while ($res = $db_res->Fetch())
			{
				$tok = strtok($res["TYPING"], " ");
				while ($tok)
				{
					$arSmiles[$res["LANG_LID"]][] = array(
										"TYPING" => $tok,
										"IMAGE"  => stripslashes($res["IMAGE"]),
										"DESCRIPTION" => stripslashes($res["NAME"]));
					$tok = strtok(" ");
				}
			}

			function sortlen($a, $b) 
			{
				if (strlen($a["TYPING"]) == strlen($b["TYPING"]))
					return 0;

				return (strlen($a["TYPING"]) > strlen($b["TYPING"])) ? -1 : 1;
			}

			if(!empty($arSmiles))
			{
				foreach ($arSmiles as $LID => $arSmilesLID)
				{
					uasort($arSmilesLID, 'sortlen');
					$arSmiles[$LID] = $arSmilesLID;
				}
			}

			$CACHE_MANAGER->Set("b_blog_smile", $arSmiles);
		}
		$this->smiles = $arSmiles[$strLang];
	}
示例#3
0
     $Vars = $cache->GetVars();
     foreach ($Vars["arResult"] as $k => $v) {
         if (!array_key_exists($k, $arResult)) {
             $arResult[$k] = $v;
         }
     }
     CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]);
     $cache->Output();
 } else {
     if ($arParams["CACHE_TIME"] > 0) {
         $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
     }
     $arResult["CommentsResult"] = array();
     $arSelectFields = array("ID", "SMILE_TYPE", "TYPING", "IMAGE", "DESCRIPTION", "CLICKABLE", "SORT", "IMAGE_WIDTH", "IMAGE_HEIGHT", "LANG_NAME");
     $arSmiles = array();
     $res = CBlogSmile::GetList(array("SORT" => "ASC", "ID" => "DESC"), array("SMILE_TYPE" => "S", "LANG_LID" => LANGUAGE_ID), false, false, $arSelectFields);
     while ($arr = $res->GetNext()) {
         list($type) = explode(" ", $arr["TYPING"]);
         $arr["TYPE"] = str_replace("'", "\\'", $type);
         $arr["TYPE"] = str_replace("\\", "\\\\", $arr["TYPE"]);
         $arSmiles[] = $arr;
     }
     $arResult["Smiles"] = $arSmiles;
     if (IntVal($arParams["ID"]) > 0) {
         $arOrder = array("ID" => "ASC", "DATE_CREATE" => "ASC");
         $arFilter = array("POST_ID" => $arParams["ID"]);
         if ($arResult["Perm"] < BLOG_PERMS_MODERATE || !$arResult["IDEA_MODERATOR"]) {
             $arFilter["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_PUBLISH;
         }
         $arSelectedFields = array("ID", "BLOG_ID", "POST_ID", "PARENT_ID", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_EMAIL", "AUTHOR_IP", "AUTHOR_IP1", "TITLE", "POST_TEXT", "DATE_CREATE", "PUBLISH_STATUS");
         $dbComment = CBlogComment::GetList($arOrder, array_merge($extFilter, $arFilter), false, false, $arSelectedFields);
示例#4
0
文件: index.php 项目: nycmic/bittest
	function InstallDB($install_wizard = true)
	{
		global $DB, $DBType, $APPLICATION, $install_smiles;

		if (!$DB->Query("SELECT 'x' FROM b_blog_user_group", true))
		{
			$errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/blog/install/".$DBType."/install.sql");
			COption::SetOptionString("blog", "socNetNewPerms", "Y");
		}

		if (empty($errors))
		{
			$errors = $this->InstallUserFields();
		}

		if (!empty($errors))
		{
			$APPLICATION->ThrowException(implode("", $errors));
			return false;
		}

		RegisterModule("blog");
		RegisterModuleDependences("search", "OnReindex", "blog", "CBlogSearch", "OnSearchReindex");
		RegisterModuleDependences("main", "OnUserDelete", "blog", "CBlogUser", "Delete");
		RegisterModuleDependences("main", "OnSiteDelete", "blog", "CBlogSitePath", "DeleteBySiteID");

		RegisterModuleDependences("socialnetwork", "OnSocNetGroupDelete", "blog", "CBlogSoNetPost", "OnGroupDelete");

		RegisterModuleDependences("socialnetwork", "OnSocNetFeaturesAdd", "blog", "CBlogSearch", "SetSoNetFeatureIndexSearch");
		RegisterModuleDependences("socialnetwork", "OnSocNetFeaturesUpdate", "blog", "CBlogSearch", "SetSoNetFeatureIndexSearch");
		RegisterModuleDependences("socialnetwork", "OnSocNetFeaturesPermsAdd", "blog", "CBlogSearch", "SetSoNetFeaturePermIndexSearch");
		RegisterModuleDependences("socialnetwork", "OnSocNetFeaturesPermsUpdate", "blog", "CBlogSearch", "SetSoNetFeaturePermIndexSearch");

		RegisterModuleDependences("main", "OnAfterAddRating", 	"blog", "CRatingsComponentsBlog", "OnAfterAddRating", 200);
		RegisterModuleDependences("main", "OnAfterUpdateRating", "blog", "CRatingsComponentsBlog", "OnAfterUpdateRating", 200);
		RegisterModuleDependences("main", "OnSetRatingsConfigs", "blog", "CRatingsComponentsBlog", "OnSetRatingConfigs", 200);
		RegisterModuleDependences("main", "OnGetRatingsConfigs", "blog", "CRatingsComponentsBlog", "OnGetRatingConfigs", 200);
		RegisterModuleDependences("main", "OnGetRatingsObjects", "blog", "CRatingsComponentsBlog", "OnGetRatingObject", 200);

		RegisterModuleDependences("main", "OnGetRatingContentOwner", "blog", "CRatingsComponentsBlog", "OnGetRatingContentOwner", 200);
		RegisterModuleDependences("im", "OnGetNotifySchema", "blog", "CBlogNotifySchema", "OnGetNotifySchema");

		RegisterModuleDependences("main", "OnAfterRegisterModule", "main", "blog", "installUserFields", 100, "/modules/blog/install/index.php"); // check UF

		RegisterModuleDependences('conversion', 'OnGetCounterTypes' , 'blog', '\Bitrix\Blog\Internals\ConversionHandlers', 'onGetCounterTypes');
		RegisterModuleDependences('conversion', 'OnGetRateTypes' , 'blog', '\Bitrix\Blog\Internals\ConversionHandlers', 'onGetRateTypes');
		RegisterModuleDependences('blog', 'OnPostAdd', 'blog', '\Bitrix\Blog\Internals\ConversionHandlers', 'onPostAdd');

		CModule::IncludeModule("blog");
		if (CModule::IncludeModule("search"))
			CSearch::ReIndexModule("blog");

		if($install_smiles == "Y" || $install_wizard)
		{
			$dbSmile = CBlogSmile::GetList();
			if(!($dbSmile->Fetch()))
			{

				$arSmile = Array(
					Array(
						"TYPING" => ":D :-D",
						"IMAGE" => "icon_biggrin.png",
						"FICON_SMILE" => "FICON_BIGGRIN",
						"SORT" => "120",
					),
					Array(
						"TYPING" => ":) :-)",
						"IMAGE" => "icon_smile.png",
						"FICON_SMILE" => "FICON_SMILE",
						"SORT" => "100",
					),
					Array(
						"TYPING" => ":( :-(",
						"IMAGE" => "icon_sad.png",
						"FICON_SMILE" => "FICON_SAD",
						"SORT" => "140",
					),
					Array(
						"TYPING" => ":o :-o :shock:",
						"IMAGE" => "icon_eek.png",
						"FICON_SMILE" => "FICON_EEK",
						"SORT" => "180",
					),
					Array(
						"TYPING" => "8) 8-)",
						"IMAGE" => "icon_cool.png",
						"FICON_SMILE" => "FICON_COOL",
						"SORT" => "130",
					),
					Array(
						"TYPING" => ":{} :-{}",
						"IMAGE" => "icon_kiss.png",
						"FICON_SMILE" => "FICON_KISS",
						"SORT" => "200",
					),
					Array(
						"TYPING" => ":oops:",
						"IMAGE" => "icon_redface.png",
						"FICON_SMILE" => "FICON_REDFACE",
						"SORT" => "190",
					),
					Array(
						"TYPING" => ":cry: :~(",
						"IMAGE" => "icon_cry.png",
						"FICON_SMILE" => "FICON_CRY",
						"SORT" => "160",
					),
					Array(
						"TYPING" => ":evil: >:-<",
						"IMAGE" => "icon_evil.png",
						"FICON_SMILE" => "FICON_EVIL",
						"SORT" => "170",
					),
					Array(
						"TYPING" => ";) ;-)",
						"IMAGE" => "icon_wink.png",
						"FICON_SMILE" => "FICON_WINK",
						"SORT" => "110",
					),
					Array(
						"TYPING" => ":!:",
						"IMAGE" => "icon_exclaim.png",
						"FICON_SMILE" => "FICON_EXCLAIM",
						"SORT" => "220",
					),
					Array(
						"TYPING" => ":?:",
						"IMAGE" => "icon_question.png",
						"FICON_SMILE" => "FICON_QUESTION",
						"SORT" => "210",
					),
					Array(
						"TYPING" => ":idea:",
						"IMAGE" => "icon_idea.png",
						"FICON_SMILE" => "FICON_IDEA",
						"SORT" => "230",
					),
					Array(
						"TYPING" => ":| :-|",
						"IMAGE" => "icon_neutral.png",
						"FICON_SMILE" => "FICON_NEUTRAL",
						"SORT" => "150",
					),
				);
				$arLang = Array();
				$dbLangs = CLanguage::GetList(($b = ""), ($o = ""), array("ACTIVE" => "Y"));
				while ($arLangs = $dbLangs->Fetch())
				{
					IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/blog/install/smiles.php", $arLangs["LID"]);

					foreach($arSmile as $key => $val)
					{
						$arSmile[$key]["LANG"][] = Array("LID" => $arLangs["LID"], "NAME" => GetMessage($val["FICON_SMILE"]));
					}
				}

				foreach($arSmile as $val)
				{
					$val["SMILE_TYPE"] = "S";
					$val["CLICKABLE"] = "Y";

					$val["IMAGE_WIDTH"] = 16;
					$val["IMAGE_HEIGHT"] = 16;

					$id = CBlogSmile::Add($val);
				}

			}
		}

		return true;
	}
示例#5
0
</b>
					</td>
					<td class="blogtablebody">
						<table cellspacing=0 cellpadding=0 border=0>
						<tr>
							<td width=100%><textarea name="POST_MESSAGE" style="width:100%" rows=15 id=MESSAGE><?php 
            echo htmlspecialchars($POST_MESSAGE);
            ?>
</textarea></td>
							<td valign=middle>
								<table style="border:1px solid gray;margin-left:10px" cellspacing=5 cellpadding=0  border=0>
									<?php 
            $arSelectFields = array("ID", "SMILE_TYPE", "TYPING", "IMAGE", "DESCRIPTION", "CLICKABLE", "SORT", "IMAGE_WIDTH", "IMAGE_HEIGHT", "LANG_NAME");
            $total = 0;
            $arSmiles = array();
            $res = CBlogSmile::GetList($arOrder = array("SORT" => "ASC", "ID" => "DESC"), $arFilter = array("SMILE_TYPE" => "S", "CLICKABLE" => "Y", "LANG_LID" => LANGUAGE_ID), $arGroupBy = false, $arNavStartParams = false, $arSelectFields);
            while ($arr = $res->Fetch()) {
                $total++;
                $arSmiles[] = $arr;
            }
            $cols = ceil($total / 10);
            for ($i = 0; $i < count($arSmiles); $i++) {
                if ($i == 0) {
                    print "<tr>";
                } elseif ($i % $cols == 0) {
                    print "\n</tr>\n<tr>";
                }
                list($type) = explode(" ", $arSmiles[$i]['TYPING']);
                $type = str_replace("'", "\\'", $type);
                print "\n<td align=center><img src='/bitrix/images/blog/smile/{$arSmiles[$i]['IMAGE']}' width='{$arSmiles[$i]['IMAGE_WIDTH']}' height='{$arSmiles[$i]['IMAGE_HEIGHT']}' title='{$arSmiles[$i]['LANG_NAME']}' OnClick=\"emoticon('{$type}')\" style='cursor:pointer'></td>";
            }
示例#6
0
    ?>
" border="0" <?php 
    echo IntVal($str_IMAGE_WIDTH) > 0 ? "width=\"" . $str_IMAGE_WIDTH . "\"" : "";
    ?>
 <?php 
    echo IntVal($str_IMAGE_WIDTH) > 0 ? "height=\"" . $str_IMAGE_HEIGHT . "\"" : "";
    ?>
><?php 
}
?>
		</td>
	</tr>

	<?php 
for ($i = 0; $i < count($arSysLangs); $i++) {
    $arSmileLang = CBlogSmile::GetLangByID($ID, $arSysLangs[$i]);
    $str_NAME = htmlspecialcharsbx($arSmileLang["NAME"]);
    $str_DESCRIPTION = htmlspecialcharsbx($arSmileLang["DESCRIPTION"]);
    if ($bInitVars) {
        $str_NAME = htmlspecialcharsbx(${"NAME_" . $arSysLangs[$i]});
        $str_DESCRIPTION = htmlspecialcharsbx(${"DESCRIPTION_" . $arSysLangs[$i]});
    }
    ?>
		<tr class="heading">
			<td colspan="2">[<?php 
    echo $arSysLangs[$i];
    ?>
] <?php 
    echo $arSysLangNames[$i];
    ?>
</td>
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if ($arResult["CanUserComment"]) {
    $arResult["Smiles"] = CBlogSmile::GetSmilesList();
    $arResult["SmilesCount"] = count($arSmileTmp["Smiles"]);
    $cache = new CPHPCache();
    $cache_id = "blog_form_comments" . serialize($arParams["COMMENT_PROPERTY"]);
    $cache_path = "/blog/form/comments";
    if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) {
        $Vars = $cache->GetVars();
        $arResult["COMMENT_PROPERTIES"] = $Vars["comment_props"];
        $cache->Output();
    } else {
        if ($arParams["CACHE_TIME"] > 0) {
            $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
        }
        $arResult["COMMENT_PROPERTIES"] = array("SHOW" => "N");
        if (!empty($arParams["COMMENT_PROPERTY"])) {
            $arPostFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("BLOG_COMMENT", 0, LANGUAGE_ID);
            if (count($arParams["COMMENT_PROPERTY"]) > 0) {
                foreach ($arPostFields as $FIELD_NAME => $arPostField) {
                    if (!in_array($FIELD_NAME, $arParams["COMMENT_PROPERTY"])) {
                        continue;
                    }
                    $arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"];
                    $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"];
                    $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]);
                    $arResult["COMMENT_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
示例#8
0
$dbResultList = new CAdminResult($dbResultList, $sTableID);
$dbResultList->NavStart();
// установке параметров списка
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("PAGES")));
// заголовок списка
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("SMILE_ID"), "sort" => "ID", "default" => true), array("id" => "SORT", "content" => GetMessage("SMILE_SORT"), "sort" => "SORT", "default" => true), array("id" => "SMILE_TYPE", "content" => GetMessage('SMILE_TYPE'), "sort" => "SMILE_TYPE", "default" => true), array("id" => "NAME", "content" => GetMessage("BLOG_NAME"), "sort" => "", "default" => true), array("id" => "TYPING", "content" => GetMessage("BLOG_TYPING"), "sort" => "", "default" => true), array("id" => "ICON", "content" => GetMessage("BLOG_SMILE_ICON"), "sort" => "", "default" => true)));
$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
// построение списка
while ($arBlog = $dbResultList->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arBlog);
    $row->AddField("ID", '<a href="/bitrix/admin/blog_smile_edit.php?ID=' . $f_ID . '&lang=' . LANGUAGE_ID . '" title="' . GetMessage("BLOG_EDIT_DESCR") . '">' . $f_ID . '</a>');
    $row->AddField("SORT", $f_SORT);
    $row->AddField("SMILE_TYPE", $f_SMILE_TYPE == "I" ? GetMessage("SMILE_TYPE_ICON") : GetMessage("SMILE_TYPE_SMILE"));
    $fieldShow = "";
    if (in_array("NAME", $arVisibleColumns)) {
        $arSmileLang = CBlogSmile::GetLangByID($f_ID, LANG);
        $fieldShow .= htmlspecialcharsbx($arSmileLang["NAME"]);
    }
    $row->AddField("NAME", $fieldShow);
    $row->AddField("TYPING", $f_TYPING);
    $row->AddField("ICON", "<img src=\"/bitrix/images/blog/" . ($f_SMILE_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 . "\"" : "") . ">");
    $arActions = array();
    if ($blogModulePermissions >= "R") {
        $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("BLOG_EDIT_DESCR"), "ACTION" => $lAdmin->ActionRedirect("blog_smile_edit.php?ID=" . $f_ID . "&lang=" . LANG), "DEFAULT" => true);
    }
    if ($blogModulePermissions >= "W") {
        $arActions[] = array("SEPARATOR" => true);
        $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("BLOG_DELETE_DESCR"), "ACTION" => "if(confirm('" . GetMessage('SMILE_DEL_CONF') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete"));
    }
    $row->AddActions($arActions);
}
示例#9
0
 function GetSmilesList()
 {
     $cache = new CPHPCache();
     $cache_id = "blog_smiles_" . LANGUAGE_ID;
     $cache_path = "/blog/smiles/";
     $arParams["CACHE_TIME"] = 60 * 60 * 24 * 30;
     if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) {
         $Vars = $cache->GetVars();
         $arSmiles = $Vars["arResult"];
     } else {
         if ($arParams["CACHE_TIME"] > 0) {
             $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
         }
         $arSelectFields = array("ID", "SMILE_TYPE", "TYPING", "IMAGE", "DESCRIPTION", "CLICKABLE", "SORT", "IMAGE_WIDTH", "IMAGE_HEIGHT", "LANG_NAME");
         $arSmiles = array();
         $res = CBlogSmile::GetList(array("SORT" => "ASC", "ID" => "DESC"), array("SMILE_TYPE" => "S", "LANG_LID" => LANGUAGE_ID), false, false, $arSelectFields);
         while ($arr = $res->GetNext()) {
             list($type) = explode(" ", $arr["TYPING"]);
             $arr["TYPE"] = str_replace("'", "\\'", $type);
             $arr["TYPE"] = str_replace("\\", "\\\\", $arr["TYPE"]);
             $arSmiles[] = $arr;
         }
         if ($arParams["CACHE_TIME"] > 0) {
             $cache->EndDataCache(array("arResult" => $arSmiles));
         }
     }
     return $arSmiles;
 }