Поддержка серверов

forumTextParser::convert_attachment: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=169163

<?php 
//    /bitrix/modules/forum/classes/general/functions.phpforumTextParser::convert_attachment()
//    371:

    
function convert_attachment($fileID ""$p ""$type ""$text "")
    {
        if (
is_array($fileID))
        {
            
$text $fileID[0];
            
$p $fileID[3];
            
$fileID $fileID[2];
        }

        
$fileID intval($fileID);
        
$type strtolower(empty($type) ? $this->type $type);
        
$type = (in_array($type, array("html""mail""bbcode""rss")) ? $type "html");

        
$this->arFiles = (is_array($this->arFiles) ? $this->arFiles : array($this->arFiles));
        if (
$fileID <= || (!array_key_exists($fileID$this->arFiles) && !in_array($fileID$this->arFiles)))
            return 
$text;

        if (!
array_key_exists($fileID$this->arFiles) && in_array($fileID$this->arFiles)): // array(fileID10, fileID12, fileID14)
            
unset($this->arFiles[array_search($fileID$this->arFiles)]);
            
$this->arFiles[$fileID] = $fileID// array(fileID10 => fileID10, fileID12 => fileID12, fileID14 => fileID14)
        
endif;

        if (!
is_array($this->arFiles[$fileID]))
            
$this->arFiles[$fileID] = CFile::GetFileArray($fileID); // array(fileID10 => array about file, ....)

        
if (!is_array($this->arFiles[$fileID])): // if file does not exist
            
unset($this->arFiles[$fileID]);
            return 
$text;
        endif;

        if (!
array_key_exists($fileID$this->arFilesParsed) || empty($this->arFilesParsed[$fileID][$type]))
        {
            
$arFile $this->arFiles[$fileID];
            if (
$type == "html" || $type == "rss")
            {
                
$width 0$height 0;
                if (
preg_match_all("/width\=(?P<width>\d+)|height\=(?P<height>\d+)/is".BX_UTF_PCRE_MODIFIER$p$matches)):
                    
$width intval(!empty($matches["width"][0]) ? $matches["width"][0] : $matches["width"][1]);
                    
$height intval(!empty($matches["height"][0]) ? $matches["height"][0] : $matches["height"][1]);
                endif;
                
$arFile[$type] = $GLOBALS["APPLICATION"]->IncludeComponent(
                        
"bitrix:forum.interface",
                        
"show_file",
                        Array(
                            
"FILE" => $arFile,
                            
"SHOW_MODE" => ($type == "html" "THUMB" "RSS"),
                            
"SIZE" => array("width" => $width"height" => $height),
                            
"MAX_SIZE" => array("width" => $this->imageWidth"height" => $this->imageHeight),
                            
"HTML_SIZE"=> array("width" => $this->imageHtmlWidth"height" => $this->imageHtmlHeight),
                            
"CONVERT" => "N",
                            
"NAME_TEMPLATE" => $this->userNameTemplate,
                            
"FAMILY" => "FORUM",
                            
"SINGLE" => "Y",
                            
"RETURN" => "Y"),
                        
$this->component,
                        array(
"HIDE_ICONS" => "Y"));
            }
            else
            {
                
$path '/bitrix/components/bitrix/forum.interface/show_file.php?fid='.$arFile["ID"];
                
$bIsImage = (CFile::CheckImageFile(CFile::MakeFileArray($fileID)) === null);
//                $path = ($bIsImage && !empty($arFile["SRC"]) ? $arFile["SRC"] : !$bIsImage && !empty($arFile["URL"]) ? $arFile["URL"] : $path);
                
$path preg_replace("'(?<!:)/+'s""/", (substr($path01) == "/" CHTTP::URN2URI($path$this->serverName) : $path));
                switch (
$type)
                {
                    case 
"bbcode":
                            
$arFile["bbcode"] = ($bIsImage '[IMG]'.$path.'[/IMG]' '[URL='.$path.']'.$arFile["ORIGINAL_NAME"].'[/URL]');
                        break;
                    case 
"mail":
                            
$arFile["mail"] = $arFile["ORIGINAL_NAME"].($bIsImage " (IMAGE: ".$path.")" " (URL: ".$path.")");
                        break;
                }
            }
            
$this->arFilesParsed[$fileID] = $arFile;
        }
        
$this->arFilesIDParsed[] = $fileID;
        return 
$this->arFilesParsed[$fileID][$type];
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение