سلام دوستان
من قصد ساخت یه مدیریت محتوای وب دارم از نظر کد نویسی تا اینجا به مشکلی برنخوردم فقط سوالی که داشتم اینه که این سیستم های مدیریتی که به پی اچ پی نوشته میشن چیجوری ماژولاشون مرتب میشن
منظورم اینه که چخ جوری مثلا بخش منوش از هدرش از ماژولای دیگش جدا میشه ؟ با استفاده از فریم یا تیبل ؟ راه حل شما چیه ؟
زبانشم ای اس پی وی بی
راستی یه لیبل میخوام که وقتی روش کلیک بشه توی فرم مقدار ولیوش ارسال کنه ولی لیبلی نتونستم پیدا کنم که خاصیت ولیو داشته باشه ؟
میخوام وقتی که تویه تگ فرم هست وقتی روش کلیک بشه مقدار ولیوشو بفرسته به اکشن تگ فرم
البته عذر بابت اینکه بند آخر در مورد اچ تی ام ال بود
اگر کسی نکته ای راهنمایی تجربه ای چیزی داره اگر کمک کنه ممنون میشم
چاکر برو بچ ایران ویج
ببین مدیریت محتوا قائده نداره همه نوعش هست اما بهترینش بنظرم استفاده از تیبل برای مرتب کردن بخش ها هست.
در مورد اخر هم من دقیق و درست نفمیدم !!! آخه لیبل که متن ایستا هست مقدار همیشه یکی ! بیشتر توضیح بده شاید بتونم کمکت کنم.
مشکل دومیم حل شد
من اگه بخوام از تیبل استفاده کنم باید همه کدا رو توی اون تیبل بنویسم و اینجوری نمی تونم ماژول مانند کار کنم مثلا من می خوام صفحخ اول سایت رو مدیریت سایت تعین کنه که چی بیاد نمی دونم حالا اینی که می گم میشه یا نه ولی میهوام هر ماژول در صفحه جدایی طراحی بشه و فقط با اینکلود بیاد تویه قاب هودش قرار بگیره حالا فریم یا تیبل اما مشکل اینجاست که اون صفحه ای که اینکلود میشه بهم میریزه یعنی اون موقعیتی که من می خوام نمیاد یا خارج از کادر میادو اسکرول میخوره یا اصلا نمیاد !
نمی دونم این نیوک و زوپس چه جورین که همه چی خیلی راحت میاد !
اصلا برای طراحی و اینترفیس سایت چه چیزی پیشنهاد می کنید
چه کاری خوبه به جز CSS چون اول من باید بیس اینترفیسم و بسازم ولی اصلا بارم نیست !
والا برای حل این مشکل چند تا راه دارم که معقول ترین و جدید ترینش شی گرایی هست که در ای اس پی نمیشه ازش استفاده کرد.
راه بعدی اینه که فرض خروجی که برای فلان ماژول هست رو در قالب یه رشته از یه تابع بگیری و با Response.write بنویسی که نیوک هم یه جورایی ازش استفاده کرده.
یعنی برای نوشتن ماژول می شه از تلفیق روش هایی مثل ماژولار (تابع گرایی) ، همین روش اینکلود ، شی گرایی ، و یا تلفیق توابع با اینکلود استفاده کرد.
در ضمن اگه از تیبل استفاده کنی معقول تر و بهتره ، منتها بهترین راه اینه که نوشت خروجی ماژول ها تو هوشمند تر کنی نه این که قالبا خروجی رو با html یه راست بنویسی یعنی با چند تا سبک سنگین کردن با توابع مختلف خروجی رو بهتر کنی، نیوک به طور کلی از این روش استفاده کرده.
طراحی اینتر فیس هم اگه میخوای به شکل هوشمند و تمپلتی باشه که کار خودت رو راحت کردی اما اگه میخوای به همون روش ساده اینتتر فیست ایستا باشه باید طبق اون قالب بنویسی.
بطور کل برای نوشتن این گونه برنامه ها باید قبل از هر چیزی لایه خروجی (view) رو از بقیه لایه ها (Controle و Model) جدا کنی تا کارت پیچیده نشه.
خيلي پيشرفته صحبت كردي همه ي حرفاتو نفهميدم يه چيزايي فهميدم
من هر ماژول رو در يه صفحه ديگه يي به تنهايي ساختم و تيبل صفحه اول رو هم طراحي كردم و توي كل هاي تيبلم اون صفحات ماژولارو اينكلود كردم حالا نميدونم اين را چه قدر خوبه يا راه بهتري هم هست
اين خط آخري كه گفتي يهني چه ؟.
نميدونم بخواي تمپليت كني يعني چي من كه فقط از فايلاي CSS سر در ميارم و از اونا استفاده مي كنم ميشه يه كم بيشتر در اين مورد توضيح بدي ؟
مورد بعدي ام اينكه اين فايلاي مديريت محتوايي كه ميسازن چه جوري اينقدر پيچيده مبشه مثلا همين مديريت محتواي irASP با وجود كه هيچ امكاناتي نداره ولي باز پيچيده است و آدم سر گيجه ميگيره اينا بيشتر مربوط به چيه چون من راحت مي تونم بخونم مال خودمو احساس مي كنم يه چيزايي كم داره
مورد بعدي هم اينكه چي كار ميشه كرد كه سورس فايل ها معلوم نشه منظورم فايل قبل از اجراست نه بعد از اجرا
مورد آخرم اينكه هر تجربه و نظر ايده و هر چيزي كه فكر مي كنيد به دردم مي خوره بگيد ممنون ميشم
کاری که برای لود ماژول ها کردی سطحی ترین یا بعبارت دیگر سریع ترین راه لود ماژوله که برای طراحی هم استاندارد و خوب هست و کار آمد.
اما در مورد تمپلت ها یک روش طراحی پیشرفته هست که وابستگی طراحی شما را به تگ ها از بین میبره و بیشتر به عملیات میپردازه و طراحی تگ ها و کلا شمای خروجی رو کاستوم میکنه تا کاربر بتونه با معیار مورد نظرش تغییرش بده ! این روش در اکثریت مدیریت محتواها اجرا شده و بیشتر مفهومه تا روش و قائده ای برای پیاده سازی.
اما راجع به سی ام اس ها !
من خودم از روز های اول که شروع به طراحی با aspx کردم فکر میکردم پیچیدگی که در سی ام اس ها موجوده (بخصوص دات نتی ها) کار رو پیچیده میکنه و غیر قابل فهم و فکر میکردم این کار درست و به صلاحی نیست و به نوعی همه چیز رو از سریع ترین و ساده ترین راه ممکنش می رفتم.
این موضوع بود تا زمانی که چیزی که طراحی می کردم کمی پیشرفته شد و دیدم برای خصوصیت هایی مثل چینش بلوک ها و یا طراحی چند پوسته ای و یا صفحه ی چند ماژولی و خلاصه با پیشرفت کار گره خوردن ها و پیچیدگی ها و زیاده کاری ها به قدری شد که موجب فشار زیادی به سرور میشد و با همه این وجود از قابلیت های موجود هم به سختی پشتیبانی می کرد.
با این کار کم کم متوجه شدم فلسفه به اصطلاح پیچوندن سورس ها چیه؟
ببین این که ما میگیم کر رو میپیچونن یعنی در اصل سورس ها رو مرتب تر و با معنی تر میکنن یعنی چی ؟ یعنی کد هایی که قراره یک سری کار معین و مشخص انجام بدن رو تبدیل به یه فانکشن کنیم تا دیگه هر دفعه کلی خط کد تکراری ننویسیم.
این اصل بسیار ساده رو همه از اول بلدیم ولی منتها نمی دونیم چجوری ازش استفاده کنیم تا کارمون ساده تر بشه. مثلا همه میدونیم که اعمال مربوط به دیتا بیس چیزی جز اینزرت و اپ دیت و دلیت نیستند. پس میشه تولید رشته های اسکیوال رو با همین تابع کردن هوشمند تر کرد.
یا مثلا همه مون میدیونم که یه سیستم وبلاگ برای تولید خروجی به دو روش RSS و معمول HTML عمل میکند.
یعنی یا خروجی رو به صورت روش مبنی بر XML که به نام RSS هست به مرورگر می فرستیم یا مثل صفحه اول همه بلاگ ها در یه قالب لیست میکنیم.
خب اگه دقت کنید این دو روش هر در اطلاعات واحدی مث عنوان ، متن ، تاریخ ، نویسنده رو میگیرند پس میشه یه تابع نوشت که در پارامتر اول لیست یا دیتا ست همین قسمت ها رو بگیره و در پارامتر دوم نوع خروجی رو مشخص کنه بعد در خروجی یه رشته بده بیرون که میشه همون خروجی صفحه که با روش ها معمول (response.write) خروجی رو مینویسیم.
به همین سادگی ما تونستم در یک تابع اصلی ترین بخش یک مدیریت بلاگ رو تعریف کنیم که هر جا که خواستیم این خروجی رو با صدا زدن تابع مربوطه بدست بیاوریم . دردسر اینکلود و ناجور در اومدن و دیگر موارد رو هم نداریم ، همچنین میشه پیش نمایش پست ها و ارسالی ها رو نیز با این روش تولید کرد.
این فقط یه نمونه بسیار ساده و کلی از همین تقسیم بندی کار هست که در اکثر نرم افزار های تخصصی ارائه شده. البته این روش که به نام ماجولار معروفه قدیمی شده و در حال حاضر روش های جدید شی گرایی که توسط زبان و تکنولوژی های تحت وب زیادی مثل php, asp.net,j2ee,...... پیاده شده بکار گرفته میشه.
پس ممکنه که بشه یه کار رو سر راست با دو خط انجام داد اما بطور کل با تقسیم بندی کار به تابع ها هم کدت رو بهتر و خواناتر و تخصصی تر میکنی و هم با پیشرفته شدن کار کد های تو در تو گیجت نخواهند کرد.
در ضمن راجع به سوال آخرت میتونم بگم جواب کاملی وجود نداره و تا به حال سیستم که کد های asp رو ناخوانا کنه ندیدم ولی برای php نمونه هایی هست. دات نت و j2ee هم که خود کار کد رو کامپایل میکنن.
بطور کل اگر راجع به نظر و ایده و تجربه راجع به سی ام اس بخوای بدونی باید بگم تو این چند سال سابقه حد اقل کد خونی این چند وقت آخر رو بیش از هر چیزی به این پرداختم بطور کل سی ام اس ها ی ایرانی در حال حاضر سه دسته اند که یا پولی و پر کاربرند (مثل پارس دیزاین) یا مجانیو ترجمه شده از دیگران (مثل نیوک) یا تولید خودی و مجانی برای دیگران (مثل همین کار تاکسیک (toxic-ware.com)). اگه دوس داری کارت رو مردم عموما بپسندند خب معلومه که گزینه آخر بهترین راهه پس اگه میخوای سی ام اسی طراحی کنی با لیسانس سورس باز و مجانی طراحی کن.
ممکنه منفعت مالی برات نداشته باشه اما
1- تجربه برای خودته
2- معروف شدن اسمت در فضای وبه
3-شناخته شدن کارهاته که اگه کسی خواست بهت پیشنهاد کار بده و ازت نمونه خواست این نوع کار بیش از هر چیزی طرفدار داره و مفید واقع میشه.
خب اگه بازم سوالی بود در خدمتم.
حالا اينجوري كه در مورد لودشون گفتي يعني ميگي خيلي ضايست راه بهتر چيه ؟
خوب يه كم در مورد اين روش صحبت مي كني گفتي كه چيكار ميكنه ولي اصلا نگفتي چيه نمي دونم منظورت همون سي اس اس يا نه
اين كه ميگي كارا رو به شكل تابع دراري خوب اين توابع بايد هر كدوم تويه يه فايلي باشن و بالاخره اول فايل اينكلود بشن تا بشه صداشون زد ديگه درست نميگم مثلا تويه يه فايل توابع مربوط به يه ماژول رو مي نويسي و حالا تويه هر صفحه اي كه دوست داشتي اينكلود مي كني و اون تابعي كع مي خواي رو صدا مي زني منظورت درست فهميدم ؟
من تويه يه سري سورس كه مي ديدم كد صفحه تبديل شده بود به يه سري چرت و پرت كاراكتر بيخودي دقت كردم ديدم نوشته
VBScript.Encode
اين جريانش چيه چه جوري ميشه ديكد كرد و اصلا چه جوري ميشه كد كرد
راستي يه مبحث جديدي كه مي خواستم بگم اينه كه يكي از مهمترين چيزاي يه سايت الگوريتم بالا اومدن صفحه اول سايت نظرت براي بهترين و سريعترين الگوريتم براي بالا اومدن صفحه اول چيه
راستي يه سوال مسخره ام بپرسم
من هر موقع كه شروع مي كنم به كار اولين باري كه تويه مرورگر مي زنم موقعي كه مي خواد رشته دي بي رو به اكتيو كانكت ركورست نسبت ارور ميده
Unspecifed Error
حالا نميدونم درست نوشتم يا نه ولي معني ميشه ارور نامعلوم
در بار كه ريفرش ميكني خودش درست ميشه
يعني چي؟