PDA

View Full Version : سوال: منو سایت دیجی کالا



soha_smb
سه شنبه 27 خرداد 1393, 11:46 صبح
کسی میدونه این سایت بالایی یاست ددی جی کالا رو که با asp.net طراحی شده چطوری و با چی داینامیکش کرد؟(البته به این منو ها می گن mega-menu ولی داینامیک کردنش چطوریه؟)

aroshanzamir
سه شنبه 27 خرداد 1393, 12:20 عصر
شما منو های دیگه را چطور دینامیک می کنی

این هم همینطور ....

soha_smb
سه شنبه 27 خرداد 1393, 13:44 عصر
من وقتی می خوام منو رو داینامیک کنم میام و تو کد هام یه همچین چیزی رو درست می کنم.
<div class="navigation" dir="rtl"><ul id="Menu" class="Menu"><li><a href="Default.aspx?tabid=1">
صفحه اصلی
</a>
</li>
</ul>

</div>


این یعنی میاد و همه منو ها و زیر منو ها رو بصورت یکسان درست میکنه
ولی شما این عکس رو ببینید
120261
این اومده و توی 3تا ستون قرار داده !!!خوب چطوری توی کدش بیام وبهش بگیم بیاد اینو چند ستونه کنه(1 ستون،2ستون ،3ستون و....)؟؟؟؟؟؟؟؟؟؟؟؟
یا شایدم ساختار دیتابیسش فرق میکنه؟
لطفا اگه کسی میدونه راهنمایی کنه.

Mohammadm
سه شنبه 27 خرداد 1393, 19:45 عصر
یکی از این maga menuها رو دانلود کن و فایلهای css و html هایی که این منو رو تشکیل میدن رو بررسی کن و اونو توی برنامت کپی کن
برای اینکه داینامیک بشه البته از نظر من که قطعا جواب میده استفاده از کنترل literal هست
یعنی ابتدا داده ها رو از دیتابیس بخون و سپس کدهای html و داده های دریافت شده از دیتابیس(منوها و زیر منوها) رو در کنترل literal بنویس البته هرکدوم باید جای خودش نوشته بشه(توی رویداد load)

moslem.hady
چهارشنبه 28 خرداد 1393, 07:40 صبح
کی گفته منوهاش داینامیکه؟
اصلا داینامیک بودنش منطقی نیست. نیازی به داینامیک بودن نیست. شما تغییری توی این منوها میبینی؟ یه سری لینک ثابته دیگه!!

اگر هم میخواید 3 ستون داینامیک باشه باید 3 تا بایند کنید. هر ستون یه کوئری میشه.

soha_smb
چهارشنبه 28 خرداد 1393, 08:17 صبح
یکی از این maga menuها رو دانلود کن و فایلهای css و html هایی که این منو رو تشکیل میدن رو بررسی کن و اونو توی برنامت کپی کن
برای اینکه داینامیک بشه البته از نظر من که قطعا جواب میده استفاده از کنترل literal هست
یعنی ابتدا داده ها رو از دیتابیس بخون و سپس کدهای html و داده های دریافت شده از دیتابیس(منوها و زیر منوها) رو در کنترل literal بنویس البته هرکدوم باید جای خودش نوشته بشه(توی رویداد load)
منم دقیقا همین کار رو کردم ولی وقتی بررسی کردم ،دیدم چون چندستونیه به همین راحتی نمیشه اونارو داینامیک کرد.

soha_smb
چهارشنبه 28 خرداد 1393, 08:26 صبح
کی گفته منوهاش داینامیکه؟
اصلا داینامیک بودنش منطقی نیست. نیازی به داینامیک بودن نیست. شما تغییری توی این منوها میبینی؟ یه سری لینک ثابته دیگه!!

اگر هم میخواید 3 ستون داینامیک باشه باید 3 تا بایند کنید. هر ستون یه کوئری میشه.

می شه بیشتر توضیح بدی ؟یعنی چی هر ستون یک کوئری؟ (یه سمپل ی یا توضیح ی ممنون میشم).
در ضمن من سایت شما رو دیدم جالبه.
یه سئوالی برام پیش اومده ،بعضی از منوهاتون آدرسش به این شکله طراحی-سایت-تبلیغاتی-آگهی-و-نیازمندی/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C) میشه یکم توضیح بدی که اینو چطوری درست کردی؟

طراحی-سایت-تبلیغاتی-آگهی-و-نیازمندی/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
طراحی-و-فروش-سایت-همکاری-در-فروش-فایل/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
فروش-سامانه-پیام-کوتاه/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)

من خودم با ماژول کار میکنم،صفحاتی ماژول داره خوب اسم ماژول و اوناییم که متنی هستش یه ماژول متنی درست کردم با اون کار می کنم ولی ساختاری که شما دارین جالبه.
ممنون میشه در مورد ش توضیح بدی که چطوری کار کردی.

