پنج شنبه, ۰۲ خرداد ۱۳۹۸ ۰۴:۳۸:۲۴

قرار دادن تاریخ و ساعت در هدر سایت , سمت کاربر

یک سال قبل
#1063 نقل و قول
سلام دوستان عزیز
قصد داشتم که تاریخ و زمان را ه با فرمتی مشابه پایین صفحه ادمین در قسمت کاربر عادی در هدر سایت هم بیاورم ...




به این صورت :     شنبه 18 فروردین 1397 08:47 بعد از ظهر
برای همین از view ادمین با ادرس زیر استفاده کردم
Administration\Views\Shared\_AdminLayout.cshtml
که کدش هم به اینصورت است :

<div class="text-center">
                    @{
                        var dateTimeHelper = EngineContext.Current.Resolve<Nop.Services.Helpers.IDateTimeHelper>();
                        var workContext = EngineContext.Current.Resolve<IWorkContext>();
                        var currentCulture = new CultureInfo(workContext.WorkingLanguage.LanguageCulture);
                    }
                    @dateTimeHelper.ConvertToUserTime(DateTime.Now).ToString("f", currentCulture)
             <div/>

اما جواب نداد.

لطفا راهنمایی نمایید که چطور این کار را انجام دهم.


1
یک سال قبل
#1064 نقل و قول
سلام.
لطفا بفرمایید شما کد رو دقیقادر کجای بخش کاربری قرار دادین؟
1
یک سال قبل
#1068 نقل و قول
سلام.
اگر از تم پاویلیون استفاده میکنید در داخل فولدر Shared یه فایل با نام _Header.cshtml هست که در داخل اون بصورت زیر میتونید تغییرات خودتون رو اعمال کنید.

<div class="header">
    <h1>@DateTime.Now</h1>
    
@await Component.InvokeAsync("Widget", new { widgetZone = "header" })

    <div class="header-upper">
        <div class="center">
            @await Component.InvokeAsync("AdminHeaderLinks")
...
...
....



اما اگر منظورتون تم پیش فرض هست:
در تم پیش فرض در داخل فولدر Shared درون فایل Head.cshtml میتونید این کار رو بصورت زیر انجام دهید.:

@using Nop.Core
@using Nop.Services.Helpers
@using Nop.Web.Framework.UI
@inject IWorkContext workContext
@inject IThemeContext themeContext
@inject IUserAgentHelper userAgentHelper
@{
    var supportRtl = workContext.WorkingLanguage.Rtl;
    var themeName = themeContext.WorkingThemeName;
    var isIe8 = userAgentHelper.IsIe8();

    //add browser specific CSS files
    if (isIe8)
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/ie8.css");
    }
    //add main CSS file
    if (supportRtl)
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/styles.rtl.css");
    }
    else
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/styles.css");
    }
    //add jQuery UI css file
    Html.AppendCssFileParts("~/lib/jquery-ui-themes/smoothness/jquery-ui-1.10.3.custom.min.css");
    //add browser specific JS files
    if (isIe8)
    {
        Html.AddScriptParts(ResourceLocation.Footer, "~/lib/selectivizr.min.js");
        Html.AddScriptParts(ResourceLocation.Footer, "~/lib/respond.min.js");
    }
}
<h1>@DateTime.Now</h1>

1
یک سال قبل
#1069 نقل و قول
اما اگر دقیقا نحوه کدنویسی برای تاریخ در بخش ادمین مدنظر هست کد باید بصورت زیر باشد:

