Home Blog Page 3

Sử dụng Laravel Blade template để phát triển theme WordPress

0

Hello các bạn, sau bao nhiêu thời gian không viết bài, cuối cùng hôm nay mình đã trở lại với một chủ đề mới đó là sử dụng Laravel Blade template để phát triển theme WordPress. Thật ra là có một starter theme tên là Sage 9 sử dụng templage engine này để build theme cho WordPress, vậy Sage 9 là gì ? sử dụng như thế nào? chúng ta cùng tìm hiểu nhé.

Sage 9 là gì?

Sage 9 là một starter theme được phát triển bởi Root team, mình đã tiếp cận cách đây 1 năm và có một cơ số project đã làm và sử dụng starter theme này, còn mọi người hỏi starter theme là gì thì nó cũng giống như thằng Underscrore vậy đó.

Các bạn có thể tìm hiểu thêm thông tin bằng cách nhấn nút bên trên nhé. Tất tần tật cách cài đặt, dev và sử dụng của nó đều có trên website của Root.

Tại sao lại sử dụng Sage 9 mà không phải là một starter theme khác?

Thật ra bạn sử dụng một starter theme nào cũng được hết á, nhưng khoan đã trước khi chọn 1 starter theme khác hãy điểm qua thế mạnh của thằng Sage 9 đã nhé.

Sage 9 tách các phần trong theme thành nhiều phần rất rõ ràng đó là:

  • Controller dùng để lấy dữ liệu và passing dữ liệu qua phần template
  • Template sử dụng template Blade của Laravel để hiển thị dữ lệu.
  • Có riêng 1 file đề làm filter riêng
  • Sử dụng các CSS framework mới nhất kết hợp Webpack để build file CSS, JS một cách hoàn hảo, cực nhẹ nhàng, thậm chí bạn có thể định nghĩa JS chỉ chạy ở route ( trang nào ) luôn
  • Trong quá trình dev Sage 9 còn show luôn cho chúng ta browsersync để khi chúng ta sửa SCSS, hoặc JS thì tự động câp nhật trên browser giúp chúng ta biết kết quả của đoạn code vừa rồi là gì.

Dựa vào những phần bên trên thì, Sage 9 giúp cho việc tách bạch giữa việc làm frontend, backend ( phần lấy dữ liệu ) thành 2 phần riêng biệt, rất dễ dàng cho việc làm team mà chỉ có bạn biết làm frontend, không biết nhiều về WordPress. Dễ dàng cho việc đang phát triển frontend cho Laravel sau đó chuyển sang làm frontend cho WordPress.

Giúp tối ưu tối đa việc load file JS, CSS, và Image bởi Sage 9 đã tối ưu hết cho chúng ta phần này rồi.

Ưu điểm của Sage 9

Theo quan điểm cá nhân của mình thì Sage 9 có những ưu điểm như sau:

Như mô tả ở trên việc tách bạch phần lấy dữ liệu và phần hiển thị thông tin dẫn đến việc dễ dàng trong việc quản lý task công việc, chia sẻ công việc, và kết hợp làm team với các thành viên trong nhóm, dễ maintain dự án.

Sử dụng composer, và npm package quản lý dẫn đến việc có thể module hoá phần template, CSS, và JS của bạn có thể sử dụng lại phần lớn các resource mà bạn đã tạo ( nếu bạn có tạo chúng một cách hệ thống )

Nhẹ nhàng tối ưu cho việc load trang, sử dụng những công nghệ tối tân nhất cho việc phát triển theme cho WordPress.

Nhược điểm của Sage 9

Theo hướng phát triển theme sử dụng Sage 9 thì theo mình chỉ chủ yếu sử dụng với website của khách hàng, không có nhu cầu cài đặt từ phía backend bởi Sage 9 chỉ có thể cài đặt qua FTP mà thôi. Đồng thời Sage 9 không theo quy chuẩn của theme WordPress nên việc phát triển theme để bán đại trà trên chợ là hoàn toàn không thể được.

Do sage 9 sử dụng nhiều thứ mới nên đôi khi để integrate với plugin thứ 3 ( WooCommerce, Memberpress … ) việc custom template của những plugins này đòi hỏi developer cần có một chút kiến thức về filter và hook của WordPress mới có thể sử dụng được blade template trong việc custom theme của các plugin này, cũng cần khá nhiều thời gian và công sức.

Sử dụng Sage 9 trong dự án

Để sử dụng Sage 9 trong dự án thì cực kỳ đơn giản qua các bước như sau:

B1. Cài đặt sage 9 bằng câu lệnh composer create-project roots/sage your-theme-name

Mô tả quá trình cài đặt

B2 . Điền thông tin cần thiết liên quan đến Tên theme, phiên bản, author, đường dẫn author, đường dẫn theme …

B3. Chọn đường dẫn dev, chọn đường dẫn thư mục theme, và chọn CSS frame work

B4. Bạn chọn CSS framework mà bạn ưa thích:

Mình chọn Tailwind CSS, sau đó chọn Yes, và No

Như vậy là bạn đã cài đặt xong Starter theme Sage 9 cho dự án của mình.