moslem.hady
چهارشنبه 28 خرداد 1393, 21:58 عصر
می شه بیشتر توضیح بدی ؟یعنی چی هر ستون یک کوئری؟ (یه سمپل ی یا توضیح ی ممنون میشم).
در ضمن من سایت شما رو دیدم جالبه.
یه سئوالی برام پیش اومده ،بعضی از منوهاتون آدرسش به این شکله طراحی-سایت-تبلیغاتی-آگهی-و-نیازمندی/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C) میشه یکم توضیح بدی که اینو چطوری درست کردی؟

طراحی-سایت-تبلیغاتی-آگهی-و-نیازمندی/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
طراحی-و-فروش-سایت-همکاری-در-فروش-فایل/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
فروش-سامانه-پیام-کوتاه/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)

من خودم با ماژول کار میکنم،صفحاتی ماژول داره خوب اسم ماژول و اوناییم که متنی هستش یه ماژول متنی درست کردم با اون کار می کنم ولی ساختاری که شما دارین جالبه.
ممنون میشه در مورد ش توضیح بدی که چطوری کار کردی.

از URL Routing استفاده کردم. که از ورژن دات نت فریمورک 4.0 به بعد در دسترسه(فکر کنم) یه جستجو کنید. کار سختی نیست.

aroshanzamir
چهارشنبه 28 خرداد 1393, 22:28 عصر
سلام دوست من :

حالا کاری نداریم دیجیکالا منو ها دینانمیک است یا نه ... ما فرض می کنیم که دینامیکه .. و منطق هم میگه یک چنیم سایت بزرگی باید منو های دینامیک داشته باشه ....

20 روز دیگه اگر بتونی صبر کنی یک نمونه مثل دیجی کالا دینامیک درست می کنم واست ... الان خیلی کار دارم
خواستی بهم بگو

موفق باشی

General-Xenon
پنج شنبه 29 خرداد 1393, 01:30 صبح
کسی میدونه این سایت بالایی یاست ددی جی کالا رو که با asp.net طراحی شده چطوری و با چی داینامیکش کرد؟(البته به این منو ها می گن mega-menu ولی داینامیک کردنش چطوریه؟)

سلام.ساده هست . این نوع منو رو شما باید بصورت اطلاعات درختی(Tree) طراحی کنی . من یک مثال ساده با XML زدم . البته کد جاوا که نشون بده (Mouse Hover و ...) ننوشتم.
البته چون نمایش بصورت همین سایت(digikala)‌رو مدنظرت بود در 3 سطح نوشتم . با کمی تغییر تو کد میتونی تو در تو طراحی کنی :چشمک:

یک فایل XML برای اتصال به دیتامون و
یک صفحه برای نوشتن کد نیاز داریم .

<?xml version="1.0" encoding="utf-8" ?>
<menu>
<h1>
<header>کامپیوتر</header>
<h2>
<header>سخت افزار</header>
<a text="Hard">http://www.barnamenevis.org/test1</a>
<a text="Mainboard">http://www.barnamenevis.org/test2</a>
</h2>
<h2>
<header>نرم افزار</header>
<a text="Network Monitoring">http://www.barnamenevis.org/test3</a>
<a text="Operation System">http://www.barnamenevis.org/test4</a>
<a text="Game Tools">http://www.barnamenevis.org/test5</a>
<a text="CD/DVD Tools">http://www.barnamenevis.org/test6</a>
</h2>
</h1>
<h1>
<header>موبایل</header>
<h2>
<header>Apple</header>
<a text="1">http://www.barnamenevis.org/test7</a>
<a text="2">http://www.barnamenevis.org/test8</a>
<a text="3">http://www.barnamenevis.org/test9</a>
<a text="4">http://www.barnamenevis.org/test10</a>
</h2>
<h2>
<header>Nokia</header>
<a text="Lumia 1020">http://www.barnamenevis.org/lumia1020</a>
<a text="Lumia 920">http://www.barnamenevis.org/lumia920</a>
<a text="Lumia 820">http://www.barnamenevis.org/lumia820</a>
</h2>
<h2>
<header>Sony</header>
<a text="Xperia X">http://www.barnamenevis.org/lumia1020</a>
<a text="Xperia SP">http://www.barnamenevis.org/lumia920</a>
</h2>
</h1>
</menu>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;

namespace Barnamenevis.DigiKalaMenu
{
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
XmlDataSource xd = new XmlDataSource();
xd.DataFile = "./menu.xml";
xd.DataBind();
XmlDocument x = xd.GetXmlDocument();

string _data = "<ul class=\"main\">";

foreach (XmlNode i in x.SelectNodes("menu/h1"))
{
_data += "\n<li>" + i.SelectNodes("header")[0].InnerText + "\n<ul class=\"main\">";
foreach (XmlNode j in i.SelectNodes("h2"))
{
_data += "\n<li>" + j.SelectNodes("header")[0].InnerText + "<div>";
foreach (XmlNode k in j.SelectNodes("a"))
{
_data += "\n<a href=\"" + k.InnerText + "\">" +
k.Attributes[0].InnerText + "</a>";
}
_data += "</div></li>";
}
_data += "</ul></li>";
}

string _CSS = "<style>body{direction:rtl;} .main{list-style:none;} .main > li{display:inline-block; float:right; border:1px solid #EEE; padding:15px;} a {display:block; padding:3px;}</style>";
Literal ltr = new Literal() { ID = "ltrResult", Text = _data + "</ul>" + _CSS };
this.Controls.Add(ltr);
}
}
}
120304

