Các liên kết web uy tín php. Hack và bổ sung. Cách làm cho một vị trí hiển thị ngẫu nhiên một trong các mô-đun được gán cho nó

Tôi tiếp tục chia sẻ với bạn các đoạn mã trang web nhỏ nhưng rất hữu ích giúp cải thiện thái độ của các công cụ tìm kiếm đối với trang web của bạn. Lần này chúng ta sẽ nói về liên kết trang thích hợp.

Trước tiên, hãy tạo cơ sở dữ liệu về địa chỉ trang và các điểm neo có thể có cho từng địa chỉ đó. Chúng tôi sẽ sử dụng tệp *.txt làm cơ sở. Cấu trúc tập tin sẽ như thế này:

Trang_địa chỉ_1; neo_1, neo_2, neo_3,..., neo_n trang_address_2; ​​​​neo_1, neo_2, neo_3,..., neo_n trang_address_3; neo_1, neo_2, neo_3,..., neo_n ... trang_địa chỉ_n; neo_3, ..., neo_n

Như bạn có thể thấy, bạn có thể sử dụng thêm tập lệnh với bất kỳ số lượng địa chỉ trang và điểm neo nào cho chúng. Địa chỉ trang được viết không có http://www.site.ru/, tức là ngay từ gốc mà không có dấu gạch chéo đầu tiên. Địa chỉ được phân tách khỏi các điểm neo bằng dấu chấm phẩy và các điểm neo được phân tách chỉ bằng dấu phẩy. Bạn cũng có thể viết địa chỉ đầy đủ, điều này sẽ thuận tiện hơn cho cá nhân tôi và bạn có thể tự mình thay đổi cách điền và xuất kết quả, tôi nghĩ bạn sẽ tự mình tìm ra nó bằng trực giác.

Và như vậy, một cơ sở dữ liệu về các liên kết và neo cho chúng đã được tạo, bên dưới tôi sẽ đưa ra một ví dụ về mã PHP để hiển thị trực tiếp các liên kết để liên kết trên trang web:

".$tex2[$tex3].""; } ?>

Chúng tôi dán mã này vào bất kỳ đâu trên trang web, mã này hiển thị 5 liên kết ngẫu nhiên từ cơ sở dữ liệu và một liên kết ngẫu nhiên. Tốt hơn là nên pha loãng các neo thay vì chỉ viết 1 vào liên kết. Với liên kết thích hợp trên trang web của bạn, bạn sẽ ngay lập tức thấy lưu lượng truy cập tăng lên và sự cải thiện trong các chỉ số trang web khác.

Tôi mong chờ câu hỏi của bạn trong phần bình luận cho bài viết này.

Ngày xuất bản: 03 tháng 3 năm 2014
    Đánh giá và nhận xét:

    Dmitry:
    Cảm ơn kịch bản, tôi sẽ thực hiện nó. Không thể sao chép mã nguồn từ trang web; nó chỉ được sao chép thành từng đoạn nhỏ;

    Kirill:
    Cảm ơn bạn đã lưu ý về việc sao chép, bây giờ tôi mới thấy, tôi sẽ cố gắng khắc phục sớm.

    Alexey Pavlov:
    Lỗi ở dòng $tex = nổ(://,$sendlist[$count] Bạn cần dấu chấm phẩy, không phải dấu hai chấm. Tôi đã thay đổi mã một chút để làm cho nó rõ ràng hơn:$neo"; } ?>

    Matrk:
    Bài viết hoàn toàn vô ích, bởi vì... Blog có bảo vệ bản sao văn bản.

    Kirill:
    Có một lỗi nhỏ trong js, vâng, không có thời gian để sửa nó, nhưng có lẽ người khác cũng vô dụng, vì họ không đủ thông minh, trong trường hợp này, hãy xem mã nguồn của trang và lấy nó từ đó

    Matrk:
    Những thứ kia. Tôi có nên xem lại mã nguồn và dọn sạch tất cả rác không? Bạn thật hài hước.

    Kirill:
    Có nghĩa là tôi nợ ai đó một cái gì đó? Tôi lấy tiền của bạn à, bạn đang cố gắng ở đây, cho lời khuyên miễn phí :))) Phô mai miễn phí chỉ có trong bẫy chuột, khi lớn lên bạn sẽ hiểu.

    Kirill:
    Tôi đã gỡ bỏ jamb, hãy tận hưởng nó vì sức khỏe của bạn.

    Andrey Kopaev:
    1 - có lẽ tốt hơn nên thực hiện việc này bằng cơ sở dữ liệu mysql, nó sẽ hoạt động nhanh hơn và dễ dàng hơn để thêm 2 - Tôi không hiểu mục đích của việc tạo danh sách liên kết mỗi lần là gì? Điều này ảnh hưởng thế nào đến tăng trưởng lưu lượng truy cập? Có thể tải bằng Ajax, tức là cái này dành cho người hay cho bot?

    www.trang web:
    Tuy nhiên, để quảng bá, cá nhân tôi không phải là người ủng hộ những hành vi thao túng như vậy với PS.