Phát triển như thế nào?

Sage 9 cung cấp cho bạn phần controller để lấy dữ liệu ra ngoài template qua các filter chính vì thế mà bạn chỉ cần đổ dữ liệu dạng Array và sang bên template gọi lại là xong.

Mình sẽ thường là làm HTML CSS trước ( HTML CSS viết qua blade template ) bằng cách sử dụng data dạng array và mình sẽ show dữ liệu sẵn ra trước, sau đó mình mới đổ dữ liệu theo yêu cầu từ Controller ra sau.

đây là ví dụ khi mình chưa lấy dữ liệu từ controller ra
Sau khi mình lấy dữ liệu là $study_posts từ Controller.

Và cứ như vậy việc đổ dữ liệu có thể được đảm nhận bởi Frontend dev hoặc Backend dev đều được bởi dữ liệu show ra ở dạng mảng, quan trọng là 2 phần này có thể làm độc lập tối ưu tốc độ của team. không phụ thuộc vào việc attribute của post có những gì, chỉ cần đủ các thành phần của array là được.

Tạm kết

Bài viết này mang tính chất giới thiệu Sage 9 với những ưu nhược điểm trong quá trình phát triển theme cho WordPress, những bài sau mình sẽ nói sâu hơn về việc sử dụng Sage 9 vớ Woocommerce hoặc MemberPress, hoặc những vấn đề mình gặp phải, cách xử lý chúng trong quá trình sử dụng Starter theme này.

Cài đặt và sử dụng VPS như một PRO

Bạn có 1 VPS và đang loay hoay làm sao để cài đặt VPS để chạy website của mình bằng WordPress hoặc Laravel? tài chính chỉ cho phép bạn mua được VPS và còn lại tất cả mọi thứ bạn cần phải tự mình làm, và bạn cần là setup nhanh con VPS có thể thêm website, xoá website và đồng thời quản lý các website của bạn nữa.

Hiện tại có rất nhiều tips để bạn có thể tự setup lên 1 con VPS theo yêu cầu của mình, cụ thể bên học vps có bài này https://hocvps.com/script/ hướng dẫn bạn cài đặt mọi thứ từ A tới Z. Ở bài này mình sẽ trình bày một cách khác giúp bạn cài đặt và quản lý được app một cách dễ dàng.

Các bước chuẩn bị

Bạn cần có 1 VPS ( cái này chắc chắn rồi vì bài này hướng dẫn bạn quản lý VPS mà ) VPS cài sẵn hệ điều hành Ubuntu 16.04 hoặc 18.04 nhé bản 19.x thì hiện tại chưa support script này thông số cần thiết:

  • Có 1 VPS
  • CPU 1 core trở lên
  • Ram ít nhất 512 MB
  • Ít nhất 1 GB HDD (hoặc SSD)
  • VPS đã cài hệ điều hành Ubuntu 16.04 hoặc 18.04 (32 hoặc 64 bit)

Cần đăng ký tài khoản trên trang runcloud Link https://runcloud.io trang này sẽ giúp bạn quản lý VPS thêm và chỉnh phiên bản PHP các thứ cho con VPS của bạn luôn. Bạn nào muốn biết Runcloud là gì? thì đọc bài trước của mình.

Thực hiện

Để cài đặt phần scrip này thì thực sự rất đơn giản đó là bạn cài đặt thông qua tài khoản root của VPS.

Theo thông tin của bài trước thì mình kết nối VPS cực đơn giản và có thể cài đặt và setup được nguyê con VPS cho app WordPress hoặc Laravel của bạn rồi.

B1. Đăng ký tài khoản Runcloud

Sau khi điền thông tin các thứ yêu cầu vào form bạn sẽ nhận được email để kích hoạt tài khoản của mình.

Bước tiếp theo là verify tài khoản của bạn là được

Ok giờ đã xong phần đăng ký tài khoản runcloud rồi tiếp theo là kết nối với VPS của bạn là được.

B2. Kết nối VPS với Runcloud

Để kết nối với Runcloud thì cực kỳ đơn giản là bạn sẽ cần copy một đoạn scrip của Runcloud và chạy với quyền root của VPS là được.

Vào phần kết nối với VPS bạn sẽ gặp màn hình này

Tiếp theo là điền các thông tin liên quan thôi và đây là clip của team Runcloud sẽ giải thích vấn đề mà mình đang muốn nói clip vẫn hay hơn khi nào video chết thì mình làm clip 😀


Mình thấy xem clip vẫn nhàn hơn là ngồi đọc.

B3. Sử dụng với PHP Web app

Bạn phải kết nối SSH hoặc SFTP để up code của bạn lên đúng thư mục và cho website chạy. Bạn cần có một chút kiến thức về website như, kết nối database như thế nào? hoặc sử dụng phần mềm FTP như thế nào để up code lên host, shared host. …

Có một phần mình rất thích ở Runcloud đó là phần chuyển phiên bản PHP, mà cái này thường xảy ra khi mình chạy nhiều webapp trên shared host có thể chọn phiên bản PHP qua Cpanel hoặc Direct Admin thì Runcloud cũng hỗ trợ bạn làm việc này luôn.

