Скрытие/отображение пунктов профиля при просмотре темы

Есть любые вопросы, связанные со стилями/темами для phpBB 3.0.x? Задайте их здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

Не так давно в разделе "Рекрутинг" был оставлен заказ. Я пытался связаться с заказчиком, но он мне так и не ответил. Вот подумал, может кому пригодится.

Пример того, что получится в итоге.

Как такое сделать.
1) Скопировать в папку "images" 2 следующих изображения:
dopinfo_up.gif
dopinfo_down.gif
2) Скопировать файл "jQuery.js.txt" в папку "styles/prosilver/template".
jQuery.js.txt
Не забудьте переименовать файл, убрав расширение txt.
3) Откройте файл "styles/prosilver/template/overall_header.html"
4) Найдите там строку

Код: Выделить всё

<script type="text/javascript" src="{T_TEMPLATE_PATH}/forum_fn.js"></script>
После неё добавьте

Код: Выделить всё

<script type="text/javascript" src="{T_TEMPLATE_PATH}/jQuery.js"></script>
5) Откройте файл "styles/prosilver/template/viewtopic_body.html"
Найдите строку

Код: Выделить всё

<!-- INCLUDE overall_header.html -->
6) После неё добавьте

Код: Выделить всё

<script language="javascript">
    $(document).ready(function(){
    
        //Отлавливаем нажатие на ВСЕХ картинках
        //При желании можно отфильтровать, чтобы не на абсолютно всех картинках, а внтури какого-нить блока
        $('img').click(function(e){
            //e - объект event
            var img = $(e.target);
            
            //нужный блок находится сразу за картинкой на одном уровне с ней
            //поэтому используем next()
            var div = img.parent().next('div#first');
			if(div.length > 0) {
				if (div.css('display') == 'none'){
					div.show('slow', function(){
					  img.attr('src', 'images/dopinfo_up.gif');
					});
				}
				else{
					div.hide('slow', function(){
					  img.attr('src', 'images/dopinfo_down.gif');
					});
				}
			}
        });
    });
</script>
Найдите

Код: Выделить всё

<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->

		<dd>&nbsp;</dd>
Добавьте после

Код: Выделить всё

<dd><img src="images/dopinfo_down.gif" id="toggleimg" /></dd>
<div id="first" style="display: none;">
Найдите

Код: Выделить всё

<!-- END custom_fields -->
Добавьте после 7) Обновите шаблон в админке и почистите кэш.

Инструкция для subsilver2

Может решение не идеальное, выслушаю любую критику.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось -=XaKeP=- 07.08.2010 6:01, всего редактировалось 2 раза.
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

А для subsilver2??? Очень надо.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

Сделаю завтра с утра. Сейчас уже засыпаю
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

ок.
-=XaKeP=-
Спс. Пока кнопку перерисую)
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

владимир1983
сели не жалко, выложите их потом здесь, может кому-то ваши больше понравятся
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение Nekstati »

-=XaKeP=-, в оригинале этим занимается скрипт объёмом 0,5 КБ, а у вас 100 КБ. ;) Это не критика и я не против jQuery, но просто для сравнения: все штатные скрипты Просильвера в сумме весят 20 КБ…
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

-=XaKeP=-
ок, но моя кнопка будет "моя", то есть она будет стилизованна под тематику форума, и вряд ли кому пригодится...
Nekstati
Если время-желание у Вас будет, помогите оптимизировать код), и под subsilver тоже)
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

Инструкция для subsilver2

1) Скопируйте файлы изображений из первого сообщения темы по тому же адресу.
2) Скопируйте файл jQuery.js.txt из первого сообщения в папку "styles/subsilver2/template".
Переименуйте файл jQuery.js.txt в jQuery.js
3) Откройте файл "styles/subsilver2/template/overall_header.html", в нём после строчки

Код: Выделить всё

<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />
добавьте

Код: Выделить всё

<script type="text/javascript" src="{T_TEMPLATE_PATH}/jQuery.js"></script>
4) Откройте файл "styles/subsilver2/template/viewtopic_body.html"
Найдите в нём строку

