LỜI CẢM ƠN Sau một thời gian tìm hiểu đề tài “Phương pháp xây dựng Theme theo chuẩn ThemeForest trên mã nguồn mở Wordpress”, em đã hoàn thành tiến độ dự kiến. Để đạt được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng hộ của các thầy cô bạn bè và gia đình. Em xin chân thành cảm ơn giáo viên hướng dẫn: Th.S Lê Nam Huy – Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành đồ án tốt nghiệp này. Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường. Em xin chân thành cảm ơn các thầy, cô giáo viên thuộc bộ môn Công nghệ phần mềm đã trang bị cho em những kiến thức chuyên ngành rất hữu ích để em hoàn thành đề tài và phục vụ cho công việc của em sau này. Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến từ thầy cô và các bạn. Em xin chân thành cảm ơn!
1
LỜI CAM ĐOAN Em xin cam đoan đây là đề tài do em tự nghiên cứu, tìm hiểu và được sự hướng dẫn tận tình của thầy giáo Ths. Lê Nam Huy. Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây. Những tài liệu phục vụ cho việc tìm hiểu lý thuyết và tham khảo demo đã được ghi rõ trong phần tài liệu tham khảo.Nếu phát hiện có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước hội đồng về nội dung đề tài của mình. Sinh viên
Phạm Văn Huy
2
MỤC LỤC LỜI CẢM ƠN
1
LỜI CAM ĐOAN 2 LỜI NÓI ĐẦU
5
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
9
1.1. Giới thiệu về themeforest 9 1.1.1. Themeforest là gì ?
9
1.1.2. Ưu điểm và nhược điểm của ThemeForest so với thị trường tự do 9 1.1.3. Làm sao để được approve trên ThemeForest11 1.1.4. Tìm hiểu rõ hơn về quá trình review sản phẩm 1.2. Một số ngôn ngữ và công nghệ được sử dụng 1.2.1. Ngôn ngữ HTML
17
1.2.2. Ngôn ngữ Javascript
18
16
17
1.2.3. Ngôn ngữ PHP 21 1.2.4. Hệ quản trị CSDL MySQL
24
1.2.5. Công nghệ Responsive Boostrap
26
1.2.6. Mô hình MVC 29 1.3 Mã nguồn mở WordPress 34 1.4 Cài đặt và triển khai Wordpress 36 1.4.1 Cài đặt Xampp trên Localhost 36 1.4.2 Cài đặt wordpress trên localhost
37
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1. Giới thiệu đề tài
40
2.1.1. Đặt vấn đề 40 2.1.2 Giải pháp 41 2.2. Tính cấp thiết đặt ra 41 2.3 Mục đích, yêu cầu của bài toán cần giải quyết 3
41
40
2.3.1 Mô tả bài toán
41
2.3.2 Phân tích yêu cầu bài toán
41
2.4. Phân tích và thiết kế 42 2.4.1 Các tác nhân tham gia hệ thống 2.4.2 Use case tổng quát hệ thống
42
42
2.4.3 Use case đăng nhập hệ thống 43 2.4.4 Use case quản lý bài viết
43
2.4.5 Use case quản lý giao diện
44
2.4.6 Use case quản lý phản hồi
45
2.4.7 Use case quản lý plugins
46
2.4.8 Use case quản lý setting
47
2.4.9 Use case tổng quát người đọc 48 2.4.10 Biều đồ trình tự 2.4.11 Biều đồ lớp
49 54
CHƯƠNG III. DEMO WORDPRESS TEMPLATE 3.1. Giới thiệu về theme trong Wordpress
3.2 Demo sản phẩm
58
59
3.2.1 Thiết kế 59 3.2.2 Sản phẩm60 3.3 Upload theme lên ThemeForest
65
KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 68
4
58
DANH MỤC HÌNH ẢNH Hình 1.1: Yêu cầu tiêu chuẩn – phase 1 phát hành ngày 09/09/2013 16 Hình 1.2: Cấu trúc thư mục của bootstrap. Hình 1.2: Ví dụ về Bootstrap
27
Hình 1.3: Ví dụ về Bootstrap.
28
Hình 1.4: Mô hình MVC
26
29
Hình 1.5: Quá trình cài đặt Wordpress
36
Hình 1.6: Quá trình cài đặt Wordpress
36
Hình 1.7: Quá trình cài đặt Wordpress
37
Hình 1.8: Quá trình cài đặt Wordpress
37
Hình 1.9: Quá trình cài đặt Wordpress
38
Hình 1.10: Giao diện Administration Control Panel của WordPress. 39 Hình 2.1 : Sơ đồ Use case tổng quát hệ thống
42
Hình 2.2 : Sơ đồ Use case quản lý bài viết
43
Hình 2.3 : Sơ đồ Use case quản lý giao diện
44
Hình 2.4 : Sơ đồ Use case quản lý phản hồi
45
Hình 2.5 : Sơ đồ Use case quản lý plugins
46
Hình 2.6 : Sơ đồ Use case quản lý setting 47 Hình 2.6 : Sơ đồ Use case người đọc
48
Hình 2.7 : Biểu đồ trình tự use case đăng nhập 49 Hình 2.8 : Biểu đồ trình tự use case quản lý bài viết
50
Hình 2.9 : Biểu đồ trình tự use case quản lý giao diện 50
Hình 2.10 : Biểu đồ trình tự use case quản lý phản hồi 51 Hình 2.11 : Biểu đồ trình tự use case quản lý plugins
51
Hình 2.12 : Biểu đồ trình tự use case quản lý settings
52
Hình 2.13 : Biểu đồ trình tự người đọc xem bài viết
52
Hình 2.14 : Biểu đồ trình tự người đọc tìm kiếm bài viết 5
53
Hình 2.15 : Biểu đồ trình tự người đọc phản hồi bài viết Hình 2.16 : Biểu đồ trình tự người đọc liên hệ
54
Hình 2.17 : Biểu đồ lớp ca sử dụng đăng nhập
54
Hình 2.18 : Biểu đồ lớp ca sử dụng quản lý bài viết
55
Hình 2.19 : Biểu đồ lớp ca sử dụng quản lý giao diện
55
Hình 2.20 : Biểu đồ lớp ca sử dụng quản lý phản hồi
56
Hình 2.21 : Biểu đồ lớp ca sử dụng quản lý Plugins
56
Hình 2.22 : Biểu đồ lớp ca sử dụng quản lý Settings
57
Hình 3.1 : Các file có trong template Hình 3.4 : Giao diện customize
58
61
Hình 3.5 : Giao diện trang bài viết 61 Hình 3.6 : Giao diện trang phản hồi
62
Hình 3.7 : Giao diện trang plugins 63 Hình 3.8 : Giao diện trang settings64
6
53
DANH MỤC BẢNG BIỂU Bảng 2.1 : Đặc tả use case đăng nhập hệ thống 43 Bảng 2.2 : Đặc tả use case quản lý bài viết
44
Bảng 2.3 : Đặc tả use case quản lý giao diện
45
Bảng 2.4 : Đặc tả use case quản lý phản hồi
46
Bảng 2.5 : Đặc tả use case quản lý plugins
47
Bảng 2.6 : Đặc tả use case quản lý settings
48
Bảng 2.7 : Đặc tả use case người đọc
49
7
LỜI NÓI ĐẦU Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày càng giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống. Dĩ nhiên các bạn đã được nghe nói nhiều về Internet, nói một cách đơn giản, Internet là một tập hợp máy tính nối kết với nhau, là một mạng máy tính toàn cầu mà bất kì ai cũng có thể kết nối bằng máy PC của họ. Với mạng Internet, tin học thật sự tạo nên một cuộc cách mạng trao đổi thông tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế... Trong thời đại ngày nay, thời đại mà “người người làm Web, nhà nhà làm Web” thì việc có một Website để quảng bá công ty hay một Website cá nhân không còn là điều gì xa xỉ nữa. Với công nghệ Word Wide Web, hay còn gọi là Web sẽ giúp bạn đưa những thông tin mong muốn của mình lên mạng Internet cho mọi người cùng xem một cách dễ dàng với các công cụ và những ngôn ngữ lập trình khác nhau. Sự ra đời của các ngôn ngữ lập trình cho phép chúng ta xây dựng các trang Web đáp ứng được các yêu cầu của người sử dụng. WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL Database(cơ sở dữ liệu database) là một mã nguồn mở dễ sử dụng. Với lí do đó, được sự hướng dẫn và giúp đỡ của thầy Lê Nam Huy em đã chọn đề tài “Phương pháp xây dựng Theme theo chuẩn Theme forest trên mã nguồn mở Wordpress” làm đề tài cho đồ án tốt nghiệp của mình.
8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. Giới thiệu về themeforest 1.1.1. Themeforest Theme forest là một marketplace, nơi mà các tác giả (author) sẽ tự do upload các sản phẩm của họ đến những người quan tâm, những sản phẩm đó có thể là PSD, HTML, Template (Joomla, Wordpress, Magento, Prestashop..). Khi đó sẽ có 1 đội ngũ làm công việc review sản phẩm để đánh giá sản phẩm của bạn có đạt tiêu chuẩn của TF hay không. Khi đã được approve thì lợi nhuận của việc bán sản phẩm sẽ được chia theo phần trăm, một phần của bạn và một phần của TF, việc ăn chia này được quy định rõ trong các điều khoản của TF. Nói đơn giản, TF là trung gian giữa người mua và người bán và những gì bạn cần làm là tạo ra những sản phẩm chất lượng đem đến người dùng 1.1.2. Ưu điểm và nhược điểm của ThemeForest so với thị trường tự do a. Ưu điểm ThemeForest là thị trường số 1 thế giới về các sản phẩm liên quan đến theme dành cho các freelancer và lượng khách hàng đông đảo nhất hiện nay. Do đó nếu 1 sản phẩm của bạn được approve trên TF thì lập tức sẽ có một lượng khách hàng truy cập không hề nhỏ. Nếu bạn có ý định tự làm thì bạn sẽ phải đầu tư 1 khoản tương đối cho dịch vụ quảng cáo như Adwords, Facebook ... Uy tín, chất lượng: Việc theme của bạn được upload lên TF, vượt qua khâu review của TF đồng nghĩa với việc đó là 1 sản phẩm chất lượng, đã được đánh giá tốt. Giả sử bạn mới mở một trang nicethemes.com để bán theme chẳng hạn, khách hàng vào xem sẽ ngờ vực, bán tín bán nghi vì thương hiệu của bạn mới toanh. Còn Themeforest lại khác, đó là một nơi an toàn để khách hàng đặt tiền vào. Công việc chỉ có thiết kế: Nếu mở một trang bán theme riêng, bạn sẽ phải xây dựng một website, thiết kế trang chủ, demo, xây dựng module bán hàng, các cổng thanh toán, mã sản phẩm, cơ chế kiếm tra để support, bảo mật, các khiếu nại thắc mắc, đổi 9
trả… Bạn sẽ phải có một team SEO, Marketing các kiểu nữa nếu muốn đẩy thương hiệu đi xa. Còn với Themeforest, tất cả những gì bạn phải làm là có một thiết kế đẹp, và bạn chỉ tập trung vào thiết kế, đẩy tất cả những cái “dirty behind”gồm thanh toán, bảo mật, mua bán… cho Themeforest. Bạn chỉ chờ cuối tháng nhận tiền thôi. b. Nhược điểm Tuân thủ luật: Nó giống như một trò chơi mạo hiểm vậy. Nếu bạn vi phạm một số nguyên tắc của Themeforest thì bạn sẽ bị ban nick/username và bao nhiêu công sức xây dựng xưa nay sẽ đổ xuống sông xuống bể, các themes sẽ bị xóa hết, tiền đang có trên Themeforest sẽ bị phong tỏa, cả uy tín, thương hiệu bao lâu bạn gây dựng cũng không còn. Đó thực sự là một cuộc mạo hiểm, nó giống như nhiều fanpage trên Facebook nhiều năm gây dựng giờ bị facebook cho ra đảo sau một đêm. Tuy nhiên, sẽ không có vấn đề gì nếu như bạn tuân thủ luật chơi, không làm điều gì vi phạm tới bản quyền, ăn cắp ý tưởng, ăn cắp thiết kế… Mất từ 30% – 50% cho mỗi sản phẩm bán được: Bạn sẽ phải chia cho Themeforest từ 30 – 50% lợi nhuận, tùy theo vị trí của bạn. Nếu bạn đã bán được $75,000 trên Themeforest thì bạn được hưởng 70%, còn nếu mới bắt đầu thì bạn chỉ được hưởng 50% thôi. Ban đầu, khi mới bắt đầu bạn sẽ thấy 50% không là gì, vì bạn chỉ cần bán được hàng, có tiền, mà nhận được $20/theme cũng làm bạn sung sướng. Tuy nhiên, về sau bạn sẽ thấy nhận được 70%/theme vẫn còn là ít, và bạn vẫn khó chịu, ấm ức về cái con số 30% kia lắm. Mặc dù nếu bán theme riêng thì bạn cũng sẽ mất một khoản chi phí cho việc thuê server, trả lương nhân viên… Không được định giá sản phẩm: Giá sản phẩm là do Themeforest quy định, tuân theo những nguyên tắc chung của thị trường. Chẳng hạn như theme bình thường là $40, blog đơn giản là $35, blog phức tạp là $45, portfolio có thể là $40, $45, magazine cũng vậy. Nếu hỗ trợ WooCommerce thì là $55 hoặc $60. Bạn sẽ vô cùng ấm ức khi thấy cũng một theme kiểu vậy, thậm chí xấu hơn, đơn giản hơn mà bán ngoài thị trường là $55, hoặc $55 cho một cái blog. Đó là còn chưa kể 10
giá $40 đã thấp rồi lại còn bị cắt xén mất vài chục phần trăm Quá trình review: Cái này thì không biết nên xếp hạng là ưu hay nhược điểm. Review vừa là ưu điểm, vừa là nhược điểm. Nhược điểm là ở chỗ không phải cái gì bạn thiết kế cũng sẽ được đưa lên để bán mà chỉ có một số thôi. Mỗi lần muốn upload cái gì đó lên bạn sẽ bị kiểm duyệt. Ngay cả update theme cũng phải chờ kiểm duyệt. Ưu điểm của nó là sẽ có người giúp bạn đánh giá xem design đó đã đủ tốt chưa. Đồng thời giúp bạn tập trung vào chất lượng hơn là số lượng. Nhận xét: Themeforest là một môi trường tuyệt vời để học tập. Xung quanh có những sự cạnh tranh, hôm nào cũng có theme mới để học hỏi, khách hàng từ nhiều nơi và họ chỉ quan tâm tới design. Do đó bạn sẽ tập trung vào việc học thiết kế sao cho đẹp và nắm được nhu cầu của thị trường. Có rất nhiều tác giả nổi tiếng họ vẫn bán theme trên Themeforest, vẫn bán đều, bán ngon, ví dụ như ThemeFusion, Kriesi… Việc bán theme trên Themeforest sẽ giúp bản thân tập trung vào thiết kế mạnh hơn là thiết kế nhiều. Nó còn nhanh nổi nữa. Sau khi tạo được danh tiếng trên Themeforest, sau này muốn tách ra bán trên thị trường tự do thì cũng có một lượng khách nào đó theo mình, tin tưởng… 1.1.3. Làm sao để được approve trên ThemeForest Themeforest là một thị trường bán theme và templates trực tuyến lớn nhất thế giới. Bạn có thể trở thành tác giả bán theme/template trên Themeforest để có thêm thu nhập. Bạn có thể gửi thiết kế của mình lên Themeforest để bán và kiếm tiền. Tuy nhiên, nhằm duy trì và đảm bảo chất lượng, Themeforest có một đội ngũ gọi là “Reviewer”. Họ sẽ duyệt những sản phẩm bạn gửi lên trước khi được đồng ý bán, và xác suất bạn bị gửi trả lại cũng khá cao, nhưng cũng không phải lo, nếu bạn hiểu rõ cơ chế hoạt động của thị trường này thì bạn sẽ không còn bị reject/fail nữa. Khi mới bước vào Themeforest hoặc một thị trường của Envato, có thể bạn sẽ có nhiều thắc mắc (giống như mình hồi trước): Tại sao cái công trình 3 tháng của tôi lại bị Themeforest reject sau 3
11
phút? Tại sao tôi có trình độ PSD 15 năm và từng làm 100 dự án mà vẫn bị reject? Tại sao một thiết kế nhìn cũng giống của tôi mà lại được approve còn tôi bị reject? Liệu có phải những tác giả đã nổi tiếng rồi thì up cái gì lên cũng được approve? Liệu có phải Themefores đã hết cơ hội cho những người mới? Liệu có phải họ ghét người Việt Nam? Thật ra thì Themeforest khá công bằng. Họ không hề ưu ái ai hay thiên vị gì ai cả. Hoặc nếu có ưu ái thì với những tác giả đã giúp Themeforest bán cả triệu đô tiên hàng, chúng ta cũng chẳng có gì để ghen tị với họ cả. Themeforest chẳng có lý do gì để thiên vị ai đó. Mình sẽ trả lời mẫu vài câu hỏi cho những thắc mắc trên: Tại sao công trình 3 tháng của tôi lại bị reject sau chỉ 3 phút? Vì nó không phù hợp, còn không phù hợp chỗ nào thì phần dưới sẽ nói sau. Bạn đưa cái theme 3 tháng của bạn cho một người không hiểu biết gì về công nghệ thông tin thì cũng không có ý nghĩa gì với họ cả. Lý do là không phù hợp. Tại sao tôi có trình độ PSD 15 năm và từng làm 100 dự án mà vẫn bị reject? Vì có thể những cái bạn thiết kế và những cái Themeforest cần là khác nhau. Có thể bạn chỉ thiết kế theo yêu cầu chứ không sáng tác được sản phẩm mới (một thứ mà Themeforest yêu cầu). Tại sao một thiết kế nhìn cũng giống của tôi mà lại được approve còn tôi bị reject? Thật ra cũng không giống lắm đâu, chỉ là bạn chưa đủ trình độ lâu năm trong thiết kế để nhìn ra được họ khác biệt với bạn đến mức nào thôi. Có thể nó giống về ảnh, một vài hiệu ứng, tuy nhiên sự khác nhau giữa chuyên nghiệp với không chuyên nghiệp đôi khi chỉ là một chút khác về viền ảnh, màu chữ, kích thước chữ, khoảng cách chữ… Đằng sau đó là cả một sự nghiên cứu và kinh
12
nghiệm lâu năm của các designer mà bạn mới nhìn cứ tưởng là giống nhau. Đó là còn chưa kể tới việc review là một vấn đề đầy cảm tính. Liệu có phải những tác giả đã nổi tiếng rồi thì up cái gì lên cũng được approve? Không. Liệu có phải Themefores đã hết cơ hội cho những người mới? Không. Liệu có phải họ ghét người Việt Nam? Không. Chốt lại: Bạn cần nâng cao tay nghề design, bạn cần học hỏi, bạn cần tìm hiểu thị trường, bạn cần hiểu về Themeforest. Không nên thắc mắc vì Themeforest không vô lý. Vậy tóm lại là cần những gì để Approve Theme ? Chắc chắn rằng design của bạn thật tốt và duy nhất Design là vấn đề quan trọng nhất vì nó ảnh hưởng trực tiếp tới người dùng, hãy chắc chắn rằng design của bạn không giống bất kỳ một design nào trước đó hoặc hãy tạo sự khác biệt so với đa số các design. Chất lượng thiết kế là yếu tố được xem xét đầu tiên. Nó là “thiết kế”, nó không liên quan tới khả năng code hay sự thành thạo PSD. Vấn đề viết code chỉ là vấn đề thứ 3 trong review process. Thiết kế là một yếu tố thuộc về “thẩm mĩ”, nó là xấu hay đẹp. Có thể bạn sẽ thấy “xấu” và “đẹp” là những vấn đề tương đối cảm tính, theo kiểu: “tôi thấy đẹp còn reviewer thấy xấu” thì làm thế nào? Thật ra không phải vậy. Trong thiết kế, có rất nhiều thứ phải nói tới mà không thể viết hết trong bài này được. Nhưng tóm lại bạn sẽ phải học thiết kế như việc học một cái gì đó bình thường. Đó là về cách sử dụng typography, spacing, visual hierachy, color, contrast, layout… và nhiều vấn đề khác đối với thiết kế. Ở Việt Nam chúng ta ít khi được học thiết kế một cách bài bản. Bạn có thể biết về PSD, HTML, CSS, JS, PHP, WordPress, Joomla và bạn tận dụng, nhét tất cả những cái mình hiểu biết vào trong một bản thiết kế với nhiều chức năng. Bạn không hiểu tại sao nó bị reject, thật ra, nó gặp rất nhiều lỗi về typography, spacing,
visual hierachy… mà nếu không có kiến thức về chúng, bạn sẽ không hiểu. 13
Có nhiều thiết kế nhìn rất đơn giản, đơn giản hơn cái của bạn nhiều mà vấn được approve. Đơn giản vì thiết kế đẹp, nó tuân thủ theo những nguyên tắc thiết kế và nhìn bắt mắt. Và TF muốn phê duyêt các design khác nhau nhằm đem đến sự lựa chọn khác nhau tới khách hàng thay vì các design nhìn khá là giống nhau. Vượt qua phase này thì các bạn đã qua được 50% review rồi. Đảm bảo chất lượng code của bạn. Chất lượng code ảnh hưởng khá lớn tới việc review, chất lượng nghèo nàn sẽ đem đến kết quả hard reject hoặc nhẹ hơn là soft reject. Bạn phải làm cho code thật sạch, tối ưu và thể hiện được trình độ của người lập trình. Code clean và tối ưu sẽ làm cho họ có đánh giá tốt về chất lượng. Comment những phần cần chú ý để code dễ đọc dễ hiểu. Chia code thành các khối, mỗi khối thực hiện một chức năng nào đó. Tuân thủ đúng các tiêu chuẩn kỹ thuật của TF, ví dụ cách đặt tên hàm, biến, nên hay không nên sử dụng các hàm, vị trí các hàm được sử dụng đặt ở đâu ? Với công việc front-end, đảm bảo đạt “pixel perfect” so với PSD, chức năng responsive cũng đạt mức hoàn hảo. Validate và Test sản phẩm của bạn thật kỹ Validate Theme cũng là một phần quan trọng của quá trình xét duyệt, và cũng là một phần của chất lượng sản phẩm của bạn. Tiêu chuẩn ở đây không có nghĩa chỉ vượt qua kiểm tra HTML CSS của công cụ test W3C, bạn phải test theme với rất nhiều cách khác hoặc với các plugin để kiểm tra đầu ra và có ảnh hưởng tới giao diện của theme hay không ? Thử với nhiều dữ liệu post, bạn có thể thử test với WPTesst.io, trang web này mô tả rằng có thể test dữ liệu một cách tuyệt vời với nhiều trường hợp được kiểm tra. Thêm nữa, bạn có thể dùng plugin Monster Widget, nó sẽ giúp bạn test 13 default widget nhằm tiết kiệm thời gian test sidebar của bạn.
Cũng trong phạm vi test plugin, hãy chắc chắn test các plugin phổ biến để đảm bảo dữ liệu hiển thị chính xác. Shortcode, plugin, nhúng video, chia sẻ mạng 14
xã hội và các koại widget khác cũng cần kiểm tra kỹ nhằm đảm bảo mang đến những trải nghiệm tốt nhất đến ngời dùng. Hãy nhớ rằng những điều này không được TF yêu cầu nhưng đó là các bước để thấy các lỗi nhỏ và ngăn ngừa tối đa các lỗi trong theme. Và bạn cũng có thể dùng plugin Theme Check để kiểm tra thêm các lỗi phát sinh khác. Các loại chức năng được tách riêng với theme Bạn đang sử dụng 1 theme cho công ty của bạn nhưng sau một khoảng thời gian bạn cảm thấy không còn thích giao diện cũ nữa và bạn quyết định bỏ hàng giờ ra để tìm một cái mới. Bạn có thể tìm thấy một design tốt, phù hợp làm website của công ty bạn nhưng đến thì cài đặt thì bạn có cảm giác như đang bị lừa dối, khi mà tất cả các testiominial (nhận xét của khách hàng) biến mất, trang porfolio của công ty thì không tìm thấy và các shortcode bạn sử dụng cho các bài viết cũ bị mất. Vậy bạn sẽ cảm thấy như thế nào ? Đó chính xác là sự thất vọng vào một giao diện tồi, kém chất lượng và bạn cũng không thể dùng một giao diện mãi mãi. Và các chức năng được yêu cầu riêng rẽ, độc lập để đảm bảo rằng các chức năng đã được quản lý bằng plugin và không ảnh hưởng tới các thông tin của website. Tóm lại là hãy tách các function ra ngoài và biến chúng thành các plugin. Và may mắn rằng có một giải pháp cho cả bạn và người dùng, đó là dùng TMG Plugin Activation Library. Đây là một phần bắt buộc của theme và được TF yêu cầu cần có, plugin này sẽ yêu cầu người dùng phải cài một số plugin để theme có thể chạy hoàn hảo nhất. Nếu không muốn dùng plugin thì bạn có thể dùng Class của plugin này để sử dụng các chức năng trên mà không cần phải cài đặt. Chuẩn bị 1 trang Demo cho theme của bạn Trang Demo quan trọng với cả khách hàng mua Theme cũng như TF và
nhóm review của TF sẽ kiểm tra trang demo của bạn trước khi theme tới khách hàng. Demo chứng minh rằng design củ bạn là duy nhất cũng như code hợp lệ và đầu ra của code chất lượng. 15
Có một demo tốt sẽ mang cho bạn nhiều thuận lợi cũng như đánh giá của nhóm review sẽ tốt hơn. Nếu có ấn tượng tốt và code chất lượng thì theme có thể được bán trên TF, bên cạnh đó người mua hàng cũng là nhóm thứ 2 nhìn thấy demo và có thể ảnh hướng tới quyết định mua Theme của họ. Kiểm tra vấn đề bản quyền Đây là một vấn đề rất quan trọng, hầu như đây là nguyên nhân của các lỗi bị soft reject bở vì nếu bạn không trả phí cho nó thì cả bạn và TF có thể bị kiện vì xâm phạm bản quyền. Bạn phải mua bản quyền thương mại cho mỗi phần mở mổ mà sử dụng trong theme của bạn. Nó có thể là Javascript plugin, CSS framework, Wordpress pluin, stock photos và các đoạn code nhỏ hay mỗi phần thiết kế mà bạn lấy từ người khác để làm theme, nói chung là mọi thứ. Nếu bạn mua một thứ gì đó để dùng cho theme tức là bạn đang cần bản quyền thương mại. Nếu bạn mua từ Envato marketplace thì tức là bạn đang cần bản quyền mở rộng cho sản phẩm bạn muốn mua. Tóm lại là bạn cần giấy phép để có thể sử dụng các thành phần khác cho dự án mà bạn muốn kiếm tiền, cụ thể ở đây là theme. Bạn cần nhớ kỹ rằng một sản phẩm được free to user không có nghĩa là được sử dụng miễn phí cho các dự án thương mại. Một số tác giả có thể muốn bạn phải hỏi ý kiến họ trước khi sử dụng vào theme của bạn và phải thêm một bản gốc trước khi bạn sửa đổi nó. Bạn có thể đọc thêm về bản quyền GPT-3 Chuẩn bị document cho Theme Một vấn đề khác cần để ý khi theme được review đó là chất lượng document của theme. Thông thường, các sản phẩm tối hoặc không có document sẽ bị từ chối. Và nếu document của bạn đủ hoặc không tốt lắm hay nội dung nghèo
nàn cũng là 1 lý do để sản phẩm của bạn bị soft reject. Hãy chắc chắn rằng bạn chuẩn bị một bản hướng dẫn tốt. Tạo 1 doument tốt và đưa nó theme là điều cơ bản khi gửi theme lên TF, điều này hoàn toàn không khó và hãy nhớ đừng quên điều đó. 16
Sẵn sàng cho việc sẽ bị Rejection Điều này có vẻ làm bạn mất tinh thần nhưng bạn cũng cần sẵn sàng khi sản phẩm của bạn bị từ chối. Có thể bạn đang nghĩ rằng mình có 1 theme tốt với các phần mở rộng (có bản quyền) tốt và làm demo cũng như document thực sự ấn tượng nhưng những người ở TF review mỗi ngày và sự thật là họ sẽ cảm thấy sản phẩm của bạn cần thiết nếu nó thực sự tốt. Có 2 loại reject là hard reject và soft reject. Hard reject có nghĩa là theme của bạn không thể chấp nhận bởi TF, có thể là design xấu hoặc không tuân thủ các tiêu chuẩn của một design. Soft reject có nghĩa là theme của bạn có thể được chấp nhận nếu bạn sửa lại một số nội dung không phù hợp mà reviewer đưa ra (có thể là 1 phần design cần sửa hay code có vấn đề cần chỉnh sửa ...). Việc của bạn là hoàn thành các feedback đó và tiếp tục gửi lại TF, nếu mọi thứ tốt thì Theme của bạn sẽ được approve sớm nhất có thể. 1.1.4. Tìm hiểu rõ hơn về quá trình review sản phẩm
17
Hình 1.1: Yêu cầu tiêu chuẩn – phase 1 phát hành ngày 09/09/2013 1.2. Một số ngôn ngữ và công nghệ được sử dụng 1.2.1. Ngôn ngữ HTML HTML (viết tắt từ HyperText Markup Language) là một ngôn ngữ đánh dấu
18
siêu văn bản, được thiết kế ra để xây dựng các trang web. Siêu văn bản (HyperText): Như ta đã biết, liên kết siêu văn bản là một từ hay một câu trong trang Web dùng để chỉ đến trang Web khác. Khi nhấn chuột lên một trong các liên kết này, trình duyệt web (như Netscape Navigator hoặc Internet Explorer) sẽ đưa ta tức khắc đến trang Web kia mà không cần hỏi han gì. Vì những liên kết siêu văn bản này thật sự là tính năng đặc trưng của World Wide Web, các trang Web thường được biết như là những tài liệu siêu văn bản. Vì thế, HTML có từ siêu văn bản trong tên của nó. Đánh dấu (Markup): Có từ điển định nghĩa markup là các chỉ dẫn chi tiết về kiểu dáng được ghi trên bản viết tay để xếp chữ in. Như vậy, chúng ta có thể hiểu đó là các lệnh chi tiết về kiểu dáng được đánh vào tài liệu văn bản để đưa lên WWW. Nói chung, HTML tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào mạng Internet. Các file này có chứa thẻ đánh dấu và thường được truyền đi trên mạng internet thông qua giao thức mạng HTTP. Sau đó thì phần HTML của chúng sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan đảm nhiệm công việc đọc văn bản của trang cho người sử dụng. Cấu trúc của một tài liệu HTML Các tập tin HTML luôn bắt đầu bằng thẻ <HTML>.Thẻ này không làm gì khác ngoài nhiệm vụ báo cho trình duyệt Web biết rằng nó đang đọc một tài liệu có chứa các mã HTML.Tương tự, dòng cuối trong tài liệu định dạng HTML luôn luôn là thẻ </HTML>, có tác dụng thông báo sự kết thúc của văn bản HTML với trình duyệt. Chi tiết kế tiếp trong catalog thẻ HTML dùng để chia tài liệu thành hai phần: đầu và thân. Phần đầu giống như lời giới thiệu cho trang. Các trình duyệt Web dùng phần đầu này để thu nhặt các loại thông tin khác nhau về trang. Để xác định phần
đầu, ta sử dụng thẻ <HEAD> và thẻ </HEAD> ngay sau thẻ <HTML>. Mặc dù ta 19
có thể đặt một số chi tiết bên trong phạm vi phần đầu này, nhưng phổ biến nhất là tên trang. Nếu có ai đó xem trang này trong browser, thì tên trang sẽ xuất hiện trong dải tên của cửa sổ browser. Để xác định tên trang, ta đặt đoạn văn bản tên đó giữa các thẻ <TITLE> và </TITLE>. Phần thân là nơi nhập vào các văn bản sẽ xuất hiện trên trang Web lẫn các thẻ khác quy định dáng vẻ của trang. Để xác định phần thân, ta đặt các thẻ <BODY> và </BODY> sau phần đầu (dưới </HEAD>). Dưới đây là cấu trúc cơ bản của một trang web định dạng HTML: <HTML> <HEAD> <TITLE> tên trang <TITLE> Các thẻ tiêu đề khác </HEAD> <BODY> Văn bản và các thẻ của trang Web </BODY> </HTML> 1.2.2. Ngôn ngữ Javascript JavaScript là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu.Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript. Javascript là ngôn ngữ dưới dạng script có thể gắn với các file HTML. Nó không được biên dịch mà được chương trình duyệt diễn dịch.Không giống Java
phải chuyển thành mã để trình duyệt biên dịch, trình duyệt đọc Javascript dưới dạng mã nguồn. Chính vì vậy, ta có thể dễ dàng học Javascript qua các ví dụ bởi ta
20
có thể thấy cách sử dụng Javascript trên các trang web. Javascript có khả năng đáp ứng các sự kiện như tải hay loại bỏ các form.Khả năng này cho phép Javascript trở thành ngôn ngữ script động. Giống với HTML và Java, Javascript được thiết kế độc lập với hệ điều hành.Nó có thể chạy trên bất kì hệ điều hành nào có hỗ trọ Javascript. Ngoài ra, Javascript còn giống Java ở khía cạnh an ninh là không thể đọc và viết vào file của người dùng. Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng.Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập. Hiện nay, JavaScript được sử dụng rất nhiều trong việc thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM. Ngoài ra, JavaScript còn được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh,... Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt. Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Đặc tính của ngôn ngữ java script: Javascript là một ngôn ngữ có đặc tính: Đơn giản. Động (Dynamic). Hướng đối tượng (Object Oriented). Một trong những đặc tính quan trọng của ngôn ngữ javascript là khả năng
tạo và sử dụng các đối tượng (Object). Các Object này cho phép người lập trình sử dụng để phát triển ứng dụng. Trong javascript ,các Object được nhìn theo 2 khía cạnh: Các Object đã tồn tại. 21
Các Object do người lập trình xây dựng. Cách nhúng Javascript vào trong tập tin HTML Có 2 cách để nhúng Javascript vào trong tập tin HTML Cách 1: Viết chưong trình Javascript trực tiếp trong file HTML <script type=”text/javascript”> //Các lệnh Javascript </script> Cách 2: Sử dụng tập tin javascript bên ngoài : Cũng giống như CSS ngoại tuyến, chúng ta cũng có thể nhúng Javascript vào tập tin HTML bằng cách liên kết đến một tập tin bên ngoài, đây cũng là phương thức được sử dụng nhiều nhất. Với phương pháp này, các lệnh Javascrip sẽ được viết trong một file riêng biệt có phần mở rộng là .js (Ví dụ ta có tập tin my.js) Để nhúng tập tin demo.js vào tập tin HTML ta sử dụng đoạn mã sau:
type="javascript"
src="demo.js"
type="text/javascript"></script> Một số ví dụ javascript: JavaScript: Viết tại ngỏ ra HTML
<!DOCTYPE html> <html> <body>
JavaScript can write directly into the HTML output stream:
<script> document.write("
This is a heading
"); document.write("
This is a paragraph.
");
22
</script>
You can only use <strong>document.write</strong> in the HTML output. If you use it after the document has loaded (e.g. in a function), the whole document will be overwritten.
</body> </html> Bạn có thể chỉ sử dụng document.write trong ngõ ra HTML (HTML output). Nếu bạn sử dụng sau khi tài liệu đã được tải thì toàn bộ nội dung của tài liệu sẽ bị ghi đè lên. JavaScript: Dùng để bắt sự kiện người dùng <!DOCTYPE html> <html> <body>
My First JavaScript
JavaScript can react to events. Like the click of a button: