自.NET 4以来,任务并行库是.NET Framework的一部分。它是一组API,使开发人员能够对异步应用程序进行编程。
对 ps_socialfollow.tpl 进行硬编码以支持多语言后出现 Smarty 错误
我的 prestashop 版本是 1.7.3.4,php 7.1。 这是 ps_socialfollow.tpl 的默认内容: {区块名称='block_social'} {foreach fr... 我的 prestashop 版本是 1.7.3.4,php 7.1。 这是 ps_socialfollow.tpl 的默认内容: {block name='block_social'} <div class="social_follow"> <ul> {foreach from=$social_links item='social_link'} <li class="{$social_link.class}"><a href="{$social_link.url}" target="_blank">{$social_link.label}</a></li> {/foreach} </ul> </div> {/block} 模块默认不支持多语言。所以我对它进行了硬编码以支持多语言,如下所示: {block name='block_social'} {if $language.language_code == 'en-us'} <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> </ul> </div> {elseif $language.language_code == 'ko'} <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> </ul> </div> {/if} {/block} 只要我不激活调试模式,它就可以完美地工作。激活调试模式后,我收到此错误消息: > ContextErrorException in smarty_internal_templatebase.php(157) : > eval()'d code line 68: > Notice: Undefined index: social_link > in smarty_internal_templatebase.php(157) : eval()'d code line 68 > at ErrorHandler->handleError('8', 'Undefined index: social_link', '/var/www/html/store/vendor/prestashop/smarty/sysplugins/smarty_internal_templatebase.php(157) > : eval()'d code', '68', array('_smarty_tpl' => > object(SmartyDevTemplate))) in smarty_internal_templatebase.php(157) : > eval()'d code line 68 > at content_5b4fc96564eec0_18848187(object(SmartyDevTemplate)) in smarty_internal_templatebase.php line 188 > at Smarty_Internal_TemplateBase->fetch(object(SmartyDevTemplate), null, null, null, false, true, false) in SmartyDevTemplate.php line 41 > at SmartyDevTemplateCore->fetch() in Module.php line 2282 > at ModuleCore->fetch('module:ps_socialfollow/ps_socialfollow.tpl', 'ps_socialfollow|1|3|3|3|1|1') in ps_socialfollow.php line 201 > at Ps_Socialfollow->renderWidget('displayFooterAfter', array('smarty' => object(SmartyDevTemplate), 'cookie' => > object(Cookie), 'cart' => object(Cart), 'altern' => '1')) in Hook.php > line 929 > at HookCore::coreRenderWidget(object(Ps_Socialfollow), 'displayFooterAfter', array('smarty' => object(SmartyDevTemplate), > 'cookie' => object(Cookie), 'cart' => object(Cart), 'altern' => '1')) > in Hook.php line 881 > at HookCore::exec('displayFooterAfter', array('smarty' => object(SmartyDevTemplate), 'cookie' => object(Cookie), 'cart' => > object(Cart), 'altern' => '1'), null) in smarty.config.inc.php line > 168 > at smartyHook(array('h' => 'displayFooterAfter'), object(SmartyDevTemplate)) in SmartyLazyRegister.php line 83 > at SmartyLazyRegister->__call('smartyHook', array(array('h' => 'displayFooterAfter'), object(SmartyDevTemplate))) in > smarty_internal_templatebase.php(157) : eval()'d code line 691 > at content_5b4fc96527b774_70366195(object(SmartyDevTemplate)) in smarty_internal_templatebase.php(157) : eval()'d code line 248 > at content_5b4fc965282d34_37575711(object(SmartyDevTemplate)) in smarty_internal_templatebase.php line 188 > at Smarty_Internal_TemplateBase->fetch('index.tpl', null, 'layouts/layout-full-width.tpl', object(SmartyDev), false, true, > false) in SmartyDev.php line 41 > at SmartyDev->fetch('index.tpl', null, 'layouts/layout-full-width.tpl') in FrontController.php line 684 > at FrontControllerCore->smartyOutputContent('index.tpl') in FrontController.php line 668 > at FrontControllerCore->display() in Controller.php line 273 > at ControllerCore->run() in Dispatcher.php line 428 > at DispatcherCore->dispatch() in index.php line 28 我对 php 的了解甚至不值一提,因为它更多地基于我能够做的一点点逻辑思维,而不是实际知识。因此,我无法自行修复聪明的错误。 我必须做哪些修改?在该模块中实现多语言(网站)支持的正确方法是什么? 我根据Alexander Grosul的建议编辑了ps_socialfollow.tpl。 <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.facebook.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.twitter.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.instagram.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.googleplus.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.pinterest.label}</a></li> </ul> </div> 结果是完全相同的 smarty 错误。 我也尝试过这个版本: {block name='block_social'} <div class="social_follow"> <ul> {foreach from=$social_links item='social_link'} {if $language.language_code == 'en-us'} <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> {elseif $language.language_code == 'ko'} <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> {/if} {/foreach} </ul> </div> {/block} 这不会触发 smarty 错误,只是显示所有图标。无论选择哪种语言,都会立即执行。 在您的示例中,默认版本中有循环,但修改后的版本中没有循环。这意味着您不能使用 $social_link,因为它不存在,而是在循环内创建的。您只能使用传入的 $social_links 并指出您要使用该数组的哪个元素,例如 $social_links.twitter.label 等。 您应该在 Github 上查看我针对所有版本的 Prestashop 的增强型免费社交媒体模块“lgf_socialfollow”
我正在研究ContinueWith函数,但最终我不明白它。 在此示例代码中: var s = Task.FromResult(true).ContinueWith(async t => t).ContinueWith(async t =>...
###简介 在对我的代码困惑了一段时间后,我发现异常不一定通过ContinueWith传播: int 零或一 = 1; Task.Factory.StartNew(() => 3 / ZeroOrOne) .
我有一个方法,里面有一个foreach循环,在循环内我调用了几个异步操作。我让 ChatGPT 做了审查,他说你可以通过添加...来提高性能
我正在尝试创建一个任务的子类,它会自行取消并等待它被释放。 在单元测试时,我遇到了奇怪的失败测试用例。最终归结为重复。我什至可以...
为什么在处理长时间运行的 CPU 密集型任务时,Task.Run() 会阻止控制器操作?
我正在开发 .NET 6 Web API,并使用 Task.Run() 处理 CPU 密集型任务,将其卸载到后台线程。然而,我的控制器操作似乎仍然被阻止,并且请求...
CancellationToken.ThrowIfCancellationRequested 后的故障与取消任务状态
通常我不会发布带有答案的问题,但这次我想引起一些注意,我认为这可能是一个晦涩但常见的问题。就是被这个问题触发的,从那时起我
Task.Start/Wait 和 Async/Await 有什么区别?
我可能错过了一些东西,但是这样做有什么区别: 公共无效我的方法() { 任务 t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(...
我在循环中从任务工厂创建 x 个任务。当我等待所有任务完成时,这些任务会开始并完成一些工作。 我的问题是每个任务/线程都会初始化它的流...
我有一个方法,里面有一个foreach循环,在循环内我调用了几个异步操作。我让 ChatGPT 做了审查,他说你可以通过添加...来提高性能
为什么我应该更喜欢单个“await Task.WhenAll”而不是多个等待?
如果我不关心任务完成的顺序,只需要它们全部完成,我是否仍然应该使用await Task.WhenAll而不是多个await?例如,DoWork2 是否低于首选方法...
我有一些代码,目前正在针对多核架构中的并发性进行优化。在我的一堂课中,我发现了一个嵌套的 foreach 循环。基本上,外循环迭代
我有以下代码 任务.运行(() => 长时间运行任务() .ContinueWith(_ => Finisher())) 。等待(); 我们有一个等待者等待外部任务(...
.net 6 中的elastic-apm-agent 生成大量 Microsoft-Windows-DotNETRuntime/ExceptionThrown 事件
我们在 ASP .net6 应用程序中使用 prometheus-net.DotNetMetrics 进行系统监控。当我们开始使用适用于 .net 的 Elastic Apm 代理时,dotnet_exceptions_total 指标开始显示增加......
我想顺序执行多个异步任务。 foreach(消息中的 var msg) { 等待 smtp.SendAsync(msg); } 但是,如果其中一项任务失败,我希望其余任务继续进行。还有
我正在尝试将大的 CSV 文件拆分为较小的文件,并将它们同时发送到 azure 存储帐户。 我几乎逐条记录地读取大文件(源)并将其写入临时本地...
我有一个后台任务,正在使用任务进行建模,并使用 IAsyncDisposable 停止该任务。 // 执行 公共密封类 Worker :IAsyncDisposable { 私有只读
我使用一个接受Task的库,但有时我必须只传递Task,我必须将其转换为Task。转换 ...
我正在寻求有关如何使用yield关键字在并行块或任务块中返回IEnumerable的帮助。 这是伪代码: 公共 IEnumerable> ReadFile( ) ...
如何实现高效的 WhenEach 来传输 IAsyncEnumerable 任务结果?
我正在尝试使用 C# 8 提供的新工具更新我的工具集,一种似乎特别有用的方法是返回 IAsyncEnumerable 的 Task.WhenAll 版本。这个方法应该...