Posted 29 ноября, 20204 yr comment_165664 Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл. Соответственно, чтобы и в подкатегориях кнопка была от родителя. Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? Заранее благодарен за помощь и наводки)
29 ноября, 20204 yr comment_165665 9 минут назад, Elhombre сказал: Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл. Соответственно, чтобы и в подкатегориях кнопка была от родителя. Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? Заранее благодарен за помощь и наводки) Если я правильно понял, то просто на просто, делаешь 2 ключа под слова, можешь добавить через тему, и указать путь. Взять простой пример тема: Fluent Design Theme Edition, там на левие предложение и плагина, стоят свои ключи и направление на них... ну я думаю вы суть поняли)
30 ноября, 20204 yr comment_165671 7 часов назад, Elhombre сказал: честно говоря ничего не понял он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод. вроде как то так 🙄
30 ноября, 20204 yr comment_165672 28 минут назад, SlawkA сказал: он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод. вроде как то так 🙄 Так точно!
30 ноября, 20204 yr comment_165675 Если учесть, что темплейт для всех один, то просто смена названия ничего не даст, надо добавить в шаблон логику. Например в шаблоне view-downloadButton {{if $file->container()->id === 1}} {lang="button_plugin"} {{elseif $file->container()->id === 2}} {lang="button_application"} {{endif}} вместо {lang="download_now"}. Естественно, поставить свои ID категорий.
30 ноября, 20204 yr Author comment_165680 Desti вот да, именно это и надо, с логикой. Спасибо, сейчас попробую
30 ноября, 20204 yr Author comment_165686 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?
30 ноября, 20204 yr comment_165687 Ну попробуйте вместо {lang=} прописать слова Скачать плагин и Скачать приложение, будет понятно, в чем проблема.
30 ноября, 20204 yr Author comment_165688 1 минуту назад, Desti сказал: Ну попробуйте вместо {lang=} прописать слова Скачать плагин и Скачать приложение, будет понятно, в чем проблема. Всё, сейчас получилось. С главной категорией не работает. Нужно указывать корневую, соответственно нужно указать все подкатегории. Их в коде надо через запятую? Как правильно? Так? {{if $file->container()->id === 4,5,6}} {lang="button_plugin"} {{elseif $file->container()->id === 12,13,14}} {lang="button_application"} {{endif}}
30 ноября, 20204 yr comment_165690 {{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 30 ноября, 20204 yr by Desti
30 ноября, 20204 yr Author comment_165691 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)) }} Вот прям ТОП 🔥 Спасибо тебе огромнейшее!!! Всё заработало так, как надо
1 декабря, 20204 yr Author comment_165697 Desti есть ещё вопрос на засыпку А если мне нужно для некоторых файлов из этих категорий сделать так же отдельную кнопку, можно как-то по ID файла так же прописать, как для категорий?
1 декабря, 20204 yr comment_165699 Конечно можно. Любые данные, которые вам доступны, можно использовать в качестве условия. Но надо понимать, что если логика сложная или длинная, обработка ее в шаблоне не лучший вариант и надо переносить это в код и базу.
1 декабря, 20204 yr comment_165707 Ровно так же.. {{if $file->id === 754}}{lang="Ура!"}{{endif}} А если нужно показывать другую кнопку на остальные файлы, то {{if $file->id === 754}} {lang="Ура!"} {{elseif }} {lang="Мура!"} {{endif}}
1 декабря, 20204 yr Author comment_165716 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 и выводится весь текст соответственно в кнопке.
1 декабря, 20204 yr comment_165717 Есть простая затычка для проверки: {{var_dump("Container: ", $file->container()->id, "File: ", $file->id); die;}} Но возможно не хватает еще одного {{endif}} в конце.
1 декабря, 20204 yr Author comment_165718 Desti вообще всё поломал 🤦♂️ руки из одного места у меня растут просто)
1 декабря, 20204 yr comment_165719 На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала И условия у вас не так стоят. Сначала надо проверить на 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}}
1 декабря, 20204 yr Author comment_165721 17 минут назад, Desti сказал: На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала Само собой, всегда делаю копии перед правками, и чаще тупо даже бекапы целиком 18 минут назад, Desti сказал: Что-то типа Вот это именно то, что нужно получилось 🔥. думал об этом, что сначала проверка файла, но не знаю даже, почему не попробовал так сделать сам🤣 Ещё раз огромное и человеческое спасибо за результат!
1 декабря, 20204 yr comment_165723 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.