TYPO3:powermail 从带有打字稿的自己的扩展中选择数据
Posted
技术标签:
【中文标题】TYPO3:powermail 从带有打字稿的自己的扩展中选择数据【英文标题】:TYPO3: powermail select data from own extension with typoscript 【发布时间】:2016-07-12 01:45:47 【问题描述】:这是我在 Stack Overflow 上的第一篇文章。我在互联网上搜索了大约 2 天来解决我的问题。希望你能帮助我。
我正在使用 Typo3 7.6.2 并使用 Extension Builder 7.6 和 Powermail 2.24.0
创建了一个扩展所以我想生成一个选择框来获取那所学校的联系人的电子邮件地址,该地址是用数据库关系定义的。
如果我尝试通过从我的或其他扩展表 (tx_wtschools_domain_model_schools) 中的打字稿中选择来获取数据,我不会得到答案。
但如果我使用 fe_user 或 fe_group 我会得到预期的答案。
所有记录都存储在 id 22
的页面上我使用了这个 sn-p http://www.typo3.net/forum/thematik/zeige/thema/112554/ 尤其是 2014 年 9 月 19 日 12:42 的帖子(向下滚动)
从 WT-Schools 生成接收者列表
lib.receiver = COA
lib.receiver
10 = TEXT
10.value = Bitte wählen|[\n]
20 = CONTENT
20
table = tx_wtschools_domain_model_schools
select.pidInList = 22
#select.recursive = 100000
renderObj = COA
renderObj
10 = TEXT
10.field = name
10.wrap = |[\n]
30 = TEXT
30.value = Ende
所以我还没去过第二部分,我会得到联系人的邮件吗?
感谢您的帮助,如果您需要更多信息,我会在这里发布!
问候一月
这是学校表的 SQL 转储:
-- phpMyAdmin SQL Dump
-- version 4.5.5
-- http://www.phpmyadmin.net
--
-- Host: localhost:3306
-- Erstellungszeit: 07. Apr 2016 um 09:06
-- Server-Version: 5.5.47-0+deb7u1
-- PHP-Version: 5.6.14
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `wt-kampfkunstschule`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `tx_wtschools_domain_model_schools`
--
CREATE TABLE `tx_wtschools_domain_model_schools` (
`uid` int(11) NOT NULL,
`pid` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL DEFAULT '',
`address` varchar(255) NOT NULL DEFAULT '',
`address_info` varchar(255) NOT NULL DEFAULT '',
`postcode` varchar(255) NOT NULL DEFAULT '',
`city` varchar(255) NOT NULL DEFAULT '',
`city_label` varchar(255) NOT NULL DEFAULT '',
`latitude` varchar(255) NOT NULL DEFAULT '',
`longitude` varchar(255) NOT NULL DEFAULT '',
`info` varchar(255) NOT NULL DEFAULT '',
`active` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
`gallery` int(11) UNSIGNED NOT NULL DEFAULT '0',
`profile_image` int(11) UNSIGNED NOT NULL DEFAULT '0',
`activate_alt_training` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
`owner` int(11) UNSIGNED NOT NULL DEFAULT '0',
`contact` int(11) UNSIGNED DEFAULT '0',
`trainer` int(11) UNSIGNED NOT NULL DEFAULT '0',
`categories` int(11) UNSIGNED NOT NULL DEFAULT '0',
`training_time` int(11) UNSIGNED NOT NULL DEFAULT '0',
`training_time_alt` int(11) UNSIGNED NOT NULL DEFAULT '0',
`tstamp` int(11) UNSIGNED NOT NULL DEFAULT '0',
`crdate` int(11) UNSIGNED NOT NULL DEFAULT '0',
`cruser_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
`deleted` tinyint(4) UNSIGNED NOT NULL DEFAULT '0',
`hidden` tinyint(4) UNSIGNED NOT NULL DEFAULT '0',
`t3ver_oid` int(11) NOT NULL DEFAULT '0',
`t3ver_id` int(11) NOT NULL DEFAULT '0',
`t3ver_wsid` int(11) NOT NULL DEFAULT '0',
`t3ver_label` varchar(255) NOT NULL DEFAULT '',
`t3ver_state` tinyint(4) NOT NULL DEFAULT '0',
`t3ver_stage` int(11) NOT NULL DEFAULT '0',
`t3ver_count` int(11) NOT NULL DEFAULT '0',
`t3ver_tstamp` int(11) NOT NULL DEFAULT '0',
`t3ver_move_id` int(11) NOT NULL DEFAULT '0',
`sys_language_uid` int(11) NOT NULL DEFAULT '0',
`l10n_parent` int(11) NOT NULL DEFAULT '0',
`l10n_diffsource` mediumblob
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Daten für Tabelle `tx_wtschools_domain_model_schools`
--
INSERT INTO `tx_wtschools_domain_model_schools` (`uid`, `pid`, `name`, `address`, `address_info`, `postcode`, `city`, `city_label`, `latitude`, `longitude`, `info`, `active`, `gallery`, `profile_image`, `activate_alt_training`, `owner`, `contact`, `trainer`, `categories`, `training_time`, `training_time_alt`, `tstamp`, `crdate`, `cruser_id`, `deleted`, `hidden`, `t3ver_oid`, `t3ver_id`, `t3ver_wsid`, `t3ver_label`, `t3ver_state`, `t3ver_stage`, `t3ver_count`, `t3ver_tstamp`, `t3ver_move_id`, `sys_language_uid`, `l10n_parent`, `l10n_diffsource`) VALUES
(1, 22, 'WT-Zentrum Radevormwald', 'Kaiserstraße 69', 'direkt am Markt', '42477', 'Radevormwald', '', '51.203107', '7.356229', 'Ihre Selbstverteidigungschule in Radevormwald', 1, 4, 1, 0, 1, 7, 31, 3, 8, 0, 1458657850, 1458208785, 1, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, -1, 0, 0x613a32313a7b733a31363a227379735f6c616e67756167655f756964223b4e3b733a363a2268696464656e223b4e3b733a343a226e616d65223b4e3b733a373a2261646472657373223b4e3b733a31323a22616464726573735f696e666f223b4e3b733a383a22706f7374636f6465223b4e3b733a343a2263697479223b4e3b733a31303a22636974795f6c6162656c223b4e3b733a383a226c61746974756465223b4e3b733a393a226c6f6e676974756465223b4e3b733a343a22696e666f223b4e3b733a363a22616374697665223b4e3b733a373a2267616c6c657279223b4e3b733a31333a2270726f66696c655f696d616765223b4e3b733a32313a2261637469766174655f616c745f747261696e696e67223b4e3b733a353a226f776e6572223b4e3b733a373a22636f6e74616374223b4e3b733a373a22747261696e6572223b4e3b733a31303a2263617465676f72696573223b4e3b733a31333a22747261696e696e675f74696d65223b4e3b733a31373a22747261696e696e675f74696d655f616c74223b4e3b7d),
(2, 22, 'WingTsun-Schule Remscheid-Lennep', 'Robert-Schumacher-Str. 6', 'Im Sportstudio Fit & Fun (über Rewe)', '42897', 'Remscheid', 'Remscheid-Lennep', '51.189055', '7.253708', 'Jeden Montag nach dem WingTsun: Selbstverteidigung mit und gegen Waffen. Fuer alle Teilnehmer des Erwachsenen WingTsun kostenlos!', 1, 3, 1, 0, 2, 6, 1, 3, 3, 3, 1458655705, 1458218192, 1, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, -1, 0, 0x613a32313a7b733a31363a227379735f6c616e67756167655f756964223b4e3b733a363a2268696464656e223b4e3b733a343a226e616d65223b4e3b733a373a2261646472657373223b4e3b733a31323a22616464726573735f696e666f223b4e3b733a383a22706f7374636f6465223b4e3b733a343a2263697479223b4e3b733a31303a22636974795f6c6162656c223b4e3b733a383a226c61746974756465223b4e3b733a393a226c6f6e676974756465223b4e3b733a343a22696e666f223b4e3b733a363a22616374697665223b4e3b733a373a2267616c6c657279223b4e3b733a31333a2270726f66696c655f696d616765223b4e3b733a32313a2261637469766174655f616c745f747261696e696e67223b4e3b733a353a226f776e6572223b4e3b733a373a22636f6e74616374223b4e3b733a373a22747261696e6572223b4e3b733a31303a2263617465676f72696573223b4e3b733a31333a22747261696e696e675f74696d65223b4e3b733a31373a22747261696e696e675f74696d655f616c74223b4e3b7d);
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `tx_wtschools_domain_model_schools`
--
ALTER TABLE `tx_wtschools_domain_model_schools`
ADD PRIMARY KEY (`uid`),
ADD KEY `parent` (`pid`),
ADD KEY `t3ver_oid` (`t3ver_oid`,`t3ver_wsid`),
ADD KEY `language` (`l10n_parent`,`sys_language_uid`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `tx_wtschools_domain_model_schools`
--
ALTER TABLE `tx_wtschools_domain_model_schools`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
【问题讨论】:
在模板中直接输出这个库会发生什么?有结果吗? 不只是 10 和 30 上的两个自设置值。 能否请您提供表格/表格的转储?您是否使用扩展生成器来创建这些表?字段“名称”是否存在?如果你写 10.field = uid(而不是名字)会发生什么? 是的,我已经使用扩展生成器来创建表格。我将表格转储添加到问题中。是的,它确实存在,我也用字段地址尝试过。 【参考方案1】:您的 Powermail 版本的手册 https://docs.typo3.org/typo3cms/extensions/powermail/2.24.0/ForAdministrators/GoodToKnow/PrefillField/Index.html 显示了如何创建选择列表。示例 3 显示了如何从表中读取数据。在您的情况下,您可以使用名称和 uid(该字段将显示名称并存储 uid 的值)。
要设置接收器,手册也有示例https://docs.typo3.org/typo3cms/extensions/powermail/2.24.0/ForAdministrators/GoodToKnow/DynamicReceiver/Index.html。在您的用例中,我将使用 CONTENT 查询而不是示例中的 CASE 并查找所选 uid 的电子邮件地址。
确保在 CONTENT 对象中使用markers
来注入选定的 uid 以防止 SQL 注入!
【讨论】:
以上是关于TYPO3:powermail 从带有打字稿的自己的扩展中选择数据的主要内容,如果未能解决你的问题,请参考以下文章