EaseUS Data Recovery Wizard Professional key “bản quyền”

Phần mềm này được báo Dân Trí giới thiệu và cung cấp 1 phiên bản khuyến mãi đầy đủ tính năng. Các bạn có thể xem tại đây:
http://dantri.com.vn/suc-manh-so/khoi-phuc-du-lieu-bi-xoa-nham-372920.htm
Trích dẫn 1 đoạn trong bài viết:

EASEUS Data Recovery Wizard là phần mềm khôi phục lại dữ liệu bị xóa nhầm, bị mất do format ổ cứng, hay thậm chí bị mất do lỗi ổ cứng hoặc sau khi cài đặt mới Windows…  Tuy nhiên, phiên bản dùng thử của phần mềm chỉ cho phép tìm lại các file bị mất, nhưng lại không cho phép người dùng khôi phục chúng. Phiên bản đầy đủ của phần mềm có giá lên đến 65.95 USD.

 

Hãng EASEUS đang có chương trình khuyến mãi cung cấp phiên bản đầy đủ của phần mềm cho người dùng hoàn toàn miễn phí.

 

Download phiên bản đầy đủ của chương trình tại đây.

 

Lưu ý: Đây là chương trình khuyến mãi của EASEUS cung cấp cho người dùng trước khi ra mắt phiên bản phần mềm mới, do vậy, bản đầy đủ của phần mềm là hoàn toàn hợp pháp. Sau khi download, bạn cài đặt và sử dụng mà không cần phải tiến hành thêm bất cứ bước nào.

Phiên bản mình giới thiệu là phiên bản EaseUS Data Recovery Wizard Professional mới nhất 5.8.5 giá 89.95$

EaseUS Data Recovery Wizard Professional 5.8.5 New Update
EaseUS Data Recovery Wizard Professional 5.8.5 New Update

So sánh các phiên bản:
So sánh các phiên bản của EaseUS Data Recovery Family
So sánh các phiên bản của EaseUS Data Recovery Family

Link download phần mềm:
Trang chủ: http://www.easeus.com/datarecoverywizardpro/
DropBox: https://www.dropbox.com/s/om42c4achjia5gj/EaseUS_Data_Recovery_Wizard_Professional_5.8.5_drw_trial.exe
SkyDrive: http://sdrv.ms/1490Fmt
GoogleDrive: https://docs.google.com/file/d/0B0x5WbPiQ0WtVXJqMHRMLW9qUW8/edit?pli=1
Và key “bản quyền”
IL9SW-3YE3M-LSMR8-PCDHB-L7FDL
Key này áp dụng cho các phiên bản <5.8.5 các phiên bản sau mình sẽ cập nhật tiếp. Chúc các bạn thành công!

Quản lý profile trên Firefox

Giới thiệu về Profile Manager

Firefox lưu thông tin dấu trang(bookmark), mật khẩu, các thiết lập riêng của người sử dụng trong các profile(hồ sơ) khác nhau, mỗi profile được lưu trữ trong một vị trí riêng biệt để dễ dàng sao lưu khôi phục. Vì thế bạn có thể sử dụng nhiều profile trên firefox cho nhiều người dùng khác nhau. Mỗi người dùng sẽ có thiết đặt riêng, bookmark riêng, mật khẩu riêng đồng nghĩa với việc có thể tạo và truy nhập vào nhiều tài khoản trên 1 trang web…Bạn có thể tạo, xóa, đổi tên, chuyển đổi profile với Profile Manager.
Để mở Profile Manager các bạn có thể mở hộp thoại Run (Start/Run hoặc Windows+R) gõ lệnh firefox.exe -p

Quan trọng: Để mở Profile Manager thì Firefox(FF) phải thoát hoàn toàn

Sau khi gõ lệnh cửa sổ Profile Manager sẽ hiện ra

FF Profile Manager
FF Profile Manager

Để mỗi lần mở trình duyệt FF sẽ mở Profile Manager thì chúng ta thêm tham số -p vào sau đường dẫn trong shotcut ở desktop

Shotcut Profile Manager Firefox
Shotcut Profile Manager Firefox

Tạo 1 profile

  • Trong cửa sổ Profile Manager click Create Profile… để mở Create Profile Wizard

    Create Profile Wizard
    Create Profile Wizard
  • Nhấn Next sau đó nhập tên profile
  • Bạn có thể chọn nơi lưu trữ bằng cách click vào Choose Folder…
  • Nhấn Finish để kết thúc

