Jump to content

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


Mano

Recommended Posts

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

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

Так точно! 

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

Так?

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

 

Link to comment
Share on other sites

{{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)) }}

 

Edited by Desti
Link to comment
Share on other sites

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)) }}

 

Вот прям ТОП 🔥

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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 и выводится весь текст соответственно в кнопке.

Link to comment
Share on other sites

Есть простая затычка для проверки:

{{var_dump("Container: ", $file->container()->id, "File: ", $file->id); die;}}

Но возможно не хватает еще одного {{endif}} в конце.

Link to comment
Share on other sites

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

И условия у вас не так стоят. Сначала надо проверить на 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}}  

    

Link to comment
Share on other sites

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

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

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

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

Что-то типа 


 

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Ваша ссылка была автоматически строена.   Отображать как обычную ссылку

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...