CFWheels - DeObfuscate ID для запроса страниц?
Я запутываю URL-адреса в своем приложении (и это здорово), но я бы хотел отключить это для URL-страниц пагинации, потому что хотел бы, чтобы пользователь мог вводить любой номер, который ему нравится.
Settings.cfm:
<cfset set(obfuscateURLs = true) />
Home.cfc (контроллер):
<cffunction name="home">
<cfparam name="params.page" default="1" />
<cfset linkList = model("link").findAll(
select="linkTitle,linkPoints,linkID,linkAuthority,linkCreated,linkUpVoteCount,linkDownVoteCount,linkCommentCount,userName,userID",
include="user",
order="linkPoints DESC",
handle="linkListPaging",
page=params.page,
perPage=5
) />
</cffunction>
Home.cfm (просмотр)
<ul class="pagination">
<cfoutput>
#paginationLinks(
route="paginateLatest",
handle="linkListPaging",
page=1,
name="page",
windowSize=5,
prependToPage="<li>",
appendToPage="</li>",
classForCurrent="current"
)#
</cfoutput>
</ul>
Могу ли я сделать DeObfuscate по мере необходимости?
Спасибо майкл
1 ответ
Настройка для запутывания параметров является соглашением "все или ничего". Так же, как вы не можете переопределить это поведение для linkTo()
Вы не можете переопределить это для paginationLinks()
или.
Я бы предложил создать плагин, так как держу пари, что будут другие разработчики, которые захотят этого в будущем. Может быть способ сказать контроллеру не запутывать / деобфусцировать параметр с именем page
, Вам нужно будет обновить как urlFor()
работает так же, как деобфускация контроллера при обработке входящих запросов. Вы также можете рассмотреть возможность предоставления опции конфигурации для использования set()
в "черный список" набора params
ключи, которые никогда не будут запутаны (с page
быть по умолчанию).