Hãy bắt đầu xem xét các thành phần bằng cách xem thành phần Weblinks cơ bản hoạt động như thế nào trong phần quản trị của trang web. Thành phần này, đặc trưng cho phần này của trang web, rất giống với các thành phần khác được thiết kế để quản lý bài viết, người dùng, mô-đun, v.v.

Các tập tin chương trình cho thành phần này được liệt kê dưới đây. Tất cả các tập tin này đều nằm trong thư mục quản trị viên/thành phần/com_weblinks. Trong suốt phần còn lại của chương này, tất cả tên tệp thành phần Weblinks đều được tham chiếu đến thư mục bắt đầu này trừ khi có ghi chú khác. Hầu hết các tệp được tổ chức theo mẫu MVC. Cụ thể, tất cả các tệp dạng xem đều nằm trong thư mục con dạng xem và tất cả các tệp mô hình và bộ điều khiển chính lần lượt nằm trong các thư mục con của mô hình và bộ điều khiển. Chúng cũng được bổ sung bằng các tập tin cài đặt, cấu hình và phụ trợ.

Các tập tin của phần quản trị của thành phầnLiên kết web, ngoại trừ tệp index.html

  • bộ điều khiển/weblink.php - Bộ điều khiển chính để chỉnh sửa Bộ điều khiển liên kết web đơn
  • bộ điều khiển/weblinks.php - Bộ điều khiển chính để biên dịch Bộ điều khiển và hiển thị danh sách các liên kết web trên màn hình Trình quản lý liên kết web
  • helpers/weblinks.php - Cung cấp nhiều phương thức khác nhau được sử dụng trong bộ điều khiển và dạng xem
  • models/fields/ordering.php - Model JformField hiển thị cột thứ tự weblink trên màn hình Weblinks Manager
  • models/forms/weblink.xml - Tệp XML được sử dụng trong lớp Jform-Model Field để bố trí biểu mẫu với các trường nhập và chỉnh sửa liên kết web trên màn hình
  • models/weblink.php - Mô hình cho một màn hình duy nhất Mô hình liên kết web
  • models/weblinks.php - Model cho mẫu màn hình quản lý Model của các liên kết web
  • sql/install.mysql.utf8.sql - Tệp SQL để tạo bảng liên kết web trong khi cài đặt
  • sql/uninstall.mysql.ut8.sql - Tệp SQL để xóa bảng liên kết web trong khi cài đặt
  • bảng/weblink.php - Cung cấp lớp Model
  • lượt xem/weblink/tmpl/edit_metadata.php - Tệp bố cục nguồn để chỉnh sửa siêu dữ liệu liên kết web

Phần quản trị của thành phần Weblinks

  • lượt xem/weblink/tmpl/edit_params.php - Tệp bố cục nguồn để chỉnh sửa các tùy chọn lựa chọn liên kết web đơn lẻ
  • lượt xem/weblink/tmpl/edit.php - Tệp bố cục nguồn để chỉnh sửa liên kết web
  • lượt xem/view.html.php - Lớp chế độ xem chính để hiển thị một liên kết web ở định dạng HTML Tệp bố cục nguồn cho trình quản lý liên kết web
  • lượt xem/weblinks/view.html.php - Lớp chế độ xem chính để hiển thị các liên kết web ở định dạng HTML trực tiếp trên màn hình Trình quản lý liên kết web
  • access.xml - File XML cung cấp danh sách các hành động cho hệ thống danh sách kiểm soát truy cập (ACL)
  • config.xml - File XML cung cấp danh sách các tùy chọn để chọn cấu hình của thành phần
  • control.php - Lớp trình điều khiển chính
  • weblinks.php - Điểm đầu vào cho yêu cầu
  • weblinks.xml - File XML dùng để kiểm soát quá trình cài đặt

