Showing posts with label Admin. Show all posts
Showing posts with label Admin. Show all posts

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 ท่านอื่น ๆ ก็สามารถใช้งานได้เหมือนกัน


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





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 ได้เป็นอย่างดี หากมีข้อสงสัย ส่งข้อความสอบถามได้ครับ ยินดีต้อนรับทุกท่าน

Saturday, June 06, 2015

[PrestaShop][EN] Describing more detail in structure of PrestaShop for people who want to write PrestaShop in Multilanguage Part 2


          The latest blog, you have known about structure in PrestaShop for using Multilanguage or dynamic language after that I will explain more information in this structure that how the structure is.  For understanding before you customize the PrestaShop by yourself

admin.php File from folder translations
$_LANGADM['AdminCartRulesd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected';

Explaining the structure
$_LANGADM is a variable called Array
'AdminCartRulesd3b206d196cd6be3a2764c1fb90b200f' is the key of the Array it is a part of module and md5 string
d3b206d196cd6be3a2764c1fb90b200f is MD5 of string such as Delete selected = d3b206d196cd6be3a2764c1fb90b200f

‘Delete selected’; is value of the word or statement from Array
For example;
If you change the word from ‘Delete selected’ to ‘selected to delete’, the word on the screen display will be changed. Absolutely, if you want to translate other language you can do this.

For example: changing the language
$_LANGADM['AdminCartRulesd3b206d196cd6be3a2764c1fb90b200f'] = ' Sil seçili '; // turkish

P.S. It is more important, when you change value of key of the Array, you must not change md5 key that the key is ‘Delete selected’ encrypted.
On next paragraph, I will explain more detail for key md5 (read more ***)

a template file from modules, in this case, I choose blockuserinfo module. when you open folder blockuserinfo on ‘\modules\blockuserinfo’ you will look .tpl file at that folder, surely, filename .tpl is a PHP Smarty template that is on views folder or outside that folder.

For example: PHP Smarty Template
<p id="header_user_info">
                        {l s='Welcome' mod='blockuserinfo'}
                        {if $logged}
                                     <a href="{$link->getPageLink('my-account', true)|escape:'html'}" title="{l s='View my customer account' mod='blockuserinfo'}" class="account" rel="nofollow"><span>{$cookie->customer_firstname} {$cookie->customer_lastname}</span></a>
                                     <a href="{$link->getPageLink('index', true, NULL, "mylogout")|escape:'html'}" title="{l s='Log me out' mod='blockuserinfo'}" class="logout" rel="nofollow">{l s='Sign out' mod='blockuserinfo'}</a>
                        {else}
                                     <a href="{$link->getPageLink('my-account', true)|escape:'html'}" title="{l s='Log in to your customer account' mod='blockuserinfo'}" class="login" rel="nofollow">{l s='Sign in' mod='blockuserinfo'}</a>
                        {/if}
            </p>
 

In the structure .tpl, the file that contains tag for display Multilanguage on screen as follows;
{l s='Welcome' mod='blockuserinfo'}
{l s='View my customer account' mod='blockuserinfo'}
{l s='Log me out' mod='blockuserinfo'}
{l s='Log in to your customer account' mod='blockuserinfo'}
{l s='Sign in' mod='blockuserinfo'}


Describing:
{} is a tag for display from PHP smarty
l is a language
s is a string or sentence
mod is a module name

Normally, writing tag in smarty template I will always write in an English for standardization, so it’s meaning I have never written en.php file. Even though, some module write tag smarty not standardization I need to write en.php file too.
Be careful, writing “ l s=’String key’ from native language you must encrypt md5 from that language.


Next session, I will explain a relation of translations and module with .tpl and .php

Tags:
Admin, Introduction, Language, Module, Multilanguage, PHP, PrestaShop, Smarty, Translation, 

Writer:

WindowsDNA