function showBox($box, $options = array()) { $defOpt = array('wrapper' => array('tag' => 'div', 'editMode' => empty($options['wrapper']), 'attr' => array()), 'indent' => '', 'single' => preg_match('/^single--/', $box['NewsletterBox']['zone'])); $opt = Set::merge($defOpt, $options); $editMode = $this->inEditMode(); $result_html = ''; if ($editMode && $opt['wrapper']) { if (!empty($box['NewsletterBox']['id'])) { $opt['wrapper']['attr']['id'] = 'box' . $box['NewsletterBox']['id']; $opt['wrapper']['attr']['boxid'] = $box['NewsletterBox']['id']; } $opt['wrapper']['attr']['class'][] = 'newsletter_box'; } elseif ($opt['wrapper']['editMode']) { $opt['wrapper'] = false; } if ($opt['wrapper']) { $result_html .= $opt['indent'] . '<' . $opt['wrapper']['tag'] . $this->_parseAttributes($opt['wrapper']['attr']) . '>'; } $element = NewsletterConfig::getNewsletterBoxPaths($box['NewsletterBox']['template'], $this->newsletter['Newsletter']['template'], false, false, $opt['single']); //add default data provide by the zone $zoneOpt = $this->getZoneOpt($box['NewsletterBox']['zone']); if (!empty($zoneOpt['boxList'][$box['NewsletterBox']['template']]['data'])) { $box['NewsletterBox']['data'] = array_merge($zoneOpt['boxList'][$box['NewsletterBox']['template']]['data'], $box['NewsletterBox']['data']); } $slug = ''; if (!empty($box['NewsletterBox']['data']['title'])) { $slug = strtolower(Inflector::slug($box['NewsletterBox']['data']['title'])) . '_'; } if (!empty($box['NewsletterBox']['id'])) { $result_html .= '<a name="' . $slug . $box['NewsletterBox']['id'] . '"></a>'; } $tmp = Configure::read('Config.language'); if (!empty($this->newsletter['Newsletter']['lang'])) { Configure::write('Config.language', $this->newsletter['Newsletter']['lang']); } $result_html .= $this->view->element($element, array("newsletter_box" => $box)); //,'plugin' => 'none' $result_html .= $this->boxFooter($box, $zoneOpt); $tmp = Configure::write('Config.language', $tmp); if ($opt['wrapper']) { $result_html .= $opt['indent'] . '</' . $opt['wrapper']['tag'] . '>' . "\n"; } return $result_html; }
function admin_get_box_edit($id) { if (Configure::read('debug') == 2) { Configure::write('debug', 1); } $this->layout = "newsletter_box_edit_ajax"; if (is_array($id)) { $newsletter_box = $id; } else { $newsletter_box = $this->NewsletterBox->read(null, $id); } $newsletter = $this->Newsletter->read(null, $newsletter_box["NewsletterBox"]["newsletter_id"]); $this->set('newsletter_box', $newsletter_box); $this->data = $newsletter_box; $this->set('newsletter', $newsletter); $config = $this->NewsletterBox->getConfig($newsletter_box); if (!empty($config)) { $config->beforeRenderEdit($newsletter_box, $this); } $single = preg_match('/^single--/', $newsletter_box['NewsletterBox']['zone']); $this->render(NewsletterConfig::getNewsletterBoxPaths($newsletter_box['NewsletterBox']['template'], $newsletter['Newsletter']['template'], true, true, $single)); }