رفتن به مطلب

حل کردن مشکل قسمت مشخصات(DATA SHEET)


hamid

پست های پیشنهاد شده

[justify]سلام

همه میدونن که قسمت مشخصات پرستا ضعیف هستش کمتر کسی رو هم دیدم که از این قسمت استفاده کنه و همه در قسمت اطلاعات بیشتر سعی میکنن با جدول نشان بدن که اصولی نیست کمتر چیزی که با انجام این کار از دست میدیم امکان مقایسه هست.از همه کسانی که اطلاعاتی در زمینه PHP دارن میخوام که همکاری کنن و این مشکل رو برطرف کنیم.و در آینده که کار به اتمام رسید ما میتونیم این پست ها رو به صورت یک آموزش مفید و کاربردی دربیاریم,و در قسمت آموزش های این انجمن خوب قرار بدیم.

من خودم اول از همه شروع میکنم,قسمت مشخصات رو به شکل جدول در اوردم.ولی کافی نیست.چندتا عکس قرار میدم بهتر پیش بریم.

 

[/justify]

نمای اولیه

 

post-77-14373017474609_thumb.png

 

نمای جدول بندی شده(بعد از تغییرات من)

 

post-77-14373017475376_thumb.png

 

نمایی که باید بهش برسیم

 

post-77-14373017476044_thumb.png

 

خوب به قسمت کدها میرسیم برای تغییرات باید فایل product.tpl رو ویرایش کنیم.

 

قسمت زیر رو در فایل مورد نظر پیدا کنید(تقریبا در خط 425)

 


  • {foreach from=$features item=feature}
  • {$feature.name|escape:'htmlall':'UTF-8'} {$feature.value|escape:'htmlall':'UTF-8'}
    {/foreach}

 

با جایگزین کردن خط زیر, مشخصات مثل عکس (نمای جدول بندی شده(بعد از تغییرات من) ) پدیدار میشه.

 

 


  • {foreach from=$features item=feature}
  • {$feature.name|escape:'htmlall':'UTF-8'}{$feature.value|escape:'htmlall':'UTF-8'}

    {/foreach}

 

منتظر حرکات شما هستیم,برای بهتر شدن.

با تشکر

 

 

 

 

 

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

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

http://presta-shop.ir/showthread.php?tid=469

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

باتشکر

 

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

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

شما باید جداول رو به صورت استاتیک ئ با html ایجاد کنید و هر ویژگی رو که می‌خواید در یک جدول قرار بدید.

در واقع برای سایتی که تعداد ویژگی هاش ثابت هست قابل استفاده است چون با افزودن هر ویژگی باید فایل دوباره ویرایش بشه.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

شما چه جور همکاری می‌خوای؟ من در خدمتم. تا حدی php و smarty میدونم اما زیاد نه. تو الگوریتم میتونم کمک کنم تا بچه های دیگه کمک کنن و درستش کنیم.

 

این کد رو بچه ها برای جدا کردن دادن که زیاد جالب نیست:

 

