mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/10380] BIDI support for imageset
BIDI support for imageset conversion script, added RTL imageset entries to prosilver and subsilver2, fixed small bug in imageset.css, changed spacing in code to match phpbb coding guidelines PHPBB3-10380
This commit is contained in:
parent
6c038d0499
commit
7295e5824a
4 changed files with 199 additions and 32 deletions
|
@ -17,14 +17,14 @@ ob_start();
|
||||||
|
|
||||||
// Get global and English images
|
// Get global and English images
|
||||||
$images_global = get_imageset($imageset_path);
|
$images_global = get_imageset($imageset_path);
|
||||||
if($images_global === false)
|
if ($images_global === false)
|
||||||
{
|
{
|
||||||
echo 'imageset.cfg was not found.';
|
echo 'imageset.cfg was not found.';
|
||||||
echo ob_get_clean();
|
echo ob_get_clean();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$images_en = get_imageset($imageset_path, 'en');
|
$images_en = get_imageset($imageset_path, 'en');
|
||||||
if($images_en === false)
|
if ($images_en === false)
|
||||||
{
|
{
|
||||||
echo 'English imageset.cfg was not found.';
|
echo 'English imageset.cfg was not found.';
|
||||||
echo ob_get_clean();
|
echo ob_get_clean();
|
||||||
|
@ -32,7 +32,7 @@ if($images_en === false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove duplicate images
|
// Remove duplicate images
|
||||||
foreach($images_en as $key => $row)
|
foreach ($images_en as $key => $row)
|
||||||
{
|
{
|
||||||
unset($images_global[$key]);
|
unset($images_global[$key]);
|
||||||
}
|
}
|
||||||
|
@ -52,13 +52,16 @@ $replace = array(
|
||||||
// $replace = array_merge($replace, get_replacements($images_global));
|
// $replace = array_merge($replace, get_replacements($images_global));
|
||||||
$replace = array_merge($replace, get_replacements($images_global), get_replacements($images_en));
|
$replace = array_merge($replace, get_replacements($images_global), get_replacements($images_en));
|
||||||
|
|
||||||
|
// BIDI code
|
||||||
|
$bidi_code = css($images_global, './images/', true);
|
||||||
|
|
||||||
// Get all CSS files, parse them
|
// Get all CSS files, parse them
|
||||||
$files = list_files($theme_path, 'css');
|
$files = list_files($theme_path, 'css');
|
||||||
if($files === false || !count($files))
|
if ($files === false || !count($files))
|
||||||
{
|
{
|
||||||
echo 'No CSS files found in theme directory.<br />';
|
echo 'No CSS files found in theme directory.<br />';
|
||||||
}
|
}
|
||||||
else for($i=0; $i<count($files); $i++)
|
else for ($i=0; $i<count($files); $i++)
|
||||||
{
|
{
|
||||||
$file = $theme_path . '/' . $files[$i];
|
$file = $theme_path . '/' . $files[$i];
|
||||||
$data = file_get_contents($file);
|
$data = file_get_contents($file);
|
||||||
|
@ -67,12 +70,20 @@ else for($i=0; $i<count($files); $i++)
|
||||||
$errors = false;
|
$errors = false;
|
||||||
for($j=0; $j<count($not_compatible); $j++)
|
for($j=0; $j<count($not_compatible); $j++)
|
||||||
{
|
{
|
||||||
if(strpos($data, $not_compatible[$j]) !== false)
|
if (strpos($data, $not_compatible[$j]) !== false)
|
||||||
{
|
{
|
||||||
echo 'Error: ', $file, ' contains ', $not_compatible[$j], '. That variable cannot be converted.<br />';
|
echo 'Error: ', $file, ' contains ', $not_compatible[$j], '. That variable cannot be converted.<br />';
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(md5($data) == $hash)
|
if (basename($file) == 'bidi.css' && strpos($data, '/* Former imageset */') === false && strlen($bidi_code))
|
||||||
|
{
|
||||||
|
// Add bidi data
|
||||||
|
$data .= "\n/* Former imageset */\n" . $bidi_code;
|
||||||
|
$bidi_code = '';
|
||||||
|
echo 'Note: RTL imageset entries were added at the end of file below:<br />';
|
||||||
|
}
|
||||||
|
if (md5($data) == $hash)
|
||||||
{
|
{
|
||||||
echo 'Nothing to replace in ', $file, '<br />';
|
echo 'Nothing to replace in ', $file, '<br />';
|
||||||
}
|
}
|
||||||
|
@ -84,9 +95,9 @@ else for($i=0; $i<count($files); $i++)
|
||||||
|
|
||||||
// Check if there are invalid images in imageset
|
// Check if there are invalid images in imageset
|
||||||
$list = array_merge($images_global, $images_en);
|
$list = array_merge($images_global, $images_en);
|
||||||
foreach($list as $key => $row)
|
foreach ($list as $key => $row)
|
||||||
{
|
{
|
||||||
if($row['skip'])
|
if ($row['skip'])
|
||||||
{
|
{
|
||||||
echo 'Unable to generate code to add to CSS files because some images are missing or invalid. See errors above.';
|
echo 'Unable to generate code to add to CSS files because some images are missing or invalid. See errors above.';
|
||||||
echo ob_get_clean();
|
echo ob_get_clean();
|
||||||
|
@ -112,14 +123,22 @@ span.imageset {
|
||||||
|
|
||||||
/* English images for fallback */
|
/* English images for fallback */
|
||||||
' . css($images_en, './en/');
|
' . css($images_en, './en/');
|
||||||
|
if (strlen($bidi_code))
|
||||||
|
{
|
||||||
|
$code .= "\n/* RTL imageset entries */\n" . $bidi_code;
|
||||||
|
}
|
||||||
echo 'Code to add to CSS file:', dump_code($code, 'imageset.css');
|
echo 'Code to add to CSS file:', dump_code($code, 'imageset.css');
|
||||||
|
|
||||||
|
|
||||||
$list = list_languages($imageset_path);
|
$list = list_languages($imageset_path);
|
||||||
for($i=0; $i<count($list); $i++)
|
for ($i=0; $i<count($list); $i++)
|
||||||
{
|
{
|
||||||
$lang = $list[$i];
|
$lang = $list[$i];
|
||||||
$images = get_imageset($imageset_path . '/' . $lang);
|
$images = get_imageset($imageset_path . '/' . $lang);
|
||||||
if(!count($images)) continue;
|
if (!count($images))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$code = '/* ' . strtoupper($lang) . ' Language Pack */
|
$code = '/* ' . strtoupper($lang) . ' Language Pack */
|
||||||
' . css($images, './');
|
' . css($images, './');
|
||||||
echo 'New CSS file: ', $theme_path, '/', $lang, '/stylesheet.css', dump_code($code, 'stylesheet_' . $lang . '.css');
|
echo 'New CSS file: ', $theme_path, '/', $lang, '/stylesheet.css', dump_code($code, 'stylesheet_' . $lang . '.css');
|
||||||
|
@ -135,26 +154,35 @@ return;
|
||||||
function get_imageset($path, $lang = '')
|
function get_imageset($path, $lang = '')
|
||||||
{
|
{
|
||||||
$cfg = $path . ($lang ? '/' . $lang : '') . '/imageset.cfg';
|
$cfg = $path . ($lang ? '/' . $lang : '') . '/imageset.cfg';
|
||||||
if(!@file_exists($cfg)) return false;
|
if (!@file_exists($cfg))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$data = file($cfg);
|
$data = file($cfg);
|
||||||
$result = array();
|
$result = array();
|
||||||
for($i=0; $i<count($data); $i++)
|
for ($i=0; $i<count($data); $i++)
|
||||||
{
|
{
|
||||||
$str = trim($data[$i]);
|
$str = trim($data[$i]);
|
||||||
if(substr($str, 0, 4) != 'img_') continue;
|
if (substr($str, 0, 4) != 'img_')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$list = explode('=', $data[$i]);
|
$list = explode('=', $data[$i]);
|
||||||
if(count($list) != 2) continue;
|
if (count($list) != 2)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$key = trim($list[0]);
|
$key = trim($list[0]);
|
||||||
$row = explode('*', trim($list[1]));
|
$row = explode('*', trim($list[1]));
|
||||||
$file = trim($row[0]);
|
$file = trim($row[0]);
|
||||||
$height = isset($row[1]) && intval($row[1]) ? intval($row[1]) : false;
|
$height = isset($row[1]) && intval($row[1]) ? intval($row[1]) : false;
|
||||||
$width = isset($row[2]) && intval($row[2]) ? intval($row[2]) : false;
|
$width = isset($row[2]) && intval($row[2]) ? intval($row[2]) : false;
|
||||||
$skip = false;
|
$skip = false;
|
||||||
if(strlen($file) && (!$width || !$height))
|
if (strlen($file) && (!$width || !$height))
|
||||||
{
|
{
|
||||||
// Try to detect width/height
|
// Try to detect width/height
|
||||||
$filename = $path . ($lang ? '/' . $lang : '') . '/' . $file;
|
$filename = $path . ($lang ? '/' . $lang : '') . '/' . $file;
|
||||||
if(!@file_exists($filename))
|
if (!@file_exists($filename))
|
||||||
{
|
{
|
||||||
echo 'Error: file ', $filename, ' does not exist and its dimensions are not available in imageset.cfg<br />';
|
echo 'Error: file ', $filename, ' does not exist and its dimensions are not available in imageset.cfg<br />';
|
||||||
$skip = true;
|
$skip = true;
|
||||||
|
@ -162,7 +190,7 @@ function get_imageset($path, $lang = '')
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$size = @getimagesize($filename);
|
$size = @getimagesize($filename);
|
||||||
if($size === false)
|
if ($size === false)
|
||||||
{
|
{
|
||||||
echo 'Error: file ', $filename, ' is not a valid image<br />';
|
echo 'Error: file ', $filename, ' is not a valid image<br />';
|
||||||
$skip = true;
|
$skip = true;
|
||||||
|
@ -188,7 +216,7 @@ function get_imageset($path, $lang = '')
|
||||||
function get_replacements($list)
|
function get_replacements($list)
|
||||||
{
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
foreach($list as $key => $row)
|
foreach ($list as $key => $row)
|
||||||
{
|
{
|
||||||
$key = '{' . strtoupper($key);
|
$key = '{' . strtoupper($key);
|
||||||
$result[$key . '_SRC}'] = strlen($row['file']) ? ($row['lang'] ? './' . $row['lang'] : './images') . '/' . $row['file'] : '';
|
$result[$key . '_SRC}'] = strlen($row['file']) ? ($row['lang'] ? './' . $row['lang'] : './images') . '/' . $row['file'] : '';
|
||||||
|
@ -201,9 +229,12 @@ function get_replacements($list)
|
||||||
function list_files($dir, $ext)
|
function list_files($dir, $ext)
|
||||||
{
|
{
|
||||||
$res = @opendir($dir);
|
$res = @opendir($dir);
|
||||||
if($res === false) return false;
|
if ($res === false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$files = array();
|
$files = array();
|
||||||
while(($file = readdir($res)) !== false)
|
while (($file = readdir($res)) !== false)
|
||||||
{
|
{
|
||||||
$list = explode('.', $file);
|
$list = explode('.', $file);
|
||||||
if(count($list) > 1 && strtolower($list[count($list) - 1]) == $ext)
|
if(count($list) > 1 && strtolower($list[count($list) - 1]) == $ext)
|
||||||
|
@ -218,13 +249,19 @@ function list_files($dir, $ext)
|
||||||
function list_languages($dir)
|
function list_languages($dir)
|
||||||
{
|
{
|
||||||
$res = @opendir($dir);
|
$res = @opendir($dir);
|
||||||
if($res === false) return array();
|
if ($res === false)
|
||||||
$files = array();
|
|
||||||
while(($file = readdir($res)) !== false)
|
|
||||||
{
|
{
|
||||||
if(substr($file, 0, 1) == '.') continue;
|
return array();
|
||||||
|
}
|
||||||
|
$files = array();
|
||||||
|
while (($file = readdir($res)) !== false)
|
||||||
|
{
|
||||||
|
if (substr($file, 0, 1) == '.')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$filename = $dir . '/' . $file;
|
$filename = $dir . '/' . $file;
|
||||||
if(is_dir($filename) && file_exists($filename . '/imageset.cfg'))
|
if (is_dir($filename) && file_exists($filename . '/imageset.cfg'))
|
||||||
{
|
{
|
||||||
$files[] = $file;
|
$files[] = $file;
|
||||||
}
|
}
|
||||||
|
@ -236,7 +273,7 @@ function list_languages($dir)
|
||||||
function dump_code($code, $filename = 'file.txt')
|
function dump_code($code, $filename = 'file.txt')
|
||||||
{
|
{
|
||||||
$hash = md5($code);
|
$hash = md5($code);
|
||||||
if(isset($_GET['download']) && $_GET['download'] === $hash)
|
if (isset($_GET['download']) && $_GET['download'] === $hash)
|
||||||
{
|
{
|
||||||
// Download file
|
// Download file
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
@ -256,18 +293,81 @@ function dump_code($code, $filename = 'file.txt')
|
||||||
echo '<textarea id="code-', $hash, '" onfocus="this.select();" style="width: 98%; height: 200px;">', htmlspecialchars($code), '</textarea><br />';
|
echo '<textarea id="code-', $hash, '" onfocus="this.select();" style="width: 98%; height: 200px;">', htmlspecialchars($code), '</textarea><br />';
|
||||||
}
|
}
|
||||||
|
|
||||||
function css($list, $path = './')
|
function css($list, $path = './', $bidi = false)
|
||||||
{
|
{
|
||||||
$code = '';
|
$code = '';
|
||||||
foreach($list as $key => $row)
|
// Change value to true if you want images to be grouped up by size
|
||||||
|
$group = $bidi;
|
||||||
|
if ($group)
|
||||||
{
|
{
|
||||||
if(!strlen($row['file'])) continue;
|
// group up images by size
|
||||||
$code .= '.imageset.' . substr($key, 4) . ' {
|
$groups = array();
|
||||||
|
foreach ($list as $key => $row)
|
||||||
|
{
|
||||||
|
if (!strlen($row['file']))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$groups[$row['width'] . '*' . $row['height']][] = $key;
|
||||||
|
}
|
||||||
|
foreach ($groups as $size => $keys)
|
||||||
|
{
|
||||||
|
$extra = '';
|
||||||
|
for ($i=0; $i<count($keys); $i++)
|
||||||
|
{
|
||||||
|
$code .= ($i == 0 ? '' : ', ') . ($bidi ? '.rtl ' : '') . '.imageset.' . substr($keys[$i], 4);
|
||||||
|
if (!$bidi)
|
||||||
|
{
|
||||||
|
$extra .= '.imageset.' . substr($keys[$i], 4) . ' { background-image: url("' . $path . $list[$keys[$i]]['file'] . "\"); }\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$row = $list[$keys[0]];
|
||||||
|
$code .= ' {';
|
||||||
|
if ($bidi)
|
||||||
|
{
|
||||||
|
$code .= '
|
||||||
|
padding-right: ' . $row['width'] . 'px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$code .= '
|
||||||
|
padding-left: ' . $row['width'] . 'px;
|
||||||
|
padding-top: ' . $row['height'] . 'px;
|
||||||
|
}
|
||||||
|
' . $extra;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach ($list as $key => $row)
|
||||||
|
{
|
||||||
|
if (!strlen($row['file']))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$code .= ($bidi ? '.rtl ' : '') . '.imageset.' . substr($key, 4) . ' {';
|
||||||
|
if ($bidi)
|
||||||
|
{
|
||||||
|
$code .= '
|
||||||
|
padding-right: ' . $row['width'] . 'px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$code .= '
|
||||||
background-image: url("' . $path . $row['file'] . '");
|
background-image: url("' . $path . $row['file'] . '");
|
||||||
padding-left: ' . $row['width'] . 'px;
|
padding-left: ' . $row['width'] . 'px;
|
||||||
padding-top: ' . $row['height'] . 'px;
|
padding-top: ' . $row['height'] . 'px;
|
||||||
}
|
}
|
||||||
';
|
';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -755,3 +755,33 @@
|
||||||
.rtl #wrap, .rtl .headerbar, .rtl #site-description, .rtl .navbar {
|
.rtl #wrap, .rtl .headerbar, .rtl #site-description, .rtl .navbar {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Former imageset */
|
||||||
|
.rtl .imageset.site_logo {
|
||||||
|
padding-right: 139px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.forum_link, .rtl .imageset.forum_read, .rtl .imageset.forum_read_locked, .rtl .imageset.forum_read_subforum, .rtl .imageset.forum_unread, .rtl .imageset.forum_unread_locked, .rtl .imageset.forum_unread_subforum, .rtl .imageset.topic_moved, .rtl .imageset.topic_read, .rtl .imageset.topic_read_mine, .rtl .imageset.topic_read_hot, .rtl .imageset.topic_read_hot_mine, .rtl .imageset.topic_read_locked, .rtl .imageset.topic_read_locked_mine, .rtl .imageset.topic_unread, .rtl .imageset.topic_unread_mine, .rtl .imageset.topic_unread_hot, .rtl .imageset.topic_unread_hot_mine, .rtl .imageset.topic_unread_locked, .rtl .imageset.topic_unread_locked_mine, .rtl .imageset.sticky_read, .rtl .imageset.sticky_read_mine, .rtl .imageset.sticky_read_locked, .rtl .imageset.sticky_read_locked_mine, .rtl .imageset.sticky_unread, .rtl .imageset.sticky_unread_mine, .rtl .imageset.sticky_unread_locked, .rtl .imageset.sticky_unread_locked_mine, .rtl .imageset.announce_read, .rtl .imageset.announce_read_mine, .rtl .imageset.announce_read_locked, .rtl .imageset.announce_read_locked_mine, .rtl .imageset.announce_unread, .rtl .imageset.announce_unread_mine, .rtl .imageset.announce_unread_locked, .rtl .imageset.announce_unread_locked_mine, .rtl .imageset.global_read, .rtl .imageset.global_read_mine, .rtl .imageset.global_read_locked, .rtl .imageset.global_read_locked_mine, .rtl .imageset.global_unread, .rtl .imageset.global_unread_mine, .rtl .imageset.global_unread_locked, .rtl .imageset.global_unread_locked_mine, .rtl .imageset.pm_read, .rtl .imageset.pm_unread {
|
||||||
|
padding-right: 27px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.subforum_read, .rtl .imageset.subforum_unread, .rtl .imageset.icon_post_target, .rtl .imageset.icon_post_target_unread, .rtl .imageset.icon_topic_latest, .rtl .imageset.icon_topic_newest {
|
||||||
|
padding-right: 11px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_back_top {
|
||||||
|
padding-right: 11px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_contact_aim, .rtl .imageset.icon_contact_email, .rtl .imageset.icon_contact_icq, .rtl .imageset.icon_contact_jabber, .rtl .imageset.icon_contact_msnm, .rtl .imageset.icon_contact_www, .rtl .imageset.icon_contact_yahoo, .rtl .imageset.icon_post_delete, .rtl .imageset.icon_post_info, .rtl .imageset.icon_post_report, .rtl .imageset.icon_user_warn {
|
||||||
|
padding-right: 20px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_topic_attach {
|
||||||
|
padding-right: 7px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_topic_reported, .rtl .imageset.icon_topic_unapproved {
|
||||||
|
padding-right: 16px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
|
@ -4,7 +4,6 @@ span.imageset {
|
||||||
background: transparent none 0 0 no-repeat;
|
background: transparent none 0 0 no-repeat;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
padding-right: 0 !important;
|
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
@ -1099,3 +1099,41 @@ a.imageset {
|
||||||
padding-left: 97px;
|
padding-left: 97px;
|
||||||
padding-top: 27px;
|
padding-top: 27px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* RTL imageset entries */
|
||||||
|
.rtl .imageset.site_logo {
|
||||||
|
padding-right: 170px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.upload_bar {
|
||||||
|
padding-right: 280px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.poll_left, .rtl .imageset.poll_right {
|
||||||
|
padding-right: 4px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.poll_center {
|
||||||
|
padding-right: 1px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.forum_link, .rtl .imageset.forum_read, .rtl .imageset.forum_read_locked, .rtl .imageset.forum_read_subforum, .rtl .imageset.forum_unread, .rtl .imageset.forum_unread_locked, .rtl .imageset.forum_unread_subforum {
|
||||||
|
padding-right: 46px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.topic_moved, .rtl .imageset.topic_read, .rtl .imageset.topic_read_mine, .rtl .imageset.topic_read_hot, .rtl .imageset.topic_read_hot_mine, .rtl .imageset.topic_read_locked, .rtl .imageset.topic_read_locked_mine, .rtl .imageset.topic_unread, .rtl .imageset.topic_unread_mine, .rtl .imageset.topic_unread_hot, .rtl .imageset.topic_unread_hot_mine, .rtl .imageset.topic_unread_locked, .rtl .imageset.topic_unread_locked_mine, .rtl .imageset.sticky_read, .rtl .imageset.sticky_read_mine, .rtl .imageset.sticky_read_locked, .rtl .imageset.sticky_read_locked_mine, .rtl .imageset.sticky_unread, .rtl .imageset.sticky_unread_mine, .rtl .imageset.sticky_unread_locked, .rtl .imageset.sticky_unread_locked_mine, .rtl .imageset.announce_read, .rtl .imageset.announce_read_mine, .rtl .imageset.announce_read_locked, .rtl .imageset.announce_read_locked_mine, .rtl .imageset.announce_unread, .rtl .imageset.announce_unread_mine, .rtl .imageset.announce_unread_locked, .rtl .imageset.announce_unread_locked_mine, .rtl .imageset.global_read, .rtl .imageset.global_read_mine, .rtl .imageset.global_read_locked, .rtl .imageset.global_read_locked_mine, .rtl .imageset.global_unread, .rtl .imageset.global_unread_mine, .rtl .imageset.global_unread_locked, .rtl .imageset.global_unread_locked_mine, .rtl .imageset.pm_read, .rtl .imageset.pm_unread, .rtl .imageset.icon_topic_reported, .rtl .imageset.icon_topic_unapproved {
|
||||||
|
padding-right: 19px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_post_target, .rtl .imageset.icon_post_target_unread {
|
||||||
|
padding-right: 12px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_topic_attach {
|
||||||
|
padding-right: 14px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.rtl .imageset.icon_topic_latest, .rtl .imageset.icon_topic_newest {
|
||||||
|
padding-right: 18px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue