Как определить id только что добавленной новости?
$data = array(
'tt_news' => array( 'NEW_1' => array('pid' => $id, 'hidden' => 0, 'title' => $my_title, 'bodytext' => $my_newsbody, 'datetime' => $my_time, 'category' => '' ) )); $tce->start($data,array()); $tce->process_datamap(); $id = $tce->substNEWwithIDs['NEW_1']; echo "new news.id=$id<\\n>"; почему не срабатывает функция substNEWwithIDs? в случае tt_content и pages все работает |
re: Как определить id только что добавленной новости?
$id = mysql_insert_id($GLOBALS['TYPO3_DB']->link);
|
re: Как определить id только что добавленной новости?
mysql_insert_id как ни прискорбно не работает - видимо типовские функции еще что то делают после вставки
пришлось через select max(uid) from tt_news делать - как в старые добрые времена |
re: Как определить id только что добавленной новости?
"пришлось через select max(uid) from tt_news делать - как в старые добрые времена"
Зачем? в $tce должно быть свойство, хранящее uid последней добавленной записи... сделай t3lib_div::debug($tce); после добавления и посмотри в текущие свойста. |
re: Как определить id только что добавленной новости?
Первый приведенный код должен правильно работать. Механизм подстановки ID - универсальный, работает с любыми таблицами! Ошибка с чем то другом...
Вот код, который у меня работает: if (sizeof($data) > 0) { $tce = $this->getTCE(); $tce->suggestedInsertUids = $suggestedInsertUids; $tce->reverseOrder = TRUE; $tce->start($data, array()); $tce->process_datamap(); $subst_ids = $tce->substNEWwithIDs; } id возвращаются для люых таблиц. То что написано у тебя, в принципе, то же самое... (лучше только генериировать ID, как uniqid('NEW') ) Как создается у тебя $tce? Пробовал ли посмотреть что происходит в tcemain->process_datamap()? (я обычно так делаю.... добавить в ключевых местах парочку debug() ) |
re: Как определить id только что добавленной новости?
Пример создания $tce
Скрипт выдирает данные из старого сайта и вставляет в новый на ТИПО // Defining circumstances for CLI mode: define('TYPO3_cliMode', TRUE); // Defining PATH_thisScript here: Must be the ABSOLUTE path of this script in the right context: // This will work as long as the script is called by it's absolute path! define('PATH_thisScript','/usr/local/www/data/мой_сайт/typo3/мой_скрипт.phpsh'); // Include configuration file: require(dirname(PATH_thisScript).'/conf.php'); // Include init file: require(dirname(PATH_thisScript).'/'.$BACK_PATH.'init.php'); define('PATH_t3lib','/usr/local/www/data/мой_сайт/power/t3lib/'); require_once (PATH_t3lib.'class.t3lib_div.php'); require_once (PATH_t3lib.'class.t3lib_parsehtml.php'); //чистый код для нового сайта $parserObject=new t3lib_parsehtml; require_once (PATH_t3lib.'class.t3lib_tcemain.php'); // вот как создается $tce $tce = t3lib_div::makeInstance('t3lib_TCEmain'); $tce->stripslashes_values=1; далее сканирование страниц старого сайта и вставка как указано выше в первом посте |
Часовой пояс GMT +4, время: 01:28. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot