- Сообщений: 55
- Спасибо получено: 0
Значки для тем
- photosho
- Автор темы
- Не в сети
- Захожу иногда
-
Less
Больше
11 года 6 мес. назад #1
от photosho
photosho создал тему: Значки для тем
Здравствуйте. Каким образом в Kunena можно реализовать значки для создаваемых на форуме тем, доступные только администратору сайта?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
-
- Не в сети
- Модератор
-
Less
Больше
- Сообщений: 1011
- Спасибо получено: 150
11 года 6 мес. назад #2
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме Значки для тем
имеется в виду
как вот здесь
?
А я смогу! - А поглядим! - А я упрямый!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- photosho
- Автор темы
- Не в сети
- Захожу иногда
-
Less
Больше
- Сообщений: 55
- Спасибо получено: 0
11 года 6 мес. назад #3
от photosho
photosho ответил в теме Значки для тем
Примерно так, только чуть более гибко - чтобы все стандартные значки оставались в распоряжении пользователей, но были среди них некоторые, доступные только администратору.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- anatole
-
- Не в сети
- Захожу иногда
-
Less
Больше
- Сообщений: 47
- Спасибо получено: 3
11 года 5 мес. назад #4
от anatole
anatole ответил в теме Значки для тем
Имхо, хардкодить надоть, долго и упорно. Или сделать разработчикам форума feature request, запрос новой фичи.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- photosho
- Автор темы
- Не в сети
- Захожу иногда
-
Less
Больше
- Сообщений: 55
- Спасибо получено: 0
11 года 5 мес. назад - 11 года 5 мес. назад #5
от photosho
photosho ответил в теме Значки для тем
anatole, ну вы подскажите, в каком направлении хардкодить, возможно, я и нахардкодю что-то. Пока это сделают разработчики, ждать не хочется.
Последнее редактирование: 11 года 5 мес. назад пользователем photosho.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- photosho
- Автор темы
- Не в сети
- Захожу иногда
-
Less
Больше
- Сообщений: 55
- Спасибо получено: 0
11 года 5 мес. назад #6
от photosho
photosho ответил в теме Значки для тем
Вновь возвращаюсь к данному вопросу, так как появилось немного свободного времени. Хотелось бы, все-таки, реализовать подобное. И вновь, как в старые времена, опишу представляемый мною алгоритм действий для решения данной проблемы (в прошлый раз, вроде, помогло).
1. Найти, какой файл отвечает за отображение доступных значков тем.
2. Узнать, как определить статус пользователя, загружающего этот файл (просматривающего страницу).
3. Добавить в файл условие на отображение определенных значков в соответствии со статусом пользователя.
Если все так, как описано выше. то хардкодить особо не придется. Единственную проблему пока представляет определение статуса пользователя, просматривающего страницу (второй пункт). Возможно, кто-нибудь подскажет, как это сделать? Что-то подобное уже было сделано мною, когда я определял номер просматриваемой категории в одной из соседних тем.
1. Найти, какой файл отвечает за отображение доступных значков тем.
2. Узнать, как определить статус пользователя, загружающего этот файл (просматривающего страницу).
3. Добавить в файл условие на отображение определенных значков в соответствии со статусом пользователя.
Если все так, как описано выше. то хардкодить особо не придется. Единственную проблему пока представляет определение статуса пользователя, просматривающего страницу (второй пункт). Возможно, кто-нибудь подскажет, как это сделать? Что-то подобное уже было сделано мною, когда я определял номер просматриваемой категории в одной из соседних тем.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
-
- Не в сети
- Модератор
-
Less
Больше
- Сообщений: 1011
- Спасибо получено: 150
11 года 5 мес. назад #7
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме Значки для тем
Статус пользователя, или вернее id его группы, вы легко узнаете:
Остальное несложно, elseif .
Code:
<?php
$user = JFactory::getUser();
$groups = $user->get('groups');
foreach($groups as $group) {
echo "<p>You're group ID is:" . $group . "</p>";
}
?>
Остальное несложно, elseif .
А я смогу! - А поглядим! - А я упрямый!
Спасибо сказали: photosho
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- photosho
- Автор темы
- Не в сети
- Захожу иногда
-
Less
Больше
- Сообщений: 55
- Спасибо получено: 0
11 года 5 мес. назад - 11 года 5 мес. назад #8
от photosho
photosho ответил в теме Значки для тем
serge, в очередной раз спасибо за помощь. Итак, проблема решена, опишу ее решение здесь, на случай, если кому-то пригодится.
1. Добавил новые значки в папку:
2. В следующий файл добавил записи о новых значках:
3. Нашел файл под следующим именем:
После нее добавил код, определяющий группу пользователя и проверяющий, нужно ли отображать значки из диапазона (у меня требуемые значки имеют индексы в диапазоне [11..15]). Вот необходимый код:
Далее, насколько я понял, происходит отображение значка и Checkbox'а, связанного с ним, следующим кодом:
У меня переменная $IsDraw принимает значение 0 в том случае, если значок рисовать не надо. Поэтому, перед кодом вывода значка поставил условие:
Ну а после - закрыл его:
Вот и все. Не берусь говорить об эффективности данного кода, но, насколько могу судить, работает он правильно. Всем спасибо за помощь.
1. Добавил новые значки в папку:
media/kunena/topicicons/default/user/
2. В следующий файл добавил записи о новых значках:
Делается это в данном разделе:docs/media/kunena/topicicons/default/topicicons.xml
Code:
<icons type="user" width="48" height="48">
3. Нашел файл под следующим именем:
В данном файле нашел такую строку:components/com_kunena/template/шаблон/html/topic/edit.php
Code:
<?php foreach ($this->topicIcons as $id=>$icon): ?>
Code:
<?php
$IsDraw = 1;
$user = JFactory::getUser();
$groups = $user->get('groups');
foreach($groups as $group) {
if ($icon->id >= 11 && $icon->id <= 15) {
if ($group != 8) $IsDraw = 0;
}
}
?>
Code:
<input type="radio" name="topic_emoticon" value="<?php echo $icon->id ?>" <?php echo !empty($icon->checked) ? ' checked="checked" ':'' ?> />
<img src="<?php echo $this->ktemplate->getTopicIconIndexPath($icon->id, true);?>" alt="" border="0" />
У меня переменная $IsDraw принимает значение 0 в том случае, если значок рисовать не надо. Поэтому, перед кодом вывода значка поставил условие:
Code:
<?php if ($IsDraw == 1):?>
Ну а после - закрыл его:
Code:
<?php endif; ?>
Вот и все. Не берусь говорить об эффективности данного кода, но, насколько могу судить, работает он правильно. Всем спасибо за помощь.
Последнее редактирование: 11 года 5 мес. назад пользователем photosho.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.