2012-02-17 10 views
17

Ho visto la seguente risposta al post Where are Magento static CMS blocks stored? per quanto riguarda l'uso programmatico di PHP che generano cms/blocchi in Magento.Creazione di un CMS/Pagina in Magento

ho cambiato il codice di seguito

$newBlock = Mage::getModel('cms/page') 
     ->setTitle('Test CMS Page Title') 
     ->setContent('Hello I\'m a new cms page.') 
     ->setIdentifier('this-is-the-page-url') 
     ->setIsActive(true) 
     ->save(); 

... e funziona. Vedo una nuova pagina visualizzata nell'area delle pagine CMS nel back-end.

Quello che devo aggiungere a questo è la possibilità di impostare il contenuto degli altri campi nel CMS/Page. Vale a dire:

  • Layout (cercando di impostare a 1 colonna)
  • meta parola chiave
  • meta description

campi. Questi campi sono vuoti al momento. Finora non sono stato in grado di capire questa parte.

Grazie,

+0

è una domanda piuttosto interessante. . . anche se volevo sapere per quale requisito hai concluso con questa domanda. . . in attesa di 4 una risposta –

risposta

37

qui si va:

$cmsPageData = array(
    'title' => 'Test CMS Page Title', 
    'root_template' => 'one_column', 
    'meta_keywords' => 'meta,keywords', 
    'meta_description' => 'meta description', 
    'identifier' => 'this-is-the-page-url', 
    'content_heading' => 'content heading', 
    'stores' => array(0),//available for all store views 
    'content' => "Hello I'm a new cms page." 
); 

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

Le chiavi dell'array sono il nome dei campi della tabella cms_page (controllare il db). E per conoscere il valore, creo manualmente la pagina cms che voglio e poi vedo il valore per questa voce nel db.

+0

Impressionante! Funzionava perfettamente, tuttavia dovevo cambiare "one_columns" in "one_column". Solo un refuso Così ho capito -> creare un array con coppie di valori chiave e quindi assegnarlo come dati della pagina CMS. Ha senso. Come fai a sapere quali sono le chiavi e i valori per quelle chiavi? – KyleDugger

+0

@ user1215510 Ho corretto l'errore di battitura, thx per indicarlo. Ho anche ampliato la risposta spiegando come ottengo i dati. – OSdave

Problemi correlati