{foreach from=$features item=feature}
{if ($feature.name=="A") {$feature.name|escape:'htmlall':'UTF-8'}{$feature.value|escape:'htmlall':'UTF-8'}{/if}

if ($feature.name=="B") {$feature.name|escape:'htmlall':'UTF-8'}{$feature.value|escape:'htmlall':'UTF-8'}{/if} 

 

 

همه ویژگی ها به صورت یک آرایه (لیست) به نام $feature فراخوانی میشن

توی این کد foreach عمل جدا سازی یک آرایه به تک تک اعضاش رو انجام میده

 

راهکار پیشنهادی: نام ویژگی ها رو با اعداد شروع کنید. مثلا 1.وزن

حالا یک تابع نیاز دارید که چک کنه اول اسم ویژگی عدد 1. هست و اگر بود زیر جدولی به اسم «گروه یک» نشونش بده

و الی آخر

 

این به عنوان یک راهکار که بازهم خیلی جالب نیست.

 

دوستان الگوریتم دیگه‌ای میتونید ارایه بدید؟

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 2 weeks later...

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

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

خوب اگه php کامل میدونید کمک کنید یا این که جستجو کنید تا به نتیجه برسیم

فایل tpl محصولات شما رو میرسونه به یک فایل به نام product.php در روت اصلی که اون هم شما رو میرسونه به productcontroller در پوشه controller در ائنجا هم یک خط پیدا می‌کنید:

 

 

$features = $this->product->getFrontFeatures((int)self::$cookie->id_lang);

 

 

حالا باید تابع فراخوانی شده در این کد رو پیدا کنیم. به پوشه classes و product.php برید و این تابع رو به صورت زیر پیدا کنید:

 

$row['features'] = Product::getFrontFeaturesStatic((int)$id_lang, $row['id_product']);

 

 

بازهم یک تابع دیگه

 

/*	* Select all features for a given language	*	* @param $id_lang Language id	* @return array Array with feature's data	*/	public static function getFrontFeaturesStatic($id_lang, $id_product)	{		if (!array_key_exists($id_product.'-'.$id_lang, self::$_frontFeaturesCache))		{			self::$_frontFeaturesCache[$id_product.'-'.$id_lang] = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('			SELECT name, value, pf.id_feature			FROM '._DB_PREFIX_.'feature_product pf			LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = pf.id_feature AND fl.id_lang = '.(int)$id_lang.')			LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = pf.id_feature_value AND fvl.id_lang = '.(int)$id_lang.')			WHERE pf.id_product = '.(int)$id_product);		}		return self::$_frontFeaturesCache[$id_product.'-'.$id_lang];	}
public function getFrontFeatures($id_lang)	{		return self::getFrontFeaturesStatic($id_lang, $this->id);	}

 

 

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

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

فکر حتما برای این کار توسط سایت مرجع مازولی نوشته شده باشه جستجویی کنید اگر باشد می شه فهمید از چه راهی برای این کار استفاده کردند ولی به نظرم راه اصولیش اینه که عین ماژول شاخه ها یا همون دسته بندی تغییر داده بشه

یعنی یک قسمتی برای عنوان اصلی باشه و قسمتی هم برای زیر عنوان ها که میشه از ماژولهای پیش فرض برای این کار استفاده کرد با ادیت کردن

البته می شه گزینه بیشتری بهش اضافه کرد ولی اگه با ساختار پرستا اشنا بشی خیلی راحتر می تونی تغییر بدی

 

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

دانوش جان به صورت الفبا قرار میگره.شما یک ویژگی اضافه کن,بعد از اون نگاه کن.اون وقت به صورت الفبا در میاد.نمیدونم که چرا بعد از اضافه کردن ویژگی به ترتیب الفبا در میاد.در حالت اولیه که پرستا رو نصب میکنی به صورت الفبا نیست.


من احتمال میدم تمام دخالت ها در product.tpl هست.به کد زیر نگاه بکنید.

 


  • {foreach from=$features item=feature}
  • {$feature.name|escape:'htmlall':'UTF-8'} {$feature.value|escape:'htmlall':'UTF-8'}
    {/foreach}

{/if}

دراین قسمت {$feature.name|escape:'htmlall':'UTF-8'} که میبینید مربوط میشه به همون قسمت مشخصات که به ترتیب الفبا میاره.به جای name میشه عبارتی قرار داد که به ترتیب الفبایی دیگه نیاره.

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

 

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

name همون نام ویژگی و value همون مقدارش هست.

اینجا هیچی پیدا نمیکنی.

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

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

فکر کنم راه حل این مشکل تو فایل feature.php داخل پوشه classes باشه :

SELECT *
	FROM `'._DB_PREFIX_.'feature` f
	LEFT JOIN `'._DB_PREFIX_.'feature_lang` fl ON (f.`id_feature` = fl.`id_feature` AND fl.`id_lang` = '.(int)($id_lang).')
	ORDER BY fl.`name` DESC');

 

البته حدس میزنم امتحان نکرده ام :D

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام خدمت دوستان

برای این موردی که ذکر شده، من یه راه حل پیدا کردم.

این لینک رو یه نگاه بندازید:

http://blog.web-engineering.com.ua/prestashop-extended-features/

 

البته من پیشنهادات دیگه ای هم واسه این بخش ویژگی ها داشتم، که می تونید تو لینک زیر ببینید (کامنت آخر):

http://forge.prestashop.com/browse/PSCFI-1777

 

فعلا بای

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

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

بکاپ یادتون نره

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

من ماژول رو نصب کردم ولی هیچ تغییری نکرد.مثل قبل هستش


ماژول رو درست کردم ولی در هنگام ایجاد مشخصات جدید این ارور رو میده:the field id_group is required


دوستان 2 مورد بالا حل شد.ولی بازم یه مشکل جدید هست.

زیر گروه مشخصات باز نمیشه.به عنوان مثال فقط Common نشون داده میشه و زیر گروه هاش نشون داده نمیشه.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام دوستان

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

نصب ماژول کار خاصی نداره,اول از لینک زیر ماژول رو دانلود کنید.

http://blog.web-engineering.com.ua/prest...-features/

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

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

خوب این ماژول توضیحاتش همون کاری رو میکنه که قسمت مشخصات فعلی پرستا شاپ میکنه....یعنی به ترتیب حروف الفبا مرتب میکنه.....

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری


  • کاربران آنلاین در این صفحه

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

×
×
  • اضافه کردن...