mrhossein

استایل دهی فیلدهای جوملا 3.7

24 پست در این موضوع

سلام.

بالاخره یکی از درد سرهای بزرگ جوملا یعنی نبود امکان استفاد از فیلدهای سفارشی در نسخه 3.7 حل شد و خوشبختانه برخلاف k2 پلاگین درج فیلد در مطلب هم به همراه این نسخه ارائه شده. با این وجود من دوتا مشکل گرافیکی با فیلدهای جوملا 3.7 و یه سوال دارم که اینجا مطرح میکنم.

1- وقتی به یک فیلد اختصاصی یک کلاس رو نسبت می دیم کلاس روی field value و field label باهم اجرا میشه. درواقع css مربوط به این کلاس به صورت field-entry class name اجرا میشه. اگر بخوام برای value و label هرکدوم کلاس جداگانه ای در نظر بگیرم باید چکار کنم؟

2- کلاس فیلدها فقط در قسمتی که فیلد در بالا یا پایین محتوا نمایش داده میشه اجرا میشه و اگر بوسیله پلاگین مربوطه فیلدها رو در وسط مطلب درج کنید دیگه کلاس اون لود نمیشه. برای اینکه نیازی نداشته باشم به هر پاراگراف یا دایو در مطلب کلاس جداگانه اختصاص بدم چکار میشه کرد؟

3- این قسمت ویرایش کلاس زیر قسمت کلاس در فلیدها چه کاربردی داره؟

Share this post


Link to post
Share on other sites

تا جایی که من بررسی کردم تنها راهش این هست که در فایل tamplate_rtl.css دو استایل field-label و field-value رو تعریف کنیم و مقادیر مورد نظر خودمون رو بهشون بدیم. اینطوری تمام فیلدهای مطالب جوملا در هرجایی که باشند این استایل رو دریافت می کنند. البته همه ویژگی ها ممکنه جواب نده که باید از  display: block; استفاده کرد.

میمونه این نکته که بعد از تغییر display به block برچسب فیلد و مقدار اون زیر هم نشون داده میشن که احتمالا با ویرایش فایل render.php در کامپوننت فیلد جوملا مشکل حل میشه. البته بررسی نکردم.

توی k2 استایل دهی به فلیدها خیلی راحته و کافیه فایل css کا2 رو ویرایش کنیم ولی متاسفانه درون مطالب درج نمیشن و پلاگین این کار روی خود کا2 که نیست هیچ تا حالا هیچ کس هم اون رو ننوشته.

توی جوملا 3.7 هم استایل دادن به فیلدها خیلی دردسر داره و سفارشی هم نیست. روی همه فیلدها باهم اعمال میشه. این فیلد کلاس هم که در قسمت ویرایش فیلدها اومده نبودنش بهتره. چون استایل اون کلاس روی دوتا قسمت برچسب و مقدار فیلد که در تگ span قرار دارند به طور مجزا اعمال نمیشه.

ضمنا بدون بلوک کردن display خیلی از ویژگی های مهم مثل margin و width اعمال نمیشن.

 

حالا دوستان دیگه که اهل فن هستند اگر راه حل بهتری دارند به ما هم بگن.

تشکر.

 

Share this post


Link to post
Share on other sites

خیلی هم عالی. ممنون از این همه نظر کارشناسانه و حرفه ای ....

انجمن تعطیله؟

Share this post


Link to post
Share on other sites

با سلام خدمت شما.

لینک سایتتون رو بدید تا بتونیم راهنماییتون کنیم. 

در کل برای تعریف یا تغییر یک کلاس در ساختار سایتتون (فرقی نمیکنه هر کامپوننت و افزونه و بخشی از جوملا) کلاستون رو که در فایلهای css تون تعریف میکنید بعد اون کلاس رو در فایل هایی از جوملا که در سایت و در بخش کاربری فراخونی میشه به اون عنصر بخصوصتون که برای تگ مجزا در سورس تعریف شده اختصاص میدید و یا اگر کلاس و استایلی نداره در همون فایل php میتونید هم بهش کلاس اختصاص بدید و هم میتونید استایل مستقل و مستقیم در فایل php تون تعریف کنید.