Chọn phiên bản PHP theo yêu cầu của web app

Tóm lại

Việc quản lý VPS giờ này chưa bao giờ đơn giản hơn, chịu khó đọc và thực hành bạn sẽ không tốn bất kỳ một ít chi phí nào cho hạ tầng cả, cho đến khi bạn kiếm được chi phí để thuê ai đó quản lý cho nó pro.

Runcloud quản lý VPS miễn phí

Lúc trước mình đã phải vật lộn với việc cài các service PHP, NGINX, MYSQL như thế nào thì bây giờ nó đơn giản hơn rất rất nhiều, đấy là chưa kể bạn phải cài các packgage, bật tắt port, hoặc update phiên bản sao cho phù hợp với cái webapp của bạn nữa, chưa kể khó khăn là con app này dùng phiên bản PHP này và con app kia cần dùng phiên bản PHP kia nữa. Runcloud giúp bạn xử lý các vấn đề đó. Đăng ký Runcloud ở đây nhé mọi người

Runcloud là gì?

RunCloud, là một công cụ quản lý VPS giúp bạn tự động cài đặt một webserver chạy trên Ubuntu 16.04 64bit với Nginx v1.13.7+ MariaDB v10.1.30 (MySQL) + PHP v7.3.0 (mới nhất) + HTTP / 2 hoàn chỉnh, và bạn chẳng phải cần biết cao siêu tới việc gõ command các thứ làm gì, bạn kết nối VPS vào dịch vụ của RunCloud, xong thì tất cả các thứ thông qua bảng điều khiển của RunCloud để quản lý, các vấn đề tự động hết và mình nghĩ bất cứ ai cũng có thể quản trị tốt server thông qua dịch vụ này ở một mức dộ nào đó.

Team runcloud.io

Cài đặt và sử dụng

Việc cài đặt và sử dụng Runcloud thì quá là đơn giản rồi, bởi nó đơn giản nên mình sẽ không hướng dẫn nữa mà các bạn có thể xem trực tiếp video của họ là có thể hiểu được.

Đây là dành cho DIgital Ocean nhưng các VPS khác cũng tương tự thôi

Kết bài

Nói chung việc cài đặt một con webserver để chạy website là không hề đơn giản đối với chân amatour vậy thì mình hãy tìm chuyên gia để hỗ trợ, thật may là chuyên gia ở khắp mọi nơi, hôm nay mình đã giới thiệu các bạn một chuyên gia thuộc top ( ở thời điểm hiện tại ) về quản lý và cài đặt VPS. Các bạn có thể google thêm về phần Runcloud này.

Mã giảm giá Viet Nam Web Submit 2019

0

Lớn và quy mô nhất

Vietnam Web Summit là ngày hội thường niên lớn nhất trong lĩnh vực ứng dụng di động, cập nhật những kiến thức mới, chuyên sâu từ các diễn giả được chọn lọc mời từ các công ty internet tiên phong, đối tượng tham dự đa dạng từ developer, marketer, designer và doanh nhân. Diễn ra ở 2 thành phố lớn là Hà Nội và HCM.

Hơn 100 chủ đề chuyên sâu

Với HƠN 100 chủ đề chuyên sâu cùng sự góp mặt của các chuyên gia hàng đầu các lĩnh vực trong và ngoài nước.

Triển lãm và tuyển dụng

Triển lãm với sự trình diễn của các doanh nghiệp và startup. Đây cũng là nơi demo rất nhiều sản phẩm, công nghệ của các doanh nghiệp. Tuyển dụng cũng là một trong những hoạt động mang lại giá trị hữu ích cho cả doanh nghiệp và người tham dự.

Thông tin mã coupon

Các bạn tìm hiểu thêm thông tin ở đây nhé link: https://vietnamwebsummit.com

Mã giảm giá là BINJUHOR Bạn nào tham gia thì dùng code của mình để giảm 50k nhé, số lượng chỉ được 10 bạn thôi. Hẹn các bạn ở điểm Hà Nội nhé.

Download WPML free?

88

Mình đã có hướng dẫn bài viết cho các bạn về cách sử dụng WPML làm website đa ngôn ngữ, tuy nhiên có nhiều bạn inbox hỏi thăm về việc tải plugin ở đâu thì mình post bài này để chia sẻ luôn là WPML không free, mình có update danh sách các plugin mới nhất ( ở thời điểm hiện tại ) để các bạn có thể dev, hoặc test theme, plugin của mình.

Plugin WPML (paid)

Các plugin này sẽ cho phép bạn xây dựng các trang web đa ngôn ngữ hoàn chỉnh và dịch chúng thuận tiện. Bạn nên cài đặt tất cả chúng cho mọi trang web đa ngôn ngữ mà bạn xây dựng.

Dưới đây là link mà mình đã tải từ tài khoản về để cho các bạn sử dụng, bản sạch 100% để yên tâm các bạn có thể liên hệ mình để update bản mới nhất hoặc các bạn có thể lấy key từ mình tránh việc sử dụng bản outdate gặp những lỗi về bảo mật.

WPML Multilingual CMS (v4.3.10)

