fix: 替换 ThinkTemplate 标签为 PHP ModuleInclude
路线 B:票务模板不依赖 ThinkTemplate 解析引擎
- {include file=...} → <?php echo ModuleInclude(...) ?>
- {:Config()} / {:IsMobileLogin()} → <?php echo Config() ?> / <?php echo IsMobileLogin() ?>
- {$var|default=...} → <?php echo $var ?? 'default' ?>
- {$var|json_encode|raw} → <?php echo json_encode($var ?? []) ?>
绕过 ThinkTemplate parseTemplateFile() 路径拼接 bug(Linux view_depr=/ 导致 include 路径解析错误)
council/ProductManager
parent
bf71aa1098
commit
349ec063c1
|
|
@ -1,4 +1,4 @@
|
||||||
{include file="public/head" /}
|
<?php echo ModuleInclude('public/header'); ?>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* VR票务 - 票务商品详情页 */
|
/* VR票务 - 票务商品详情页 */
|
||||||
|
|
@ -121,8 +121,8 @@
|
||||||
<div class="vr-ticket-page" id="vrTicketApp">
|
<div class="vr-ticket-page" id="vrTicketApp">
|
||||||
<!-- 商品头部 -->
|
<!-- 商品头部 -->
|
||||||
<div class="vr-ticket-header">
|
<div class="vr-ticket-header">
|
||||||
<div class="vr-event-title">{$goods.title|default='VR演唱会'}</div>
|
<div class="vr-event-title"><?php echo htmlspecialchars($goods['title'] ?? 'VR演唱会', ENT_QUOTES, 'UTF-8'); ?></div>
|
||||||
<div class="vr-event-subtitle">{$goods.simple_desc|default=''}</div>
|
<div class="vr-event-subtitle"><?php echo htmlspecialchars($goods['simple_desc'] ?? '', ENT_QUOTES, 'UTF-8'); ?></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 场次选择 -->
|
<!-- 场次选择 -->
|
||||||
|
|
@ -158,12 +158,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 商品详情(保留) -->
|
<!-- 商品详情(保留) -->
|
||||||
{if !empty($goods.content)}
|
<?php if (!empty($goods['content'])): ?>
|
||||||
<div class="vr-seat-section">
|
<div class="vr-seat-section">
|
||||||
<div class="vr-section-title">演出详情</div>
|
<div class="vr-section-title">演出详情</div>
|
||||||
<div class="goods-detail-content">{$goods.content}</div>
|
<div class="goods-detail-content"><?php echo $goods['content']; ?></div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
<?php endif; ?>
|
||||||
|
|
||||||
<!-- 购买栏 -->
|
<!-- 购买栏 -->
|
||||||
<div class="vr-purchase-bar">
|
<div class="vr-purchase-bar">
|
||||||
|
|
@ -177,20 +177,20 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{include file="public/footer" /}
|
<?php echo ModuleInclude('public/footer'); ?>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
(function() {
|
(function() {
|
||||||
var app = {
|
var app = {
|
||||||
goodsId: {$goods.id|default=0},
|
goodsId: <?php echo intval($goods['id'] ?? 0); ?>,
|
||||||
seatMap: {json_decode($vr_seat_template.seat_map|default='{}', true)|raw},
|
seatMap: <?php echo json_encode($vr_seat_template['seat_map'] ?? []); ?>,
|
||||||
specBaseIdMap: {json_decode($vr_seat_template.spec_base_id_map|default='{}', true)|raw},
|
specBaseIdMap: <?php echo json_encode($vr_seat_template['spec_base_id_map'] ?? []); ?>,
|
||||||
selectedSeats: [], // [{row, col, char, price, label, classes}]
|
selectedSeats: [], // [{row, col, char, price, label, classes}]
|
||||||
soldSeats: {}, // {row_col: true}
|
soldSeats: {}, // {row_col: true}
|
||||||
currentSession: null,
|
currentSession: null,
|
||||||
sessionSpecId: null,
|
sessionSpecId: null,
|
||||||
requestUrl: '{:Config("shopxo.host_url")}',
|
requestUrl: '<?php echo Config("shopxo.host_url"); ?>',
|
||||||
userId: {:IsMobileLogin()},
|
userId: <?php echo IsMobileLogin(); ?>,
|
||||||
|
|
||||||
init: function() {
|
init: function() {
|
||||||
this.renderSessions();
|
this.renderSessions();
|
||||||
|
|
@ -200,7 +200,7 @@
|
||||||
|
|
||||||
// 渲染场次列表(基于 ShopXO spec 数据)
|
// 渲染场次列表(基于 ShopXO spec 数据)
|
||||||
renderSessions: function() {
|
renderSessions: function() {
|
||||||
var specData = {$goods_spec_data|json_encode|raw} || [];
|
var specData = <?php echo json_encode($goods_spec_data ?? []); ?> || [];
|
||||||
var html = '';
|
var html = '';
|
||||||
if (specData.length > 0) {
|
if (specData.length > 0) {
|
||||||
specData.forEach(function(spec) {
|
specData.forEach(function(spec) {
|
||||||
|
|
@ -448,4 +448,4 @@
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{include file="public/footer_page" /}
|
<?php echo ModuleInclude('public/footer_page'); ?>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue