Перейти к содержанию

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


Рекомендуемые сообщения

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

AnWey честно говоря ничего не понял, можно по подробнее?)

Ссылка на комментарий
Поделиться на другие сайты

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 категорий.

Ссылка на комментарий
Поделиться на другие сайты

Desti вот да, именно это и надо, с логикой. Спасибо, сейчас попробую

Ссылка на комментарий
Поделиться на другие сайты

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?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Так?

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

 

Изменено пользователем Desti
Ссылка на комментарий
Поделиться на другие сайты

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

 

Вот прям ТОП 🔥

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Desti понял, а если все-таки на уровне шаблона? 😃

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Desti вообще всё поломал 🤦‍♂️   руки из одного места у меня растут просто)

Ссылка на комментарий
Поделиться на другие сайты

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

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

    

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Что-то типа 


 

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Desti а вот за лайфхак благодарю, так реально проще))

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

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

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...