String Translation (v3.0.8)

Translation Management(v2.9.5)

Media Translation(v2.5.5)

Những component tương thích với WPML

WooCommerce Multilingual

Gravity Forms Multilingual

Contact Form 7 Multilingual

BuddyPress Multilingual

Advanced Custom Fields Multilingual

WP All Import Multilingual

MailChimp Multilingual

WP SEO Multilingual

Mua key WPML giá rẻ?

Hiện tại tài khoản của mình tại WPML.org là tài khoản Unlimited nên mình sẵn sàng bán lại bộ WPML này với giá 200k, hoặc mấy trăm K kiếm tiền tiêu vặt, tuy nhiên mình không trực tiếp làm ra plugin này nên không bán lại, chỉ chia sẻ cho anh em nào cần key để update, để học tập, khuyến khích nên mua để ủng hộ tác giả bởi tác giả cũng là con người và họ cũng cần ăn cần thở như chúng ta.

Ngoài ra có một cách khác để mua Key giá rẻ hơn so với bình thường đó là mua cùng với link ref gia hạn của WPML mà mình gửi kèm email các bạn $79 chỉ còn $39.

Bác nào cần thì liên hệ em gửi em cái domain em gửi lại code mà active nhé, comment hoặc contact đều được.

Bên cạnh việc dùng key share từ tài khoản của mình, các bạn hoàn toàn có thể mua trực tiếp từ author qua link ref của mình, với link ref các bạn sẽ mua được gói $79 với giá $39. Các bạn mua ủng hộ tác giả thì ping mình lấy key và lấy link ref để nhận được discount nhé.

Update 22/09/2020

hiện tại mình không chia sẻ code WPML nữa nhé các anh em, bởi vì có key 1 cách dễ dàng nên các bạn không có dùng nó nghiêm túc, đôi khi xin chỉ là xin để đấy, những site mà không còn chạy nữa hoặc không có cài WPML mình sẽ xoá khỏi danh sách site trong tài khoản của mình.

Có khoảng hơn 20 sites nhé.

Dành cho các bạn thực sự cần key WPML

Mình có mở API để các bạn tự đăng ký mua key WPML giá rẻ hơn site chínhkey là lifetime cho đến khi WPML sập, khi mua key này các bạn sẽ có được 1 link refer mua WPML trên site wpml.org gói $79 chỉ còn $39 khi nào cảm thấy không còn muốn dùng key của mình thì các bạn có thể mua qua link này để ủng hộ tác giả.

Giá dự kiến là 250k/site các bạn mất phí thì các bạn mới trân trọn nó được. Các bạn cần key hãy theo dõi post này đến khi mình publish site bán key WPML nhé. Có bất kỳ thắc mắc gì vui lòng comment ở bài này, mình sẽ trả lời nhé.

Website Đa ngữ với WPML

2

Bài viết này sẽ hướng dẫn các bạn sử dụng website WPML làm website đa ngữ với WordPress.

Tại sao lại sử dụng WPML?

Để xây dựng một website đa ngôn ngữ với WordPress cực kì đơn giản bạn có thể sử dụng plugin đa ngôn ngữ, hoặc sử dụng google translate để thực hiện vấn đề này, hầu hết các theme và plugin của WordPress đều hỗ trợ dịch thuật.

Tuy nhiên để chuẩn chỉ dịch thuật thì bắt buộc bạn phải đầu tư nhiều hơn, cả về thời gian dịch thuật lẫn việc cài đặt plugin đủ để đáp ứng nhu cầu.

Hiện nay WPML được đánh giá rất cao trong lĩnh vực này và nó là một trong những plugin mà mình hay dùng nhất để sử dụng cho các webstite thương mại quốc tế.

  • WPML không giới hạn ngôn ngữ cần dịch.
  • WPML có thể tạo subdomain, hoặc domain khác, hoặc url dạng subfolder.
  • Được đội ngũ support WPML hỗ trợ ( bản trả phí )
  • Dịch được tất cả text trên theme, plugin miễn là viết code đúng chuẩn của WordPress.
  • Không cần dùng code để xử lý.

Tạo website đa ngôn ngữ với WPML

Việc cài đặt WPML ( WordPress Multi-Language ) như các plugin bình thường khác các bạn có thể search google để tìm hiểu.

Lưu ý: WPML là một plugin thu phí, nhưng thực sự đáng đồng tiền bát gạo, đó là lý do có hơn nửa triệu website đang sử dụng plugin này để tạo đa ngôn ngữ.

Cài đặt Plugin

Sau khi kích hoạt bên sidebar sẽ có thêm một menu item tên WPML và bấm vào đó để tiếp tục đến phần cài đặt.

Chọn ngôn ngữ hiện tại

Có thể thay đổi hoặc tiếp tục

Chọn các ngôn ngữ mà website bạn muốn

Tiếp theo là lựa chọn phần language switcher ( phần thay đổi ngôn ngữ trên website của bạn )

Chọn vị trí là Widget, hoặc copy code đến nơi mà bạn muốn hiển thị

Bước cuối cùng bạn sẽ được yêu cầu nhập sitekey, nếu chưa tạo bấm “generate a key for this site”.

