Изменение кода php для drupal 7

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

Аватар пользователя AndreyL AndreyL 22 января 2011 в 21:06

Не получается что-то: пытаюсь на drupal 7 перевести код; у меня получается так:

<?php
if(!($node menu_get_object()))
return;
  
$list db_query("SELECT столбец1, столбец2 from таблица1 where столбец3='%s' ORDER BY столбец2", array($node->title));
  
$names = array();
  
$urls = array();
  foreach(
$list as $row){
  
$header = array('Страницы раздела');
    
$names[] = $row->столбец2;
    
$urls[] = $row->столбец1;
  }
?>

исходный код (работал на drupal6):

<?php
if(!($node menu_get_object()))
return;
  
$list db_query("SELECT столбец1, столбец2 from таблица1 where столбец3='%s' ORDER BY столбец2"$node->title);
  
$names = array();
  
$urls = array();
  while(
$row db_fetch_object($list)){
  
$header = array('Страницы раздела');
    
$names[] = $row->столбец2;
    
$urls[] = $row->столбец1;
  }
?>

Помогите, в чем проблема?

Комментарии

Аватар пользователя AndreyL AndreyL 22 января 2011 в 21:14

да, и еще:
у меня было изменено меню в drupal 6 (некоторые пункты перемещены, для удобства); теперь многие пункты меню, которые должны быть в управлении/настройках после "апдейта" просто отсутствуют. Можно ли как-то сделать меню "по умолчанию", т.е. чтоб было так, как должно быть?

да и некоторые пункты почему-то "абракадаброй" отображаются (их мало - только то, что появляется при создании страницы, других пока не замечал). в настройках базы стоит utf8_unicode_ci.

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

xxandeadxx wrote:

<?php
db_query
("SELECT столбец1, столбец2 FROM {таблица1} WHERE столбец3 = :stolbec3 ORDER BY столбец2", array(':stolbec3' => $node->title))
?>

"AndreyL" wrote:
пытаюсь

доки, доки и ещё раз доки а только потом пытаться

сложно разобраться. с 6м-то напряжно было, а сейчас получается, что все то уже "неверно". заново придется....
так, как вы предложили не получится (столбец3 = :stolbec3), т.к. столбец3 должен быть "равен" названию страницы.
мне и тогда помогли код написать, а я только потом разобрался. а сейчас опять второй день мучаюсь.

PS. с меню разобрался. а вот с кодировкой что-то непонятно.

вот, пытался еще с функции

<?php
$title 
db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchField();
?>

подставить значение. но все равно не "пошло"...

Аватар пользователя AndreyL AndreyL 23 января 2011 в 9:50

т.е. если я заменю

<?php
:stolbec3
?>

на

<?php
$title
?>

то должно работать???
может кавычки нужны? или двоеточие сохранить...

Аватар пользователя AndreyL AndreyL 24 января 2011 в 8:49
<?php
if(!($node menu_get_object()))
return;
$title db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchField();
  
$list db_query("SELECT столбец1, столбец2 from таблица1 where столбец3=:$title ORDER BY столбец2", array(:$title->title));
  
$names = array();
  
$urls = array();
    foreach(
$list as $row){
  
$header = array('Страницы раздела');
    
$names[] = $row->столбец1;
    
$urls[] = $row->столбец2 ;
  }
?>

не выходит никак. вроде, как я понимаю, где-то в array ошибка.

Аватар пользователя xxandeadxx xxandeadxx 24 января 2011 в 9:01
<?php
$title 
db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $node->nid))->fetchField();
$list db_query("SELECT столбец1, столбец2 FROM {таблица1} WHERE столбец3 = :title ORDER BY столбец2", array(':title' => $title));
?>

доки вы похоже прочитать так и не удосужились Sad

Аватар пользователя AndreyL AndreyL 25 января 2011 в 9:50

да, вроде, по "образцу" все делал... не понял, почему title во второй строке должен быть без $... да еще много чего не понял. в общем, надо разбираться, т.к. еще много "подобных" примерчиков.
спасибо за помощь!