Thursday, June 25, 2015

[tip][break]No longer SMS anymore, we will receive notifications via G + instead.

          Short Post, I prayed for SMS google calendar service, despite the service is closing

On June 27, 2015 from now on. No longer SMS anymore, we will receive notifications via G + instead.

:-(


[tip][break]โพสสั้น สำหรับการไว้อาลัยให้กับ google calendar ซึ่งในวันที่ 27 มิถุนายน 2558 นี้เป็นต้นไป

โพสสั้น สำหรับการไว้อาลัยให้กับ google calendar ซึ่งในวันที่ 27 มิถุนายน 2558 นี้เป็นต้นไป
จะไม่มีการ แจ้งเตือนผ่าน SMS อีกต่อไปแล้ว ซึ่งต่อไปจะแจ้งเตือนผ่าน G+ แทน

:-(


Wednesday, June 24, 2015

[Prestashop][Reset][EN]After finished Prestashop installation, sometimes you might forgot your administrative password, how should you do?

After finished Prestashop installation, sometimes you might forgot your administrative password, how should you do?

            Usually, when the Prestashop has been finished installation, it recurrently problem after finished was you have forgot your password or your own password were incorrect, therefore, the KEY of Prestashop has changed on new website so that you could not login from your password.




How to be solved the problem.

You could solve the problem via SQL Command to reset the password in order to using from this structure.
UPDATE ps_employee
SET passwd = MD5('<_COOKIE_KEY_>password')
WHERE ps_employee.id_employee = 1;


<_COOKIE_KEY_> using the key from path \config\settings.inc.php  it was appeared as below




define('_COOKIE_KEY_', 'bVW1yoNBuNjYOgJKBAbFVr9CWCFPb02LY86SThwhaL0R8GP0v78SaV0f');

UPDATE ps_employee
SET passwd = md5('<_COOKIE_KEY_>newpassword')
WHERE ps_employee.id_employee = 1;

Using MD5, you could be created with the key combines [newpassword] so that you used with fuction MySQL or function via PHP which one you do like.


UPDATE ps_employee
SET passwd = md5(' 'bVW1yoNBuNjYOgJKBAbFVr9CWCFPb02LY86SThwhaL0R8GP0v78SaV0f newpassword')
WHERE ps_employee.id_employee = 1;


In order that you used WHERE filter command via MySQL you chose [ id_employee = 1] so that ID from Admin, If you wanted to reset other employee, you could reset password similar to Admin step.



Good luck to you.





Tuesday, June 23, 2015

[Prestashop][Reset][Password] ติดตั้ง Prestashop ใหม่ แล้วเกิดลืมพาสเวิร์ดแอดมิน ต้องแก้ไขอย่างไรดี?

[Prestashop][Reset][Password] ติดตั้ง Prestashop ใหม่ แล้วเกิดลืมพาสเวิร์ดแอดมิน ต้องแก้ไขอย่างไรดี?


          บ่อยครั้งที่เราติดตั้งระบบ Prestashop แล้วมักจะเกิดปัญหากับ Server กรณีที่เราไม่สามารถจำ Password ของ Admin ได้ ทั้งนี้อาจจะเนื่องมาจาก KEY ของ Prestashop นั้นเปลี่ยนไป จึงไม่สามารถที่จะทำการ Login ได้




วิธีการแก้ไข
สามารถแก้ไขผ่านรูปแบบ SQL Command ได้โดยตรงสำหรับการรีเซตพาสเวิร์ด โดยมีโครงสร้างดังต่อไปนี้
UPDATE ps_employee
SET passwd = MD5('<_COOKIE_KEY_>password')
WHERE ps_employee.id_employee = 1;


<_COOKIE_KEY_> ได้มาจาก  \config\settings.inc.php  จะปรากฏในหน้าจอนี้



define('_COOKIE_KEY_', 'bVW1yoNBuNjYOgJKBAbFVr9CWCFPb02LY86SThwhaL0R8GP0v78SaV0f');

UPDATE ps_employee
SET passwd = md5('<_COOKIE_KEY_>newpassword')
WHERE ps_employee.id_employee = 1;

การทำ MD5 จะทำจาก <_COOKIE_KEY_> + newpassword ซึ่งผ่าน mysql หรือจาก function ของ PHP ก็ได้

UPDATE ps_employee
SET passwd = md5(' 'bVW1yoNBuNjYOgJKBAbFVr9CWCFPb02LY86SThwhaL0R8GP0v78SaV0f newpassword') 
WHERE ps_employee.id_employee = 1;


จะเห็นได้ว่า WHERE เราใช้ id_employee = 1 เนื่องจากเป็น ID ของ admin ซึ่งถ้าหากต้องการจะรีเซ็ตพาสเวิร์ด ของ employee ท่านอื่น ๆ ก็สามารถใช้งานได้เหมือนกัน


ขอให้โชคดีเป็นของคุณ





Sunday, June 21, 2015

[PrestaShop][Language][EN] Deep into the translation of modules and system in PrestaShop (Final Episode) Part 2

[PrestaShop][Language][EN] Deep into the translation of modules and system in PrestaShop (Final Episode) Part 2

In the last episode of translations in prestashop, you will see the structure of theme as follows,

The structure of folder Lang from theme for instance, \themes\ap_office\lang. it is the last folder that I will explain.
Please look at below
global $_LANG; 
$_LANG = array(); 

$_LANG['404_d0fbda9855d118740f1105334305c126'] = 'Page not found'; 
$_LANG['404_44b1d05764b093cb00c25b8228cb87d3'] = 'This page is not available'; 
$_LANG['addresses_d95cf4ab2cbf1dfb63f066b50558b07d'] = 'My account'; 
$_LANG['addresses_e45be0a0d4a0b62b15694c1a631e6e62'] = 'My addresses'; 

For the language in which is written by theme that It has a new variable, so you will see the name is $_LANG, and the name as a variable that controls all of messages to express on all screen that more details as below.
$_LANG['addresses_e45be0a0d4a0b62b15694c1a631e6e62'] = 'My addresses'; 
$_LANG means a variable
addresses_ means an action or a template file(*.tpl) that is expected a relations of expression on screen for this example you will see a relation of language and addresses.tpl that contains a command or sentence for instance,
{l s='My addresses'}  you will see the language tag is too small detail, moreover you may not write mod(ule) tag concatenates the language tag.

e45be0a0d4a0b62b15694c1a631e6e62 means MD5 of My addresses
'My addresses' means a message or string to express on screen

          The concluding of explaining translation language, you will see the prestashop that is designed for support multilingual or using multiple language website as well as comfortable.
even though, there are more parts of language I won’t explain but it has more important as good as template file that is a language of database, as if I have never explained on the other hand you can write and save many languages on the screen of prestashop system that the system provided a part of optional language too, furthermore, you will write more details and more languages If you want to express it.


Hopefully, All the articles that I wrote, It will explain you so that you will understand in mechanism of multilingual in prestashop as well as possible. If you have some question you can send a message for me. I glad to meet you all guys.


WindowsDNA wrote.


[PrestaShop][Language][EN] Deep into the translation of modules and system in PrestaShop (Final Episode) Part 1

[PrestaShop][Language][EN] Deep into the translation of modules and system in PrestaShop (Final Episode) Part 1

          Folder both Translations and Lang that there are more different structure, Today, I will explain all of structures to you so that you would try to use its correction and automation if you use with Prestashop Automatic Translations with google.

The structure of translations from system for instance, \translations\en\admin.php

global $_LANGADM; 
$_LANGADM = array(); 

$_LANGADM['AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected'; 
$_LANGADM['AdminAddressese25f0ecd41211b01c83e5fec41df4fe7'] = 'Delete selected items?'; 
$_LANGADM['AdminAddressesb718adec73e04ce3ec720dd11a06a308'] = 'ID'; 

If variables as a part of admin section or it’s an expression a message from backend zone that it will use variable name is $_LANGADM

$_LANGADM['AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected'; 

$_LANGADM means a name of variable
AdminAddresses means module’s name which express with each part
d3b206d196cd6be3a2764c1fb90b200f means MD5 of a message’s name is ‘Delete selected’
'Delete selected' means a message that you want to express on the screen

Although, It has many variables for admin section as if $_ERRORS, $_FIELDS, $_LANGPDF except $_TABS, so It contains a key without encrypt with MD5

the structure of translations from module for instance, fbconnect_psb\translations
global $_MODULE; 
$_MODULE = array(); 
$_MODULE['<{fbconnect_psb}prestashop>registration_fb_6335a00a08fde0fbb8f6d6630cdadd92'] = 'ข้อมูลส่วนบุคคล'; 
$_MODULE['<{fbconnect_psb}prestashop>registration_fb_b78a3223503896721cca1303f776159b'] = 'คำนำหน้า'; 
You will see the structure that It has a different variable which the prestashop system use a name of variable called $_MODULE as follows,
$_MODULE['<{fbconnect_psb}prestashop>registration_fb_6335a00a08fde0fbb8f6d6630cdadd92'] = 'ข้อมูลส่วนบุคคล'; 
$_MODULE means a name’s variable for get value of language
<{fbconnect_psb}prestashop>registration_fb_ means the key that is a part of language’s express and there are covered 3 attributes such as,
·       {fbconnect_psb} means a module name
·       <prestashop> means a Tag of prestashop
·       registration_fb means an action or a part of template file (*.tpl)

When 3 attributes compound, the language file will support module that have a several template files with only one file.

PS1: Even though, it contains the same word, but it is different template file. You must write a new key of template file.

PS2: For example a template file, you will see a statement as bellow,
{l s='Your personal information' mod='fbconnect_psb'}
It means a l(anguage) that contains s(tring) name is ‘Your personal information’ in a part of mod(ule) name is fbconnect_psb that It relates with en.php or th.php from the explanation above.


6335a00a08fde0fbb8f6d6630cdadd92   means MD5 of a message name is “ข้อมูลส่วนบุคคล

'ข้อมูลส่วนบุคคล' means a message you want to express on the screen

to be continued...

http://windowsdna.blogspot.com/2015/06/prestashoplanguageen-deep-into_21.html

Saturday, June 20, 2015

[PrestaShop][Language] เจาะลึกกับ Translations ในส่วนของ Module และ ระบบ

[PrestaShop][Language] เจาะลึกกับ Translations ในส่วนของ Module และ ระบบ (ภาคจบ)
          ใน Folder Translations และ Lang นั้น มีโครงสร้างที่แตกต่างกัน วันนี้จะขออธิบายโครงสร้างทั้งหมด เพื่อให้ทุกท่านได้ลองใช้งานกันได้ถูกต้องและเป็นอัตโนมัติ หากใช้งานคู่กับ Prestashop Automatic Translations with Google

โครงสร้าง translations จากระบบ ตัวอย่างเช่น \translations\en\admin.php
global $_LANGADM; 
$_LANGADM 
= array(); 

$_LANGADM
['AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected'; 
$_LANGADM
['AdminAddressese25f0ecd41211b01c83e5fec41df4fe7'] = 'Delete selected items?'; 
$_LANGADM
['AdminAddressesb718adec73e04ce3ec720dd11a06a308'] = 'ID'; 

หากเป็นตัวแปรของ admin หรือทำหน้าที่แสดงข้อความจากส่วน Backend นั้นจะใช้ ตัวแปรชื่อว่า $_LANGADM โดยมีส่วนประกอบดังนี้
$_LANGADM['AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected'; 

$_LANGADM คือ ชื่อตัวแปร
AdminAddresses คือ ชื่อโมดูลที่แสดงผลในแต่ละส่วน
d3b206d196cd6be3a2764c1fb90b200f คือ  MD5 ของข้อความ ‘Delete selected’
'Delete selected' คือ ข้อความที่ต้องการแสดงผล
ทั้งนี้ยังมีอีกหลาย ๆ ตัวแปรสำหรับส่วนของ admin ไม่ว่าจะเป็น $_ERRORS, $_FIELDS, $_LANGPDF ยกเว้นแต่ $_TABS จะระบุ Key ที่ไม่ต้องการ Encrypt ด้วย MD5

โครงสร้าง translations จากโมดูล ตัวอย่างเช่น fbconnect_psb\translations
global $_MODULE; 
$_MODULE 
= array(); 
$_MODULE
['<{fbconnect_psb}prestashop>registration_fb_6335a00a08fde0fbb8f6d6630cdadd92'] = 'ข้อมูลส่วนบุคคล'; 
$_MODULE
['<{fbconnect_psb}prestashop>registration_fb_b78a3223503896721cca1303f776159b'] = 'คำนำหน้า'; 

จะสังเกตุได้ว่า โครงสร้าง Translations ของ โมดูลนั้น จะมีตัวแปรที่แตกต่างออกไป ซึ่งระบบใน Prestashop เลือกใช้เป็นตัวแปรชื่อ $_MODULE โดยมีรายละเอียดดังนี้
$_MODULE['<{fbconnect_psb}prestashop>registration_fb_6335a00a08fde0fbb8f6d6630cdadd92'] = 'ข้อมูลส่วนบุคคล'; 
$_MODULE คือ ตัวแปรสำหรับเก็บภาษา
<{fbconnect_psb}prestashop>registration_fb_ คือ Key ของการแสดงผลของภาษาในแต่ละส่วน โดยจะมีส่วนประกอบย่อยดังนี้
·       {fbconnect_psb} ชื่อโมดูล
·       <prestashop> คือ Tag
·       registration_fb คือ Action หรือ template File(*.tpl) ของแต่ละหน้าจอของโมดูลนั้น ๆ
เมื่อ 3 ส่วนนี้ประกอบเข้าด้วยกัน จะรองรับ Module ที่มี Template หลาย ๆ หน้าจอได้ ด้วย translation ไฟล์เดียว
** ข้อสำคัญ ถึงแม้ว่าจะมีคำ ๆ เดียวกัน แต่ต่างกันระหว่าง Template จำเป็นจะต้องเขียน Key ที่แตกต่างกันด้วย
*** สำหรับ ไฟล์ Template (*.tpl) จะเห็นวิธีการเขียนการแสดงผลของข้อความเป็นดังนี้
{l s='Your personal information' mod='fbconnect_psb'}
หมายความว่า l(anguage) ที่มีข้อความ s(tring) ชื่อ Your personal information ในส่วนของ mod(ule) ชื่อว่า fbconnect_psb ซึ่งจะสัมพันธ์กับ en.php หรือ th.php ในคำอธิบายด้านบน

6335a00a08fde0fbb8f6d6630cdadd92 คือ MD5 ของข้อความ ข้อมูลส่วนบุคคล
'ข้อมูลส่วนบุคคล'คือ ข้อความที่ต้องการแสดงผล

โครงสร้าง lang จาก theme ตัวอย่างเช่น \themes\ap_office\lang ซึ่งเป็นตัวอย่างสุดท้าย
global $_LANG; 
$_LANG 
= array(); 

$_LANG
['404_d0fbda9855d118740f1105334305c126'] = 'Page not found'; 
$_LANG
['404_44b1d05764b093cb00c25b8228cb87d3'] = 'This page is not available'; 
$_LANG
['addresses_d95cf4ab2cbf1dfb63f066b50558b07d'] = 'My account'; 
$_LANG
['addresses_e45be0a0d4a0b62b15694c1a631e6e62'] = 'My addresses'; 

สำหรับ language ที่ได้เขียนผ่าน theme นั้น จะมีลักษณะ ตัวแปรใหม่ ซึ่งเราจะเห็นว่าใช้ตัวแปรชื่อ $_LANG โดยที่ตัวแปรนี้จะควบคุมการแสดงผลทั้งหมดของ THEME โดยมีรายละเอียดดังนี้
$_LANG['addresses_e45be0a0d4a0b62b15694c1a631e6e62'] = 'My addresses'; 
$_LANG คือตัวแปร
addresses_ คือ Action หรือ Template File(*.tpl) ในการกำหนดความสัมพันธ์ของการแสดงผลในหน้าจอ เช่นตัวอย่างนี้จะสัมพันธ์กับ addesses.tpl ซึ่งภายในไฟล์จะเขียนคำสั่งในการแสดงผลในตัวอย่างนี้
{l s='My addresses'} จะเห็นได้ว่าเป็น Language ย่อส่วนโดยไม่ต้องระบุ mod(ule) ต่อท้าย เพราะใช้ไฟล์ language โดยรวมของ theme ไปแล้ว

e45be0a0d4a0b62b15694c1a631e6e62 คือ MD5 ของ My addresses
'My addresses' คือ ค่าที่ต้องการแสดงข้อความผ่านหน้าจอต่าง ๆ


          สรุปโดยรวม จะเห็นได้ว่า การออกแบบ Prestashop นั้นได้ถูกออกแบบมาเพื่อรองรับ Multilingual หรือการทำเว็บไซต์หลายภาษามาเป็นอย่างดี อย่างไรก็ตามจะมี Language อื่น ๆ ที่ไม่ได้กล่าวถึง แต่ก็มีส่วนสำคัญคือ Language ใน Database แต่ที่ไม่กล่าวถึงเนื่องจาก ทุกท่านสามารถบันทึกผ่านหน้าจอของระบบได้เลย โดยที่ระบบจะมีให้เลือกบันทึกข้อความผ่าน language แต่ละส่วนด้วยเช่นกัน เพื่อให้ เนื้อหาที่แสดงในหน้าจอนั้นมีความครบถ้วนในทุก ๆ ภาษาที่ผู้เขียนต้องการจะสื่อ


หวังเป็นอย่างยิ่งว่า บทความนี้จะทำให้ทุกท่านเข้าใจใน กลไก การทำงานหลายภาษาของ Prastashop ได้เป็นอย่างดี หากมีข้อสงสัย ส่งข้อความสอบถามได้ครับ ยินดีต้อนรับทุกท่าน

Sunday, June 14, 2015

[PrestaShop] A problem in ‘TECHNICAL ERROR: unable to load form. Details Error thrown:’ message

[PrestaShop] A problem in ‘TECHNICAL ERROR: unable to load form. Details Error thrown:’ message

As Using a prestashop in multilingual, we usually have a problem that loaded data to show from JavaScript with json format, moreover the prestashop called the load with its global function in class path ‘\classes\Tools.php’

An example function,
1.                  public static function jsonEncode($data)
2.           {
3.               if (function_exists('json_encode'))
4.                   return json_encode($data );
5.               else
6.               {
7.                   include_once(_PS_TOOL_DIR_.'json/json.php');
8.                   $pear_json = new Services_JSON();
9.                   return $pear_json->encode($data);
10.           }
11.       }

How to solved this, you ought to add command in line number 4 with;
            return json_encode($data, JSON_UNESCAPED_UNICODE );
You will have never found a message of problem anymore.


Congratulations, all of you for solved problem.