Điền key để active plugin, được support và update bản mới nhất.

Nếu chọn generate bạn sẽ đến site WPML.org để generate phần key này.

Sử dụng WPML

Việc dịch các nội dung trong website rất đơn giản, người dùng có thể dễ dàng dịch các post, tag, category sang ngôn ngữ khác rất nhanh và chính xác, bạn hoàn toàn quản lý 100% phần ngôn ngữ của website, đấy là lý do vì sao website đa ngôn ngữ đều dùng WPML.

Thêm các post và page đa ngôn ngữ.

Những post đã có ngôn ngữ sẽ hiển thị lá cờ của ngôn ngữ đó, không thì hiện dấu + để chúng ta thêm bài mới với ngôn ngứ mới

Hoặc chúng ta có thể tùy chỉnh bằng nhấn chọn Edit post, tại màn hình edit sẽ thấy mục “Language” xuất hiện.

Chọn ngôn ngữ cho bài hoặc trang này.

Phần Translation managerment cho phép bạn thêm người dùng bất kì thành người dịch thuật vào dịch website, bạn còn có thể thêm subscriber nữa.

Thay vì chỉnh sửa bài đăng, những dịch thuật viên này sẽ có thêm bản dịch trực tiếp vào WPML.

Dịch thuật cho Category và Tag

WPML cho phép người dùng dễ dàng dịch Category và Tag,

vào phần WPML -> Taxonomy Translation và thêm các taxonomies bạn muốn dịch.

Tương tự ấn nút + để dịch

Dịch các menu

WordPress luôn đi kèm các navigation menu, WPML cho phép người dùng translate các menu này rất đơn giản.

Vào Appearance » Menus. Nếu bạn có nhiều hơn một menu, chọn các menu bạn muốn dịch.

Ở cột bên tay phải, bạn sẽ thấy menu với đường link dịch thuật sang ngôn ngữ được chọn trong site.

Bấm vào ngôn ngữ sẽ tạo một menu tại ngôn ngữ đó, bạn cần phải thêm các item như tại menu chính.

Lưu ý: Nếu bạn có các post và page trong menu đã được định vị, đầu tiên bạn sẽ phải dịch chúng. Sau đó bạn cần thêm chúng vào các tab bên trái trong menu định vị. Ngoài ra, đừng quên bấm nút Save để lưu lại nhé.

Dịch theme, plugin, text với WPML

WPML multilingual CMS cho phép bạn chọn giữa các bản dịch chính thức của theme và plugin hoặc sử dụng bộ dịch riêng.

Vào WPML » Themes and plugins localization.

Theo mặc định, bạn sẽ thấy dòng “Don’t use String Translation to translate the theme and plugins” được chọn. Bên dưới, bạn sẽ thấy một checkbox khác để tự động load file .mo bằng cách sử dụng load_theme_textdomain.

Bạn có thể chọn checkbox đó để xem có file dịch nào phù hợp với theme không. Thao tác này chỉ hoạt động với các theme download từ WordPress.org, theme trên themeforest.net, một số theme không có chứa các bản dịch sẵn bởi họ không follow theo chuẩn của WordPress khi làm theme, plugin.

Chúng ta có thể sử dụng WPML’s String Translation để dịch chính xác hơn, Module này sẽ cho phép bạn dịch tất cả các text trong theme, và các custom fields, widget . . .

Kết luận

WPML là một plugin đa ngôn ngữ cực kì mạnh, bạn có thể sử dụng chúng để biến bất kì một website WordPress nào thành website đa ngôn ngữ như mong muốn.

Các bạn có thể tải full pack WPML tại đây

Một vài hàm Javascript đơn giản tương ứng với jQuery

1.Dùng để select các elements

getElementById()