Xóa 1 profile

  • Trong cửa sổ Profile Manager chọn profile muốn loại bỏ sau đó nhấn Delete Profile…
  • FF sẽ yêu cầu xác nhận muốn xóa
    Confirm remove profile
    Confirm remove profile
  • Don’t Delete Files: xóa profile nhưng không xóa các file lưu trữ trên ổ cứng. Nếu chọn tùy chọn này bạn có thể khôi phục lại profile từ những file được lưu giữ
  • Delete Files: xóa profile và các file liên quan

Nếu bạn chọn Delete Files bookmark, password và các setting của profile đó sẽ mất và không có tùy chọn khôi phục lại

Đổi tên profile

  • Trong cửa sổ Profile Manager chọn profile muốn đổi tên sau đó nhấn Rename Profile…
  • Nhập tên mới và nhấn OK

Nếu bạn nào dùng Chrome rồi thì thấy tính năng quản lý profile của FF không tiện lợi như tính năng đăng nhập nhiều người dùng của Chrome. Chrome sẽ tự động lưu lại những thông tin bookmark, history…và lần sau đăng nhập tại bất kỳ đâu nó sẽ tự đồng bộ. Tuy nhiên với vấn đề bảo mật thông tin cá nhân mình thấy điều đó thật bất tiện. Nhất là khi Google đang dính vào các cáo buộc thu thập thông tin và theo dõi người dùng.

Thay đổi ảnh nền opencart từ admin panel

Mìnht thường thay đổi ảnh nền cho website theo các sự kiện lớn. Việc thay đổi ảnh nền vừa làm cho website “mới” hơn khi khách hàng ghé thăm vừa thể hiện được nội dung các khuyến mãi. Đối với những bạn biết code thì việc này cũng đơn giản chỉ là upload ảnh nền và sửa CSS. Tuy nhiên mỗi lần như vậy cũng khá mất công. Còn đối với những người không biết code thì chức năng thay đổi ảnh nền thì không thể thiếu được. Thủ thuật này sẽ giúp các bạn thêm chức năng thay đổi ảnh nền vào trong setting của cửa hàng trong admin panel.
Các bạn thực hiện các bước sau:
+ Sửa file …\admin\view\template\setting\setting.tpl
Tìm đoạn code:
[html]
<tr>
<td><?php echo $entry_logo; ?></td>
<td><div class="image"><img src="<?php echo $logo; ?>" alt="" id="thumb-logo" />
<input type="hidden" name="config_logo" value="<?php echo $config_logo; ?>" id="logo" />
<br />
<a onclick="image_upload(‘logo’, ‘thumb-logo’);"><?php echo $text_browse; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$(‘#thumb-logo’).attr(‘src’, ‘<?php echo $no_image; ?>’); $(‘#logo’).attr(‘value’, ”);"><?php echo $text_clear; ?></a></div></td>
</tr>
[/html]
Thêm đoạn code này vào ngay bên dưới nó:
[html]
<tr>
<td><?php echo $entry_background; ?></td>
<td><div class="image"><img src="<?php echo $background; ?>" alt="" id="thumb-background" />
<input type="hidden" name="config_background" value="<?php echo $config_background; ?>" id="background" />
<br />
<a onclick="image_upload(‘background’, ‘thumb-background’);"><?php echo $text_browse; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$(‘#thumb-background’).attr(‘src’, ‘<?php echo $no_image; ?>’); $(‘#logo’).attr(‘value’, ”);"><?php echo $text_clear; ?></a></div></td>
</tr>
[/html]
+ Sửa file …\admin\language\vietnamese\setting\setting.php
Thêm dòng code này vào:
[php]$_[‘entry_background’] = ‘Background:’;[/php]
+ Sửa file …\admin\controller\setting\setting.php
– Tìm dòng code
[php]$this->data[‘entry_logo’] = $this->language->get(‘entry_logo’);[/php]
Thay thế:
[php]$this->data[‘entry_background’] = $this->language->get(‘entry_background’);[/php]
– Tìm đoạn code sau:
[php]
if ($this->config->get(‘config_logo’) && file_exists(DIR_IMAGE . $this->config->get(‘config_logo’)) && is_file(DIR_IMAGE . $this->config->get(‘config_logo’))) {
$this->data[‘logo’] = $this->model_tool_image->resize($this->config->get(‘config_logo’), 100, 100);
} else {
$this->data[‘logo’] = $this->model_tool_image->resize(‘no_image.jpg’, 100, 100);
}
[/php]
Thêm sau nó đoạn code:
[php]
if (isset($this->request->post[‘config_background’])) {
$this->data[‘config_background’] = $this->request->post[‘config_background’];
} else {
$this->data[‘config_background’] = $this->config->get(‘config_background’);
}

if ($this->config->get(‘config_background’) && file_exists(DIR_IMAGE . $this->config->get(‘config_background’)) && is_file(DIR_IMAGE . $this->config->get(‘config_background’))) {
$this->data[‘background’] = $this->model_tool_image->resize($this->config->get(‘config_background’), 100, 100);
} else {
$this->data[‘background’] = $this->model_tool_image->resize(‘no_image.jpg’, 100, 100);
}
[/php]

OK. Đến đây thì trong admin bạn có thể upload ảnh nền và lưu vào setting được rồi

Thay đổi ảnh nền trong admin Opencart
Thay đổi ảnh nền trong admin Opencart

Muốn hiển thị ảnh nền thì chúng ta phải chỉnh sửa một chút nữa ngoài fontend
+ Sửa file ..\catalog\view\theme\default\template\common\header.tpl
Thay đổi thẻ body như sau:
[html]<body<?php if ($background) { ?> style="background-image: url(<?php echo $background; ?>)"<?php } ?>>[/html]
+ Sửa file ..\catalog\controller\common\ header.php
Tìm đoạn code sau
[php]
if ($this->config->get(‘config_logo’) && file_exists(DIR_IMAGE . $this->config->get(‘config_logo’))) {
$this->data[‘logo’] = $server . ‘image/’ . $this->config->get(‘config_logo’);
} else {
$this->data[‘logo’] = ”;
}
[/php]
Thêm vào bên dưới nó:
[php]
if ($this->config->get(‘config_background’) && file_exists(DIR_IMAGE . $this->config->get(‘config_background’))) {
$this->data[‘background’] = $server . ‘image/’ . $this->config->get(‘config_background’);
} else {
$this->data[‘background’] = ”;
}
[/php]
Như vậy là cơ bản đã xong 99% rồi việc còn lại bạn chỉnh css cho phù hợp với website của bạn là ok.

Thêm thiết lập Meta Keywords cho cửa hàng trong opencart

Có lẽ thẻ meta keywords từ lâu không còn được đánh giá cao trong SEO tuy nhiên nó vẫn là các chuẩn trong html vì thế tuy nó không cần thiết nhưng cũng không thể thiếu. Opencart không phải không hỗ trợ thẻ meta keywords nó hỗ trợ ở các danh mục, sản phẩm, thông tin tuy nhiên lại thiếu chỗ quan trọng nhất là trang chủ của các gian hàng. Hôm nay mình hướng dẫn các bạn thêm thiết lập meta keywords trong admin panel và hiển thị nó ra trang chủ.

Setting meta keyword 4 Opencart
Setting meta keyword 4 Opencart

Các bạn thực hiện các bước sau
– Sửa file admin/controller/setting/setting.php
+ Tìm dòng
[php]$this->data[‘entry_meta_description’] = $this->language->get(‘entry_meta_description’);[/php]
Thêm bên dưới nó dòng code sau:
[php]$this->data[‘entry_meta_keyword’] = $this->language->get(‘entry_meta_keyword’);[/php]
+ Tìm đoạn code sau:
[php]
if (isset($this->request->post[‘config_meta_description’])) {
$this->data[‘config_meta_description’] = $this->request->post[‘config_meta_description’];
} else {
$this->data[‘config_meta_description’] = $this->config->get(‘config_meta_description’);
}
[/php]
Thêm trước nó các dòng code sau:
[php]
if (isset($this->request->post[‘config_meta_keyword’])) {
$this->data[‘config_meta_keyword’] = $this->request->post[‘config_meta_keyword’];
} else {
$this->data[‘config_meta_keyword’] = $this->config->get(‘config_meta_keyword’);
}
[/php]
– Sửa file admin/view/template/setting/setting.tpl
Tìm đoạn code sau:
[html]
<tr>
<td><?php echo $entry_meta_description; ?></td>
<td><textarea name="config_meta_description" cols="40" rows="5"><?php echo $config_meta_description; ?></textarea></td>
</tr>
[/html]
Thêm trước nó dòng code sau:
[html]
<tr>
<td><?php echo $entry_meta_keyword; ?></td>
<td><textarea name="config_meta_keyword" cols="40" rows="5"><?php echo $config_meta_keyword; ?></textarea></td>
</tr>
[/html]
– Sửa file admin/language/english/setting/setting.php hoặc tùy theo ngôn ngữ của bạn đang sử dụng
Tìm dòng
[php]$_[‘entry_meta_description’] = ‘Meta Tag Description:’;[/php]
Thêm sau nó dòng
[php]$_[‘entry_meta_keyword’] = ‘Meta Keywords:’;[/php]
– Sửa file catalog/controller/common/home.php
Tìm dòng:
[php]$this->document->setDescription($this->config->get(‘config_meta_description’));[/php]
Thêm sau nó dòng:
$this->document->setKeywords($this->config->get(‘config_meta_keyword’));

OK thế là xong rồi đó. Nếu bạn làm đúng các bước trên thì khi vào Admin/System/Settings để cấu hình store của bạn trong tab Store sẽ hiện ra như sau:

Setting Meta Keyword Store
Setting Meta Keyword Store

Để chắc chắn view source trang chủ cửa hàng thấy thẻ meta keywords tức là đã thành công

Thẻ meta khi xem mã nguồn trang chủ
Thẻ meta khi xem mã nguồn trang chủ

Tự động điền SEO Keyword trong admin opencart

Opencart hỗ trợ SEO link thân thiện và cho phép tùy chỉnh seo keyword khi nhập sản phẩm, danh mục sản phẩm, các thông tin khác (Category, Product, Information). Điều này rất có lợi cho SEO tuy nhiên cũng khá hạn chế đối với những người ngại gõ nhiều (như mình) nhất là khi nhập lên đến hàng trăm sản phẩm. Vì vậy chúng ta nên tùy chỉnh để OC tự điền rồi chúng ta sửa như vậy sẽ tiện hơn.

Seo keyword autocomplete
Seo keyword autocomplete

Để làm được như vậy các bạn cần thực hiện các bước sau:
– Tìm file admin/view/template/common/header.tpl
– Thêm đoạn code trước thẻ

[html]</head>[/html]

[html]
<!–Auto Fill SEO URL–>
<script type="text/javascript">
$(document).ready(function(){
var keyword = $("input[name=keyword]");
if(!keyword.val()){
$("input[name^=’product_description’],input[name^=’category_description’],input[name=’name’],input[name^=’information_description’]").keyup(function(){
var SEOlink = $(this).val();
SEOlink = SEOlink.replace(/^\s+|\s+$/g, ”); // trim
SEOlink = SEOlink.toLowerCase();
// remove accents, swap, etc
var from = "ọẹạịụớđàáäâèéëêìíïîòóöôùúüûñcçčlľštžýnrrd·ạảãầấậẩẫăắằẳẵặ_ịỉĩ/ọỏõôồốộổỗơờởợởỡ;ẹẻẽềếệểễ:ụủũưừứựửữ,ỵỷỹỳ";

var to = "oeaiuodaaaaeeeeiiiioooouuuuncccllstzynrrd–aaaaaaaaaaaaaa-iii-ooooooooooooooo-eeeeeeee-uuuuuuuu-yyyy";
for (var i=0, l=from.length ; i<l ; i++) {
SEOlink = SEOlink.replace(new RegExp(from.charAt(i), ‘g’), to.charAt(i));
}
SEOlink = SEOlink.replace(/[^a-z0-9 -]/g, ”) // remove invalid chars
.replace(/\s+/g, ‘-‘) // collapse whitespace and replace by –
.replace(/-+/g, ‘-‘); // collapse dashes
// return SEOlink;
keyword.val(SEOlink + ‘.html’);
});
}
});
</script>
<!–End–>
[/html]
Ok như vậy là xong rồi đó. Thật đơn giản mà không phải bỏ 10$ để mua Extensions SEO Keywords Autocomplete, hay Autofill SEO Keywords. Chúc các bạn thành công

Xử lý lỗi trùng lặp link trong Opencart

Remove duplicate URL Opencart
Remove duplicate URL Opencart

Lỗi này xảy ra khi bạn bật tính năng SEO Friendly Link trong Opencart. Ví dụ cho các bạn dễ hiểu mình đưa ra 1 số link đều truy cập đến 1 sản phẩm:

http://sanakyviet.com/tu-dong/sanaky-vh-8099.snk
http://sanakyviet.com/tu-dong/tu-dong-sieu-thi/sanaky-vh-8099.snk

Để khắc phục lỗi này rất đơn giản các bạn chỉ cần sửa file /catalog/controller/common/seo_url.php
Tìm tất cả các dòng:
[php]$url .= ‘/’ . $query->row[‘keyword’];[/php]
Thay bằng dòng:
[php]$url = ‘/’ . $query->row[‘keyword’];[/php]

Chỉ cần bỏ 1 dấu . đi thôi nhưng hiệu quả thì các bạn sẽ thấy ngay. Nhiều người thích url phân cấp nhưng theo kinh nghiệm làm web lâu năm của mình thì url không phân cấp đơn giản cho thiết kế và lập trình cũng như SEO mà hiệu quả chẳng khác gì URL phân cấp cả.

Sau bài này mình cũng chưa biết tác dụng phụ của việc sửa đổi này. Có gì mình sẽ update thêm nhé

[PSD] Banner khuyến mãi giảm giá “Deal hôm nay”

Banner khuyến mãi Deal hôm nay kích thước 520×520. Gif động nhé. Các bạn download về có các font sử dụng trong đó luôn rồi nếu máy bạn chưa cài thì cài thêm font nhé
Demo:

Deal hôm nay
Deal hôm nay

Download:
http://www.mediafire.com/download.php?f3g9e9dvvc9bzso

Custom CKeditor cho Opencart

Trình soạn thảo mặc định của Opencart để rất ít chức năng khiến bạn khó khăn khi soạn thảo nội dung bài viết hay các mô tả khác. Việc soạn thảo không tốt ảnh hưởng đến thẩm mỹ của bài viết và khó khăn trong SEO. Hôm nay mình hướng dẫn các bạn thêm các tính năng vào bộ soạn thảo này. Thực chất là tùy chỉnh cấu hình của CKEditor thôi.
Các bạn tìm file config của CKEditor trong admin: admin/view/javascript/ckeditor/config.js. Nội dung file này như sau:
[js]
/**
* @license Copyright (c) 2003-2012, CKSource – Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/

CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For the complete reference:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
config.filebrowserWindowWidth = ‘800’;
config.filebrowserWindowHeight = ‘500’;
config.resize_enabled = false;
config.htmlEncodeOutput = false;
config.entities = false;
config.extraPlugins = ‘codemirror’;
config.codemirror_theme = ‘rubyblue’;
config.toolbar = ‘Custom’;

config.toolbar_Custom = [
[‘Source’],
[‘Maximize’],
[‘Bold’,’Italic’,’Underline’,’Strike’,’-‘,’Subscript’,’Superscript’],
[‘NumberedList’,’BulletedList’,’-‘,’Outdent’,’Indent’],
[‘JustifyLeft’,’JustifyCenter’,’JustifyRight’,’JustifyFull’],
[‘SpecialChar’],
‘/’,
[‘Undo’,’Redo’],
[‘Font’,’FontSize’],
[‘TextColor’,’BGColor’],
[‘Link’,’Unlink’,’Anchor’],
[‘Image’,’Table’,’HorizontalRule’]
];
};
[/js]
Muốn thêm button nào vào bạn chỉ cần thêm vào trong config.toolbar_Custom. Ví dụ mình muốn thêm chức năng PasteText,PasteFromWord mình thêm [‘PasteText’,’PasteFromWord’] vào sau dòng:
[js]
config.toolbar_Custom = [
[‘Source’],
[/js]
Thành:
[js]
config.toolbar_Custom = [
[‘Source’],
[‘PasteText’,’PasteFromWord’],
[/js]
Muốn thêm định dạng h1, h2, h3,…,h6 các bạn thêm [‘Styles’,’Format’], vào
[js]
config.toolbar_Custom = [
[‘Source’],
[‘PasteText’,’PasteFromWord’],
[‘Styles’,’Format’],
[/js]

Tùy chỉnh CKEditor Opencart
Tùy chỉnh CKEditor Opencart

Dưới đây là config full của toolbar (không có các plugins cài thêm nhé) các bạn có thể thêm chức năng nào vào tùy bạn chọn
[js]
config.toolbar_Full =
[
{ name: ‘document’, items : [ ‘Source’,’-‘,’Save’,’NewPage’,’DocProps’,’Preview’,’Print’,’-‘,’Templates’ ] },
{ name: ‘clipboard’, items : [ ‘Cut’,’Copy’,’Paste’,’PasteText’,’PasteFromWord’,’-‘,’Undo’,’Redo’ ] },
{ name: ‘editing’, items : [ ‘Find’,’Replace’,’-‘,’SelectAll’,’-‘,’SpellChecker’, ‘Scayt’ ] },
{ name: ‘forms’, items : [ ‘Form’, ‘Checkbox’, ‘Radio’, ‘TextField’, ‘Textarea’, ‘Select’, ‘Button’, ‘ImageButton’,
‘HiddenField’ ] },
‘/’,
{ name: ‘basicstyles’, items : [ ‘Bold’,’Italic’,’Underline’,’Strike’,’Subscript’,’Superscript’,’-‘,’RemoveFormat’ ] },
{ name: ‘paragraph’, items : [ ‘NumberedList’,’BulletedList’,’-‘,’Outdent’,’Indent’,’-‘,’Blockquote’,’CreateDiv’,
‘-‘,’JustifyLeft’,’JustifyCenter’,’JustifyRight’,’JustifyBlock’,’-‘,’BidiLtr’,’BidiRtl’ ] },
{ name: ‘links’, items : [ ‘Link’,’Unlink’,’Anchor’ ] },
{ name: ‘insert’, items : [ ‘Image’,’Flash’,’Table’,’HorizontalRule’,’Smiley’,’SpecialChar’,’PageBreak’,’Iframe’ ] },
‘/’,
{ name: ‘styles’, items : [ ‘Styles’,’Format’,’Font’,’FontSize’ ] },
{ name: ‘colors’, items : [ ‘TextColor’,’BGColor’ ] },
{ name: ‘tools’, items : [ ‘Maximize’, ‘ShowBlocks’,’-‘,’About’ ] }
];
[/js]
File config sau khi tùy chỉnh của mình
[js]
/**
* @license Copyright (c) 2003-2012, CKSource – Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/

CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For the complete reference:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
config.filebrowserWindowWidth = ‘800’;
config.filebrowserWindowHeight = ‘500’;
config.resize_enabled = false;
config.htmlEncodeOutput = false;
config.entities = false;
config.extraPlugins = ‘codemirror’;
config.codemirror_theme = ‘rubyblue’;
config.toolbar = ‘Custom’;

config.toolbar_Custom = [
[‘Source’],
[‘Maximize’],
[‘PasteText’,’PasteFromWord’],
[‘Styles’,’Format’],
[‘Bold’,’Italic’,’Underline’,’Strike’,’-‘,’Subscript’,’Superscript’],
[‘NumberedList’,’BulletedList’,’-‘,’Outdent’,’Indent’],
[‘JustifyLeft’,’JustifyCenter’,’JustifyRight’,’JustifyFull’],
[‘SpecialChar’],
‘/’,
[‘Undo’,’Redo’],
[‘Font’,’FontSize’],
[‘TextColor’,’BGColor’],
[‘Link’,’Unlink’,’Anchor’],
[‘Image’,’Table’,’HorizontalRule’]
];
};
[/js]

Hiện kích thước và trọng lượng sản phẩm trong opencart

Khi nhập sản phẩm trong Opencart trong tab Data chúng ta nhập tích thước, trọng lượng tuy nhiên nhiều bạn thắc mắc rằng không thấy thông tin này hiện ra ngoài trang chi tiết sản phẩm vì vậy chúng ta phải mất công nhập lại 2 thông tin này vào phần mô tả sản phẩm hoặc thuộc tính sản phẩm -> thừa thông tin và tốn thời gian.

2 thông tin về kích thước và trọng lượng sản phẩm được sử dụng trong module tính phí vận chuyển. Chúng ta có thể hiển thị thông tin này ra trang chi tiết sản phẩm.

Nhập kích thước và trọng lượng sản phẩm Opencart
Nhập kích thước và trọng lượng sản phẩm Opencart

B1: Sửa file /catalog/controller/product/product.php như sau:
– Tìm dòng:
[php]$this->data[‘text_tags’] = $this->language->get(‘text_tags’);[/php]
– Thêm vào dưới nó 2 dòng sau:
[php]
$this->data[‘text_weight’] = $this->language->get(‘text_weight’);
$this->data[‘text_size’] = $this->language->get(‘text_size’);
[/php]
-Tìm dòng:
[php]$this->data[‘points’] = $product_info[‘points’];[/php]
– Thêm vào bên dưới nó các dòng sau:
[php]
/*them kich thuoc va trong luong*/
$weight_class_id = $product_info[‘weight_class_id’];
$this->load->model(‘localisation/weight_class’);
$weight_classes = $this->model_localisation_weight_class->getWeightClass($weight_class_id);
$this->data[‘weight_class_title’] = $weight_classes[‘title’];
$length_class_id = $product_info[‘length_class_id’];
$this->load->model(‘localisation/length_class’);
$length_class = $this->model_localisation_length_class->getLengthClass($length_class_id);
$this->data[‘length_class_title’] = $length_class[‘title’];
$this->data[‘weight’] = number_format($product_info[‘weight’],2);
$this->data[‘length’] = number_format($product_info[‘length’],2);
$this->data[‘width’] = number_format($product_info[‘width’],2);
$this->data[‘height’] = number_format($product_info[‘height’],2);
/*end*/
[/php]
B2:Sửa file /catalog/view/theme/default/template/product/product.tpl
– Tìm đoạn code sau:
[html]
<?php foreach ($attribute_group[‘attribute’] as $attribute) { ?>
<tr>
<td><?php echo $attribute[‘name’]; ?></td>
<td><?php echo $attribute[‘text’]; ?></td>
</tr>
<?php } ?>
[/html]
– Thêm vào bên dưới nó đoạn code sau:
[html]
<!–hien thi kich thuoc va trong luong–>
<?php if ($weight) { ?>
<tr>
<td><?php echo $text_weight; ?></td>
<td><?php echo $weight; ?> <?php echo $weight_class_title; ?></td>
</tr>
<?php } ?>
<?php if ($length || $width || $height) { ?>
<tr>
<td><?php echo $text_size; ?></td>
<td><?php echo $width; ?> x <?php echo $height; ?> x <?php echo $length; ?> <?php echo $length_class_title; ?></td>
</tr>
<?php } ?>
<!–end–>
[/html]
B3: Sửa file ngôn ngữ /catalog/language/english/product/product.php hoặc bạn dùng ngôn ngữ khác thì thêm vào file ngôn ngữ tương ứng nhé
– Thêm vào đầu file 2 dòng sau
[php]
$_[‘text_search’] = ‘Search’;
$_[‘text_weight’] = ‘Weight’;
[/php]
Và đây là thành quả:

Hiện kích thước và trọng lượng sản phẩm Opencart
Hiện kích thước và trọng lượng sản phẩm Opencart

OK vậy là xong rồi. Code của mình chèn trọng lượng và kích thước theo đơn vị mà bạn chọn vào trong phần thuộc tính sản phẩm chứ không đơn thuần là chèn nguyên trọng lượng và kích thước mà không biết đơn vị tính của chúng.
Chúc các bạn thành công!

Sử dụng trình soạn thảo vi (Vim) trong Linux

Sở dĩ mình giới thiệu bài viết này vì trong quá trình quản trị Linux chủ yếu chúng ta thao tác qua các lệnh trên Console, và thường xuyên phải chỉnh sửa các file cấu hình trên hệ thống. VI ( hay vim, bản cải thiện của vi ) là trình editor chúng ta hay sửa dụng nhất. Do vậy, học cách sử dụng vi là một yêu cầu tối thiểu và cần thiết cho một người sử dụng Linux.

Dùng lệnh "man vi" để xem HDSD lệnh vi
Dùng lệnh “man vi” để xem HDSD lệnh vi

1. Cơ bản

– Sử dụng vi kèm theo tên file(s) muốn edit: vi one.txt two.txt etc.txt
– Có 2 mode: command mode và insert mode. Khi bắt đầu sử dụng lệnh vi, vi mặc định ở command mode. Hoặc ấn Esc để chuyển sang command mode khi người dùng đang ở insert mode.

2. Các lệnh edit cơ bản

– Ấn phím lệnh i hoặc a từ chế độ command mode để chuyển sang insert mode. i để thêm ký tự trước con trỏ, a để thêm ký tự sau con trỏ.
– Sử dụng lệnh h j k l hoặc các phím mũi tên tương ứng để di chuyển con trỏ sang trái, xuống, lên, sang phải.
– Sử dụng x xóa 1 ký tự, dw xóa 1 từ, dd xóa cả 1 dòng.
– Sử dụng số N đi trước phím lệnh để lặp lại N lần tác dụng của lệnh. Ví dụ, 3dw sẽ xóa 3 từ tính từ vị trí con trỏ.
– Sử dụng u ( = undo )để khôi phục lại những thay đổi trước đó.
– Sử dụng ZZ hay :wq lưu lại tất cả thay đổi và thoát.
– Sử dụng :q! thoát ra không lưu lại bất kỳ thay đổi nào.

3. Cắt và dán

– yy sao chép dòng hiện tại vào buffer, Nyy sao chép N dòng.
– p ( P ) dán nội dung từ buffer vào dưới ( trên ) dòng hiện tại

4. Nhảy đến hàng hay cột

– Gõ một số N trước ký tự G để đi đến dòng thứ N, vd 23G sẽ nhảy đến dòng 23.
– Gõ một số N trước ký tự | (pipe) để nhảy đến cột thứ N.

5. Sử dụng . để lặp lại action gần nhất. Ví dụ người dùng gõ i để insert dòng chữ “hello world”, sau đó chuyển sang chế độ command mode bằng phím Esc, nhảy xuống dòng và gõ . , dòng chữ “hello world” sẽ hiện ra.

6. Tìm kiếm

– Sử dụng / (?) đi theo sau là từ muốn tìm để tìm kiếm từ trong phần văn bản sau ( trước ) con trỏ. ví dụ /foobar hay ?foobar.
– Sau khi kết quả tìm kiếm đầu tiên hiện ra, sử dụng n để tìm kiếm tiếp trong phần văn bản còn lại sau con trỏ, N để tìm kiếm ngược trở lại đầu văn bản trước con trỏ.

7. Các lệnh colon ( đi sau dấu : )

– :%s/foo/bar/g tìm sự xuất hiện của “foo” trong toàn bộ file và thay thế bằng “bar”, /foo/bar/g chỉ thay thế ở dòng hiện tại.
– et nu hiển thị số dòng trước mỗi dòng, et nonu để bỏ hiển thị số dòng.
– :1,8d xóa từ dòng 1 cho đến dòng 8 trong file.
– Sử dụng ma để đánh dấu dòng hiện tại là a ( có thể là bất cứ ký tự nào từ a-z ). Sau đó dùng ‘a để nhảy đến dòng đã được dánh dấu là a từ bất cứ đâu. Có thể sử dụng với colon, :’a,’b d xóa tất cả các dòng bắt đầu từ dòng được đánh dấu là a cho đến dòng được đánh dấu là b, hoặc ngược lại.
– :w newfile.txt để save nội dung của file hiện tại vào một file mới là newfile.txt ( tựa “save as” bên Win Word ).
– :8,16 co 32 để copy dòng 8 đến 16 đến điểm sau dòng 32.
– :3,16 m 32 để chuyển rời dòng 8 đến 16 đến điểm sau dòng 32.
– Nếu dùng vi để mở nhiều file ( vi file1 file2 file3 ), có thể sử dụng :n để nhảy đến file tiếp theo và :rew để nhảy quay ngược lại đến file đầu tiên, :args để hiện thị tất cả các file đang được mở.

8. Vi for Smarties

– Sử dụng G để nhảy đến dòng cuối cùng của file.
– Khi xóa nhiều dòng, di chuyển con chuột đến dòng đầu tiên, gõ ma để đánh dấu, sau di đến dòng cuối cùng và gõ d’a để xóa những dòng đó.
– $ để nhảy xuống cuối dòng, :$ để nhảy đến dòng cuối của file.
– 0 để nhảy đến đầu dòng, :0 để nhảy tới dòng đầu tiên của file.
– d$ xóa từ vị trí con trỏ hiện tại đến cuối dòng.
– :10,$ d xóa từ dòng 10 cho đến dòng cuối cùng của file, hoặc ngược lại.
– :10,20 m 0 chuyển rời dòng 10 đến 20 lên trên dòng đầu tiên của file.

9. Shell

– Sử dụng :!command để thi hành lệnh command trong môi trường vi.

Trên đây là giới thiệu cách sử dụng vi một cách cơ bản và đủ dùng cho mọi đối tượng người sử dụng linux. Người dùng muốn tham khảo thêm có thể lên website của vim tại http://www.vim.org/.