คำถามติดแท็ก entities

โหนดความคิดเห็นข้อกำหนดด้านอนุกรมวิธานและผู้ใช้ในศัพท์ที่ใช้ตั้งแต่ Drupal 7 มักเรียกว่า "เอนทิตี"

4
วิธีซ่อนแท็บ“ จัดการฟิลด์” และ“ จัดการจอแสดงผล”
ฉันกำลังสร้างเว็บไซต์กับ Drupal 7 และฉันกำลังตรวจสอบสิทธิ์สำหรับ Taxonomies ฉันต้องการให้ผู้ดูแลเว็บไซต์เป็นศูนย์กลางในการจัดการคำศัพท์และเพิ่มคำศัพท์เรียงลำดับคำศัพท์ ฯลฯ ดังนั้นฉันจึงให้สิทธิ์ในการ "จัดการคำศัพท์และคำศัพท์" ภายใต้ Taxonomy อย่างไรก็ตามสิ่งนี้ส่งผลให้เกิดความยุ่งยากที่ไม่พึงประสงค์ส่วนใหญ่ทำให้พวกเขาสามารถเข้าถึงเพื่อสร้างฟิลด์ใหม่และจัดการจอแสดงผลของพวกเขา (แท็บ "จัดการฟิลด์" และ "จัดการจอแสดงผล") มีวิธีให้พวกเขาเข้าถึงหน้าจอคำศัพท์และคำศัพท์ซึ่งสามารถเข้าถึงได้ผ่าน "โครงสร้าง> Taxonomy" แต่อย่างไรก็ตามปิดการใช้งานแท็บ "จัดการฟิลด์" และ "จัดการจอแสดงผล" บนหน้าจอแก้ไขคำศัพท์หรือไม่ ฉันค่อนข้างคุ้นเคยกับแนวคิดเรื่องการเอาชนะและ hooks ใน Drupal 6 แต่ฉันค่อนข้างใหม่กับ Drupal 7 (อันที่จริงนี่เป็นเว็บไซต์ D7 แรกของฉันที่สร้างขึ้นประมาณ 5 หรือ 6 D6 เว็บไซต์) ดังนั้นฉันจึงไม่สนใจ การแก้ปัญหาการเข้ารหัสนี้ถ้ามี เพียงแค่มองหาคำตอบหรือผลักดันในทิศทางที่ถูกต้อง เนื่องจากยังไม่มีใครตอบฉันต้องการเพิ่มว่าฉันยินดีที่จะมองหาทางเลือกอื่นในพื้นที่ส่วนกลางเพื่อจัดการ taxonomies (admin / โครงสร้าง / taxonomy) …

4
ตรวจสอบว่าฟิลด์ว่างเปล่าหรือไม่
คุณจะตรวจสอบได้อย่างไรว่าเขตข้อมูลว่างเปล่าเมื่อคุณมีวัตถุ $ node? ฉันพบสิ่งนี้เป็นวิธีแก้ปัญหาที่เป็นไปได้: $field = field_get_items('node', $node, 'field_post_image'); ฉันสามารถตรวจสอบตอนนี้: UPDATE .Ups! สิ่งนี้ไม่น่าเชื่อถือแม้ว่าฉันจะสัญญาว่าจะทำงานให้ฉันเมื่อวานนี้ isset($field); แต่ฉันสงสัยว่ามีวิธีที่ดีกว่า สอนฉัน
18 7  entities 

10
ฉันจะเปลี่ยนชื่อเครื่องของเขตข้อมูลได้อย่างไรเมื่อสร้างแล้ว
ฉันเว้นระยะขณะที่พิมพ์ชื่อฟิลด์และตอนนี้ชื่อเครื่องไม่ใช่สิ่งที่ฉันต้องการให้เป็น ฉันรู้ว่ามันเป็นเรื่องน่ารำคาญ แต่ฉันสงสัยว่าจะมีวิธีในการเปลี่ยนชื่อเครื่องของฟิลด์เมื่อสร้างขึ้นหรือไม่ ฉันคิดว่าสิ่งนี้ทำให้ฉันเข้าไปในส่วนที่สองของคำถามของฉัน ถ้าฉันสร้างเขตข้อมูลและไม่ได้ใช้งานอีกต่อไปฉันจะลบทิ้งได้อย่างไรจะต้องทำสิ่งนี้จากฐานข้อมูลหรือจะทำที่ใดที่หนึ่งใน UI ได้

