สอบถามการทำ Web Storage ใน joomla

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 4329
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

สอบถามการทำ Web Storage ใน joomla

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

สอบถามการทำ Web Storage ว่าทำยังไงหรอครับ ผมจะเก็บค่า keyword ของสินค้าจากที่เราค้นหาชื่อสินค้ากับเข้าไปดูสินค้าครับ แล้วแสดงโชว์
ซึ่งผมจะทำตัวโมดูลเป็นประวัติค้นหาสินค้าครับ
:gfb:
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามการทำ Web Storage ใน joomla

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ศึกษาได้จากข้อมูลภายในเว็บนี้ได้ครับ
- https://www.mindphp.com/%E0%B8%9A%E0%B8 ... orage.html
- viewtopic.php?f=78&t=32785
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 4329
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

Re: สอบถามการทำ Web Storage ใน joomla

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

ผมลองทำ localStorage โดยเรากดค้นหาสินค้า แล้วเอาค่าค้นหาเก็บใน div hidden และในไฟล์ js ผมก็ดึงค่าค้นหาเก็บใน div hidden มาเพื่อเก็บค่าใน localStorage
เพื่อทำประวัติค้นหา แต่เหมือน localStorage ไม่ขึ้นค่าค่าค้นหาให้ครับ ทำไมถึงทำค่าไม่ครับ
ผมกดค้นหาแล้ว ใน localStorage ไม่ขึ้นค่าค่าค้นหาให้
Joomla Development-1.png
Joomla Development-1.png (22.6 KiB) Viewed 1161 times
ไฟล์ helper.php

โค้ด: เลือกทั้งหมด

<?php
class ModMdClientHistory
{

	public static function getArticleId()
	{	
		$input = JFactory::getApplication()->input;
		// var_dump($input);
		if ($input->get('option') == 'com_content' && $input->get('view') == 'article')
		{
			return $input->get('id');
		}
		
	}

	public static function getKeyword()
	{
		$input = JFactory::getApplication()->input;
		if ($input->get('option') == 'com_search' && $input->get('view') == 'search')
		{
			return $input->get('searchword');
		}
	}

	public static function getConfigData($params)
	{
		$arr_config = array ();
		$arr_config[] = 'data-item-limit="' . $params->get('data_item_limit', 5) . '"';

		return $arr_config;
	}

}
ไฟล์ default.php

โค้ด: เลือกทั้งหมด

<?php if ($keyword = ModMZCHistorySearch::getKeyword()): ?>
		<div class="mod-mzc-history-search-keyword hidden" id="keyword"><?php echo $keyword; ?></div>
	<?php endif; ?>
ไฟล์ js

โค้ด: เลือกทั้งหมด

var s = new String(window.location.search);
                if(s.substr(1).search(/start=[0-9]+/) > 0) {
                         return false;
                }
       
                var keyword = $('#keyword').text();
                var link = window.location.href;
                if(!a.hasOwnProperty(keyword)) {
                        a[keyword] = { 'keyword': keyword, 'link': link};
                        delete a[''];
                        localStorage.setItem("search_product_keywords", JSON.stringify(a));
                } else {
                        a[keyword].count++;
                        localStorage.setItem("search_product_keywords", JSON.stringify(a));
                }
                
                
                if(JSON.parse(localStorage.getItem("search_product_keywords"))) {
                        $('.mod-mzc-history-search').append('<br /><h3 class="page-header">'+Joomla.JText._('MOD_MZC_HISTORY_SEARCH_KEYWORD_LASTEST')+'</h3>');
                        ul = $('<ul class="category-module"></ul>');
                        var limit = parseFloat($('.mod-mzc-history-search-config').attr('data-item-limit'));
                        var no = 0;
                        $.each(a, function() {
                                if(no == limit) {
                                        return false;
                                }
                                var link = $('<a></a>');
                                link.prop('class', 'mod-product-category-title');
                                link.prop('href', this.link);
                                link.prop('title', this.keyword);
                                link.html(this.keyword);
                                ul.prepend('<li></li>');
                                ul.find('li:first').append(link);
                                no++;
                        });
                        if(typeof $('.mod-mzc-history-search').html() !== 'undefined') {
                                $('.mod-mzc-history-search').append(ul);
                        } else {
                                $('#history-keywords').append(ul);
                        }
                } else if(typeof $('.mod-mzc-history-search').html() === 'undefined') {
                        $('#history-keywords').html($('.mzc-history-search-keyword-default').html());
                }
:gfb:
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามการทำ Web Storage ใน joomla

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ลองใช้งานแบบง่ายๆ โดยเขียน js ให้เก็บข้อมูลใน localStorage ตรงๆ เลย เพื่อดูการทำงานก่อนครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 49