Код: Выделить всё

<!-- INCLUDE overall_header.html -->
После неё добавьте

Код: Выделить всё

<script language="javascript">
    $(document).ready(function(){
    
        //Отлавливаем нажатие на ВСЕХ картинках
        //При желании можно отфильтровать, чтобы не на абсолютно всех картинках, а внтури какого-нить блока
        $('img').click(function(e){
            //e - объект event
            var img = $(e.target);
            //нужный блок находится сразу за картинкой на одном уровне с ней
            //поэтому используем next()
            var div = img.parent().next('div#first');
			if(div.length > 0) {
				if (div.css('display') == 'none'){
					div.show('slow', function(){
					  img.attr('src', 'images/dopinfo_up.gif');
					});
				}
				else{
					div.hide('slow', function(){
					  img.attr('src', 'images/dopinfo_down.gif');
					});
				}
			}
        });
    });
</script>
Найдите

Код: Выделить всё

<span class="postdetails">
Добавьте перед

Код: Выделить всё

<span><img src="images/dopinfo_down.gif" id="toggleimg" /></span>
<div id="first" style="display: none;">
Найдите

Код: Выделить всё

<!-- END custom_fields -->
</span>
Добавьте после И не забудьте очистить кэш и обновить шаблоны в админке.

PS Nekstati
Я использую jquery и на сайте, и на форуме. Кроме того, я сейчас пытаюсь доделать быстрый ответ, прикрутив к нему аякс. То есть я довольно плотно юзаю эту библиотеку, не только для таких простых вещей. Я выложил здесь "рецепт" как делал для себя.

Добавлено спустя 41 минуту 24 секунды:
Да, ещё! Если кто-то захочет изменить время сворачивания/разворачивания дива, то в строке

Код: Выделить всё

div.show('slow', function()
и

Код: Выделить всё

div.show('slow', function()
замените значение 'slow' на число миллисекунд, в течении которого будет происходить сворачивание/разворачивание дива.
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

-=XaKeP=-
Спасибо Вам, всё работает. Единственное что код

Код: Выделить всё

<span class="postdetails">
у меня имеет два вхождения.
Первое в строке:

Код: Выделить всё

				<td class="gensmall" width="100%"><div style="float:{S_CONTENT_FLOW_BEGIN};">&nbsp;<b>{L_POST_SUBJECT}:</b> {postrow.POST_SUBJECT}</div><div style="float:{S_CONTENT_FLOW_END};"><!-- IF S_IS_BOT -->&nbsp;{postrow.MINI_POST_IMG}&nbsp;<!-- ELSE -->&nbsp;<span class="postdetails"><b>{postrow.MINI_POST_IMG} <a onclick="return link_to_post(this.href);" href="{postrow.U_MINI_POST}">#{postrow.POST_NUMBER}</a></b></span>&nbsp;

И второе +-1 строка:

Код: Выделить всё

<div id="first" style="display: none;">
			<span class="postdetails">
				<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->
Ну это наверное из-за стиля, использую Milky Way на основе subsilver2
p.s иконки выложу как нарисую(светлые).
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

владимир1983 писал(а):И второе +-1 строка:
Вы добавили туда, куда нужно :).
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

-=XaKeP=-
Возможно допилить чтоб при наведении на иконку раскрытия курсор менялся на руку(в моём случае), то есть обозначал кликабельность изображения?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

можно
завтра утром выложу решение
Лучше синица в руках, чем утка под кроватью ©
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение владимир1983 »

-=XaKeP=-
ок, ждёмс...
Светлые кнопки:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение MIT »

владимир1983
Добавь style="cursor:pointer" img`у, да и делов-то
Аватара пользователя
-=XaKeP=-
Former team member
Сообщения: 291
Стаж: 19 лет 9 месяцев
Откуда: Донецк
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: Скрытие/отображение пунктов профиля при просмотре темы

Сообщение -=XaKeP=- »

владимир1983
за кнопочки спасибо, если вы не против, я их у вас сопру))
Лучше синица в руках, чем утка под кроватью ©

Вернуться в «Стили для phpBB 3.0.x»