Method này hoạt động y hệt như $(‘#id-gì-đó’) của jquery.

var el = document.getElementsById('a-random-id');

getElementsByClassName()

Method này hoạt động giống với $(‘.class-gì-đó’) của jquery

var el = document.getElementsByClassName('a-random-class')

Vì class có thể tái sử dụng đựoc nên method này sẽ trả về một tập hợp các element thỏa mãn

getElementsByTagName()

var buttons = document.getElementsByTagName('button');

Method này hoạt động giống với $(‘tagname’) của jquery

querySelector()

Method này trả về phần tử đầu tiên thoả mãn, và selector phải theo cú pháp CSS, tức là bạn có thể sử dụng các selector tương ứng như sau:

  • class: document.querySelector('.a-class');
  • id: document.querySelector('#an-id');
  • tag: document.querySelector('button');

querySelectorAll()

Method này gần giống với querySelector() nhưng nó sẽ trả về toàn bộ phần tử thỏa mãn

var contents = document.querySelectorAll('.content-data'); trả về toàn bộ phần tử chứa class content-data

getAttribute()

Method này sẽ trả về giá trị của attribute tuơng ứng được chỉ định

el.getAttribute('data-content') sẽ trả về giá trị của data-content của phần tử

addEventListener()

Method này thực hiện một hành động khi có một sự kiện được thực thi trên một phần tử, giống với .on của jquery.

Giả sử ta có element el, ta muốn thực hiện hàm khi click:

el.addEventListener('click', function(event){     // logic  })

Ngoài ra còn có nhiều event khác như select, kéo thả,…

2. Dùng để duyệt các phần tử trong DOM

.childNodes

Thuộc tính này sẽ trả về toàn bộ các phần tử con của một phần tử. Nó gần như trả về mọi thứ và mọi kiểu dữ liệu, nên hãy cẩn thận khi dùng

var container = document.querySelector('.container') var getContainerChilds = container.childNodes

sẽ trả về toàn bộ phần tử con của của phần tử được chọn

.firstChild

Sẽ trả về phần tử con đầu tiên của phần tử được cho

var container = document.querySelector('.container'); var getFirstChild = container.firstChild;

.nodeName

Sẽ trả về tên của phần tử được cho, giả sử ta chọn 1 div, thì nó sẽ trả về… “div” ( =)) )

var container = document.querySelector('.container'); var getName = container.nodeName;

.parentNode

Sẽ trả về phần tử cha của phần tử được chọn

var container = document.querySelector('.container') var getParent = container.parentNode;

.firstElementChild

Sẽ trả về phần tử con đầu tiên của phần tử được chọn

var container = document.querySelector('.container') var getValue = container.firstElementChild;

.lastElementChild

Sẽ trả về phần tử con cuối cùng của phần tử được chọn

var container = document.querySelector('.container') var getValue = container.lastElementChild;

.previousElementSibling

Sẽ trả về phần tử cùng cấp nhưng ở trước phần tử được chỉ định (tương tự có nextElementSibling)

var container = document.querySelector('.container') var getValue = container.previousElementSibling;

Bài 4: Biểu thức điều kiện trong PHP

0

Về cơ bản thì chúng ta đã đi qua vài khái niệm cơ bản của PHP rồi và bây giờ còn 1 khái niệm khá quan trọng nữa trong lập trình vì không chỉ là lập trình PHP đó là biểu thức điều kiện. Những điều kiện, biểu thức tạo nên những chương trình phức tạp cũng là do đây.

Khái niệm

Biểu thức điều kiện tức là những điều kiện thỏa mãn bài toán, dùng để tính toán, so sánh để lấy ra kết quả đúng, ví dụ bài toán yêu cầu lấy ra danh sách các bạn nam giới trong lớp, thì điều kiện để lọc là các bạn phải là nam ( và dùng đặc điểm của Nam giới để so sánh ) và nó dùng các toán tử để so sánh.

1. Toán tử trong PHP

Có các loại toán tử như sau:

  • Toán tử gán
  • Toán tử số học
  • Toán tử so sánh
  • Toán tử logic

a. Toán tử gán:

Toán tử gans là lấy giá trị của toán hạng bên phải gán nó vào toán tử bên trái.

Ví dụ: 

$name = "John Doe"; //John Doe đã được gán vào biến $name

b. Toán tử số học

Là dạng phép tính đơn giản như cộng, trừ nhân, chia trong số học, ngoài ra còn có thê phép chia lấy dư được sử dụng để lấy ra số dư của một phép toán.

Ví dụ số 1

c. Toán tử so sánh

Dùng để thực hiện so sánh các số hạng với nhau cụ thể

PHP Example

d. Toán tử logic

Là các tổ hợp chỉnh hợp các giá trị boolean  ( các phép tính and, or, xor )

PHP Example

e. Toán tử Kết hợp

Là các toán tử được viết tắt, cho một  phép toóa tính toán cụ thể nào đó, ví dụ tăng lên 1 đơn vị hoặc giảm 1 đơn vị . . . thường sử dụng trong vòng lặp.

PHP Example

2. Biểu thức trong PHP

a. Biểu thức điều kiện

Là biểu thức dùng để kiểm tra một sự kiện, nếu chúng thỏa mãn điều kiện đó thì thực thi một hành động, Ngược lại sẽ là một hành động khác

Cú pháp

if( điều kiện ){
//hành động
}

Ví dụ:

<?php

$a = 3;
$b = 5;

if( $a < $b) {
echo "bien a nho hon bien b";
}

b. Biểu thức switch case

là biểu thức dạng điều kiện và dùng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều if và else

Cú pháp:

switch( biến ){
case giá trị 1: hành động; break;
. . .
case giá trị n: hành động n; break;
default hành động còn lại; break;
}

Ví dụ:

<?php

$day = 1;

switch( $day ){
case '2': echo "thu 2"; break;
case '3': echo "thu 3"; break;
case '4': echo "thu 4"; break;
case '5': echo "thu 5"; break;
case '6': echo "thu 6"; break;
case '7': echo "thu 7"; break;
default: echo "Chu nhat"; break;
}

?>

Tổng kết

Kết thúc bài này các bạn nắm được cơ bản về cá toán tử, về 2 biểu thức điều kiện thường gặp nhất, ngoài ra còn có các cách viết rút gọn  nữa nhưng chúng ta sẽ tìm hiểu thêm sau.

Về cơ bản PHP cũng đã được khái niệm qua 4 bài chỉ cần có những khái niệm này thì mới có thể đi tiếp được.

Bài 3: Vòng lặp trong PHP

0

Tương tự như những ngôn ngữ lập trình khác, trong PHP cũng có những vòng lặp, cụ thể như: vòng for, while, foreach,  do while . . . Bài này sẽ giới thiệu sơ qua về những vòng lặp này.

Đặc điểm chung

Nói đến vòng lặp thì chung chúng ta hiểu là nó sẽ lặp và thực thi các câu lệnh đến một lúc nào đó vòng lặp đó sẽ dừng, hoặc đôi khi nó không chịu dừng cho dẫn đến ứng dụng của mình bị treo ( đây là trường hợp mình đặt điều kiện dừng sai )

Vòng lặp For

Mô tả:

Vòng lặp này sẽ lặp tuần tự từ một số xác định và dừng ở 1 điều kiện nhất định nào đó. Nó được sử dụng khi bạn biết xử lý bao niêu lần một đoạn câu lệnh hoặc một khối câu lệnh.

for loop in Php

Cú pháp:

for (khởi tạo; điều kiện; biến tăng){
   Dòng lệnh cần xử lý;
}
  • Khởi tạo: là biến được khai báo để bắt đầu vòng lặp và thường là đặt biến i.
  • Điều kiện: là điều kiện lặp, nếu vòng lặp vẫn đáp ứng được điều kiện này thì nó vẫn tiếp tục cho đến khi điều kiện này không còn đúng nữa.
  • Biến tăng: là biến sau khi thực hiện vòng lặp, và nó được dùng để so sánh với điều kiện.

Ví dụ: 

<?php
        $a = 0;
        $b = 0;
         
        for( $i = 0; $i<5; $i++ ) {
           $a += 10;
           $b += 5;
        }
         
        echo ("At the end of the loop a = $a and b = $b" );
?>

Kết quả nhận được: 

At the end of the loop a = 50 and b = 25

Vòng lặp While

Mô tả:

Là vòng lặp sẽ xử lý khối lệnh khi và chỉ khi điều kiện của nó còn đúng. Sau khi xử lý khối lệnh nó lại tiếp tục kiểm tra điều kiện có đúng hay không và cứ như vậy cho đến khi nó nhận được kết quả false.

for loop in PHP

Cú pháp:

<?php
         $i = 0;
         $num = 50;
         
         while( $i < 10) {
            $num--;
            $i++;
         }
         
         echo ("Loop stopped at i = $i and num = $num" );
?>

Kết quả nhận được:

Loop stopped at i = 10 and num = 40 

Vòng lặp do . . . while

Mô tả:

Vòng lặp do . . . while cũng tương tự vòng lặp while tuy nhiên nó sẽ thực hiện khối lệnh trước sau đó mới kiểm tra điều kiện vòng lặp có đáp ứng được yêu cầu hay không.

Cú pháp:

<?php
         $i = 0;
         $num = 0;
         
         do {
            $i++;
         }
         
         while( $i < 10 );
         echo ("Loop stopped at i = $i" );
?>

Kết quả nhận được

Loop stopped at i = 10

Vòng lặp foreach

Mô tả:

Thường vòng lặp foreach dùng để xử lý mảng, Đối với mỗi lần truyền, giá trị của phần tử mảng hiện tại được gán cho giá trị $ và con trỏ mảng được di chuyển bởi một và trong phần tử kế tiếp tiếp theo sẽ được xử lý.

Cú pháp:

<?php
         $array = array( 1, 2, 3, 4, 5);
         
         foreach( $array as $value ) {
            echo "Value is $value <br />";
         }
?>

Kết quả nhận được:

Value is 1
Value is 2
Value is 3
Value is 4
Value is 5

Câu lênh break

Mô tả:

Khi sử dụng vòng lặp tuần tự chúng ta muốn thoát khỏi vòng lặp ở 1 điều kiện bất kỳ nào đó thì chúng ta sử dụng câu lệnh Break để thoát khỏi vòng lặp.

PHP Break Statement

Cú pháp:

Ví dụ ở dưới mình sẽ lặp từ 0 đến 10 tuy nhiên sẽ thoát khỏi 10 khi vòng lặp đến 3.

 <?php
         $i = 0;
         
         while( $i < 10) {
            $i++;
            if( $i == 3 )break;
         }
         echo ("Loop stopped at i = $i" );
?>

Kết quả là

Loop stopped at i = 3

Câu lệnh continue

Mô tả:

Ngược lại với câu lệnh Break thì câu lệnh Continue có nghĩa là tiếp tục và nó sử dụng để tạm dừng vòng lặp hiện tại mà không chấm dứt vòng lặp. Nó được đặt chong khối lệnh có chứa code thực thi của vòng lặp. Khi gặp continue  phần còn lại của vòng lặp sẽ bị bỏ qua và bắt đầu vòng lặp mới.

PHP Continue Statement

Cú pháp:

<?php
         $array = array( 1, 2, 3, 4, 5);
         
         foreach( $array as $value ) {
            if( $value == 3 )continue;
            echo "Value is $value <br />";
         }
?>

Kết quả nhận được:

Value is 1
Value is 2
Value is 4
Value is 5

Kết luận

Vòng lặp sẽ thường xuyên xuất hiện trong dự án của bạn, thường thì chỉ để in ra màn hình danh sách có số thứ tự chẳng hạn, hoặc dùng để kiểm tra điều kiện gì đó trước khi in ra màn hình, hoặc đơn giản là dùng để duyệt mảng dữ liệu  foreach.

Hi vọng qua bài này có thể giúp các bạn có thể hiểu được sơ qua về vòng lặp nói chung và cách sử dụng vòng lặp trong PHP nói riêng.

Bài 2: Biến, Mảng, và Object trong PHP

2

Giống như tất cả các ngôn ngữ lập trình khác, PHP cũng có những thành phần như Biến, Mảng, hay Object. Ở bài này sẽ đề cập đến việc sử dụng biến, mảng, và object hay cách khai báo chúng.

Biến

Biến hay variable dùng để chứa 1 giá trị hoặc một chuỗi text, hoặc một hàm nó có thể bị thay đổi với mã nguồn của bạn. Nó có các kiểu giá trị cụ thể như Null, Float, Int, String . . . 

Khai báo:

Như bài 1 Hello PHP  mình cũng có ví dụ sử dụng biến như thế nào đó là chỉ việc khai báo chúng trong cặp thẻ <?php ?> là được.

<?php
$tenbien = "Gia tri text";


Tên biến có những quy định cụ thể để viết như không dùng ký tự đặc biệt chẳng hạn . . . tìm hiểu thêm ở đây

Sử dụng

Đơn giản là mình sẽ sử dụng nó để in ra màn hình hoặc xử lý trong biểu thức diều kiện hoặc vòng lặp ( nếu biến của bạn là một mảng )

<?php
$tenbien = "Gia tri Test";
echo $tenbien; //In dòng Gia Tri Test ra màn hình.

//sử dụng trong hàm
echo substr_count( $tenbien, "Test" ); //1 đếm số từ xuất hiện

Mảng

Mảng hay còn gọi là array thì được khai báo với từ khóa array hoặc sau này PHP còn được khai báo với dấu [] nó là một tập hợp các giá trị , và có mảng 1 chiều và mảng nhiều chiều. Các phần tử trong mảng được đánh dấu từ 0.

Khai báo

Có 2 cách khai báo mảng đó là:

<?php

$mang1 = array( "Gia tri 1", "Gia tri 2", "Gia tri 3");

$mang2 = ["Gia tri 1", "Gia tri 2", "Gia tri 3"];

Đọc thêm  tài liệu về mảng ở đây để biết thêm cách thêm phần tử, xóa phần tử vào mảng.

Sử dụng

Để duyệt mảng có thể có nhiều cách khác nhau cụ thể ở dưới đây mình dùng tên mảng và số thứ tự của nó thì sẽ được giá trị tương ứng, hoặc dùng vòng lặp để duyệt lần lượt phần tử của mảng.

<?php

$mang1 = array( "Gia tri 1", "Gia tri 2", "Gia tri 3");

echo $mang1[2]; //Gia tri 3

foreach( $mang1 as $key => $value ){

echo $value;

}

//Gia tri 1
//Gia tri 2
//Gia tri 3



Object

Object hay còn gọi là đối tượng, trong PHP nó là một tập hợp các thuộc tính cụ thể nào đó cho một đối tượng cụ thể.

Ví dụ: mình có một đối tượng là xe hơi nó có các thuộc tính về màu, bao nhiêu bánh, có kính hay không, của hãng nào . . . 

Khai báo

Thông thường một đối tượng sẽ phải thuộc một lớp cụ thể nào đó tuy nhiên ở bài này mình sẽ đề cập đến 1 lớp rỗng trong PHP đó là stdClass, tìm hiểu sâu hơn ở đây để biết cách khai báo và sử dụng của đối tượng cụ thể

<?php

$doituong = new stdClass;


Sử dụng

Sử dụng đối tượng này thì chỉ cần gọi thuộc tính của nó dưới mũi tên cũng giống như cách thêm giá trị của nó

<?php

$doituong = new stdClass;

//Them gia tri

$doituong->mau = "xanh";
$doituong->banh = "4 banh";
$doituong->tocdo = "1200 km/h";
$doituong->loai = "sieu xe";
$doituong->hinhdang = array("to", "den", "hoi");


//Lay gia tri

echo $doituong->mau; // Xanh
echo $doituong->tocdo; // 120km/h


Tổng kết

Bài viết trên đây nói về biến, mảng, và đối tượng trong PHP, có nói sơ qua về cách khai báo và cách sử dụng, khái niệm mà mình định nghĩa nó trong đầu, bài này đi lướt qua để mọi người có thể nắm được sơ bộ nó như thế nào, còn về sâu hơn thì các bạn chịu khó theo link mà mình chia sẻ để đọc.

Những kiến thức trên đây chỉ để mô tả cho newbie biết và hình dung qua để có thể đi tiếp đi sâu, tuyệt đối chưa đủ để các bạn sử dụng vào giải quyết một dự án cụ thể nào.