@using System.Globalization
@using Nop.Core
@using Nop.Core.Infrastructure
@using Nop.Services.Helpers
@using Nop.Web.Framework.UI
@inject IWorkContext workContext
@inject IThemeContext themeContext
@inject IUserAgentHelper userAgentHelper
@inject IWorkContext WorkContext
@{
    var supportRtl = WorkContext.WorkingLanguage.Rtl;
    var themeName = themeContext.WorkingThemeName;
    var isIe8 = userAgentHelper.IsIe8();

    //add browser specific CSS files
    if (isIe8)
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/ie8.css");
    }
    //add main CSS file
    if (supportRtl)
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/styles.rtl.css");
    }
    else
    {
        Html.AppendCssFileParts($"~/Themes/{themeName}/Content/css/styles.css");
    }
    //add jQuery UI css file
    Html.AppendCssFileParts("~/lib/jquery-ui-themes/smoothness/jquery-ui-1.10.3.custom.min.css");
    //add browser specific JS files
    if (isIe8)
    {
        Html.AddScriptParts(ResourceLocation.Footer, "~/lib/selectivizr.min.js");
        Html.AddScriptParts(ResourceLocation.Footer, "~/lib/respond.min.js");
    }
}
<div class="text-center">
    @{
        var dateTimeHelper = EngineContext.Current.Resolve<Nop.Services.Helpers.IDateTimeHelper>();
        var currentCulture = new CultureInfo(WorkContext.WorkingLanguage.LanguageCulture);
    }
    @dateTimeHelper.ConvertToUserTime(DateTime.Now).ToString("f", currentCulture)
    <div />



اگر هم خواستید در راستای سکشن لینک مدیریت آن را قرا دهید ،بدیهی است که شما باید تغییرات خود را در ویوی AdminHeaderLinks انجام دهید.مسیر این ویو بصورت زیر هست:
Views/Shared/Components/AdminHeaderLinks/Default.cshtml
شما میتونید حتی این بخش رو در تم خود آوراید(Override) کنید.(کافس است در تم مربوطه در پوشه Views و سپس پوشه Shared یک پوشه Components که در صورتی که وجود ندارد ایجاد نموده و فولدر AdminHeaderLinks اصلی را در آن کپی نمایید.سپس در ایین محل تغییرات لازم انجام دهید.)
2
یک سال قبل
#1090 نقل و قول
سلام آقا حمید
ابتدا عذرخواهی بابت تاخیر در پیگیری سوالم
و بعد تشکر از پاسخ های شما دوست عزیز
و بعد پاسخ سوال قسمت 1064 که شما پرسیدید ...

من کدی که در بالا گفته بودم را در فایل header.cshtml  در پوشه shared  در تم پاویلیون گذاشته بودم.
داخل این قسمتش
<div class="header-upper">
        <div class="center">
0
یک سال قبل
#1091 نقل و قول
حمید جان ...
لطفا با توجه به پاسخ بنده , الان یک راه حل بدید.
یک راه حل باشه لطفا ... من الان واقعا نمیدونم کدوم یک از راه حل های شما را به کار ببرم.
لطفا راه حلتون کامل باشه و نکته دیگر اینکه استایل هم به هم نریزه

با تشکر و درود فراوان
0
یک سال قبل
#1092 نقل و قول
سلام دوست عزیز.
بنده موارد اهم کار رو عرض کردم و مابقی برمی گرده به سلیقه شما که از چه استایلی و چه Layoutی استفاده کنید.موقعیت های موردنظر رو هم نشون دادم.این دیگه سلیقه ای هست که کجا چطور نشان دهید.
بطور مثال شما میتوانید یک Div در بالاترین قسمت ممکن صفحه نخست (در پست قبل این مورد رو توضیح دادم)با بک گراند مشکلی و رنگ متن سفید ایجاد کرده و اون رو از طریق bootstrap و با استفاده از col-md- مثلا به سه قسمت تقسیم کنید و در سمت راست تاریخ رو با فرمت مدنظر که قبلا عرض کردم نمایش دهید.
همچنین یک نمونه پلاگین رایگان در سایت ناپ شاپ هست با نام HeaderContactDetails که میتوانید برای شروع از اون ایده بگیرید:
نمایش اطلاعات

موفق باشید.
2