Mohammadm
جمعه 30 خرداد 1393, 00:28 صبح
منوهای سایت دیجی کاملا داینامیک هستند
روشهایی که دوستان گفتند رو بررسی نکردم اما باتوجه به پست 4 طراحیش امکانپذیره فعلا فرصت کافی برای انجام دادن ندارم البته دوست عزیزمون در پست 10 دقیقا با همین روش انجام دادند ولی بهتر بود سورس نحوه ایجاد فایل xml به صورت داینامیک را نیز اینجا قرار میدادند
اگر با این روش کار کردید و به مشکل برخوردید سورس رو اینجا قرار بدید تا دوستان کمکتون کنند

sun2rise
جمعه 30 خرداد 1393, 00:41 صبح
این که سه ستون کنار هم هستن بر میگرده به سی اس اس اصلا ربطی به asp نداره

soha_smb
شنبه 31 خرداد 1393, 07:59 صبح
از URL Routing استفاده کردم. که از ورژن دات نت فریمورک 4.0 به بعد در دسترسه(فکر کنم) یه جستجو کنید. کار سختی نیست.
با URL Routing کارکردم.منظورم اینه که چطوری ID یا نام ماژول یا... رو بدست میاری ،این 2تا آدرس رو ببین


طراحی-و-فروش-سایت-همکاری-در-فروش-فایل/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
فروش-سامانه-پیام-کوتاه/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)

از کجا می فهمه که کدوم صفحه/ماژول رو باید بره بیاره؟

moslem.hady
شنبه 31 خرداد 1393, 11:29 صبح
با URL Routing کارکردم.منظورم اینه که چطوری ID یا نام ماژول یا... رو بدست میاری ،این 2تا آدرس رو ببین


طراحی-و-فروش-سایت-همکاری-در-فروش-فایل/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
فروش-سامانه-پیام-کوتاه/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)

از کجا می فهمه که کدوم صفحه/ماژول رو باید بره بیاره؟
توی دیتابیس یه فیلد دارم مثلا به نام url. برای هر صفحه یه متن یکتاست. مثلا: "طراحی-و-فروش-سایت-همکاری-در-فروش-فایل" برای یه صفحه است. توی لود صفحه با کد زیر از آدرس این متن رو میگیرم و از دیتابیس اونی که یکسانه میارم:
string myurl=RouteData.Values["url"] as string;
url که اون وسطه، پارامتریه که گفتید روت بشه!

hamid_0341
یک شنبه 01 تیر 1393, 07:53 صبح
با URL Routing کارکردم.منظورم اینه که چطوری ID یا نام ماژول یا... رو بدست میاری ،این 2تا آدرس رو ببین


طراحی-و-فروش-سایت-همکاری-در-فروش-فایل/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)
فروش-سامانه-پیام-کوتاه/http://webtina.ir/page (http://webtina.ir/page/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA%DB%8C-%D8%A2%DA%AF%D9%87%DB%8C-%D9%88-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C)

از کجا می فهمه که کدوم صفحه/ماژول رو باید بره بیاره؟

http://msdn.microsoft.com/en-us/library/vstudio/cc668201%28v=vs.100%29.aspx

ja.softeng
جمعه 28 شهریور 1393, 10:50 صبح
دوستان می بخشید الان برنامه نویس های با تجربه همه منو و زیدسته هاشون را پویا کار می کنند دیجی کالا هم همین طوره
اینکه تغییر نمی کنه ، خوب طبیهیه هر روز که نمیاد زیر دسته رو ادیت کنند

moslem.hady
جمعه 28 شهریور 1393, 11:27 صبح
دوستان می بخشید الان برنامه نویس های با تجربه همه منو و زیدسته هاشون را پویا کار می کنند دیجی کالا هم همین طوره
اینکه تغییر نمی کنه ، خوب طبیهیه هر روز که نمیاد زیر دسته رو ادیت کنند
خوب وقتی تغییری نمیکنه چه نیازی به پویا کردن هست؟؟؟
وقتی پویا باشه، ارتباط با دیتابیس میخواد، در نتیجه سایت کندتر میشه (حتی 0.00005 ثانیه هم مهمه!!)
پس وقتی سورس دست خودته و میتونی هرموقع خواستی تغییر بدی، قسمت های غیرضروری رو استاتیک کار کنی بهتره.