static function convertGallery()
{
global $DB;
$arLang = Array();
$arLang2 = Array();
$arLang3 = Array();
$langs = CLanguage::GetList();
while($language = $langs->Fetch())
{
$lid = $language["LID"];
$MESS = IncludeModuleLangFile(__FILE__, $lid, true);
if ($MESS && isset($MESS['MAIN_SMILE_DEF_GALLERY_NAME']))
$arLang[$lid] = $MESS['MAIN_SMILE_DEF_GALLERY_NAME'];
if ($MESS && isset($MESS['MAIN_SMILE_DEF_SET_NAME']))
$arLang2[$lid] = $MESS['MAIN_SMILE_DEF_SET_NAME'];
if ($MESS && isset($MESS['MAIN_SMILE_USER_GALLERY_NAME']))
$arLang3[$lid] = $MESS['MAIN_SMILE_USER_GALLERY_NAME'];
}
$smileGalleryId = 0;
$gallery = CSmileGallery::getByStringId('bitrix');
if (!$gallery)
{
$smileGalleryId = CSmileGallery::add(Array(
'STRING_ID' => 'bitrix',
'LANG' => $arLang,
));
}
else
{
$smileGalleryId = $gallery['ID'];
}
if (COption::GetOptionInt("main", "smile_gallery_converted", 0) == 0)
{
$res = $DB->Query('SELECT * FROM b_smile');
$smileOriginalSet = Array(
'smile_smile.png' => array('TYPING' => ':) :-)', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_wink.png' => array('TYPING' => ';) ;-)', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_biggrin.png' => array('TYPING' => ':D :-D', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_cool.png' => array('TYPING' => '8) 8-)', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_sad.png' => array('TYPING' => ':( :-(', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_neutral.png' => array('TYPING' => ':| :-|', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_redface.png' => array('TYPING' => ':oops:', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_cry.png' => array('TYPING' => ':cry: :~(', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_evil.png' => array('TYPING' => ':evil: >:-<', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_eek.png' => array('TYPING' => ':o :-o :shock:', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_confuse.png' => array('TYPING' => ':/ :-/', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_kiss.png' => array('TYPING' => ':{} :-{}', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_idea.png' => array('TYPING' => ':idea:', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_question.png' => array('TYPING' => ':?:', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
'smile_exclaim.png' => array('TYPING' => ':!:', 'IMAGE_WIDTH' => '16', 'IMAGE_HEIGHT' => '16'),
);
$smileCount = 0;
$smileOriginalCount = 0;
while ($smile = $res->fetch())
{
if ($smile['TYPE'] != CSmile::TYPE_SMILE)
{
continue;
}
if (
$smileOriginalSet[$smile['IMAGE']]
&& $smileOriginalSet[$smile['IMAGE']]['IMAGE_WIDTH'] == $smile['IMAGE_WIDTH']
&& $smileOriginalSet[$smile['IMAGE']]['IMAGE_HEIGHT'] == $smile['IMAGE_HEIGHT']
&& $smileOriginalSet[$smile['IMAGE']]['TYPING'] == $smile['TYPING']
)
{
$smileOriginalCount++;
}
$smileCount++;
}
if (!(($smileCount == 0 || $smileCount == 15) && $smileCount == $smileOriginalCount))
{
$smileCustomGalleryId = 0;
$smileSet = CSmileGallery::getByStringId('bitrix_convert');
if (!$smileSet)
{
$smileCustomGalleryId = CSmileGallery::add(Array(
'STRING_ID' => 'bitrix_convert',
'SORT' => 300,
'LANG' => $arLang3,
));
}
else
{
$smileCustomGalleryId = $smileSet['ID'];
}
CSmileGallery::setDefaultId($smileCustomGalleryId);
$DB->Query("UPDATE b_smile_set SET PARENT_ID = ".$smileCustomGalleryId." WHERE TYPE = 'G' AND PARENT_ID = 0");
}
else
{
$smileSet = CSmileSet::getByStringId('main');
if ($smileSet)
{
CSmileSet::delete($smileSet['ID']);
}
}
COption::SetOptionInt("main", "smile_gallery_converted", 1);
}
if ($smileGalleryId)
{
$smileSet = CSmileSet::getByStringId('bitrix_main');
if ($smileSet)
{
$smileSetId = $smileSet['ID'];
CSmile::deleteBySet($smileSet['ID']);
}
else
{
$smileSetId = CSmileSet::add(Array(
'STRING_ID' => 'bitrix_main',
'PARENT_ID' => $smileGalleryId,
'LANG' => $arLang2,
));
}
CSmile::import(array('FILE' => $_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/main/install/smiles/smiles_default.zip', 'SET_ID' => $smileSetId, 'IMPORT_IF_FILE_EXISTS' => 'Y'));
}
return false;
}