Расширения - это просто!

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 30.06.2019 20:06

Я хочу загрузить свой шаблон - содержимое блока <ul class="topiclist forums"> (списк форумов на главной). Из расширения.
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 30.06.2019 20:18

Заменить весь шаблон? Добавить данные в стандартный шаблон из расширения?
Что должно выйти в итоге?

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 30.06.2019 20:32

У меня сейчас свой исправленный стиль - все картинки форумов (40) сделаны 1 спрайтом. Я хочу сделать расширение для этого, дабы не править шаблон.
Т.е. мне надо загрузить свой шаблон из расширения - список форумов на главной.
Кусок с этого форума 

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

<ul class="topiclist forums">
					<li class="row">
						<dl class="row-item forum_unread">
				<dt title="Непрочитанные сообщения">
					<a href="./viewforum.php?f=66" class="row-item-link"></a>					<div class="list-inner">
													<!--
								<a class="feed-icon-forum" title="Канал - FAQ" href="/community/feed?f=66">
									<i class="icon fa-rss-square fa-fw icon-orange" aria-hidden="true"></i><span class="sr-only">Канал - FAQ</span>
								</a>
							-->
																		<a href="./viewforum.php?f=66" class="forumtitle">FAQ</a>
						<br>Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!												
												<div class="responsive-show" style="display: none;">
															Темы: <strong>36</strong>
													</div>
											</div>
				</dt>
									<dd class="topics">36 <dfn>Темы</dfn></dd>
					<dd class="posts">9235 <dfn>Сообщения</dfn></dd>
					<dd class="lastpost">
						<span>
																						<dfn>Последнее сообщение</dfn>
																										<a href="./viewtopic.php?f=66&amp;p=537907#p537907" title="Re: [FAQ] Пользовательские BBCode" class="lastsubject">Re: [FAQ] Пользовательские BB…</a> <br>
																	 <a href="./memberlist.php?mode=viewprofile&amp;u=5696" style="color: #AA0000;" class="username-coloured">rxu</a>																	<a href="./viewtopic.php?f=66&amp;p=537907#p537907" title="">
										<i class="icon fa-arrow-right fa-fw icon-blue icon-md" aria-hidden="true"></i><span class="sr-only"></span>
									</a>
																<br>28.06.2019 13:44
													</span>
					</dd>
							</dl>
			
		</li>
			
	
	
			
					<li class="row">
						<dl class="row-item forum_unread">
				<dt title="Непрочитанные сообщения">
					<a href="./viewforum.php?f=42" class="row-item-link"></a>					<div class="list-inner">
													<!--
								<a class="feed-icon-forum" title="Канал - Поддержка phpBB 3.2.x" href="/community/feed?f=42">
									<i class="icon fa-rss-square fa-fw icon-orange" aria-hidden="true"></i><span class="sr-only">Канал - Поддержка phpBB 3.2.x</span>
								</a>
							-->
																		<a href="./viewforum.php?f=42" class="forumtitle">Поддержка phpBB 3.2.x</a>
						<br>Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!												
												<div class="responsive-show" style="display: none;">
															Темы: <strong>613</strong>
													</div>
											</div>
				</dt>
									<dd class="topics">613 <dfn>Темы</dfn></dd>
					<dd class="posts">8435 <dfn>Сообщения</dfn></dd>
					<dd class="lastpost">
						<span>
																						<dfn>Последнее сообщение</dfn>
																										<a href="./viewtopic.php?f=42&amp;p=538000#p538000" title="Re: Миграция 3.08 -> 3.2* через тему" class="lastsubject">Re: Миграция 3.08 -&gt; 3.2* чер…</a> <br>
																	 <a href="./memberlist.php?mode=viewprofile&amp;u=10369" class="username">mtl</a>																	<a href="./viewtopic.php?f=42&amp;p=538000#p538000" title="">
										<i class="icon fa-arrow-right fa-fw icon-blue icon-md" aria-hidden="true"></i><span class="sr-only"></span>
									</a>
																<br>2 минуты назад
													</span>
					</dd>
							</dl>
			
		</li>
			
	
				</ul>
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 30.06.2019 20:51