اگر سوال دیگری هست بفرمایید در خدمت خواهیم بود.

موفق باشید و سربلند

Share this post


Link to post
Share on other sites

ممنون.

فکر کنم سوالم رو درست متوجه نشدید.

سوال اصلی من این بود که در قسمت کلاس هر فیلد در جوملا 3.7.2 مثل قسمت ماژول وقتی اسمی رو وارد می کنیم نام کلاس جدیدی ایجاد میشه و اگر قبلش نقطه بذاریم کلاس جدید ما در کلاس قبلی فراخوانی میشه. تا اینجا درسته؟

حالا اگر بخوایم کلاسی رو به طور اختصاصی به یک فیلد نسبت بدیم برای اینکه اسم جدید ایجاد کنیم باید فیلد متنی کلاس رو در تنظیمات ویژگی های هر فیلد جوملا مقداردهی کنیم ولی نام جدید ما بصورت   field-entry class-name  خواهد بود.

class-name در حقیقت همان مقداری است که ما در فیلد متنی کلاس در تنظیمات فیلد جوملا 3.7 وارد کردیم.

یعنی باکسی که دربرگیرنده دو اسپن  field-label و field-value  هست مقداردهی میشه. حال اینکه من میخوام دو کلاس field-label و field-value برای هر فیلد جداگانه استایل بگیرند. پس برای هر فیلد دونام جداگانه برای این دو کلاس لازم دارم که تنظیمات فیلدهای جوملا 3.7 این ویژگی رو نداره.

1- پس نمیتونم با مقدار دهی فیلد متنی کلاس در تنظیمات هر فیلدی که می سازم کلاس های جدیدی به صورت  field-label class-name و field-value class-name داشته باشم.

 

2- نکته دوم اینکه پلاگین جدید درج فیلدهای جوملا 3.7 در متن مقالات از استایل اختصاصی فیلدها حتی به صورت field-entry class-name پیروی نمیکنه و تابع مقدار دهی کلاس های عمومی field-entry و field-label و field-value هست. پس اگر فیلدها رو بوسیله پلاگین وسط مقاله درج کنید کلاس و استایل اختصاصی نخواهند داشت.

 

اگر این موارد همینطور که گفتم در جوملا 3.7 ممکن نیست میشه با تماس با جوملا درخواست کرد تا در نسخه بعدی 3.7.4 اضافه بشه؟

Share this post


Link to post
Share on other sites

انجمن سوت و کوره.

من پیشنهاد میکنم اگر کسی میتونه دو تا باکس به تنظیمات فیلدهای جوملا 3.7 اضافه کنه که بشه به  field-label و field-value  هم برای هر فیلد استایل اختصاصی داد زحمتش رو بکشه. خیلی مورد نیازه.

Share this post


Link to post
Share on other sites

باسلام

اساساً کلاس بندی در جوملا یا شما میتونید در خود هسته و سورس های php این کلاس بندی و اختصاص کلاس و استایل خاص رو تعریف کنید که خب این مشخصه کاملا کلیه بخش ها و view هایی که در کاربری فراخونی میشن قابلیت انجام اینکار رو دارند. 

اما در مواقعی مثل اینکه شما بخواهید یه سری عناصر داینامیک و از پیش تعریف نشده در هسته جوملا یا افزونه های دیگرر رو کلاس بندی کنید. طبیعتاً میبایست امکانش در محیط گرافیکی و کاربری در بخش مدیریت بهتون اختصاص داده شده باشه. برای این فیلدهای جوملای 3.7 هم به همین ترتیبه اگه کلا بخواهید به فیلد ها یه کلاس اختصاص بدید خب میتونید از سورس در هر ویوویی که مدنظر هست کلاس بدید و اگر هم میخواهید به هر فیلد یک کلاس و استایل اختصاص بدید میتونید در صفحه ی هر فیلد و در تب "Option " کلاس و یا استایل خاص خودتون رو اضافی کنید به فیلد که در زمانی فراخونی از اون کلاس پیروی کنه...

موفق باشید و سربلند

Share this post


Link to post
Share on other sites

سلام