2
ฉันจะตรวจพบได้เมื่อมีการเปลี่ยนโหนดจาก 'เผยแพร่' เป็น 'ไม่เผยแพร่'
ในhook_node_update ()ฉันสามารถบอก 'สถานะ' ของโหนดได้อย่างง่ายดาย (ไม่ว่าจะเผยแพร่หรือไม่ก็ตาม) หลังจากอัปเดตแล้ว อย่างไรก็ตามมีวิธีที่ง่ายในการตรวจสอบเพื่อดูว่าโหนดที่อัพเดตถูกเผยแพร่ แต่ตอนนี้ไม่ใช่หรือไม่? (หรือในทางกลับกัน)? ฉันคิดว่ากฎอาจมีเงื่อนไขบางอย่างสำหรับ 'ค่าโหนดเปลี่ยนไป' หรือบางอย่างตามบรรทัดเหล่านั้น แต่ฉันต้องการทำสิ่งนี้โดยทางโปรแกรม ฉันพบปัญหานี้โดย fago (ผู้พัฒนากฎ) บน drupal.org ที่ดูเหมือนจะจัดการกับสิ่งนี้ใน Drupal 7 แต่คำอธิบายที่ดีจะได้รับการชื่นชม
17 7  nodes  entities  hooks 



9
ฉันจะลบรายการออกจากรายการค่าที่อนุญาตของฟิลด์เลือกที่มีข้อมูลสำหรับค่าได้อย่างไร
ฉันสร้างประเภทเนื้อหาที่มีฟิลด์รายการ / เลือกตัวเลือกแล้วฉันได้ป้อนคู่คีย์ | ค่าตามที่จำเป็นเพื่อให้รายการเลือกทำงาน มีการป้อนข้อมูลและมีการตัดสินใจว่าจะไม่ใช้ข้อกำหนดบางอย่างอีกต่อไปและควรลบทิ้ง อย่างไรก็ตามเมื่อพยายามลบคำดังกล่าวฉันได้รับข้อผิดพลาดต่อไปนี้: Allowed values list: some values are being removed while currently in use. เห็นได้ชัดว่าในชีวิตของโครงการค่าจะเปลี่ยนไป การลบไอเท็มในทางปฏิบัติเมื่อโหนดเชื่อมโยงกับข้อกำหนดที่ระบุไว้คืออะไร นี่เป็นเรื่องที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้: https://drupal.org/node/1653012 มันอ้างอิงปลั๊กอิน d6 และแพทช์ที่มีเล่ห์เหลี่ยมบางอย่างที่ฉันไม่ต้องการใช้ หากในที่สุดฉันต้องใช้แพทช์เพื่อลบการตรวจสอบความถูกต้องในฟิลด์นั้นในที่สุดจะมีอันตรายในการทิ้งรายการเหล่านั้นไว้บนโหนดที่พวกเขาเกี่ยวข้องหรือไม่ อัปเดตฉันพบปัญหานี้อีกครั้งกับลูกค้ารัฐบาลซึ่งในช่วง 7 ปีที่ผ่านมาที่มีเว็บไซต์ Drupal นั้นมี 50 รัฐและดินแดนในรายการที่เลือก ตอนนี้นโยบายมีการเปลี่ยนแปลงและไม่จำเป็นต้องรวมดินแดนอีกต่อไป ความสามารถในการลบรายการออกจากรายการที่เลือกมีความสำคัญและทำให้ฉันได้รับรางวัล ฉันกำลังมองหาโซลูชันที่ปลอดภัยเพื่อให้สามารถลบรายการออกจากรายการที่เลือก สิ่งที่ฉันไม่รู้คือถ้าโซลูชันนั้นควรอัปเดตโหนดใด ๆ เนื่องจากฉันไม่แน่ใจว่าวิธีการเก็บค่าฟิลด์ที่สัมพันธ์กับเนื้อหาทั้งหมดของโหนด ฉันมีความสุขกับการแก้ปัญหา SQL บริสุทธิ์เพื่อให้ทำงานใน MySQL; หรือฉันกำลังมองหาโมดูล
16 7  entities 

3
จะดีบัก EntityMalformedException อย่างไร
ฉันมีข้อผิดพลาดร้ายแรงEntityMalformedException: ไม่มีคุณสมบัติบันเดิลในเอนทิตีของโหนดประเภท ใน entity_extract_ids () (สาย 7700 ของ. \ รวมถึง \ common.inc) เมื่อพยายามที่จะเข้าถึงผู้ใช้ / xyz ฉันพยายามดึงข้อมูลเกี่ยวกับโหนดที่มีรูปแบบไม่ถูกต้องที่บรรทัด 7700 ซึ่งมีการสร้างข้อความแสดงข้อผิดพลาดคิดว่า: if (!isset($entity->{$info['entity keys']['bundle']}) || $entity->{$info['entity keys']['bundle']} === '') { dpm($info);// or dpm($entity); throw new EntityMalformedException(t('Missing bundle property on entity of type @entity_type.', array('@entity_type' => $entity_type))); } dpm($entity) ส่งคืนวัตถุผู้ใช้ที่ไม่คาดคิดและ $ info เป็นจำนวนมาก มีใครบางคนทำให้ฉันในทางที่ถูก? …

2
วิธีการใช้ตัวจัดรูปแบบฟิลด์สำหรับคุณสมบัติเอนทิตี
ฉันสร้างที่กำหนดเองนิติบุคคลใช้Entity APIที่มีคุณสมบัติบางอย่างที่กำหนดไว้ในhook_schema()และประกาศในentityPropertyInfo(), EntityDefaultMetadataControllerการขยายชั้นเรียน จนถึงตอนนี้ดีมาก ตอนนี้ผมต้องการให้ผู้ใช้สามารถปรับแต่งถ้าและวิธีการคุณสมบัติเหล่านี้ได้แสดงเมื่อดูหน่วยงานดังนั้นผมจึงดำเนินการhook_field_extra_fields ()และประกาศให้พวกเขา จากนั้นในการควบคุมของฉันซึ่งทอดตัวEntityAPIControllerฉันเพิ่มคุณสมบัติไปยังอาร์เรย์ $ เนื้อหาในbuildContent()ขณะที่ระบุไว้ที่นี่ มันใช้งานได้ค่อนข้างดีและมีการแสดงคุณสมบัติและเคารพการสั่งซื้อและการมองเห็นใน "จัดการจอแสดงผล" อย่างไรก็ตามฉันไม่สามารถหาวิธีเพิ่มการตั้งค่าใน Manage Display เพื่อปรับแต่งการวางตำแหน่งฉลาก ( inline/above/hidden) และที่สำคัญกว่านั้นคือวิธีระบุ formatters แบบกำหนดเองสำหรับคุณสมบัติเหล่านี้ เบาะแสใด ๆ
16 7  entities 

3
วิธีลบโปรแกรมออกจากโหนดโดยทางโปรแกรมหรือไม่
หนึ่งจะลบฟิลด์จากโหนดโดยทางโปรแกรมอย่างไร ฉันมีการย้ายhook_update_Nที่ย้ายเนื้อหาจากเขตข้อมูล aa ไปยังตารางที่กำหนดเอง หลังจากการโยกย้ายนั้นฉันต้องการลบเขตข้อมูลในฟังก์ชันเดียวกันนั้น มี API ฟิลด์ใดที่รองรับการลบฟิลด์หรือไม่ แก้ไข, แก้ไข : เนื่องจากคำตอบไม่มีรหัสจริงนี่คือสิ่งที่ฉันได้ย้ายเขตข้อมูลจากผู้ใช้ $ ไปยังบันทึกของตัวเองและจากนั้นลบเขตข้อมูลจากฐานข้อมูล; function my_module_update_7005(&$sandbox) { $slice = 100; //Fetch users from database; if (!isset($sandbox['progress'])) { $sandbox['progress'] = 0; $sandbox['current_uid'] = 0; // We'll -1 to disregard the uid 0... $sandbox['max'] = db_query('SELECT COUNT(DISTINCT uid) FROM {users}')->fetchField() - 1; …
16 7  entities  updating 

3
ฉันจะเข้าถึงข้อมูลฟิลด์ใน Twig ได้อย่างไร
ฉันมีช่องรายการสำหรับประเภทบล็อกที่กำหนดเองที่มีลักษณะดังนี้: left|Align left right|Align right ฉันสามารถเข้าถึงกุญแจในทวิกได้โดยทำสิ่งนี้: {% block content %} {{ content.field_align }} {# outputs 'right' #} {% endblock %} อย่างไรก็ตามถ้าฉันทำการเปรียบเทียบแบบง่าย ๆ มันจะแสดงผลออกFALSEมา {{ kint(content.field_align == 'right') }} TRUEผลตอบแทนที่ได้รหัสต่อไปนี้ {{ kint(content.field_align['#items'].getValue()|first.value == 'right') }} มีรุ่นที่สั้นกว่าสำหรับการรับสตริง "ของจริง" เพื่อให้ฉันสามารถใช้ตัวกรองสตริง Twigs และเก็บเป็นระเบียบหรือไม่
15 entities  8  theming 

10
เพิ่มคลาสในฟิลด์เนื้อหา (ลิงก์)
ฉันต้องการเพิ่มคลาสให้กับ<a>แท็กของเขตข้อมูลที่ประกอบด้วยลิงค์และข้อความ (เป็นฟิลด์ประเภทLink ) ชื่อของฟิลด์คือ content.field_c_button_link ในไฟล์เทมเพลตฉันต้องการเพิ่มสิ่งต่อไปนี้ {{ content.field_c_button_link.0.addClass('button blue') }} ฉันจะเพิ่มชั้นเรียนได้อย่างไร ตามคำตอบของ Patrick Scheffer ฉันดูการตั้งค่าสำหรับเขตข้อมูลที่ฉันสามารถเพิ่มคลาส CSS พิเศษ แต่ฉันไม่พบใด ๆ นี่คือภาพหน้าจอของสิ่งที่ฉันสามารถแก้ไขได้ในฟิลด์ลิงค์

5
เพิ่มเขตข้อมูลไปยังกลุ่มฟิลด์โดยทางโปรแกรม
ฉันใช้โมดูล "กลุ่มฟิลด์" และสร้างบางกลุ่มในแบ็กเอนด์ ตอนนี้ฉันต้องการเพิ่มเขตข้อมูลลงในกลุ่มโดยทางโปรแกรม ฉันจะทำสิ่งนั้นได้อย่างไร ฉันใช้ Hook_form_alter ฉันสังเกตเห็นว่าทุกฟิลด์มี 'und'attribute ซึ่งกลุ่มฟิลด์ที่เป็นสมาชิกอยู่ในรายการ แต่ถ้ามีการสร้างและ' und 'อาร์เรย์และเพิ่มชื่อกลุ่มฟิลด์ลงไปมันจะไม่ทำงาน . ฉันควรทำอย่างไร
15 entities 

1
ความแตกต่างระหว่างฟิลด์และอินสแตนซ์ฟิลด์
เมื่อเราไปที่พา ธ/admin/structure/types/manage/article/fieldsและใช้Add new fieldตัวเลือกหรือAdd existing fieldตัวเลือกนั่นสร้างฟิลด์สร้างอินสแตนซ์ของฟิลด์หรือแนบอินสแตนซ์ของฟิลด์หรือไม่ วิธีการแยกความแตกต่างระหว่างพวกเขา? ดังนั้นโดยทางโปรแกรมเมื่อจะใช้field_create_field , field_create_instanceและ field_attach API ในเอกสาร API ฟิลด์จะกล่าวถึง UI ของผู้ดูแลระบบเท่านั้นและไม่เคยพูดถึงเส้นทางที่จะสร้างทั้งฟิลด์และอินสแตนซ์ของฟิลด์ ดังนั้นมันจึงสับสน ฉันไม่รู้ด้วยซ้ำว่าฉันเป็นคนทำอะไร
15 7  entities 

6
อัพเดตโหนดทั้งหมดด้วยฟิลด์ดีฟอลต์หลังจากเพิ่มฟิลด์ใหม่ให้กับชนิดเนื้อหา
ฉันมีชนิดเนื้อหาที่มีอยู่แล้วและมีจำนวนโหนด ฉันเพิ่งเพิ่มฟิลด์บูลีนใหม่ที่มีค่าเริ่มต้นเป็น "ปิด" อย่างไรก็ตามจนกว่าฉันจะบันทึกแต่ละโหนดอีกครั้งค่าเริ่มต้นจะไม่ถูกตั้งค่าดังนั้นมุมมองที่ควรแสดงเฉพาะโหนดเหล่านั้นที่เขตข้อมูลใหม่ใช้ค่าเริ่มต้นว่างเปล่าในขณะนี้ ฉันจะอัพเดตโหนดที่มีอยู่ซึ่งสร้างขึ้นก่อนที่จะเพิ่มฟิลด์เพื่อตั้งค่าฟิลด์นั้นเป็นค่าเริ่มต้นได้อย่างไร
15 7  entities 

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