מקום טוב להתחיל בו הוא הורדה של הגרסה העדכנית של דרופל בעברית.
להורדת דרופל בעבריתלשפות וגרסאות אחרות, Drupal.org
יש לנו באתר מדריכים שונים, הכוללים מדריך להתקנת דרופל על המחשב המקומי או על שרת אירוח באינטרנט, כמו גם מדריכים לעיצוב ופיתוח.
בעזרת המדריכים השונים באתר ובעזרת קבוצות הדיון שלנו, אפשר למצוא את כל המידע הנחוץ להקמה והתאמה אישית של אתרי דרופל. כדאי לבדוק גם את ערוצי התמיכה הנוספים שלנו

תגדיר בצורה יותר טובה מה אתה
תגדיר בצורה יותר טובה מה אתה צריך.
לפי התיאור המצומצם הזה, אני יכול להציע לבדוק את Node Family ואת Node Relativity.
תלוי בצרכים שלך, אפשר גם לכתוב מודול כזה לבד. לא מזמן עשיתי משהו דומה. אם אני אראה דרישה לזה, אולי אפרסם את המודול.
נניח שיש חברות תוכנה
נניח שיש חברות תוכנה (cck/content profile) ויש חברות אחסון (עוד cck/content profile עם שם אחר).
נניח שחברת האחסון וחברות התוכנה בונות חוזה מחוץ למערכת. כל חוזה על סכום מסויים פה "עסקה".
אני צריך למפות את הקשר חברת־תוכנה/חברת־אכסון -> עלות החוזה.
אני כרגע בונה את זה ב־sql (טבלה פשוטה עם שני index, ה־nid של שני ה־nodes והמחיר.
מובן יותר?
נשמע לי כמו סוג תוכן "חוזה"
נשמע לי כמו סוג תוכן "חוזה" ובו שלושה שדות: חברת תוכנה(noderef), חברת אחסון(noderef), עלות החוזה.
מממממ... צודק... מה עם
מממממ... צודק...
מה עם כפילויות? אסור לי לעשות שני חוזים בין אותן חברות.
אתה יכול בפונקציית
אתה יכול בפונקציית form_validate() להריץ VIEW שיחזיר את כל החוזים הנוכחים ולוודא שאין כפילות.
כך אני עושה כדי למנוע כפילות של כותרות בכל אורגניק-גרופ.
אמתי -- חברת גיזרה
רק רציתי להגיד תודה, עבד
רק רציתי להגיד תודה, עבד פצצה.
קצת צ'ופרים, קוד מתוך האתר (קצת מלוכלך, הגרסה שיש אצלי יותר מסודרת):
function blabla_form_alter(&$form, $form_state, $form_id)
{
switch ($form_id)
{
case 'aff_sup_node_form':
unset($form['menu']);
unset($form['revision_information']);
unset($form['path']);
unset($form['options']['promote']);
unset($form['options']['sticky']);
$form['options']['#collapsed'] = false;
$form['field_supplier_ref']['#element_validate'] = array('validate_sup_aff');
break;
}
}
function blabla_views_values_exist( $view_name, $arguments )
{
if (!module_exists('views')) {
drupal_set_message(t("Views module is not installed, please contact the webmaster of the site and report this error."), 'error', FALSE);
return false;
}
$view = views_get_view($view_name);
if (!is_object($view)) {
drupal_set_message(t("You the view '@source_id' is not available", array('@source_id' => $view_name)), 'error', FALSE);
return false;
}
$view->set_arguments($arguments);
$view->init_display();
$view->pre_execute();
$view->execute();
$results = $view->result;
return $results;
}
function validate_sup_aff( $form, &$form_state )
{
$sid = $form_state['values']['field_supplier_ref'][0]['nid'];
$aid = $form_state['values']['field_affiliate_ref']['nid']['nid'];
$results = blabla_views_values_exist( "sup_aff_contract", array($sid,$aid) );
if ($results){
// oh... such a node already exist...
form_set_error("field_supplier_ref", t("A contract already exist") );
}
}
האמת שבמקרה כזה לא הייתי
האמת שבמקרה כזה לא הייתי משתמש ב views, אבל זה עניין של גישה. לא מוצא חן בעיניי ה back-and-forth מהממשק אל הקוד ולהפך.
אבל מה שעובד, עובד :)
אז דווקא אצלי זה מבוסס
אז דווקא אצלי זה מבוסס views:
המשתמש רואה את רשימת החוזים (תצוגה בסיסית ב־views). בכותרת של הטבלה יש קישור לטופס הוספה של node מהטיפוס המתאים, עם destination שחוזר לדף של views.
מה הפתרון שלך? לכתוב sql ואז theme_table? עדיין views מנצח בגלל האפקט המגניביות של ajax.
זה בסדר, אני דיברתי על קוד
זה בסדר, אני דיברתי על קוד הולידציה. אמיתי צודק, שאם זה בקוד גם כן, זה יותר הגיוני, אבל גם לכתוב שאילתא (כמובן תוך שימוש ב CCK API) זה לא פחות טוב.
לא הייתי רוצה שיהיה מצב שמשתמש (מנהל) יוכל לשנות view, ובכך לשבור את קוד הולידציה של החוזים.
לא מוצא חן בעיניי ה
מסכים חלקית. אם אתה עושה אקספורט של הוויו לקוד - אז זה כבר לא רחוק מלהשתמש ב SQL שכתבת בעצמך.
אמתי -- חברת גיזרה
האם ראית את הדיון שאני
האם ראית את הדיון שאני פתחתי?
http://www.drupal.org.il/node/3445
זה נראה לי קשור (לא אותו דבר, אבל נראה לי קשור).
| פרקטיקול - בונים לך אתר דרופל | קורס דרופל! | עזרה מידית בקבוצה שלנו בפייסבוק! | מכללת קוד פתוח