src/SSCMS.Core/StlParser/StlElement/StlDynamic.Utils.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Text;
using System.Threading.Tasks;
using SSCMS.Models;
using SSCMS.Parse;
using SSCMS.Services;
using SSCMS.Utils;
namespace SSCMS.Core.StlParser.StlElement
{
public static partial class StlDynamic
{
public static Dynamic GetDynamicInfo(ISettingsManager settingsManager, string value, int page, User user, string pathAndQuery)
{
var dynamicInfo = TranslateUtils.JsonDeserialize<Dynamic>(settingsManager.Decrypt(value));
if (dynamicInfo.ChannelId == 0)
{
dynamicInfo.ChannelId = dynamicInfo.SiteId;
}
dynamicInfo.User = user;
dynamicInfo.QueryString = PageUtils.GetQueryStringFilterSqlAndXss(pathAndQuery);
dynamicInfo.QueryString.Remove("siteId");
dynamicInfo.Page = page;
return dynamicInfo;
}
public static async Task<string> GetScriptAsync(IParseManager parseManager, string dynamicApiUrl, Dynamic dynamicInfo)
{
if (string.IsNullOrEmpty(dynamicInfo.LoadingTemplate) &&
string.IsNullOrEmpty(dynamicInfo.YesTemplate) &&
string.IsNullOrEmpty(dynamicInfo.NoTemplate))
{
return string.Empty;
}
//运行解析以便为页面生成所需JS引用
await parseManager.ParseInnerContentAsync(new StringBuilder(dynamicInfo.LoadingTemplate + dynamicInfo.YesTemplate + dynamicInfo.NoTemplate));
var values = parseManager.SettingsManager.Encrypt(TranslateUtils.JsonSerialize(dynamicInfo));
var display = dynamicInfo.IsInline ? "inline-block" : "block";
var elementId = dynamicInfo.ElementId;
return $@"
<span id=""{elementId}_loading"">{dynamicInfo.LoadingTemplate}</span>
<span id=""{elementId}_success"" style=""display: none""></span>
<span id=""{elementId}_failure"" style=""display: none""></span>
<script type=""text/javascript"" language=""javascript"">
function stlDynamic{elementId}(page)
{{
document.getElementById('{elementId}_loading').style.display = '{display}';
document.getElementById('{elementId}_success').style.display = 'none';
document.getElementById('{elementId}_failure').style.display = 'none';
{dynamicInfo.OnBeforeSend}
stlClient.post('{dynamicApiUrl}?' + StlClient.getQueryString(), {{
value: '{values}',
page: page
}}, function (err, data, status) {{
if (!err) {{
if (data.value) {{
后面还有 61 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
