สามารถกำหนดค่า Drupal เพื่อค้นหาโมดูลในตำแหน่งที่ตั้งอื่นได้หรือไม่?


13

ฉันใส่โมดูลในเว็บไซต์ / ทั้งหมด / โมดูล มีวิธีการกำหนดค่า Drupal เพื่อค้นหาโมดูลเพิ่มเติมในตำแหน่งที่ตั้งอื่นด้วยหรือไม่


แก้ไข

ฉันใช้โฮสต์เสมือนบ่อยครั้ง แต่ไม่ใช่ในแบบที่คุณอธิบาย รูปแบบที่ฉันคุ้นเคยกับหน้าตาแบบนี้และมันช่วยให้ฉันทำงานโครงการทั้งหมดที่อื่นนอกเหนือจาก 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>

ฉันคิดว่าสิ่งที่คุณกำลังอธิบายเป็นสิ่งที่แตกต่างใช่มั้ย ฉันพยายามออกจากโฟลเดอร์ drupal ภายใน www ตามปกติ แต่ย้ายเฉพาะ sites / all / modules ไปยังตำแหน่งอื่น แต่ฉันยังไม่สามารถหาได้ว่ารายการ VHost จะเป็นอย่างไรในกรณีนี้ สมมติว่าฉันต้องการย้ายไปที่ C: / proj / testdrupal ฉันหวังว่าฉันไม่ได้เข้าใจผิดคุณอย่างสมบูรณ์

คำตอบ:


14

ก่อนที่จะตอบมีประโยชน์ที่จะมีพื้นหลังเล็กน้อยเกี่ยวกับวิธีที่ Drupal ค้นหาโมดูล Drupal ใช้รายการคำแนะนำจากรูทของ Drupal เพื่อค้นหาว่าจะหาโมดูลได้ที่ไหน ตามลำดับความสำคัญ:

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

หาก Drupal ไม่พบโมดูลใน(1)ก็ตรวจสอบ(2) หากไม่มีอยู่ก็จะตรวจสอบ(3)และอื่น ๆ

สำหรับ(1)ถ้าคุณเพียงแค่ใช้พื้นฐานเดียวเว็บไซต์ติดตั้ง Drupal, คือ$SITENAME defaultมิฉะนั้น:

  • ใน Drupal 6 $SITENAMEเป็นชื่อโฮสต์ของไซต์ หากเว็บไซต์ของคุณตั้งอยู่ที่example.com, จะเป็น$SITENAMEexample.com
  • ใน Drupal 7 ที่กำหนดไว้ใน$SITENAME sites/sites.phpหากคุณดูที่example.sites.phpคุณสามารถดูวิธีการกำหนด สิ่งสำคัญคือต้องทราบว่าโมดูลใด ๆ ที่ระบุไว้จะสามารถใช้งานได้กับไซต์นั้น ๆ เท่านั้นไม่ใช่ทุกไซต์

ใน(2)โมดูลใด ๆ ที่พบจะสามารถใช้งานได้ในไซต์ใด ๆ ในการติดตั้ง Drupal มันจะไม่ถูกแตะต้องเมื่อคุณอัพเกรดการติดตั้งหลัก แน่นอนนี่คือสถานที่ที่แนะนำให้วางโมดูลและน่าจะเป็นเอกสารทั้งหมดที่คุณอ่านได้บอกให้คุณวางโมดูลของคุณที่นี่

(3)ใช้สำหรับโปรไฟล์การติดตั้งที่ต้องการโมดูลเฉพาะ โปรไฟล์การติดตั้งนั้นเป็นวิธีการกำหนดสถานะเริ่มต้นที่กำหนดเองสำหรับไซต์ Drupal ตัวอย่างเช่น Drupal มาพร้อมกับโปรไฟล์การติดตั้งสองตัวที่สร้างขึ้น: Standard ซึ่งมีคุณสมบัติที่ใช้มากที่สุดและ Minimal ซึ่งมีขั้นต่ำเพียงอย่างเดียวที่จำเป็นสำหรับเว็บไซต์ Drupal ในการทำงาน

(4)ใช้โดย Drupal core ในขณะที่คุณสามารถเพิ่มโมดูลทางเทคนิคที่นี่และพวกเขาจะสามารถใช้ได้สำหรับทุกเว็บไซต์คุณไม่ควร อย่างจริงจัง. modulesโฟลเดอร์สัมผัสเมื่อ Drupal หลักที่มีการปรับปรุงและจะทำให้เกิดปัญหาลงเส้นถ้าคุณกำลังติดโมดูลที่คุณต้องการสำหรับเว็บไซต์ของคุณเพื่อฟังก์ชั่นที่มี


