שינוי שדה באמצעות computed רק פעם אחת
יצרתי שדה computed field שמגדיר לי שדה אחר בהתאם לכותרת של העמוד:
<?php
$entity->field_url_fueld[$entity->language][0]['value'] = $entity->title;
?>כעת אני רוצה שזה יתרחש רק פעם אחת, כאשר העמוד נוצר.
בפעם הבאה, כאשר תתבצע עריכה של העמוד והכותרת תשתנה אני לא רוצה שזה יתרחש.
רעיונות?
תגים:

נראה לי שהדרך הכי קלה היא
נראה לי שהדרך הכי קלה היא לשמור דגל כלשהו ב-DB, בטבלת variables.
קרא על הפונקציה variable_set
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
אני זורק רעיונות: לבדוק אם
אני זורק רעיונות:
לא ברור אם אתה משתמש במודול
לא ברור אם אתה משתמש במודול computed field או עושה את זה בקוד כמו שכתבתה למעלה
אבל יש is_new אם תסתכל בקוד של node.module/function/node_save/7" rel="nofollow">node_save לא בטוח שזה עוזר
אבל אפשר להשתמש ב hook_node_insert
או פעולה לפני זה hook_field_attach_insert
הבעיה שההוק רץ אחרי שהשדה נשמר על ידי מודול field , לכן בשביל להשתמש בו צריך להגדיר שדה במסד בעזרת hook_schema_alter ואז גם לממש hook_node_load שזה נראה כמו כאב ראש אבל אולי יסתבר שזה פחות כאב ראש משיטות אחרות
yakoub abaya
במקום זה תשתמש ב
במקום זה תשתמש ב hook_node_presave ואז תבדוק את is_new ורק אם חדש אז תעדכן השדה והוא ישמר לבד כמו שצריך לקרות
בהתחלה presave לא ראה לי כי אי אפשר לדעת אם זה תוכן חדש אבל is_new פותר את זה , לדעתי גם ב hook_field_attach_presave אפשר לבדוק עם entity_extract_ids אם זה חדש לפי אם ערך ה id קיים או לא
yakoub abaya