Có một gợi ý trong tập tin /includes/joomla.php trong chức năng văn bản sạch thay thế dòng

$text = Strip_tags($text); $text = dải_tags ($text , " " ) ;

Vụ hack này nhằm mục đích chỉ mộtđối với ảnh được chèn dưới dạng ảnh bình thường. Đối với hình ảnh được chèn bởi mambot (mosimage), cách hack này sẽ không hoạt động.

Cách tạo liên kết trực tiếp xuất hiện trong thành phần com_weblinks

TRONG weblinks.html.php bạn cần thay thế dòng:

$link = sefRelToAbs( "index.php?option=com_weblinks&task=view&catid=". $catid ."&id=" . $row ->id ) ; $link = $row ->url ;

Cách làm cho Joomla hoạt động trên hai máy chủ (tên miền) cùng một lúc. Những thứ kia. ví dụ: trên mạng cục bộ tại 10.0.0.15 và từ trang Internet-firmy.ru. Mặc dù thực tế là cả hai địa chỉ đều được gán cho cùng một máy.

Đầu tiên, toàn bộ vấn đề là Joomla hiển thị tất cả hình ảnh và tệp CSS (đường dẫn của chúng trong mẫu) liên quan đến biến $mosConfig_live_site - địa chỉ cơ sở của trang web được nhập trong quá trình cài đặt. Và nếu ai đó cố gắng truy cập nó bằng một địa chỉ khác, thì logic hoạt động của nó sẽ không thay đổi gì - địa chỉ cơ sở được lấy từ tệp cấu hình. Ví dụ: nếu cấu hình cho biết Joomla nằm trên localhost, thì việc truy cập từ mạng cục bộ, ngay cả với Apache được cấu hình chính xác, nghe địa chỉ 192.168.0.1, sẽ không thay đổi bất cứ điều gì trong đó - src của hình ảnh sẽ vẫn bắt đầu bằng "localhost", đối với các máy khác sẽ có localhost riêng. Trọng tâm của các giải pháp cho những trường hợp như vậy là thay thế biến $mosConfig_live_site cho máy chủ được yêu cầu, để tất cả các chức năng có thể đưa ra các liên kết chính xác và dẫn người dùng đến trang web ảo này hoặc trang web ảo khác (cung cấp đường dẫn cơ bản chính xác đến hình ảnh và đường dẫn cơ bản đến địa chỉ). Có một trang web trực tiếp mambot Auto có thể tự động hóa việc này. Nếu nó không phù hợp với bạn theo một cách nào đó thì về nguyên tắc, nó có thể được lặp lại. , vì mục đích này. cấu hình.php Thay cho định nghĩa của $mosConfig_live_site, bạn cần viết mã của mình. Cái gì đó như:

nếu ($_SERVER [ "HTTP_HOST" ] =="host1.ru" ) $mosConfig_live_site = "host1.ru" ; khác $mosConfig_live_site = "host2.ru" ;

Cần lưu ý rằng nếu sử dụng bộ đệm, bạn cũng phải có hai thư mục bộ đệm khác nhau cho hai máy chủ, vì các liên kết đến các máy chủ khác nhau có thể giao nhau trong bộ đệm và khi đó người dùng từ mạng sai sẽ không đi đến đâu cả . Biến $mosConfig_cachepath chịu trách nhiệm về bộ đệm.

Cách làm cho hai thành phần xuất hiện đồng thời trên một trang