หลังจากที่พื้นหลังหมดคุณสามารถใช้เทคนิคระบบไฟล์เพื่อให้โมดูลของคุณอยู่นอกที่ที่ Drupal ดู

ตัวอย่างเช่นคุณสามารถตั้งค่าลิงก์สัญลักษณ์จากsites/all/modulesไดเรกทอรีอื่นนอกการติดตั้ง Drupal:

  • ในระบบที่ใช้ Unix / Linux / BSD: ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
  • ใน Windows Vista / Server 2008/7 และสูงกว่า: mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder

เท่าที่ผมทราบมีไม่มากที่คุณสามารถทำได้ในรุ่นก่อนหน้าของ Windows ที่ไม่ได้มีmklink


ขอบคุณมากสิ่งนี้อธิบายได้จริงๆ แต่ฉันยังคงมีปัญหาในการทำให้มันใช้งานได้ คุณช่วยดูที่หัวข้อแก้ไขในโพสต์ของฉันได้ไหม มันเกินจะพอดีที่นี่ ขอบคุณ
Sameold

@sameold ฉันได้แก้ไขและอธิบายส่วนที่เกี่ยวกับลิงก์สัญลักษณ์ ใน Windows ลิงก์สัญลักษณ์เป็นแบบร่าง แต่ฉันเชื่อว่าคำสั่งที่ฉันให้ไว้ควรใช้งานได้

3

ใน Drupal 7 ไดเรกทอรีที่ Drupal ค้นหาโมดูลมีดังต่อไปนี้:

  • โมดูล
  • โปรไฟล์ / รายละเอียด $ / โมดูล
  • $ config / โมดูล

$ profile คือค่าที่ส่งคืนจากdrupal_get_profile () ; $ config ที่เป็นค่าที่ส่งกลับจากconf_path ()
ฟังก์ชั่นที่การค้นหาไฟล์วัตถุระบบ (โมดูล, ธีม, ฯลฯ ) เป็นdrupal_system_listing ()

ค้นหาไดเรกทอรีเดียวกันใน Drupal 6 ข้อแตกต่างคือ $ profile เป็นตัวแปรทั่วโลก เมื่อไม่ได้ตั้งค่าตัวแปรโกลบอลฟังก์ชันจะรับค่าของตัวแปรถาวร "install_profile" ซึ่งมีค่าดีฟอลต์ของ "default"


2

คุณสามารถวางไว้ในเว็บไซต์ / ทั้งหมด / โมดูลจากนั้นพวกเขาจะสามารถใช้ได้กับทุกเว็บไซต์ (หากคุณมีการกำหนดค่าหลายเว็บไซต์) ในเว็บไซต์ / เริ่มต้น / โมดูลสำหรับเว็บไซต์เริ่มต้นหรือเว็บไซต์ / sites.com / โมดูลถ้า คุณมีสิ่งนั้น สำหรับไดเรกทอรีหลังนี่หมายความว่าพวกเขาจะสามารถใช้ได้เฉพาะไซต์นั้นเท่านั้น

นอกจากนี้คุณสามารถจัดระเบียบได้ตามที่คุณต้องการด้านล่างโฟลเดอร์ซึ่งหมายความว่าคุณสามารถสร้างโฟลเดอร์ย่อยใด ๆ ก็ได้ สิ่งทั่วไปที่ต้องทำคือการสร้างโฟลเดอร์ contrib แล้ววางโมดูลที่ดาวน์โหลดมาจากที่นั่นในขณะที่รักษาโมดูลที่เขียนด้วยตนเองสำหรับไซต์นั้นในโฟลเดอร์ที่กำหนดเอง


1

ไม่แน่ใจว่าคุณหมายถึงอะไร แต่เราใช้หลักการทั่วไปของการแยกโมดูลภายในองค์กรจากโมดูลบุคคลที่สาม

โมดูลที่กำหนดเอง 'ทำที่บ้าน' จะอยู่ใน:

เว็บไซต์ / ทั้งหมด / โมดูล / กำหนดเอง

โมดูลของบุคคลที่สามจะอยู่ใน:

เว็บไซต์ / ทั้งหมด / โมดูล / ผู้ขาย

หากการมีไดเรกทอรีย่อยไม่ตรงกับความต้องการของคุณฉันเชื่อว่าคุณสามารถเชื่อมโยงไดเรกทอรี / obscure / path / to / module ของคุณเข้ากับไดเรกทอรีโมดูลของ drupal ได้อย่างง่ายดาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.