مهندس ممنون که وقت میذارید و جواب میدین ولی فکر میکنم متن سوال رو درست و دقیق مطالعه نمی فرمایید. شما عین صحبت های خود من دوباره برام بعنوان جواب نوشتین.

من 4 بار توضیح دادم که جوملا 3.7 اولا فیلدهاش بصورت پیش فرض هیچ کلاسی ندارند. دوما کلاسی که از طریق آپشن به فیلد داده میشه به یک div داده میشه که  field-entry  هست و آپشن لازم برای کلاس دادن به  field-label و field-value  رو بطور مجزا نداره.

لطفا این تصویر رو ببینید.

مشاهده تصویر

در این تصویر که به صورت پیوست هم قرار گرفته مشاهده می کنید که استایل exf که به این فیلد داده شده بر روی   field-label و field-value اعمال نمیشه. در حالی که در بسیاری از موارد نیاز به اختصاصی سازی این دو بخش به صورت مجزا هست. در تصویر زیر مشاهده می کنید که در یک فروشگاه اینترنتی دو استایل متفاوت روی هر بخش از یک فیلد اعمال شده.

مشاهده تصویر 2

 

من سوادم در حد css هست. حالا شما یا یه کد به ما بدین که این دوتا فیلد کلاس رو به تنظیمات اضافه کنه یا به جوملا بگین اضافه کنه یا یه کاری کنین این مساله حل بشه.

Untitled.jpg

Untitled-2.jpg

Share this post


Link to post
Share on other sites

سلام.

بفرمایید: http://fuffel.ir/

البته من هنوز از فیلدهای جوملا توی این سایت استفاده نکردم. ولی اگر براتون مقدور هست که باکس های مورد نظر رو به تنظیمات فیلدهای جوملا اضافه کنید براتون مشخصات هاست رو تو خصوصی اسال کنم.

 

ممنون.

Share this post


Link to post
Share on other sites

دوست گرامی.کلاس ها در قالب های مختلف متفاوته

شما فیلدهارو اضافه کنید.بعد آدرس صفحه ی مورد نظرتونو بدید دوستان و مدیران بررسی میکنن

Share this post


Link to post
Share on other sites

سلام مدیر محترم.

ظاهرا شما هم سوال بنده و متوجه نشدید.

کلاس های عمومی جوملا در همه سایت هایی جوملایی که از نسخه 3.7 استفاده می کنند یکسان هست. لطفا به من سوال که در حدود 4 بار در این صفحه آن را تکرار و تشریح کرده ام دقت کنید.

Share this post


Link to post
Share on other sites

من میخوام این مطالب رو برای جوملای جهانی ارسال کنم شاید اونها متوجه منظور من بشن.

ممکنه لطفا راهنمایی کنید از کجا باید این گزارش رو براشون ارسال کنم؟

Share this post


Link to post
Share on other sites

باسلام

من تصور کردم که صرفاً من دارم اشتباهی متوجه منظورتون میشم.اما مثل اینکه مهندس پروانه هم به همین ترتیب هستند! حالا یا ما متوجه اصل ِ مطلب و موضوع شما نمیشیم یا شما درست مطرح نمیکنید....

در هر حال میتونید موضوعتون رو در لینک زیر مطرح کنید:

https://issues.joomla.org/

 

موفق باشید و سربلند

Share this post


Link to post
Share on other sites

مهندس من مشکلی ندارم.جوملا مشکل داره. جوملا اومده کامپوننت فیلد رو به نسخه جدید اضافه کرده و برای سفارشی کردن کلاس اون فقط تنظیمات رو برای  field-entry  در نظر گرفته. در صورتی که اصل مطلب اینه که ما بتوینم به  به  field-label و field-value کلاس سفارشی بدیم و چنین امکانی وجود نداره.

اینکه خیلی واضح هست. شما خودتون برید به یکی از فیلدهاتون برای عنوان فیلد یک کادر آبی و برای مقدار اون فیلد یک کادر زرد بسازید. اگر تونستین.

خدا میدونه نمیدونم چجوری بگم دیگه.

Share this post


Link to post
Share on other sites
در در 7/27/2017 در 11:39، حجت مردانه زاده گفته است :

باسلام