Tôi sẽ nói với bạn ngay - không phải mọi thứ đều đơn giản như vậy. Rốt cuộc thì nó không phải là một mô-đun. Vì vậy, trước hết, cần tìm kiếm một giải pháp thay thế, tức là. Chắc chắn một thành phần phổ biến sẽ đi kèm với các mô-đun có thể tái tạo chức năng của nó. Nếu không có gì như vậy thì đây là một lựa chọn. Nó có thể được tạo thành một mô-đun hoặc theo lý thuyết, nó có thể được chèn vào một mẫu. Ý tưởng là thế này - gọi thành phần thông qua index2.php (cái gì và tại sao - đọc toàn bộ sự thật). Những thứ kia. bạn có thể tạo iframe với src="index2.php?option=com_comComponent&no_html=1" tại điểm chèn mong muốn cho thành phần thứ hai. Và nó sẽ được hiển thị ở đó. Một điều nữa là khó có thể đảm bảo đầy đủ chức năng. Nhưng tuy nhiên, đây là một lối thoát.

Hoặc sử dụng cấu trúc: mosLoadComponent("com_mycomp" ) ;

Tuy nhiên, nếu thành phần được thực thi theo cách này thì bạn cần hiểu rằng nó không biết về các thao tác của bạn và sẽ hoạt động theo $option và $task của nó.

Cách tăng độ dài tiêu đề trong bài viết

Bạn cần chạy hai lệnh sau trong phpMyAdmin (có một trang đặc biệt để thực hiện các truy vấn SQL), chỉ cần thay thế ###_ bằng tiền tố bảng thực của bạn. Số tối đa có thể là 255. Trong ví dụ này, 200 được sử dụng.

THAY ĐỔI BẢNG `###_content` THAY ĐỔI `title_alias` `title_alias` VARCHAR(200) KHÔNG NULL; THAY ĐỔI BẢNG `###_content` THAY ĐỔI `title` `title` VARCHAR(200) NOT NULL;

Cách đưa văn bản tin tức đầy đủ vào nguồn cấp dữ liệu RSS của bạn, không chỉ tiêu đề của chúng

Để thực hiện việc này, trong file /comComponents/com_rss/rss.php, bạn cần thay thế

$item_description = $row ->introtext ; $item_description = $row ->fulltext ;

Làm cách nào tôi có thể tạo hai trang Joomla bằng cùng một cơ sở dữ liệu hoặc sử dụng cùng một tệp?

Đối với việc sử dụng một cơ sở dữ liệu, bạn cần viết một cơ sở dữ liệu trong config.php cho hai công cụ, nhưng bạn cần hiểu mình đang làm gì. Bởi vì việc duy trì phiên cho người dùng trong trường hợp này sẽ rất rắc rối, vì các miền khác nhau. Những thứ kia. các mục đăng nhập trong bảng #__sessions sẽ (có thể) trùng lặp.

Nếu bạn muốn sử dụng cùng một tệp mà không cần sao chép một bản phân phối lớn thì về nguyên tắc, bạn có thể sử dụng lệnh “ln -s” trong Linux để tạo liên kết tượng trưng đến các tệp hiện có và không sao chép chúng cho trang web mới.

Cách tạo một trang ảo có thể truy cập tại một địa chỉ cụ thể trong thiết kế Joomla chung (http:// /site.ru/super_page)

  • Cách đầu tiên là sử dụng một số loại thành phần SEF, trong đó bạn chỉ định đường dẫn ảo mong muốn cho một trang tĩnh. Có một điểm trừ ở đây - thành phần này sẽ bắt đầu làm lại tất cả các liên kết khác (và nhìn chung các thành phần này rất ngốn điện và cần nhiều tài nguyên để hoạt động).
  • Tạo bí danh cho một trang như vậy bằng cách sử dụng mod_rewrite.htaccess. Để làm điều này bạn cần:
    • Tạo một trang tĩnh với văn bản bạn cần, tìm ID và địa chỉ của nó (không cần thiết phải tạo một trang như vậy, nó có thể đã tồn tại và nói chung nó chỉ là một thành phần bất kỳ, không nhất thiết phải là com_content)
    • Hãy nghĩ ra một bí danh, hãy để nó là " siêu_puper"
    • Mở .htaccess và trước dòng "RewriteCond %(REQUEST_FILENAME) !-f" ghi:
RewriteRule ^(super_puper) index.php?option=com_content&task=view&id=12 RewriteCond %(REQUEST_FILENAME) !-f
    • Và bây giờ, với điều kiện Joomla được đặt tại site.ru, khi bạn mở liên kết http:// /site.ru/super_puper, trang tĩnh bắt buộc có thông tin của bạn sẽ mở ra. Bản thân liên kết "index.php?option=com_content&task=view&id=12" có thể là bất cứ thứ gì bạn cần, điều quan trọng chính là liên kết đó không phải tuyệt đối (tức là với http:// /...) và tương đối ( phải bắt đầu với index.php?...)

Cách tắt bộ nhớ đệm cho một bài viết cụ thể

Điều này có thể cần thiết nếu bạn sử dụng mambot rd_addphp để chèn bất kỳ tập lệnh nào sẽ tạo ra số ngẫu nhiên hoặc văn bản ngẫu nhiên mọi lúc, bất kể hệ thống bộ đệm Joomla. Để vô hiệu hóa bộ nhớ đệm của một mục nào đó, bạn cần tìm ID của nó (trong bảng quản trị, khi chỉnh sửa, hãy nhìn vào thanh địa chỉ, nó sẽ báo như "...&id=123..."). Vậy 123 sẽ là ID bài viết của chúng ta. Cần thay thế trong tệp /comComponents/com_content/content.php khoảng trên dòng 1600

$cache ->call ( "HTML_content::show" , $row , $params , $access , $page ) ; if ($row ->id !="123" ) $cache ->call ( "HTML_content::show" , $row , $params , $access , $page ) ; khác HTML_content::show ($row, $params, $access, $page) ;

Trong đó 123 là ID bài viết bạn cần.

Tôi đã cài đặt rất nhiều thành phần, nhưng danh sách các thành phần trong menu quản trị hiển thị số lượng thành phần giảm đi và sau đó thông báo “Thêm thành phần…”. Cách hiển thị tất cả các thành phần.

Bạn cần một dòng trong tệp /administrator/modules/mod_fullmenu.php

$topLevelLimit = 19 ;

thay thế bởi

$topLevelLimit = 199 ;

Cách cài đặt bản sao của một thành phần

Phải nói rằng nhiệm vụ này vô cùng khó khăn. Nếu bạn không hiểu cách thức hoạt động của thành phần thì bạn thậm chí không nên thử. Dành cho những người vẫn muốn lưu ý những điểm chính:

  • Trong file XML đổi tên thành phần trong thẻ tên
  • Tiếp theo, bạn cần đổi tên các bảng được sử dụng (trước tiên là trong tệp XML và thứ hai là trong tất cả các tệp thành phần, bất cứ nơi nào đối tượng cơ sở dữ liệu được sử dụng cơ sở dữ liệu $ và phương pháp setQuery)
  • Đổi tên tất cả các đường dẫn trong các thành phần. Đường dẫn có thể được sử dụng trong các tham chiếu đến chính nó hoặc trong tên của các tệp được bao gồm. Thông thường, điều này xảy ra khi tìm kiếm chuỗi con com_comComponentname và thay thế nó bằng một chuỗi mới.

Nhưng phương pháp này không đảm bảo bất cứ điều gì. Với những cái đơn giản thì điều này có thể và sẽ trôi qua, nhưng với những cái phức tạp thì không ai có thể đảm bảo được.

Cách làm cho một vị trí hiển thị ngẫu nhiên một trong các mô-đun được gán cho nó

  • Tùy chọn 1 - hack chức năng mosLoadModules. Trong mẫu, ở nơi cần hiển thị một trong N mô-đun, chúng tôi viết (chú ý đến đối số thứ ba):
mosLoadModules("vị trí", display_setup,true);

Và chúng tôi sửa lại một chút chức năng trên:

hàm mosLoadModules( $position ="left" , $style =0 , $show_random = false ) ( ... $allModules =& initModules() ; if (isset ($GLOBALS [ "_MOS_MODULES" ] [ $position ] ) ) ( $modules = $GLOBALS [ "_MOS_MODULES" ] [ $position ] ; else ( $modules = array () ; ) // thêm vào đây nếu ($show_random && sizeof ($modules ) >0 ) ( $tmp = $modules [ rand (0 ,sizeof ($modules ) -1 )] ; $modules = mảng ($tmp ) ; // kết thúc câu lệnh if ( count ($ module )< 1 ) { $style = 0 ; }

Chúng tôi đã thêm đối số thứ ba vào nó (được sử dụng trong mẫu, nơi chúng tôi viết đúng) và sửa đổi mã.

  • Tùy chọn thứ hai dễ dàng hơn, chúng tôi chỉ sửa đổi mẫu. Nhưng tốn nhiều công sức hơn - chúng ta cần tạo ra một số vị trí. Đầu tiên, chúng tôi tạo một số vị trí mô-đun mới, ví dụ new1 ... new10. Cứu. Ở đúng vị trí trong mẫu, trước khi gọi hàm mosLoadModules, hãy thêm mã cần thiết:
$rand_num = rand(1,10); // từ 1 đến 10 - như tên vị trí mosLoadModules ("mới". $rand_num, display_settings);

Tôi tin rằng bằng cách đổi tên thư mục /adminisrator/ tôi sẽ làm cho trang web của mình an toàn hơn

Tùy chọn này không được cung cấp theo tiêu chuẩn. Nhưng trên thực tế, bằng cách tổ chức tìm kiếm trong các tệp Joomla, bạn có thể thay thế bất kỳ sự xuất hiện nào của một từ như vậy bằng từ của bạn - bí mật. Đôi khi, sau này, các lỗi không thể truy cập tệp có thể xuất hiện, nhưng biết được tệp và số dòng thì có thể sửa được. Vì vậy, về nguyên tắc, vấn đề có thể giải quyết được.

bánh nhiều lớp

Chúng ta sẽ nói về thành phần com_weblinks và đánh dấu html của trang Joomla. Về cách tạo một thư mục liên kết trên một trang web Joomla một cách dễ dàng và đơn giản.

CMS này được tạo để tương tác với người dùng đã đăng ký mà không cần mã hóa trực tiếp. Mặc dù xu hướng phát triển của Joomla đang dẫn đến việc loại bỏ thành phần com_weblinks vì nó hoàn toàn vô dụng trên trang web và chỉ đơn giản là tăng thêm trọng lượng (hơn 100 kb - 90 tệp) cho một hệ thống vốn đã “nặng”. Nhưng hiện tại thành phần này vẫn còn trong bản phân phối và được một số lập trình viên sử dụng.

Trang web Joomla hiển thị trên màn hình là một chiếc bánh lớp, trong quá trình xây dựng có nhiều khối (và do đó có nhiều mẫu) được tham gia đồng thời. Đây là nơi triết lý Joomla phát huy tác dụng - xây dựng trang web khối lớn. Mỗi khối phải có mẫu đánh dấu HTML (bố cục) riêng.

Các khối chính:

Mẫu trang chính (site_template/index.php), với mã đánh dấu html xác định vị trí cho các mô-đun và thành phần, đồng thời hiển thị các mô-đun và thành phần này.
- mẫu trang
- mẫu mô-đun
- mẫu thành phần

Mỗi khối lớn này đều có sẵn để chỉnh sửa (thay đổi). Nghĩa là, bạn có thể chỉnh sửa riêng biệt, chẳng hạn như mẫu của bất kỳ mô-đun hoặc thành phần nào và nó sẽ trông mới trên trang. Mẫu trang cũng vậy.

Người mới lập trình có thể khó hiểu rằng dòng đầu tiên trong phần nội dung của trang được hiển thị dưới dạng tiêu đề trang và được chỉnh sửa trên trang chỉnh sửa của mục menu trỏ đến trang này. Dòng thứ hai được lấy từ mẫu thành phần com_content hoặc com_weblinks. Và các chuỗi trong mẫu thường là các biến chuỗi và việc khởi tạo và bản địa hóa chúng được thực hiện trong các tệp ngôn ngữ, chẳng hạn như ngôn ngữ\ru-RU\ru-RU.mod_weblinks.ini và những thứ tương tự.

Đôi khi người mới bắt đầu bối rối không biết mẫu nào tạo ra dòng này hoặc dòng kia, dòng này trên trang màn hình trông giống như một phần tiếp theo hợp lý của cùng một câu chuyện. Hóa ra một dòng nằm trong một mẫu, một dòng khác trong mẫu thứ hai và dòng thứ ba trong mẫu thứ ba. Và bảng theo thẻ bên dưới là đầu ra từ mẫu mô-đun mod_tabform.

Đôi khi các mẫu mô-đun được gọi là bố cục. Nhưng đây là một câu hỏi về thuật ngữ. Bản chất là như nhau - đó là “quần áo” cho nội dung. Sẽ đúng hơn nếu nói đánh dấu. Vì vậy, đánh dấu của một trang màn hình nằm trong các tệp thư mục Joomla khác nhau.

Thực đơn

Nhiều lập trình viên Joomla mới thường không hiểu rằng các mục menu có thể có nhiều loại khác nhau. Nói cách khác, các mục menu có thể đề cập đến các đối tượng Joomla thuộc nhiều loại khác nhau. Đây có thể là các đối tượng khác nhau, chẳng hạn như: các thành phần (bỏ phiếu, tìm kiếm, thư mục liên kết, v.v.).

Chọn loại mục menu:

Danh bạ (com_contact)
Danh sách các danh mục liên hệ (danh mục)
Danh sách liên hệ của một danh mục nhất định (danh mục)
Liên hệ ( liên hệ)
Liên hệ yêu thích (đặc trưng)

Tài liệu (com_content)
Tài liệu lưu trữ (lưu trữ)
Tài liệu (bài viết)
Danh sách tất cả các danh mục ( Thể loại)
danh mục blog
Danh sách danh mục vật liệu (loại)
Vật liệu nổi bật
Tạo tài liệu

Tìm kiếm thông minh (com_search)
Tìm kiếm ( tìm kiếm)

Chào thế giới! ( com_helloworld)
Tin nhắn ( Chào thế giới)

Nguồn cấp tin tức (com_newsfeeds)
Danh sách tất cả các danh mục nguồn cấp tin tức ( Thể loại)
Danh sách các nguồn cấp tin tức trong danh mục (category)
Nguồn cấp tin tức

Tìm kiếm ( com_search)
Biểu mẫu tìm kiếm và danh sách kết quả tìm kiếm (search)

Trình quản lý người dùng (com_users)
Mẫu ủy quyền (đăng nhập)
Hồ sơ người dùng (hồ sơ)
Thay đổi hồ sơ người dùng
Mẫu đăng ký
Khôi phục tên người dùng (nhắc nhở)
Thay đổi mật khẩu (đặt lại)

Trình bao bọc (com_wrapper)
Vỏ bánh

Như bạn có thể thấy, ở đây tất cả các loại menu đều là thành phần. Theo tên của nó, loại mục menu thực sự chỉ ra tên của mẫu thuộc loại thành phần của nó. Và các mẫu thành phần được đặt trong thư mục dạng xem:

j Joomla\thành phần\com_weblinks\lượt xem\danh mục
j Joomla\thành phần\com_weblinks\lượt xem\danh mục
j Joomla\thành phần\com_weblinks\lượt xem\weblink
j Joomla\thành phần\com_users\lượt xem\đăng nhập

Như bạn có thể thấy, tên của các loại liên kết trong menu và tên của các mẫu trong thư mục vews đều giống nhau.

Nhà phát triển có khả năng tạo các mẫu (bố cục) không chuẩn mới cho các thành phần. Những bố cục mới này cũng sẽ được phản ánh dưới dạng các loại menu mới trong cửa sổ chọn loại menu. Đây là một chủ đề riêng biệt.

Nội dung demo phân phối Joomla

Chúng ta hãy xem cách phân cấp của các mục trong Menu "Giới thiệu về Joomla" được xây dựng để hiển thị Thành phần com_weblinks trên nội dung demo mặc định (Beez2 - Mặc định) của mẫu Joomla.

Chúng ta hãy vào bảng quản trị để chỉnh sửa thành phần com_weblinks: Components->Links. Chúng tôi thấy rằng trong nội dung demo đi kèm với bản phân phối, năm danh mục đã được tạo cho thành phần com_weblinks. Điều này có nghĩa là các liên kết sẽ được phân thành năm loại. Tất cả các danh mục đã tạo sẽ được lưu trong bảng cơ sở dữ liệu #_categories. Danh mục cho các thành phần khác cũng được lưu trữ trong cùng một bảng.

Dữ liệu mẫu-Liên kết web
|-Công viên Liên kết
|-Joomla! Liên kết cụ thể
|-|-Tài nguyên khác
Chưa được phân loại

Trong menu Giới thiệu về Joomla (trong trình chỉnh sửa menu), một hệ thống phân cấp các mục menu đã được tạo tương ứng:

Thứ bậc của các mục trong menu:

Sử dụng Joomla! (loại: vật liệu)
|-Sử dụng Tiện ích mở rộng (loại: danh sách tất cả các danh mục) :: danh sách các danh mục trong tài liệu
|-|-Thành phần (loại: blog danh mục) :: danh mục trong tài liệu
|-|-|-Thành phần liên kết web (loại: vật liệu)
|-|-|-|-Gửi một liên kết web (loại: tạo liên kết) :: trong thành phần Liên kết
|-|-|-|-Weblinks Single Category (loại: danh sách các liên kết trong một danh mục) :: trong thành phần Liên kết
|-|-|-|-Danh mục liên kết web (loại: danh sách các danh mục liên kết) :: trong thành phần Liên kết

Chúng tôi thấy rằng một số mục menu có các loại: danh sách danh mục, danh sách liên kết trong một danh mục và tạo liên kết.
"Danh sách các danh mục liên kết" chỉ định danh mục hàng đầu mà hệ thống phân cấp sẽ được hiển thị.
"Danh sách các liên kết trong một danh mục" chỉ định danh mục có các liên kết sẽ được hiển thị.
Trong mục “Tạo liên kết”, một biểu mẫu sẽ được hiển thị mà người dùng đã đăng ký sẽ phải điền vào.
Nhân tiện, đây là giao diện của liên kết đến biểu mẫu này trong trình chỉnh sửa (giao diện của nó sẽ thay đổi trên thanh địa chỉ):

index.php?option=com_weblinks&view=form&layout=edit

Một số mục menu chỉ có thể được hiển thị cho người dùng đã đăng ký! Ví dụ: một mục menu có loại "Tạo liên kết" sẽ chỉ hiển thị đối với người dùng đã đăng ký. Tính năng này được tạo riêng để người dùng đã đăng ký có thể tạo liên kết sẽ được đăng trên trang.

Do đó, thành phần com_weblinks cung cấp một cách tốt để đưa các liên kết thú vị vào một trang một cách tương tác. Hơn nữa, tất cả các liên kết sẽ được đặt trên một trang như vậy đều có chuyển hướng, nghĩa là chúng sẽ không được lập chỉ mục là bên ngoài. Bạn có thể đã thấy các liên kết như vậy trên các diễn đàn. Khi bạn di chuột qua một liên kết như vậy, bạn sẽ thấy địa chỉ trang web của mình và chỉ sau khi nhấp vào liên kết đó, bạn mới được chuyển hướng đến địa chỉ bạn đã chỉ định.

Khả năng người dùng thêm liên kết đến các trang bên ngoài là ưu điểm và ý nghĩa chính của thành phần com_weblinks, cũng như khả năng người dùng thêm nội dung mới - bài viết, hình ảnh, tệp video, v.v.

Cho phép người dùng đã đăng ký có quyền điền nội dung vào trang web mà không cần mã hóa trực tiếp là triết lý cơ bản của CMS Joomla.

Chưa được phân loại
Dữ liệu mẫu-Bài viết
|- Joomla!
|-|- Tiện ích mở rộng
|-|-|- Thành phần
|-|-|- Mô-đun
|-|-|-|- Mô-đun nội dung
|-|-|-|- Mô-đun người dùng
|-|-|-|- Mô-đun hiển thị
|-|-|-|- Module tiện ích
|-|-|-|- Mô-đun điều hướng
|-|-|- Mẫu
|-|-|-|- Nguyên tử
|-|-|-|- Beez 20
|-|-|-|- Beez 5
|-|-|- Ngôn ngữ
|-|-|- Plugin
|- Công viên
|-|- Blog công viên
|-|- Thư viện ảnh
|-|-|- Động vật
|-|-|- Phong cảnh
|- Trang web cửa hàng trái cây
|-|- Người trồng trọt
|-|- Bí quyết

Có vẻ như không có quá nhiều danh mục cho nội dung!
Bạn cũng có thể xem thứ bậc của các danh mục trong tài liệu bằng cách sử dụng truy vấn tới bảng danh mục trong cơ sở dữ liệu:

CHỌN * TỪ `#_categories` Ở ĐÂU `extension` = "com_content"