-
مشکل در شخصی سازی استایل فیلدهای جوملا 3.7
سلام
در جوملا 3.7 یه مشکل جدی با تنظیمات فیلدهای مطالب دارم.
برای سفارشی کردن کلاس فیلدها فقط تنظیمات برای field-entry یعنی قابی که شامل عنوان و مقدار فیلد باهم است در نظر گرفته شده. در صورتی که اصل مطلب اینه که ما بتوینم به field-label و field-value کلاس سفارشی بدیم و چنین امکانی وجود نداره. به این معنا که در تنظیمات فیلدها جایی برای ایجاد کلاس سفارشی برای عنوان و مقدار هر فیلد به طور مجزا در نظر گرفته نشده.
معنای این حرف اینه که ما نمیتونیم بعنوان مثال در یک فیلد عنوانی با کادر زرد رنگ و مقداری با کادر نارنجی رنگ داشته باشیم. با توجه به اهمیتی که این موضوع در ظاهر فیلدها خواهد داشت من این موضوع رو در انجمن های متعددی مطرح کردم ولی کسی راه حلی برای اون نداره.
اگر کسی میتونه این مشکل رو با کدنویسی یا از طریق دیگه ای برطرف کنه ممنون میشم راهنمایی کنه.
تشکر.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
07-30-2017 01:39 PM
# ADS
تبلیغات در جوملا فارسی
-
سلام
برای درک بهتر سوال در صورت امکان منظور خود را روی لینکی از سایت خود مثال بزنید تا بر اساس آن راهنمایی کنیم
یا علی
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
نوشته اصلی توسط
firoozmandan
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
سلام
برای درک بهتر سوال در صورت امکان منظور خود را روی لینکی از سایت خود مثال بزنید تا بر اساس آن راهنمایی کنیم
یا علی
سلام. من دارم جوملا 3.7 رو روی لوکال تست میکنم ولی برای درک بهتر مساله کافیه نگاهی به کدهای کامپوننت فیلد جوملا (com_fields) بندازیم.
کد:
<?php foreach ($fields as $field) : ?>
<?php // If the value is empty do nothing
if (!isset($field->value) or $field->value == '') :
continue;
endif; ?>
<?php $class = $field->params->get('render_class'); ?>
<dd class="field-entry <?php echo $class; ?>">
<?php echo FieldsHelper::render($context, 'field.render', array('field' => $field)); ?>
</dd>
<?php endforeach; ?>
مساله خیلی ساده است. هر فیلد از دو قسمت عنوان یا بر چسب (label) و مقدار (value) تشکیل شده. در کامپوننت فیلدز این دو span در یک div قرار گرفتند.
جوملا به دایوی که شامل هر دو هست کلاس عمومی field-entry رو اختصاص داده. وقتی قسمت class در تنظیمات هر فیلد مقدار بگیره اون مقدار به این عنوان اضافه خواهد شد.
اما برای دو قسمت بر چسب (label) و مقدار (value) دو کلاس عمومیfield-label و field-value رو در نظر گرفته. این دو کلاس به طور پیش فرض شامل هیچ مقداری نیستند ولی اگر شما در قالب خودتون مقادیری رو برای اونها در نظر بگیرید بر روی همه ی فیلدهایی که در جوملا می سازید اعمال خواهد شد.
کد:
<?php if ($showLabel == 1) : ?>
<span class="field-label"><?php echo htmlentities($label, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?>: </span>
<?php endif; ?>
<span class="field-value"><?php echo $value; ?></span>
پس اگر کدهای زیر را در نظر بگیریم :
کد:
.field-label
{
background-color: #ff6a00;
color: white;
margin: 5px;
border: 2px solid #bd1515;
width: 33%;
display: inline;
padding: 3px;
}
کد:
.field-value
{
background-color: #ff6a00;
color: white;
margin: 5px;
border: 2px solid #bd1515;
width: 67%;
display: inline-block;
}
در تمام فیلدهایی که منتشر کردیم برچسب به رنگ نارنجی و کادر مشکی و متن سفید و مقدار فیلد به رنگ خاکستری با متن سیاه نمایش داده خواهد شد.
حال اگر شما بخواهید برای یک فیلد خاص یا یک گروه از فیلدها کلاسی متفاوت از سایر فیلدها تعریف کنید تنظیماتی برای این کار در جوملا 3.7 پیش بینی نشده است.
در واقع مقدار کلاس که در بخش تنظیمات فیلدها وجود دارد مقداری را به کلاس عمومی field-entry اضافه می کند و برچسب و مقدار قابلیت سفارشی شدن ندارد.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
علاقه مندی ها (Bookmarks)