Это можно на месте, где нужна картинка, вывести какой-нибудь тег со вспомогательным id форума, а дальше работать через css
К примеру:

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

<span class="my_forum_image" data-forum-id="{forumrow.FORUM_ID"}></span>

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

span.my_forum_image {
/*Общие стили*/
}

span.my_forum_image[data-forum-id=1] {
/*тут смещение картинки относительно спрайта для форума под id 1*/
}
Из событий можно использовать forumlist_body_forum_image_before или forumlist_body_forum_image_after, а на форумы, чтобы картинки отображались, залить одну и ту же прозрачную картинку, можно размера 1 на 1 px чтобы не мешалась

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 30.06.2019 23:00

У меня все готово, но я не могу понять, как мне загрузить свой отредактированный forumlist_body.html
Т.е. после <!-- EVENT forumlist_body_forum_row_prepend -->
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 30.06.2019 23:02

Загрузить вы его уже загрузили, но старый код при этом никуда исчез и исчезать не будет. Будет дубль кода

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 30.06.2019 23:29

Вот в чем дело то.... Я то по своей малограмотности думал, что можно заменить, а получается - только ДОБАВИТЬ. Так что ли?

Можно конечно добавить со своим классом, а оригинал скрыть через css, но как-то коряво будет....
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 30.06.2019 23:57

Да, только добавить
Один из некорявых вариантов я расписала, а так их можно придумать намного больше

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 01.07.2019 0:07

Я делал так:

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

<!-- EVENT forumlist_body_forum_row_prepend -->
			<dl class="iconsprite row-item {forumrow.FORUM_IMG_STYLE}"><div class="board no_{forumrow.FORUM_ID}"></div>
Т.е. добавлял элемент <div class="board no_{forumrow.FORUM_ID}"></div>

В сложившейся обстановке я пока не понимаю как сделать штатно...
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 01.07.2019 0:39

Именно там события нет, так что без переделки блок, скорей всего, не перенести
Ближайшие события внутри блока - forumlist_body_forum_image_before/after, как их можно использовать уже писала

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 01.07.2019 1:11

Я понял - сенкс за ликбез!

Но тогда для установки расширения нужен запуск SQL запроса, чтобы прописать заглушку на все форумы, а при деинсталяции - очистить поле.
И надо при первом включении - копировать заглушку из каталога расширения в категорию форума, а при очистке данных расширения - удалять ее.
Дабы все было гламурно - так ведь?
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 01.07.2019 1:19

Чтобы совсем всё красиво было надо придумать как генерировать css по данным, введённым для форумов в админке. ID форумов ведь у всех разные, универсального кода не написать
А если писать код вручную, то и заглушку можно поставить вручную

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 170 раз
Поблагодарили: 62 раза

Re: Расширения - это просто!

Сообщение Beer » 01.07.2019 9:46

Спрайт делается руками по количеству разделов, css один на количество разделов. Конечно можно и на сервере сгенерировать и спрайт и css, но это уже такие дебри ....
Кому-то будут нужны разные размеры иконок - надо пересчитывать css на калькуляторе...

Получается, что самое простое и оптимальное все же - исправить шаблон и css (еще в content.css можно убрать загрузку 6 img).
И запомнить для след. обновления.
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11404
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 52 раза
Поблагодарили: 2533 раза
Контактная информация:

Re: Расширения - это просто!

Сообщение Sheer » 01.07.2019 10:25

Beer писал(а):
01.07.2019 9:46
И запомнить для след. обновления
Это неправильно. Нужно создать свой стиль на основе prosilver (Создание дочернего стиля для чайников), и не нужно ничего запоминать.
Просто при обновлении нужно будет сравнить файлы кастомного стиля со стандартными внести в них изменения, если таковые потребуются, например добавление событий.
Излишне напоминать, что в кастомном стиле не нужны все html-шаблоны и css, наличествующие в стандартном.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4097
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 105 раз
Поблагодарили: 423 раза
Контактная информация:

Re: Расширения - это просто!

Сообщение Siava » 01.07.2019 10:56

Beer, А что вы вообще делаете там? Может подойдёт готовый вариант? :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Ответить

Вернуться в «Для авторов»