Đồ án Thiết kế trang web quản lý trang bán hàng ( sử dụng Joomla)

Trong những năm gần đây với sựphát triển vượt trội của khoa học kỹthuật đặt biệt là công nghệthông tin, với những ứng dụng của công nghệthông tin vào các lĩnh vực đã đóng góp phần to lớn cho sựnghiệp phát triển của con người. Trong các lĩnh vực đó thì lĩnh vực quản lý là thật sựgiúp ích được rất nhiều cho con người, việc áp dụng quản lý và mua bán bằng máy tính thay cho quản lý và mua bán bằng thủcông ởcác doanh nghiệp, công ty, cá nhân là rất cần thiết và thật sựcần thiết. Do đó, việc “quản lý mua bán hàng qua mạng ” là không thểthiếu được trong mọi doanh nghiệp, cửa hàng vừa và nhỏ. Chương trình chạy trên môi trường hệ điều hành WinXP, WinServer, Linux sửdụng ngôn ngữchuẩn vềxửlý dữliệu nhưPHP, HTML, JavaScript, XML, CSS và hệquản trịcơsởdữliệu MySQL. Dùng Xampp làm môi trường WebServer hỗ trợsẵn Apacher, PHP, MySQL. Vì khảnăng và thời gian còn hạn chế, Website không tránh khỏi có những thiếu xót nhất định, rất mong sựgóp ý kiến của quý thầy cô và các bạn đểWebsite được hoàn thiện hơn. Xin chân thành cảm ơn.

pdf44 trang | Chia sẻ: ngtr9097 | Ngày: 21/05/2013 | Lượt xem: 844 | Lượt tải: 19download
Tóm tắt tài liệu Đồ án Thiết kế trang web quản lý trang bán hàng ( sử dụng Joomla), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 Lời Cảm Ơn -=≡E ≡=-- Em xin chân thành cảm ơn Th.s Nguyễn Thế Vịnh đã tận tình giúp đỡ, chỉ bảo em, truyền đạt cho em, những kinh nghiệm, kỹ thuật và cách thức trong việc xây dựng đề tài này. Tuy nhiên, do thời gian có hạn nên Em không thể phát huy hết những ý tưởng, khả năng hổ trợ của ngôn ngữ và kỹ thuật lập trình vào đề tài. Trong quá trình xây dựng website, không thể tránh khỏi những sai xót, mong nhận được sự đóng góp và cảm thông của thầy cô và các bạn. Thái Nguyên, ngày…tháng….năm…. Sinh viên: Nguyễn Tuấn Sơn 2 LỜI NÓI ĐẦU Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ thuật đặt biệt là công nghệ thông tin, với những ứng dụng của công nghệ thông tin vào các lĩnh vực đã đóng góp phần to lớn cho sự nghiệp phát triển của con người. Trong các lĩnh vực đó thì lĩnh vực quản lý là thật sự giúp ích được rất nhiều cho con người, việc áp dụng quản lý và mua bán bằng máy tính thay cho quản lý và mua bán bằng thủ công ở các doanh nghiệp, công ty, cá nhân… là rất cần thiết và thật sự cần thiết. Do đó, việc “quản lý mua bán hàng qua mạng ” là không thể thiếu được trong mọi doanh nghiệp, cửa hàng vừa và nhỏ . Chương trình chạy trên môi trường hệ điều hành WinXP, WinServer, Linux sử dụng ngôn ngữ chuẩn về xử lý dữ liệu như PHP, HTML, JavaScript, XML, CSS và hệ quản trị cơ sở dữ liệu MySQL. Dùng Xampp làm môi trường WebServer hỗ trợ sẵn Apacher, PHP, MySQL. Vì khả năng và thời gian còn hạn chế, Website không tránh khỏi có những thiếu xót nhất định, rất mong sự góp ý kiến của quý thầy cô và các bạn để Website được hoàn thiện hơn. Xin chân thành cảm ơn. 3 MỤC LỤC Lời Cảm Ơn............................................................................... 1 CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI................................ 5 1.1 Lý do chọn đề tài ..................................................................................5 1.2 Mục tiêu đề tài......................................................................................5 1.3 Phạm vi, đối tượng của đề tài...............................................................5 1.4 Ý nghĩa thực tiển của đề tài..................................................................6 CHƯƠNG 2. TÌM HIỂU VỀ JOOMLA ................................. 7 2.1. Giới thiệu sơ lược về Joomla ...............................................................7 2.2. Kiến trúc Joomla ..................................................................................7 4.1.1. Cấu trúc của gói cài đặt Component................................................8 4.1.2. Cấu trúc của một Component ..........................................................9 4.1.3. Cấu trúc của gói cài đặt Module ......................................................9 4.1.4. Cấu trúc của gói cài đặt Template (Temp) ....................................10 4.1.5. Cách đưa Component, Module và Template tích hợp vào Joomla11 2.3. Sử dụng WebServer chạy Joomla ......................................................11 2.4. Cài đặt và cấu hình Joomla ................................................................15 2.5. Cài đặt ngôn ngữ tiếng việt cho Joomla.............................................20 CHƯƠNG 3. TÌM HIỂU MỘT SỐ THÀNH PHẦN TRONG JOOMLA.......................................................................... 23 3.1. Template Manager (Quản lý giao diện) .............................................23 3.2. Manager Users ( Quản lý người dùng)...............................................23 3.3. Menu Manager( Quản lý Menu): .......................................................24 1.5 Article Manager (Quản lý nội dung)..................................................25 3.4. Components Manager( Quản lý các Components) ............................26 4 3.5. Modules Manager(Quản lý các Module) ...........................................26 CHƯƠNG 4. KHẢO SÁT VÀ PHÁT TRIỂN VIRTUEMART TRONG JOOMLA ............................................. 29 4.1. Giới thiệu sơ lược về Component VirtueMart ...................................29 4.2. Một số chức năng chính trong trang web bán hàng: ..........................30 4.2.1. Tính năng chung ............................................................................30 4.2.2. Tính năng dành cho người quản trị website...................................31 4.2.3. Các tính năng dành cho khách mua hàng trên website..................37 CHƯƠNG 5: Phát triển VirtueMart (Website bán hàng qua mạng)......................................................................................... 42 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..... 43 6.1 Kết quả đạt được ......................................................................................43 6.2. Hướng phát triển .....................................................................................43 5 CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài Ngày nay, với sự bùng nổ của hệ thống mạng toàn cầu Internet và những lợi ích vô cùng to lớn của nó mang lại đã thực sự thu hút và chinh phục con người. Tận dụng những tính năng mạnh mẽ của Internet, những công nghệ mới về thông tin và truyền thông, người ta đã xây dựng nên những hệ thống đặc biệt để mọi người có thể có thể ứng dụng đưa vào đời sống thực tiễn, và điều đó thực sự sẽ làm thay đổi cuộc sống của xã hội chúng ta theo chiều hướng tiện lợi hơn, văn minh hơn. Cùng với việc Internet đang nhanh chóng lan rộng khắp toàn cầu thì WEBSITE thương mại sẽ trở thành công cụ chủ yếu và đắc lực cho việc kinh doanh mua bán trên phạm vi toàn cầu.Các công ty, các doanh nghiệp có thể quảng cáo các sản phẩm, các dịch vụ của mình trên các WEBSITE. Điều này sẽ giúp tăng doanh thu, tăng khách hàng và đặc biệt là dễ dàng tìm các đối tác kinh doanh. Và việc chi trả thanh toán trực tuyến rất nhanh chóng và đơn giản thông qua các loại thẻ tín dụng. Cho nên cần phải có những công nghệ mới để quản lý, quản trị WEBSITE, để đáp ứng những nhu cầu trên vì lý do đó mà em chọn đề tài về Joomla quản lý trang web bán hàng, nó có thể đáp ứng đầy đủ các chức năng trên. 1.2 Mục tiêu đề tài Xây dựng được một website “Quản lý bán hàng trực tiếp qua mạng” ,tập trung vào việc phát triển component và các module phục vụ một cách có hiệu quả cho người dùng. 1.3 Phạm vi, đối tượng của đề tài Website được xây dựng nhằm hỗ trợ cho các cá nhân, công ty, cơ quan, … có nhu cầu quản bá sản phẩm, cũng như quản lý trong việc bán sản phẩm. Đối tượng phục phụ: Cá nhân, công ty, cửa hàng vừa và nhỏ,… Nhà quản trị website 6 1.4 Ý nghĩa thực tiển của đề tài Có thể tra cứu, cập nhật, thống kê, báo cáo sản phẩm, nhà sản xuất, thông tin khách hàng, hóa đơn, thuế, … Mua sản phẩm dể dàng, ít tốn kém, hàng hóa chất lượng, phục vụ tận tình từ nhân viên website. Tạo một website thân thiện, nhanh và hiệu quả hơn trong việc quản lý, hay bán sản phẩm bằng thủ công . Hoàn thành tốt đề tài thực tập cơ sở của tôi. 7 CHƯƠNG 2. TÌM HIỂU VỀ JOOMLA 2.1. Giới thiệu sơ lược về Joomla Joomla là một hệ thống quản trị nội dung (CMS – Content Management System) giúp bạn thực hiện các website động một cách nhanh chóng và dễ dàng. Là hệ thống quản trị nội dung mã nguồn mở số 1 thế giới hiện nay. Linh hoạt, đơn giản, thanh nhã, tính tuỳ biến rất cao và cực kỳ mạnh mẽ, đó là những gì có thể nói về Joomla! Được sử dụng ở trên toàn thế giới từ những trang web đơn giản cho đến những ứng dụng phức tạp. Việc cài đặt Joomla! rất dễ dàng, đơn giản trong việc quản lý và đáng tin cậy. Ứng dụng Joomla trong nhiều lĩnh vực như: Trang Web của các tổ chức hoặc của các cổng thông tin (Portal). Thương mại điện tử. Trang Web cho các công ty cỡ nhỏ. Ứng dụng cho các cơ quan hành chính. Trang Web cho các trường học và nhà thờ. Trang Web cá nhân và gia đình. Các cổng thông tin cộng đồng. Trang Web báo điện tử và tạp chí. Và nhiều ứng dụng khác… Ngoài các vấn đề là mã nguồn mở miễn phí, khả năng bảo mật cao, dễ dàng sử dụng, còn điều gì tuyệt vời hơn đằng sau khiến cho Joomla phát triển mạnh và được nhiều người yêu thích như vậy ? với Joomla việc xây dựng (lập trình) thêm các thành phần, module, các chức năng cho nó là một việc rất dễ dàng đối với các lập trình viên, do đó Joomla có rất rất nhiều các chức năng mở rộng được viết bởi các nhà lập trình trên khắp thế giới, và hầu hết tất cả các ứng dụng, thành phần này đều được chia sẻ miễn phí, đó chính là điều tuyệt vời nhất. Hiện nay Joomla phát triển theo 2 dòng phiên bản: dòng phiên bản Joomla 1.0.X và dòng phiên bản Joomla 1.5.X( mới hoàn toàn). 2.2. Kiến trúc Joomla Joomla được phát triển theo kiến trúc 3 tầng hệ thống: 8 Hình 0-1 Cấu Trúc Joomla Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin (còn được biết với tên gọi mambot). Tầng thứ hai là mức ứng dụng và chứa lớp JApplication. Hiện tại tầng này gồm 3 lớp con: JInstallation, JAdministrator và JSite. Tầng thứ ba là mức mở rộng. Tại tầng này có các thành phần (component), mô đun (module) và giao diện (template) được thực thi và thể hiện. JApplication: Lớp này đại diện cho ứng dụng Joomla và được thực hiện như một nhà máy qui định mọi ứng dụng giữ những đối tượng. Lớp này bao gồm các lớp con như: JInstallation, JAdministrator và JSite. Mambot (Plug-in): Là các chức năng được bổ sung thêm cho Com, các Mambot này sẽ can thiệp, bổ sung vào nội dung của trang Web trước hoặc sau khi nó được hiển thị. Mambot có thể được cài đặt thêm vào Web Site. Hay nói cách khác Mambot là phương tiện giao tiếp với component. 4.1.1. Cấu trúc của gói cài đặt Component Component (Com): Là thành phần chính của trang Web, nó quyết định đến chức năng, hình thức, nội dung chính của mỗi trang Web. Com có thể có thêm Mod để hỗ trợ cho việc hiển thị các chức năng và nội dung của Com. Com có thể được cài đặt thêm vào Web Site. Thông thường sau khi cài đặt Joomla! có sẵn các Component: Banners (quản lý các bảng quảng cáo), Contacts (quản lý việc liên hệ giữa người dùng với Ban quản trị Web Site), Search (quản lý việc tìm kiếm), News Feeds (quản lý các tin tức), Polls (quản lý việc bình chọn, ý kiến của người dùng), Web Links (quản lý các liên kết ngoài Web Site) và các Com quản lý nội dung của trang Web. 9 4.1.2. Cấu trúc của một Component Backend thông thường sẽ gồm những file cơ bản sau: 1 file admin.yourcom.php, 1 file admin.yourcom.html.php, 1 file toolbar.yourcom.php, 1 file toolbar.yourcom.html.php. Frontend sẽ gồm 2 file cơ bản (thông thường): 1 file yourcom.php, 1 file yourcom.html.php. Chú ý: không nhất thiết một component của bạn phải hoặc chỉ bao gồm các file trên, các file bắt buộc là admin.yourcom.php và yourcom.php (folder chứa com cả trong frontend và backend sẽ là com_yourcom). Ngoài ra bạn có thể có các file khác (vd yourcom.class.php chẳng hạn), các folder, các file .js, file ảnh... tùy thuộc vào mức độ bạn cần ở com này và mức độ bạn hiểu. Một file .XML để phục vụ cho việc cài đặt khi bạn đóng gói. File XML này sẽ mang tất cả các thông số về Tên com; tên tác giả, địa chỉ email, license ... (optional). Mục đích chính của file này là khai báo các file trong frontend và backend (đường dãn đầy đủ của các file này) để upload khi cài đặt, khai báo các query tạo và insert database (nếu bạn phải thêm database) và các query uninstall Một điểm quan trọng là phải hiểu các object, class, function... cơ bản trong joomla thì mới sử dụng được chúng để viết (ví dụ như object về database...). Khi đóng gói thì nhớ ở dạng .zip, .tar nếu ở dạng .zar thì joomla ko hiểu đc. Nếu chưa đóng gói được thì làm manual bằng cách insert trong database và copy các file vào các folder tương úng (không khuyến cáo sd cách này). 4.1.3. Cấu trúc của gói cài đặt Module Module (Mod) Là bộ phận mở rộng thêm chức năng cho Web Site, các Mod này có các chức năng khác nhau, được hiển thị trên trang Web tại các vị trí qui định và có thể thay đổi được. Một trang Web có thể hiển thị nhiều Mod giống và khác nhau, Mod có thể được cài đặt thêm vào Web Site.Thông thường sau khi cài đặt Joomla! có sẵn các Module: Main Menu (menu chính), Top Menu (menu phụ, nằm ngang), Search (hiển thị công cụ tìm kiếm), Poll (hiển thị bảng bình chọn, lấy ý kiến), Newsflash (hiển thị các bản tin nổi bật), Hit Counter (hiển thị số lượng truy cập Web Site), Banners (hiển thị các bảng quảng cáo)... 10 Thông thường một Mod sẽ gồm có 2 file chính là .php (chương trình) và file .xml (thông số cài đặt), ngoài ra có thể có thêm thư mục ảnh, Java Script... hỗ trợ thêm cho Module. 4.1.4. Cấu trúc của gói cài đặt Template (Temp) Template : Là giao diện, khuông dạng, kiểu mẫu, hình thức được thiết kế để trình bày nội dung của trang Web và có các vị trí định sẵn để tích hợp các bộ phận, thành phần của trang Web. Joomla! cho phép cài đặt và thay đổi Temp cho Web Site hay cho từng trang Web khác nhau một cách dễ dàng. Một gói cài đặt template Joomla gồm các file bắt buộc sau: index.php templateDetails.xml template_css.css hoặc template.css template_thumbnail.png các thư mục và file khác File "index.php" File này gồm các mã lệnh PHP, thẻ , thẻ và các bảng hoặc các thẻ để định vị các module và tạo nên bố cục của template. File "templateDetails.xml" Được sử dụng trong quá trình cài đặt. File này chứa các thông số về template và giúp Joomla! biết được trong quá trình cài đặt cần tạo các thư mục và truyền các file css, php, ảnh nào lên thư mục templates. File "template_css.css" hoặc "template.css" Joomla 1.0.x sử dụng file template_css.css còn Joomla 1.5 sử dụng file template.css. Đây chính là CSS chính của Joomla. File này kết hợp với index.php để tạo nên template. File "template_thumbnail.png" File này chính là ảnh chụp minh họa của template. Nó giúp bạn dễ hình dung khi lựa chọn template hoặc trong phần quản trị hoặc ở mặt tiền của Website (nếu bạn cho phép mọi người có thể tùy chọn template). Các thư mục và file khác Ngoài các file chính nói trên trong gói cài đặt template có thể có thêm thư mục CSS để chứa các file CSS bổ sung, thư mục ảnh để chứa các ảnh được sử dụng cho template, thư mục javascript để chứa các javascript (nếu có)... 11 4.1.5. Cách đưa Component, Module và Template tích hợp vào Joomla Để có thể tích hợp component, module và template vào Joomla ngoài việc dựa vào chuẩn cấu trúc của từng phần, kiến trúc của Joomla mà còn theo một số phương pháp sau: Các com, mod, template được tạo ra phải nén dưới dạng file.zip khi đó mới được cài đặt vào. Các com, mod, temp phải phù hợp với từng phiên bản của Joomla. Dùng lệnh Installation tương ứng với com, mod, temp để cài đặt. Sau khi đã cài đặt thành công thì kích hoạt com, mod, temp để có thể chạy ứng dụng bằng cách Publish. 2.3. Sử dụng WebServer chạy Joomla Để chạy được Joomla ta cần phải có một WebServer với Apache, MySQL, PHP and Perl, việc cấu hình và cài đặt WebServer gặp nhiều khó khăn và tốn kém thời gian. Hiện nay có nhiều phần mềm cấu hình sẳn và ứng dụng như một WebServer như Xamp, Wamp,… Trong phần này tôi sử dụng WebServer wamp để chạy Joomla. Cài đặt Wampserver 2.0. Đầu tiên ta cài Wampp Seerver Offlinetrên máy tính, download file WampServer2.0i.exe Chạy setup file WampServer2.0i.exe Chọn Next 12 Chọn I accept the agreement, chọn Next Chọn ổ đĩa chạy Wamp, đường dẫn mặt định của Wamp nằm ở C:/wamp, ở đây tôi để mặc định ở ổ C:/wamp, chọn tiếp Next 13 Chọn ô Creat a Desktop icon (tạo icon shorcut đến chương trình Wamp ra Desktop), chọn Next Chọn Install (tiến hành cài đặt Wamp), cứ chọn Next đến khi đến Finnish (kết thúc quá trình cài đặt 14 ) Chọn Lauch Wampserver, chạy Wamp khi quá trình cài đặt kết thúc. (ở trên hiện dòng Wampserver 2 now, là do tôi đã cài đặt Wamp trước đó nên có thêm số 2), sau khi chọn Finnish ta sẽ thấy Wamp chạy thường trực ở Stasbar Để kiểm tra xem việc cài đặt server offline có hoàn thành chưa, ta mở IE hoặc trình duyệt Firefox, Chrome, v.v. Mở trình duyệt ở Address gõ địa chỉ localhost, nếu như hiện ra Wamp Configure, nghĩa là ta đã cài đặt Wamp Server Offline thành công. 15 2.4. Cài đặt và cấu hình Joomla Hiện nay Joomla có 2 dòng, dòng 1.0.x đã ổn định và phù hợp để thực hiện các website của mình. Phiên bản mới nhất của dòng này là 1.0.15. Dòng 1.5.x đang phát triển tới phiên bản beta, chỉ phù hợp để test,chưa phù hợp để làm website chính thức. Trong bài này, tôi dùng phiên bản 1.0.15. Để download Joomla, có thể vào Website , tới mục download bên trái và chọn phiên bản 1.0.15. Cách cài đặt Joomla! Phiên bản 1.5.20 trên locallhost Bước 1: Chọn ngôn ngữ cài đặt Mở trình duyệt và gõ vào địa chỉ của Website Nếu giải nén bộ cài đặt vào thư mục gốc thì gõ: VD: (nếu cài trên máy tính) Màn hình cài đặt xuất hiện và ta có thể chọn một ngôn ngữ bất kỳ được hỗ trợ: Bước 2: Kiểm tra cấu hình hệ thống Để có thể cài đặt và sử dụng Joomla!, máy chủ phải đáp ứng một số yêu cầu. Joomla! sẽ kiểm tra các giá trị này. Nếu chúng có màu xanh thì OK. Còn nếu các giá trị kiểm tra có màu đỏ thì ta cần yêu cầu bộ phận Hỗ trợ kỹ thuật của Server 16 giúp đỡ. Tất nhiên, ta vẫn có thể tiếp tục cài đặt nhưng có thể một số chức năng sẽ không hoạt động. Bước 3: Thông tin bản quyền Bước 4: Thiết lập các thông số để kết nối tới Cơ sở dữ liệu 17 Trước khi thực hiện bước này ta cần có một database để chứa dữ liệu Joomla!. Hostname: Thường là giá trị "localhost" (chỉ điền giá trị khác nếu như Database Server và Web Server nằm ở 2 nơi khác nhau, hoặc Hosting của bạn cung cấp như vậy) • User name: Tên tài khoản gắn với database chứa Joomla. (Nếu làm trên localhost ta có thể dùng tài khoản có tên là root). • Password: Mật khẩu của tài khoản trên. (Nếu dùng tài khoản root, ta có thể để trống ô này) • Availbe Collations (nếu có): Nên chọn là "utf8_general_ci" • Database Name: Tên cơ sở dữ liệu sẽ chứa Joomla Chú ý mục "Table Prefix", để tránh bị tấn công "SQL Injection" bạn nên thay tiền tố "jos_" bằng một chuỗi ký tự khác, chẳng hạn "aroaniv_" Bước 5: Thiết lập các thông số FTP - Nếu đang cài đặt trên LOCALHOST, ta có thể bỏ qua bước này - Nếu Host của ta không hỗ trợ, ta cũng không cần quan tâm - Nếu Host của bạn hỗ trợ, bạn cần chú ý các thông số sau: FTP User: Tên tài khoản FTP - tài khoản dùng để quản lý các thư mục và file trên Host FTP Password: Mật khẩu tương ứng. 18 Auto Find Path: Tự động tìm đường dẫn tới nơi chứa Web của bạn FTP Host: Địa chỉ HOST chứa website Joomla, bạn có thể sử dụng địa chỉ IP của HOST FTP Port: Cổng của dịch vụ FTP, theo mặc định là 21 Nên dùng chính tài khoản mà bạn đã sử dụng để Upload bộ cài đặt Joomla lên HOST Bước 6: Thiết lập cấu hình site Joomla của bạn Site name: tên site của bạn. VD: TMDT.COM Your Email: địa chỉ email của bạn Admin Password: Mật khẩu để quản trị Joomla Các thông số trên sau này đều có thể thay đổi dễ dàng nên bạn không cần bận tâm lắm. Chỉ cần nhớ mật khẩu là đủ. Install Defaul Sample Data: Cài đặt dữ liệu mẫu. Bạn nên nhấn nút này để Joomla tạo mẫu cho bạn một trang web đơn giản. 19 Bước 7: Kết thúc Vì lý do an toàn và để hoàn tất quá trình cài đặt bạn cần xóa thư mục có tên "installation" - Lưu ý: tài khoản truy nhập hệ thống là: admin; mật khẩu: mật khẩu mà bạn đã gõ ở bước 6. - Để xem Website của bạn: Nhấn vào nút Site - Để quản trị Website: Nhấn vào nút Admin. Đường dẫn sẽ có dạng như sau: • (nếu cài trực tiếp trên máy của bạn) 20 2.5. Cài đặt ngôn ngữ tiếng việt cho Joomla Trong trình duyệt web, gõ: Đăng nhập vào quản trị Gõ vào username và password. Lúc này ta đã truy cập vào phần Back-End dùng để quản lý site. • Chọn Menu Extensions -> Install/Uninstall • Nhấn Browse... tìm và chọn gói ngôn ngữ sau đó nhấn Open. 2