0

独自のカスタムphpコードを使用してcms/pageにデータをインポートしようとしています。単一の静的データをインポートしようとするとコードは機能しますが、データベースにクエリを実行してデータをインポートしようとするとコードが機能しません。コード:

require_once 'app/Mage.php';
umask(0);

Mage::app('default');



$coreResource = Mage::getSingleton('core/resource') ; 


$read = $coreResource->getConnection('core_read');
    $query = "select *  from `".$coreResource->getTableName('sur_arts')."`,`".$coreResource->getTableName('sur_arts_store')."` where sur_arts.post_id=sur_arts_store.post_id ";

$result=$read->query($query);
foreach($result as $res)
{
$cmsPageData1 = array(
'title' => $res['title'],
'root_template' => 'three_columns',
'meta_keywords' => $res['meta_keywords'],
'meta_description' => $res['meta_description'],
'identifier' => $identifier,
'content_heading' => $res['title'],
'stores' => array(21),
'is_active'=>$res['status'],
'content' => $res['post_content']
 );


 Mage::getModel('cms/page')->setData($cmsPageData1)->save();
} 

これは機能しませんでしたが、同じコードで単一のデータをインポートしようとすると機能します

誰か助けてくれませんか、お願いします、どんな助けでも大歓迎です、よろしくお願いします。

4

1 に答える 1

1

Magento では、「管理者」バックエンドからの特定のデータのみを変更できます。

Magento オブジェクト モデルを使用してデータベースに保存する前に、これを追加してこれを模倣する必要があります。

Mage::app('default');
// Add just below this should be fine.
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

保存の前後に try / catch ブロックを追加し、エラーをログに記録するなどして、エラーを処理することをお勧めします。

于 2013-02-18T08:43:08.360 に答える