Mano Опубликовано 29 ноября, 2020 Поделиться Опубликовано 29 ноября, 2020 Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл. Соответственно, чтобы и в подкатегориях кнопка была от родителя. Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? Заранее благодарен за помощь и наводки) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AnWey Опубликовано 29 ноября, 2020 Поделиться Опубликовано 29 ноября, 2020 9 минут назад, Elhombre сказал: Ребят, может кто подскажет, как реализовать такую штуку, чтобы для определенной категории в Downloads название кнопки Скачать было своё? Допустим, у меня есть 2 главные категории: Плагины и Файлы Вот для категории Плагины мне нужно, чтобы на кнопке Скачать было написано Установить плагин, а для категории Файлы нужно, чтобы было написано Дублировать файл. Соответственно, чтобы и в подкатегориях кнопка была от родителя. Может даже, в идеале, можно сделать возможность прописывать текст для кнопки при добавлении файла в Downloads? Заранее благодарен за помощь и наводки) Если я правильно понял, то просто на просто, делаешь 2 ключа под слова, можешь добавить через тему, и указать путь. Взять простой пример тема: Fluent Design Theme Edition, там на левие предложение и плагина, стоят свои ключи и направление на них... ну я думаю вы суть поняли) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 29 ноября, 2020 Автор Поделиться Опубликовано 29 ноября, 2020 AnWey честно говоря ничего не понял, можно по подробнее?) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SlawkA Опубликовано 30 ноября, 2020 Поделиться Опубликовано 30 ноября, 2020 7 часов назад, Elhombre сказал: честно говоря ничего не понял он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод. вроде как то так 🙄 Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AnWey Опубликовано 30 ноября, 2020 Поделиться Опубликовано 30 ноября, 2020 28 минут назад, SlawkA сказал: он имеет в виду ключи слов перевода. к примеру находишь нужную кнопку. меняешь на ней ключ перевода и ставишь по этому ключу свой уже перевод. вроде как то так 🙄 Так точно! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 30 ноября, 2020 Поделиться Опубликовано 30 ноября, 2020 Если учесть, что темплейт для всех один, то просто смена названия ничего не даст, надо добавить в шаблон логику. Например в шаблоне view-downloadButton {{if $file->container()->id === 1}} {lang="button_plugin"} {{elseif $file->container()->id === 2}} {lang="button_application"} {{endif}} вместо {lang="download_now"}. Естественно, поставить свои ID категорий. Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 30 ноября, 2020 Автор Поделиться Опубликовано 30 ноября, 2020 Desti вот да, именно это и надо, с логикой. Спасибо, сейчас попробую Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 30 ноября, 2020 Автор Поделиться Опубликовано 30 ноября, 2020 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? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 30 ноября, 2020 Поделиться Опубликовано 30 ноября, 2020 Ну попробуйте вместо {lang=} прописать слова Скачать плагин и Скачать приложение, будет понятно, в чем проблема. Mano и SlawkA 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 30 ноября, 2020 Автор Поделиться Опубликовано 30 ноября, 2020 1 минуту назад, Desti сказал: Ну попробуйте вместо {lang=} прописать слова Скачать плагин и Скачать приложение, будет понятно, в чем проблема. Всё, сейчас получилось. С главной категорией не работает. Нужно указывать корневую, соответственно нужно указать все подкатегории. Их в коде надо через запятую? Как правильно? Так? {{if $file->container()->id === 4,5,6}} {lang="button_plugin"} {{elseif $file->container()->id === 12,13,14}} {lang="button_application"} {{endif}} SlawkA 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 30 ноября, 2020 Поделиться Опубликовано 30 ноября, 2020 (изменено) {{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)) }} Изменено 30 ноября, 2020 пользователем Desti SlawkA и Mano 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 30 ноября, 2020 Автор Поделиться Опубликовано 30 ноября, 2020 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)) }} Вот прям ТОП 🔥 Спасибо тебе огромнейшее!!! Всё заработало так, как надо SlawkA 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 Desti есть ещё вопрос на засыпку А если мне нужно для некоторых файлов из этих категорий сделать так же отдельную кнопку, можно как-то по ID файла так же прописать, как для категорий? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 декабря, 2020 Поделиться Опубликовано 1 декабря, 2020 Конечно можно. Любые данные, которые вам доступны, можно использовать в качестве условия. Но надо понимать, что если логика сложная или длинная, обработка ее в шаблоне не лучший вариант и надо переносить это в код и базу. Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 Desti понял, а если все-таки на уровне шаблона? 😃 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 декабря, 2020 Поделиться Опубликовано 1 декабря, 2020 Ровно так же.. {{if $file->id === 754}}{lang="Ура!"}{{endif}} А если нужно показывать другую кнопку на остальные файлы, то {{if $file->id === 754}} {lang="Ура!"} {{elseif }} {lang="Мура!"} {{endif}} Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 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 и выводится весь текст соответственно в кнопке. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 декабря, 2020 Поделиться Опубликовано 1 декабря, 2020 Есть простая затычка для проверки: {{var_dump("Container: ", $file->container()->id, "File: ", $file->id); die;}} Но возможно не хватает еще одного {{endif}} в конце. Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 Desti вообще всё поломал 🤦♂️ руки из одного места у меня растут просто) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 декабря, 2020 Поделиться Опубликовано 1 декабря, 2020 На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала И условия у вас не так стоят. Сначала надо проверить на 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}} Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 17 минут назад, Desti сказал: На будущее - можно скопировать своё содержимое в файлик и восстановить оригинальный темплейт. Начать с начала Само собой, всегда делаю копии перед правками, и чаще тупо даже бекапы целиком 18 минут назад, Desti сказал: Что-то типа Вот это именно то, что нужно получилось 🔥. думал об этом, что сначала проверка файла, но не знаю даже, почему не попробовал так сделать сам🤣 Ещё раз огромное и человеческое спасибо за результат! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 декабря, 2020 Поделиться Опубликовано 1 декабря, 2020 7 минут назад, Elhombre сказал: почему не попробовал так сделать сам Не понятно, что вы боитесь испортить Нашли темплейт нужный, вообще всё из него удалили, вставили свою логику, проверили, восстановили контент, добавили свой код. Ведите записи в отдельном файле что и как вы делаете в темплейтах. Я подозреваю, что до хуков вы доберетесь никогда, а все ваши изменения слетят после апгрейда темы и придется из бекапов восстанавливать темы. Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mano Опубликовано 1 декабря, 2020 Автор Поделиться Опубликовано 1 декабря, 2020 Desti а вот за лайфхак благодарю, так реально проще)) Desti 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.