diff --git a/admin/admin_ranks.php b/admin/admin_ranks.php index 70bd0e24..41297fa6 100644 --- a/admin/admin_ranks.php +++ b/admin/admin_ranks.php @@ -10,6 +10,8 @@ require('./pagestart.php'); $_POST['special_rank'] = 1; $_POST['min_posts'] = -1; +define('EXAMPLE_IMAGE', 'styles/images/ranks/rank_image.png'); + if (isset($_GET['mode']) || isset($_POST['mode'])) { $mode = isset($_GET['mode']) ? $_GET['mode'] : $_POST['mode']; @@ -70,6 +72,12 @@ if ($mode != '') $rank_is_special = !empty($rank_info['rank_special']) ? HTML_CHECKED : ''; $rank_is_not_special = empty($rank_info['rank_special']) ? HTML_CHECKED : ''; + // поддержка изображений в ссылках + $is_rank_image_link = false; + if (!empty($rank_info['rank_image']) && preg_match('#(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png|webp|bmp)([a-z0-9/?&%;][^\[\]]*)?#', $rank_info['rank_image'])) { + $is_rank_image_link = true; + } + $template->assign_vars(array( 'TPL_RANKS_EDIT' => true, @@ -77,13 +85,14 @@ if ($mode != '') 'SPECIAL_RANK' => $rank_is_special, 'NOT_SPECIAL_RANK' => $rank_is_not_special, 'MINIMUM' => ($rank_is_special) ? '' : @$rank_info['rank_min'], - 'IMAGE' => !empty($rank_info['rank_image']) ? $rank_info['rank_image'] : 'styles/images/ranks/rank_image.png', + 'IMAGE' => !empty($rank_info['rank_image']) ? $rank_info['rank_image'] : EXAMPLE_IMAGE, 'STYLE' => !empty($rank_info['rank_style']) ? $rank_info['rank_style'] : '', - 'IMAGE_DISPLAY' => !empty($rank_info['rank_image']) ? '' : '', + 'IMAGE_DISPLAY' => (!empty($rank_info['rank_image']) && ($rank_info['rank_image'] != EXAMPLE_IMAGE)) ? '' : '', 'S_RANK_ACTION' => "admin_ranks.php", 'S_HIDDEN_FIELDS' => $s_hidden_fields, )); + unset($is_rank_image_link); } elseif ($mode == 'save') { @@ -227,6 +236,11 @@ else $special_rank = $rank_rows[$i]['rank_special']; $rank_id = $rank_rows[$i]['rank_id']; $rank_min = $rank_rows[$i]['rank_min']; + // поддержка изображений в ссылках + $is_rank_image_link = false; + if ($rank_rows[$i]['rank_image'] && preg_match('#(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png|webp|bmp)([a-z0-9/?&%;][^\[\]]*)?#', $rank_rows[$i]['rank_image'])) { + $is_rank_image_link = true; + } if ($special_rank == 1) { @@ -241,13 +255,14 @@ else 'ROW_CLASS' => $row_class, 'RANK' => $rank, 'STYLE' => $rank_rows[$i]['rank_style'], - 'IMAGE_DISPLAY' => ($rank_rows[$i]['rank_image']) ? '' : '', + 'IMAGE_DISPLAY' => ($rank_rows[$i]['rank_image'] && ($rank_rows[$i]['rank_image'] != EXAMPLE_IMAGE)) ? '' : '', 'SPECIAL_RANK' => $rank_is_special, 'RANK_MIN' => $rank_min, 'U_RANK_EDIT' => "admin_ranks.php?mode=edit&id=$rank_id", 'U_RANK_DELETE' => "admin_ranks.php?mode=delete&id=$rank_id", )); + unset($is_rank_image_link); } }