问题标签 [adminhtml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5631 浏览

magento - Magento:将选项卡添加到管理员订单详细信息页面

我创建了一个自定义 Magento 模块,它通过一些自定义用户输入扩展了核心销售订单功能。下订单后,我想在管理区域的订单详细信息页面上的自定义选项卡中显示此数据。我已经设法在选项卡列表中显示新选项卡,但是当我单击选项卡时,它给了我一个 404。

这是我的代码:

应用程序/代码/本地/Zac/攻击/etc/config.xml:

app/code/local/Zac/Attack/Block/Adminhtml/Sales/Order/View/Tab/Attack.php:

app/code/local/Zac/Attack/controllers/Adminhtml/Sales/OrderController.php:

app/design/adminhtml/default/default/layout/attack.xml

似乎失败的是控制器覆盖。覆盖方法“viewAction()”和自定义操作“attackAction()”都不会被调用。我可以看出配置正在被拾取,因为当我打印“Mage::getConfig()->getNode('admin/routers/adminhtml')”时,我可以看到以下输出:

所以,我的第一个问题是:我是否遵循向页面添加自定义选项卡的正确方法?

如果我没有遵循正确的方法,您能否告诉我正确的方法是什么或提供一个清楚地概述整个方法的链接(搜索 Magento 信息时答案片段太多,没有足够的完整答案)。

如果我遵循正确的方法,为什么我的控制器没有覆盖?

好吧,我希望我已经提供了足够的细节来说明问题。如果没有,请随时在评论中发布后续问题,我很乐意详细说明 - 如果我知道如何。

提前感谢您提供的任何帮助。

干杯,扎克

PS我注意到社区部分中有另一个模块覆盖了同一个控制器 - 但是该覆盖似乎也没有生效。无论如何,出于调试的目的,我已经完全删除了第 3 方模块,以确保没有干扰。

0 投票
1 回答
764 浏览

php - 自定义模块中的管理路由

所有库存的 magento 模块在后端都有 URL 路径,其中有 'admin' (默认情况下)部分。但是,我无法为自定义模块实现这一目标。这是不可能的还是有目的的?

谢谢

0 投票
1 回答
5942 浏览

ajax - 如何在magento的默认adminhtml form.php上使用ajax?

如何在 form.php 上为位于名为“gallerydata.php”的根文件夹中的文件进行 ajax 调用。我有一个名为“画廊”的扩展,用于从后端上传图像。所以我想通过使用调用该文件“gallerydata.php”的ajax从下拉列表中获取艺术家的ID。

0 投票
3 回答
17665 浏览

magento - 管理员中自定义 Magento 配置中的 404 错误

我正在 Magento 1.6 中开发一个自定义 SMS 模块。

我已经设置了system.xml文件来管理相关的自定义配置字段。

菜单项显示出来,但是当我单击它时,会显示 404 错误页面,而不是预期的配置字段列表。

你能在我的代码中看到任何错误吗?

在 ben 的请求之后,我们放置了 adminhtml.xml 文件。我放置了 XML 文件的内容。

但是直到404错误出现...

0 投票
3 回答
4730 浏览

magento - Magento 自定义模块 adminhtml/base/default

每次我尝试查看 indexController 时,我的自定义模块都会在系统日志中生成此错误。

我已经通过我的模块代码钓鱼了几个小时,似乎找不到任何问题。什么可能导致这种情况?在 adminhtml 下甚至不存在 base/default 文件夹。

0 投票
1 回答
3979 浏览

templates - 在 Magento 后端添加自定义仪表板“框”而不编辑默认模板的正确方法是什么?

我正在努力创建我希望有一天会成为公开可用的 Magento 扩展的东西(我提到这部分是因为我在这里做“正确的事情”对我很重要)。我想做的一件事是在默认的 Magento 仪表板中添加一个框,基本上是一个新的“框”,与“Top 5 Search Terms”完全一样,除了我自己的内容。我希望我的新自定义框成为显示的最后一个框(理想情况下)。

我遇到的问题是负责渲染仪表板的模板调用了要渲染的特定块,这些块嵌套在 html 中。换句话说,通常会有一个区域将子块渲染成一个很好的合理的 HTML 元素,在这种情况下,似乎会渲染特定的块。这是/app/design/adminhtml/default/default/template/dashboard/index.phtml的内容

如果我在自己的商店中这样做,我相信我可以通过编辑上面的基本 Magento 仪表板模板 index.phtml 来相对轻松地实现这一点,添加我需要渲染块的内容,例如:

但是,这不是我自己的商店,所以这似乎不是一个选择。

现在,经过一些思考,我的选择似乎如下(请注意,其中大多数看起来“糟糕”,而不是我在公众中看到的超级自豪的东西):

0)我没有看到你会告诉我的显而易见的事情是完美/正确的解决方案

1)我可能(也许?)能够将我的自定义块添加到该区域中的这些其他块之一(“topSearches”、“sales”等)并渲染我的块。这似乎不是很“干净”

2)我也许可以在仪表板页面上的其他地方呈现块,然后使用 javascript 将其移动到正确的位置。我猜这会相当容易,但由于明显的原因感觉非常“hacky”。

有没有人对这样做的方式有任何反馈,或者如果有办法?请记住,我想再次公开发布这个模块,所以我的目标是做好工作并尽可能少地“黑客”。

非常感谢您的阅读!

0 投票
1 回答
1779 浏览

magento - Magento:如何在前端使用管理配置表单?

我有一个扩展程序,它应该让用户(在 magento 后端以管理员身份登录)能够更改前端区域中的一些配置。我想在前端有一个链接,它通过 ajax 加载配置区域,并让用户可以在加载的 div 中编辑和保存这个配置。我想为此使用 magento 后端表单,因此我不必自己编写表单。

我目前的方法在页面上有链接,并通过ajax 加载正确的后端页面(例如系统> 配置> 设计)。对于这种方法,我创建了一个扩展 Mage_Adminhtml_Controller_Action 的控制器。此控制器从 ajax 请求中获取参数并使用一个操作(如 Mage_Adminhtml_System_ConfigController 类的 editAction)在后端获取正确的配置页面。

我的问题是: - 只显示正确的区域(我只希望用户只编辑系统>配置>设计下的“主题”部分)其他所有内容都应该不可用......所以如何删除这个配置周围的所有信息部分?

  • 表单需要 JS 变量 Form_Key。如何获取当前的 Form_Key(在前端)?

  • ajax 加载内容后,表单未正确初始化。因此,如果我尝试提交表单,我的萤火虫会说“JS-Error: configForm is not defined”。如何解决这个表单初始化?有任何想法吗?

我真的希望这里的任何人都可以给我一个提示,如何解决这个问题,让后端配置在前端工作。

0 投票
1 回答
156 浏览

magento - 首次安装模块时执行一些与数据库无关的 PHP 的适当/最佳实践方法?

我正在创建一个模块,该模块需要在安装模块时完成(仅一次)。可能需要做很多事情,但我需要做的最基本的事情是对服务器进行 API 调用,让外部服务器知道模块已安装,并获取一些更新的配置项目。

我在stackoverflow上阅读了这个问题,但是在我的情况下,我真的对执行与数据库、固定装置、更新表等无关的代码感兴趣。另外,为了清楚这个模块没有影响(效果?)前端。仅供参考,我还阅读了 Alan Storm 的这篇精彩文章,但这确实让我明白了安装/升级脚本不适用于执行随机 PHP。

在我看来,我有几种可能的方法来实现这一点:

  • 我做了我担心不是最佳实践的事情,并在我的设置/安装脚本中添加了一些 PHP 来执行这个 php
  • 我创建了某种 cronjob,它只执行一次我需要的任务(不确定这将如何工作,但它似乎可能是一个“创造性”的解决方案——当然,如果 cron 设置不正确,那么这将失败,这不好
  • 我创建了一个 core_config_data 标志('mynamespace/mymodule/initialized'),在我的脚本运行后设置它,并检查我的模块触及的 adminhtml 的每个区域(CMS/Pages 和我自己的自定义 adminhtml 控制器)。这似乎是一个很好的解决方案,除了每次点击 CMS/Pages 或点击我的控制器时所有额外的开销,检查这个 core_config_data 设置。这个解决方案的好处是,如果我的 API 调用失败了,我可以将此标志设置为 false,它将再次运行,显示适当的消息,并继续运行直到它成功(或有额外的逻辑XX 次尝试后将停止初始化代码)

这些选项中的任何一个都是“最佳”方式吗?在某个地方是否有任何先例,例如受人尊敬的扩展或 Magento 本身?

在此先感谢您的时间!

0 投票
2 回答
1469 浏览

caching - 动态改变 Magento 的 adminhtml 菜单选项

我正在开发一个“为了好玩”的项目,我希望将它作为一个“为了好玩”的开源项目发布。我已经构建了一个 Arduino 联网订单通知器,并且正在构建它的 Magento adminhtml 界面。对于我正在做的事情来说,这似乎过于复杂,但这还有其他对我有用的应用程序,我正在尝试学习新的东西。

话虽如此,我在 Magento 后端的“报告”旁边创建了一个新的“Arduino”adminhtml 菜单项。在某些时候,来自 Arduino 的特定反馈可能会自动禁用模块,在这种情况下,我的目标是从页面中删除菜单项,除非有其他子菜单项,在这种情况下,我只删除模块特定的菜单项. 同样,这对于这个项目来说似乎不太现实,但为了尽可能“正确”地做到这一点,这是我的目标,让其他人可能会添加“Arduino”菜单项的可能性保持开放。

现在,如果缓存已关闭,我可以正常工作,没有问题。这是另一种说法,“这不起作用,因为显然每个人都会打开缓存。” 也就是说,这是我开始的代码:

这显然增加了一些开销,但它只在 adminhtml 部分。现在,我的目标是有一个“好的”解决方案,但我不确定是否有一个。我已经阅读了这篇非常好的博客文章,虽然我认为这样的事情可能对我的目的有用(相反),但我更愿意创建一个不使用类重写的模块,这样我就不需要担心了与其他模块重写同一类。

有人对我如何解决这个问题有任何建议吗?如果我要将自定义菜单项添加到现有的“父”菜单项(例如,如果我要在“系统”下方添加我的 Arduino 选项),是否存在相同的缓存问题?

感谢您的时间和这个伟大的资源!

编辑:

  • 登录/退出似乎可以“修复”我现有的问题并正确更新菜单。我当然不想强迫用户注销,但也许某处可能有解决方案?
0 投票
2 回答
2725 浏览

magento - Magento 不会在“保存”时节省价值

我有一个自定义模块,可以将字段添加到

我已将该bar字段添加到cms_page表中并呈现该字段,但是当我保存 cms 页面时,该字段未保存到数据库中。

谁能告诉我我在这里俯瞰什么?