·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

求助将一段dz的htm页面中的代码转换成php和js语句

214 2
发表于 2023-6-11 13:56:17 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. {eval $member = getuserbyuid($floor[uid], 1);}<!--{if $floor['uid']}--><a class="tshuz_at" href='home.php?mod=space&uid={$floor['uid']}' target="_blank">{$floor['username']}</a><img class="authicn vm" id="authicon$floor[uid]" src="$_G['cache']['groupicon'][$member['groupid']]" title="$_G['cache']['usergroups'][$member['groupid']]['grouptitle']" style="display: revert;"><!--{if $floor[username] ==$_G[forum_thread][author]}-->        <img class="authicn vm" id="authicon$floor[uid]" src="{IMGDIR}/ico_lz.png" style="display: revert;"><!--{elseif $floor[uid] ==1}--><img class="authicn vm" id="authicon$floor[uid]" src="{IMGDIR}/ico_gly.png" style="display: revert;"><!--{elseif $floor[uid] ==2}--><img class="authicn vm" id="authicon$floor[uid]" src="{IMGDIR}/ico_cjbz.png" style="display: revert;"><!--{elseif $floor[uid] ==3}--><img class="authicn vm" id="authicon$floor[uid]" src="{IMGDIR}/ico_bz.png" style="display: revert;"></a><!--{/if}--><!--{else}-->{lang guest}<!--{/if}-->
复制代码
代码说明:这段代码是自己写的,放在htm页面运行正常,是在贴内楼层用户名旁显示用户组图标用的,效果如下:

求助将一段dz的htm页面中的代码转换成php和js语句 求助,将一,htm,页面,代码

楼层回复超过2条会自动折叠,打开折叠(点击查看)后的用户名处不出现用户组图标
求助将一段dz的htm页面中的代码转换成php和js语句 求助,将一,htm,页面,代码

发现点开折叠后它调用的是一个php页面,我不懂php。。求助大佬帮我将这段htm代码转换成php语句,或者教下怎么才能让php能调用这段htm代码,还有一个js文件也是类似需求
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 13:58:14 | 查看全部
要将你在Discuz!模板中的HTML代码转换为PHP和JavaScript代码,首先需要理解你当前的需求和代码的功能。你希望在帖子楼层中显示用户组图标,并且在楼层回复超过2条时自动折叠,点击展开后仍然显示用户组图标。

### 1. 将HTML代码转换为PHP代码

你当前的HTML代码片段如下:

  1. {eval $member = getuserbyuid($floor, 1);}{$floor} {lang guest}
复制代码


这段代码的作用是通过`getuserbyuid`函数获取用户信息,并显示楼层号和“guest”字样。

要将这段代码转换为PHP代码,可以直接在PHP文件中使用类似的逻辑:

  1. <?php
  2. $member = getuserbyuid($floor, 1);
  3. echo $floor . ' ' . lang('guest');
  4. ?>
复制代码


### 2. 在PHP中调用HTML代码

如果你希望在PHP中调用HTML代码,可以将HTML代码嵌入到PHP的`echo`语句中:

  1. <?php
  2. $member = getuserbyuid($floor, 1);
  3. echo '<div>' . $floor . ' ' . lang('guest') . '</div>';
  4. ?>
复制代码


### 3. 处理折叠后的用户组图标显示问题

你提到在折叠后的楼层中,用户组图标不显示。这可能是因为折叠后的内容是通过AJAX加载的,而你的用户组图标逻辑没有在AJAX加载的内容中执行。

你需要在JavaScript中处理AJAX加载的内容,确保在加载后执行显示用户组图标的逻辑。

假设你有一个JavaScript函数`loadFoldedContent`用于加载折叠内容,你可以在加载完成后调用一个函数来显示用户组图标:

  1. function loadFoldedContent(floor) {
  2.     // 假设通过AJAX加载折叠内容
  3.     $.ajax({
  4.         url: 'load_folded_content.php',
  5.         type: 'POST',
  6.         data: { floor: floor },
  7.         success: function(response) {
  8.             // 将加载的内容插入到页面中
  9.             $('#folded-content-' + floor).html(response);
  10.             
  11.             // 调用显示用户组图标的函数
  12.             showUserGroupIcon(floor);
  13.         }
  14.     });
  15. }

  16. function showUserGroupIcon(floor) {
  17.     // 假设你有一个PHP文件返回用户组图标的HTML
  18.     $.ajax({
  19.         url: 'get_user_group_icon.php',
  20.         type: 'POST',
  21.         data: { floor: floor },
  22.         success: function(iconHtml) {
  23.             // 将用户组图标插入到对应的楼层中
  24.             $('#user-group-icon-' + floor).html(iconHtml);
  25.         }
  26.     });
  27. }
复制代码


### 4. 在PHP文件中生成用户组图标