من تصور کردم که صرفاً من دارم اشتباهی متوجه منظورتون میشم.اما مثل اینکه مهندس پروانه هم به همین ترتیب هستند! حالا یا ما متوجه اصل ِ مطلب و موضوع شما نمیشیم یا شما درست مطرح نمیکنید....

در هر حال میتونید موضوعتون رو در لینک زیر مطرح کنید:

https://issues.joomla.org/

 

موفق باشید و سربلند

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
در در 7/30/2017 در 23:50، p30template گفته است :

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

راستش من دیگه فکر نمیکنم بیشتر از تصاویری که گذاشتم بتونم توضیح بدم.

شما خودتون با جوملا 3.7 امتحان کنید و دو مجموعه مطلب بسازید. حالا چند فیلد برای مجموعه اول و چند فیلد هم برای مجموعه دوم بسازید. کاری کنید که در مجموعه مطالب اول، فیلدها دارای عنوانی با کادر آبی و مقداری با کادر خاکستری باشند و در مجموعه مطالب دوم فیلدها دارای عنوانی با کادر زرد و مقداری با کادر قرمز باشند.

اگر موفق شدید به هر راه حلی که رسیدین به ما هم بگین انجام بدیم.

Share this post


Link to post
Share on other sites

سلام.

شاید باور نکنید. من این مساله را در github به طور جدی پیگیریی کردم و در نهایت خواستم تا برنامه نویس کامپوننت فیلدها پاسخ مرا بدهد. آنها کسی به نام  Allon Moritz  را به من معرفی کردند و او در پاسخ گفت که کلاس بیشتری به تنظیمات جوملا اضافه نخواهد کرد.

البته یک راه حل داد:

I would not introduce more classes, if you need to alter the output, then you should use layout overrides.

 

دقیقا نمی دونم منظورش از لغو طرح چیه و چطور باید این کار رو انجام بدم. لااقل تلاش خودم رو کردم و مطمئن هستم در نسخه های بعدی جوملا نباید منتظر تغییری در این قسمت باشم.

 

 

Share this post


Link to post
Share on other sites

منظور از طرح اور راید ، یک طرح جدید و دلخواه بدون دستکاری طرح فعلی ست ،
در مورد سوال شما نظری ندارم ، فقط پاسه برنامه نویس رو توضیح دادم . این روش در بین طراحان معمول هست

Share this post


Link to post
Share on other sites
در در 10/7/2017 در 16:51، Masood Ashoori گفته است :

منظور از طرح اور راید ، یک طرح جدید و دلخواه بدون دستکاری طرح فعلی ست ،
در مورد سوال شما نظری ندارم ، فقط پاسه برنامه نویس رو توضیح دادم . این روش در بین طراحان معمول هست

ممنونم. حالا این کار معمول با چه روشی انجام میشه؟ چون مشکلی که من دارم اینه که تا از یه طریقی کلاس به یک بخش اختصاص داده نشده نمیشه برای اون کلاس استایل نوشت.

Share this post


Link to post
Share on other sites
در در 12/29/2017 در 12:10، mrhossein گفته است :

ممنونم. حالا این کار معمول با چه روشی انجام میشه؟ چون مشکلی که من دارم اینه که تا از یه طریقی کلاس به یک بخش اختصاص داده نشده نمیشه برای اون کلاس استایل نوشت.

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

در هر حال حالا که رسیدید به اینجا؛ جوملا از یک متد بسیار بسیار کاربردی بهره میگیره به شکل که شما به فرض دارید از یک قالبی استفاده میکنید. تک تک اجزای جوملا اعم از کامپوننتها/ماژولها و حتی پلاگین ها رو میتونید درون قالبی که در حال استفاده ازش هستید با روش اورراید در زمان فراخوانی و نمایش با قالب انتخابی شما؛ با استایلی که برای اون قالب طراحی کردید به نمایش بگذارید.

برای مطالعه روند کلی و دقیق این داستان میتونید از لینک های زیر استفاده کنید:

https://docs.joomla.org/J3.x:How_to_use_the_Template_Manager#Creating_Overrides

http://docs.afzoneha.com/how-to-create-template-overrides-for-joomla-plugins/

موفق باشید و سربلند

1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری