Drupal có thể được cấu hình để tìm các mô-đun ở các vị trí khác không?


14

Tôi đặt các mô-đun của tôi trong các trang web / tất cả / mô-đun. Có cách nào để cấu hình Drupal để tìm thêm các mô-đun ở các vị trí khác không?


Đã chỉnh sửa

Tôi sử dụng Máy chủ ảo thường xuyên nhưng không theo cách bạn mô tả. Định dạng mà tôi quen thuộc trông giống như thế này và nó giúp tôi đặt toàn bộ dự án công việc ở một nơi khác không nằm trong www.

<VirtualHost *:80>
    ServerName testdrupal.com
    DocumentRoot "C:/proj/testdrupal"
    ServerAlias testdrupal.com

   <Directory "C:/proj/testdrupal/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

Tôi nghĩ những gì bạn đang mô tả là một cái gì đó khác nhau, phải không? Tôi đang cố gắng để thư mục drupal bên trong www như bình thường, nhưng chỉ di chuyển các trang web / tất cả / mô-đun sang một vị trí khác, nhưng tôi vẫn không thể hiểu được mục nhập Vhost sẽ như thế nào trong trường hợp này. Giả sử tôi muốn chuyển nó sang C: / proj / testdrupal. Tôi hy vọng tôi đã không hoàn toàn hiểu lầm bạn.

Câu trả lời:


14

Trước khi trả lời, thật hữu ích khi có một chút nền tảng về cách Drupal tìm thấy các mô-đun. Drupal sử dụng một danh sách các đề xuất từ ​​gốc Drupal để tìm ra nơi để tìm các mô-đun. Theo thứ tự ưu tiên:

  1. sites/$SITENAME/modules
  2. sites/all/modules
  3. profiles/$INSTALLPROFILE/modules
  4. modules

Nếu Drupal không tìm thấy mô-đun trong (1) , nó sẽ kiểm tra (2) . Nếu nó không ở đó, nó sẽ kiểm tra (3) , v.v.

Đối với (1) , nếu bạn chỉ sử dụng cài đặt cơ bản, một trang web của Drupal, $SITENAMEdefault. Nếu không thì:

  • Trong Drupal 6, $SITENAMElà tên máy chủ của trang web. Nếu trang web của bạn được đặt tại example.com, $SITENAMEsẽ được example.com.
  • Trong Drupal 7, $SITENAMEđược định nghĩa trong sites/sites.php. Nếu bạn nhìn vào example.sites.php, bạn có thể thấy cách xác định nó. Cũng cần lưu ý rằng bất kỳ mô-đun nào được liệt kê ở đó sẽ chỉ có thể sử dụng được cho các trang web cụ thể đó, không phải tất cả các trang web.

Trong (2) , bất kỳ mô-đun nào được tìm thấy sẽ có thể sử dụng được trên bất kỳ trang web nào trong quá trình cài đặt Drupal. Nó cũng sẽ không bị ảnh hưởng khi bạn nâng cấp cài đặt lõi. Tất nhiên, đây là nơi được đề xuất để đặt các mô-đun và có thể tất cả các tài liệu bạn đã đọc đã bảo bạn đặt các mô-đun của mình ở đây.

(3) được sử dụng để cài đặt hồ sơ yêu cầu một mô-đun cụ thể. Cấu hình cài đặt về cơ bản là một cách để xác định trạng thái ban đầu tùy chỉnh cho trang web Drupal. Ví dụ: Drupal đi kèm với hai cấu hình cài đặt được tích hợp sẵn: Tiêu chuẩn, bao gồm các tính năng được sử dụng nhiều nhất và Tối thiểu, chỉ bao gồm mức tối thiểu cần thiết cho một trang web Drupal hoạt động.

(4) được sử dụng bởi lõi Drupal. Mặc dù về mặt kỹ thuật bạn có thể thêm các mô-đun vào đây và chúng sẽ có sẵn cho tất cả các trang web, nhưng bạn không nên. Nghiêm túc. Các modulesthư mục được xúc động khi Drupal core được cập nhật, và sẽ gây ra vấn đề xuống dòng nếu bạn đang gắn bó module bạn cần cho trang web của bạn để chức năng đó.


Bây giờ nền đã hết, bạn có thể sử dụng các thủ thuật hệ thống tệp để đặt các mô-đun của bạn bên ngoài nơi Drupal nhìn.

Ví dụ: bạn có thể thiết lập một liên kết tượng trưng từ sites/all/modulesmột thư mục khác bên ngoài cài đặt Drupal:

  • Trong các hệ thống dựa trên Unix / Linux / BSD: ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
  • Trên Windows Vista / Server 2008/7 trở lên: mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder

Theo như tôi biết, không có nhiều thứ bạn có thể làm trong các phiên bản Windows trước đó không có mklink .


Cảm ơn rất nhiều, điều này thực sự giải thích nó, nhưng tôi vẫn gặp khó khăn khi làm cho nó hoạt động. Bạn có thể nhìn vào phần Chỉnh sửa trong bài viết của tôi. Đó là nhiều hơn có thể phù hợp ở đây. Cảm ơn.
cùng

@sameold Tôi đã sửa và làm rõ phần về các liên kết tượng trưng. Trên Windows, các liên kết tượng trưng khá sơ sài, nhưng tôi tin rằng lệnh tôi cung cấp sẽ hoạt động.

3

Trong Drupal 7, các thư mục mà Drupal tìm kiếm các mô-đun như sau:

  • mô-đun
  • hồ sơ / $ hồ sơ / mô-đun
  • $ config / mô-đun

$ profile là giá trị được trả về từ drupal_get_profile () ; $ config là giá trị được trả về từ conf_path () .
Hàm tìm kiếm tệp đối tượng hệ thống (mô-đun, chủ đề, v.v.) là drupal_system_listing () .

Các thư mục tương tự được tìm kiếm, trong Drupal 6. Sự khác biệt duy nhất là $ profile là một biến toàn cục; khi biến toàn cục không được đặt, hàm sẽ nhận giá trị của biến liên tục "install_profile", có giá trị mặc định là "mặc định".


2

Bạn có thể đặt chúng trong các trang web / tất cả / mô-đun, sau đó chúng sẽ có sẵn cho tất cả các trang web (nếu bạn có cấu hình đa trang web), trong các trang web / mặc định / mô-đun cho trang web mặc định hoặc trang web / site.com / mô-đun nếu bạn có nó. Đối với các thư mục sau, điều này có nghĩa là chúng sẽ chỉ có sẵn cho trang web cụ thể đó.

Ngoài ra, bạn có thể sắp xếp chúng theo ý muốn bên dưới các thư mục đó, nghĩa là bạn có thể tạo bất kỳ thư mục con nào trong đó. Một điều điển hình cần làm là tạo một thư mục contrib và sau đó đặt các mô-đun được tải xuống từ đó trong khi vẫn giữ các mô-đun tự viết cho trang web đó trong một thư mục tùy chỉnh.


1

Không chắc ý của bạn là gì, nhưng chúng tôi sử dụng một quy ước hơi phổ biến là tách biệt các mô-đun trong nhà từ các mô-đun của bên thứ 3.

Các mô-đun tùy chỉnh 'Làm tại nhà' sẽ có trong:

trang web / tất cả / mô-đun / tùy chỉnh

Các mô-đun của bên thứ 3 sẽ ở:

trang web / tất cả / mô-đun / nhà cung cấp

Nếu có thư mục con không phù hợp với nhu cầu của bạn, tôi tin rằng bạn có thể dễ dàng liên kết thư mục / obscure / path / to / module của mình vào thư mục mô-đun của drupal.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.