تصویر الهه عربیان

در مطلب قبل اضافه کردن user و role گفته شد در این مطلب سر بر آن است تا ایجاد taxonomy  و content رو قرار بدهیم.

بعد از ایجاد کاربر حالا باید مطالب آن کاربر را انتقال دهیم. ولی قبل از شروع این کار باید توجه داشته باشیم که اگر مطالبی که داریم دارای tag و یا دسته بندی است یا خیر. اگر دارای دسته بندی باشد در ابتدا باید taxonomy را اضافه کنیم.

برای اضافه کردن taxonomy هم باید tid را در ستون جدولی که از آن اطلاعات را برای ایجاد میخوانیم ذخیره کنیم تا دوباره کاری صورت نگیرد.

اضافه کردن taxonomy :

define('DRUPAL_ROOT', '../drupalname');
require_once '../drupalname/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);


        libxml_use_internal_errors(true);


 $result = mysql_query("SELECT * FROM `noict_news_groups` WHERE `group_parent` = 0 and `tid` = 0 limit 1", $con);
$i = 0;
 $tid;
 while ($row = mysql_fetch_array($result)) {
 $info = $row[1];
 $id = $row[0];
 $term = new stdClass();
 $term->name = $info;
 $term->vid = 11;

taxonomy_term_save($term);
$tid = $term->tid;
$query_update = mysql_query("UPDATE `noict_news_groups` SET `tid`= $tid WHERE `group_id`=$id", $con);

  $row_update = mysql_fetch_array($query_update);

 باید توجه داشته باشید که هر taxonomy زیر مجموعه یک vocab است که این vocab  دارای یک vid است . که باید آنرا برای ثبت taxonomy term وارد نماید در مثال بالا vid ای که vocab  در دروپال من داشته  11 است.

گاهی اتفاق میفتد که یک taxonomy  دارای child (زیر مجموعه) است برای اینکه آنها را هم بتوانید به درستی وارد کنید میتوانید از کدهای زیر استفاده کنید. البته بهتر است برای ورود child ها برای آنها هم یک ستون تعریف کنید تا بعد ثبتشان flag اشان true شود .

ثبت زیر مجموعه برای  taxonomy :

define('DRUPAL_ROOT', '../drupalname');
require_once '../drupalname/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);       

$result = mysql_query("SELECT * FROM `noict_news_groups` WHERE `check_child`=1 and `tid`!=0 and `check_child1`=0 limit 1", $con);
        $i = 0;
        while ($row = mysql_fetch_array($result)) {
            $parent_tid = $row[6];
            print $i++;
            $info = $row[1];
            $ids = $row[0];
            $group_parent = $row[3];
            $r1 = mysql_query("SELECT * FROM `noict_news_groups` WHERE `group_parent`=$ids and tid=0", $con);
            while ($row = mysql_fetch_array($r1)) {;
                $info = $row[1];
                $id = $row[0];
                $group_parent = $row[3];
                $term = new stdClass();
                $term->name = $info;
                $term->parent = $parent_tid;
                $term->vid = 11;
                taxonomy_term_save($term);
                $tid = $term->tid;
                $query_update = mysql_query("UPDATE `noict_news_groups` SET `tid`=$tid ,`check_child`=1,`check_child1`=1 WHERE `group_id`=$id", $con);
                $row_update = mysql_fetch_array($query_update);
            }
        }

 برای اضافه کردن content باید به چند نکته توجه داشته باشیم که کدام یک از کاربران این مطلب را قرار داده است تا uid همان کاربر را قرار دهیم.

اگر دارای taxonomy است هم باید آنرا در آن قرار دهیم برای تمونه میتوانید به کدهای زیر استناد کنید.

 define('DRUPAL_ROOT', '../drupalname');
require_once '../drupalname/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

libxml_use_internal_errors(true);
    $result_news = mysql_query("SELECT * FROM `noict_news` WHERE nid = 0 and `news_group` LIKE '%34%'", $con);
    $row = mysql_fetch_array($result_news);
    $id_news = $row[0];
    $news_headline = $row['news_headline'];
    $news_article = $row['news_article'];
    $news_group = $row['news_group'];
    $idgroup = explode(",", $news_group);
    $node = new stdClass();
    $node->type = 'dictionary';
    $node->title = $news_headline;
    $node->body['und'][0]['value'] = $news_article;
    $node->body['und'][0]['format'] = 'filtered_html';
    $node->language = 'und';
    $node->uid = 1;
    foreach ($idgroup as $idgroups => $value) {
      $result_gruops = mysql_query("SELECT * FROM `noict_news_groups` WHERE `group_id`=$value", $con);
      $row = mysql_fetch_array($result_gruops);
      $tid = $row['tid'];
      if ($tid != 0) {
        $node->field_tags['und'][]['tid'] = $tid;
      }
    }
    node_save($node);
    $nid = $node->nid;
    $query_update = mysql_query("UPDATE `noict_news` SET `nid` = $nid WHERE `news_id`=$id_news ", $con);
    $row_update = mysql_fetch_array($query_update);

 باید به این نکته توجه داشته باشید که ممکن است یک مطلب دارای چندین taxonomy باشد اولا باید ببینید در دیتابیس با چه کاراکتری از هم جدا شده اند و بعد از آن با استفاده از explode از هم جدا کرده و هر کدام را ثبت کنیم.

ایجاد یک محتوا بدون taxonomy :

$node = new stdClass();
        $node->type = 'poet';
        $node->title = $title;
        $node->body['und'][0]['value'] = $poem;
        $node->language = 'und';
        $node->uid = 1;
        $node->field_tempaltetext['und'][0]['value'] = $templatetext;
        $node->field_category['und'][0]['tid'] = $id_group_poem;
        node_save($node);
        $nid = $node->nid;

 

افزودن نظر جدید