Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Кнопки в категориях Downloads

Featured Replies

Posted

Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы

Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл.

Соответственно, чтобы и в подкатегориях кнопка была от родителя.

Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? :) 

Заранее благодарен за помощь и наводки)

9 минут назад, Elhombre сказал:

Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы

Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл.

Соответственно, чтобы и в подкатегориях кнопка была от родителя.

Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? :) 

Заранее благодарен за помощь и наводки)

Если я правильно понял, то просто на просто, делаешь 2 ключа под слова, можешь добавить через тему,  и указать путь.

Взять простой пример тема: Fluent Design Theme Edition, там на левие предложение и плагина, стоят свои ключи и направление на них... ну я думаю вы суть поняли) 

7 часов назад, Elhombre сказал:

честно говоря ничего не понял

он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод.

вроде как то так 🙄

28 минут назад, SlawkA сказал:

он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод.

вроде как то так 🙄

Так точно! 

Если учесть, что темплейт для всех один, то просто смена названия ничего не даст, надо добавить в шаблон логику. Например в шаблоне view-downloadButton

{{if $file->container()->id === 1}}
		{lang="button_plugin"}
{{elseif $file->container()->id === 2}}
		{lang="button_application"}
{{endif}}

вместо {lang="download_now"}. Естественно, поставить свои ID категорий.

  • Author
2 часа назад, Desti сказал:

Если учесть, что темплейт для всех один, то просто смена названия ничего не даст, надо добавить в шаблон логику. Например в шаблоне view-downloadButton


{{if $file->container()->id === 1}}
		{lang="button_plugin"}
{{elseif $file->container()->id === 2}}
		{lang="button_application"}
{{endif}}

вместо {lang="download_now"}. Естественно, поставить свои ID категорий.

Добавил всё и прописал, но не работает почему-то, не отображает значение

Вот получается по итогу код шаблона downloadButton

<li>
	{{if !$file->canDownload() AND !( !$file->container()->can( 'download' ) AND $file->container()->message('npd') )}}
		{{if !\IPS\Member::loggedIn()->member_id}}
			<span class="ipsType_light ipsType_blendLinks ipsResponsive_hidePhone ipsResponsive_inline"><i class="fa fa-info-circle"></i> {lang="download_no_permission_guest"}</span>
			<a href='{url="app=core&module=system&controller=login" seoTemplate="login"}' class='ipsButton ipsButton_light ipsButton_medium ipsButton_fullWidth ipsSpacer_top'>{lang="sign_in_short"}</a>
		{{else}}
			<span class="ipsType_light ipsType_blendLinks ipsResponsive_hidePhone ipsResponsive_inline"><i class="fa fa-info-circle"></i> {lang="download_no_permission"}</span>
		{{endif}}
	{{else}}
		<a target='_blank' href='{{if settings.idm_antileech}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->container()->message('disclaimer') or \count( $file->files() ) > 1 or ( member.group['idm_wait_period'] AND ( !$file->isPaid() OR member.group['idm_paid_restrictions'] ) )}}data-ipsDialog{{endif}}>
          	{{if $file->container()->id === 28}}
				{lang="button_plugin"}
			{{elseif $file->container()->id === 12}}
				{lang="button_application"}
			{{endif}}
  		</a>
	{{endif}}
</li>

 

Может быть потому, что ключи привязались к компоненту Система, а не Downloads?

  • Author
1 минуту назад, Desti сказал:

Ну попробуйте вместо {lang=} прописать слова Скачать плагин и Скачать приложение, будет понятно, в чем проблема. 

Всё, сейчас получилось. С главной категорией не работает. Нужно указывать корневую, соответственно нужно указать все подкатегории. Их в коде надо через запятую? Как правильно?

Так?

{{if $file->container()->id === 4,5,6}}
				{lang="button_plugin"}
			{{elseif $file->container()->id === 12,13,14}}
				{lang="button_application"}
			{{endif}}

 

  • Author
9 минут назад, Desti сказал:

{{if $file->container()->id === 4 OR $file->container()->id === 5 OR $file->container()->id === 6}}

или 


{{if \in_array($file->container()->id, array(4,5,6)) }}

 

Вот прям ТОП 🔥

Спасибо тебе огромнейшее!!! :) 

Всё заработало так, как надо

  • Author

Desti есть ещё вопрос на засыпку :)

А если мне нужно для некоторых файлов из этих категорий сделать так же отдельную кнопку, можно как-то по ID файла так же прописать, как для категорий?

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

Ровно так же..

{{if $file->id === 754}}{lang="Ура!"}{{endif}}

А если нужно показывать другую кнопку на остальные файлы, то

{{if $file->id === 754}}
  {lang="Ура!"}
{{elseif }}
   {lang="Мура!"}
{{endif}}

  • Author

Desti видимо криворукий и что-то делаю не так?))

{{if \in_array($file->container()->id, array(3,4,5,6,7,8,9,10,11))}}
	{lang="button_plugin"}
{{elseif \in_array($file->container()->id, array(13,14,15,16))}}
	{lang="button_application"}
{{else}}
{{if \in_array($file->id, array(31,32))}}
	{lang="download_now"}
{{endif}}

Почему первые 2 условия не встают в FALSE, все в TRUE и выводится весь текст соответственно в кнопке.

На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала :)

И условия у вас не так стоят. Сначала надо проверить на id файла и только потом на id категории. Иначе категория всегда будет перебивать файл. 
 

Что-то типа 

{{if \in_array($file->id, array(3,2))}}
    {lang="download_now"}
{{else}}          
    {{if \in_array($file->container()->id, array(1,3,4,5,6,7,8,9,10,11))}}
        {lang="button_plugin"}
    {{elseif \in_array($file->container()->id, array(13,14,15,16))}}
        {lang="button_application"}
    {{endif}}
{{endif}}  

    

  • Author
17 минут назад, Desti сказал:

На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала :)

Само собой, всегда делаю копии перед правками, и чаще тупо даже бекапы целиком :)

18 минут назад, Desti сказал:

Что-то типа 


 

Вот это именно то, что нужно получилось 🔥.  думал об этом, что сначала проверка файла, но не знаю даже, почему не попробовал так сделать сам🤣

Ещё раз огромное и человеческое спасибо за результат!

7 минут назад, Elhombre сказал:

почему не попробовал так сделать сам

Не понятно, что вы боитесь испортить :) Нашли темплейт нужный, вообще всё из него удалили, вставили свою логику, проверили, восстановили контент, добавили свой код.

Ведите записи в отдельном файле что и как вы делаете в темплейтах. Я подозреваю, что до хуков вы доберетесь никогда, а все ваши изменения слетят после апгрейда темы и придется из бекапов восстанавливать темы. 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.