在`get_user_group_icon.php`文件中,你可以使用类似以下的代码来生成用户组图标的HTML:

  1. <?php
  2. $floor = $_POST['floor'];
  3. $member = getuserbyuid($floor, 1);

  4. // 假设你有一个函数getUserGroupIcon来获取用户组图标的HTML
  5. $iconHtml = getUserGroupIcon($member['groupid']);

  6. echo $iconHtml;
  7. ?>
复制代码


### 5. 在模板中嵌入JavaScript

最后,确保在你的模板中嵌入了上述JavaScript代码,并且在折叠内容加载时调用`loadFoldedContent`函数。

  1. <script>
  2. $(document).ready(function() {
  3.     // 假设你有一个按钮用于加载折叠内容
  4.     $('.load-folded-content').click(function() {
  5.         var floor = $(this).data('floor');
  6.         loadFoldedContent(floor);
  7.     });
  8. });
  9. </script>
复制代码


### 总结

通过以上步骤,你可以将HTML代码转换为PHP代码,并在JavaScript中处理折叠内容的加载和用户组图标的显示。确保在AJAX加载内容后调用相应的函数来显示用户组图标。

如果你有更多具体的问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 17:05:05 | 查看全部
要将你的这段Discuz模板代码(`htm`文件中的代码)转换成PHP和JavaScript语句,以便在点击折叠后也能正常显示用户组图标,你可以按照以下步骤进行操作。

### 1. 将HTML代码转换为PHP代码
你提到的代码片段是Discuz模板中的代码,它使用了Discuz的模板语法。为了在PHP中实现相同的功能,你可以直接在PHP文件中编写逻辑。

  1. <?php
  2. // 获取用户信息
  3. $member = getuserbyuid($floor, 1);

  4. // 判断用户是否为游客
  5. if ($member) {
  6.     echo $floor . ' ' . $member['username']; // 显示楼层和用户名
  7. } else {
  8.     echo $floor . ' ' . lang('guest'); // 显示楼层和“游客”
  9. }
  10. ?>
复制代码


### 2. 在JavaScript中动态加载用户组图标
为了在点击折叠后也能显示用户组图标,你可以通过JavaScript动态加载用户信息。假设你有一个PHP接口可以返回用户信息,你可以通过AJAX请求来获取数据并更新页面。

#### PHP接口(`get_user_info.php`)
  1. <?php
  2. // get_user_info.php
  3. $uid = $_GET['uid']; // 获取用户ID
  4. $member = getuserbyuid($uid, 1);

  5. if ($member) {
  6.     echo json_encode([
  7.         'username' => $member['username'],
  8.         'group_icon' => $member['group_icon'] // 假设用户组图标存储在group_icon字段中
  9.     ]);
  10. } else {
  11.     echo json_encode([
  12.         'username' => lang('guest'),
  13.         'group_icon' => 'guest_icon.png' // 游客图标
  14.     ]);
  15. }
  16. ?>
复制代码


#### JavaScript代码
  1. function loadUserInfo(uid, element) {
  2.     fetch(`get_user_info.php?uid=${uid}`)
  3.         .then(response => response.json())
  4.         .then(data => {
  5.             element.innerHTML = `${uid} <img src="${data.group_icon}" alt="${data.username}" /> ${data.username}`;
  6.         })
  7.         .catch(error => console.error('Error:', error));
  8. }

  9. // 假设你有一个按钮或链接来展开折叠内容
  10. document.querySelectorAll('.expand-button').forEach(button => {
  11.     button.addEventListener('click', function() {
  12.         const uid = this.getAttribute('data-uid');
  13.         const userElement = this.closest('.user-info');
  14.         loadUserInfo(uid, userElement);
  15.     });
  16. });
复制代码


### 3. 在HTML中嵌入PHP和JavaScript
你可以在HTML中嵌入PHP代码来生成初始的用户信息,并使用JavaScript来处理折叠后的动态加载。

  1. <div class="user-info">
  2.     <?php
  3.     $member = getuserbyuid($floor, 1);
  4.     if ($member) {
  5.         echo $floor . ' <img src="' . $member['group_icon'] . '" alt="' . $member['username'] . '" /> ' . $member['username'];
  6.     } else {
  7.         echo $floor . ' <img src="guest_icon.png" alt="' . lang('guest') . '" /> ' . lang('guest');
  8.     }
  9.     ?>
  10. </div>

  11. <button class="expand-button" data-uid="<?php echo $floor; ?>">展开</button>
复制代码


### 4. 总结
- **PHP部分**:用于在页面加载时生成初始的用户信息。
- **JavaScript部分**:用于在用户点击展开按钮时,动态加载用户信息并更新页面。

通过这种方式,你可以在点击折叠后也能正常显示用户组图标。如果你有更多复杂的需求,可以根据这个基础进行扩展。

如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.15.203.168,GMT+8, 2025-4-7 18:16 , Processed in 0.394078 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表