Помогите!!! присвоить значение переменной поля profile_...

Главные вкладки

Аватар пользователя mrdakotas mrdakotas 3 января 2011 в 0:22

Здравствуйте уважаемые!
Прошу помощи как начинающий друпалист!)
Сейчас попытаюсь объяснить как можно подробнее проблему...!
- в ноду include способом вставляю url (php файл)
получается что то типа этого:

<?
include "http://sample.ru/myfile.php?";
?>
После чего в PHP коде в ноде появляется примерно такой код:
<? $var = q54gcbej04ndgfl ?>
То есть в текущем коде начинает фигурировать еще одна переменная.

Теперь сама суть проблемы:
В пользовательском профиле я создал дополнительное поле profile_tkn
Теперь когда пользователь зайдет на эту ноду о которой я писал выше он должен увидеть кнопку: "Установить значение TKN!", и нажав на ние, значение из зарание заинклуденой переменной $var должно записаться в его профиль в profile_tkn!

Пожалуйста помогите реализовать! Заранее очень благодарен!!

Комментарии

Аватар пользователя mrdakotas mrdakotas 3 января 2011 в 2:10

Самое главно:
Каким образом более удобно получиться забить значение в переменную profile_tkn!
Все, остальное мне понятно!

Аватар пользователя Обухов Никита Обухов Никита 3 января 2011 в 13:01

Если хочешь разобраться с друпалом, кури forms api reference, посмотри раздел hooks на api.drupal.org

Чтоб сделать то что тебе надо, создай свой модуль и воткни туда 3 строчки кода:

<?php

function my_form(&$form_state) {
 return array(
   'submit' => array(
     '#type' => 'submit',
     '#value' => 'Go',
   ),
 )
}

function my_form_submit($form, &$form_state) {
  global $user;
  $value = 'something';
  $fid = 1; // id твоего поля профиля
  db_query("UPDATE {profile_values} SET value = '%s' WHERE fid = %d AND uid = %d", $value, $fid, $user->uid);
  if (!db_affected_rows()) {
    db_query("INSERT INTO {profile_values} (uid, fid, value) VALUES(%d, %d, '%s')", $user->uid, $fid, $value);
  }
}

// hook_nodeapi
function mymodule_nodeapi(???) {
 if ($op == 'view') {
   if ($node->nid == ID TVOEI NODI) {
     $node->content['myform'] = array(
       '#value' => druapl_get_form('my_form'),
       '#weight' => 99,
     );
   }
 }
}

?>