Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function sitemapxmlAction() {
- //$this->enableErrors();
- switch ($this->act) {
- case 'index': default:
- $message = array_pop(array_merge($this->_helper->flashMessenger->getMessages(), $this->_helper->flashMessenger->getCurrentMessages()));
- $this->view->message = $message[1];
- $this->view->status = $message[0];
- /**
- * Предполагаем что sitemap.xml всегда один, хранится в public_html/sitemap.xml
- */
- $file = $_SERVER['DOCUMENT_ROOT'] . '/sitemap.xml';
- $xml = simplexml_load_file($file);
- $this->view->records = $xml->children()->count();
- $this->view->sitemapDate = date('d.m.Y H:i:s', filemtime($file));
- $model = new Seo_Model_SitemapRules;
- $this->view->list = $model->getAll();
- $model = new Seo_Model_SitemapStaticRules;
- $this->view->listStatic = $model->getAll();
- break;
- case 'edit-rule':
- //$this->enableErrors();
- $model = new Seo_Model_SitemapRules;
- $form = new Seo_Form_Sitemap_EditRule();
- if ($this->getRequest()->isPost()) {
- $data = $this->getRequest()->getPost();
- $id = $data['id'];
- //Zend_Debug::dump($data);return false;
- unset($data['submit'], $data['id']);
- $model->update($data, 'id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- } else {
- $id = $this->_getParam('id');
- $data = $model->getByPk($id);
- $this->view->form = $form->populate($data);
- }
- $this->render('sitemap/edit-rule');
- break;
- case 'add-rule':
- //$this->enableErrors();
- $form = new Seo_Form_Sitemap_AddRule;
- if ($this->getRequest()->isPost()) {
- $data = $this->getRequest()->getPost();
- unset($data['submit']);
- $model = new Seo_Model_SitemapRules;
- $model->insert($data);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- } else {
- $this->view->form = $form;
- }
- $this->render('sitemap/add-rule');
- break;
- case 'pub':
- $this->_helper->layout()->disableLayout();
- $id = $this->_getParam('id');
- $model = new Seo_Model_SitemapRules;
- $data = $model->getByPk($id);
- $newState = $data['active'] ? 0 : 1;
- $model->update(array('active' => $newState), 'id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- break;
- case 'del-rule':
- $this->_helper->layout()->disableLayout();
- $id = $this->_getParam('id');
- $model = new Seo_Model_SitemapRules;
- $model->delete('id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- break;
- case 'add-static-rule':
- $form = new Seo_Form_Sitemap_AddStaticRule;
- if ($this->getRequest()->isPost()) {
- $data = $this->getRequest()->getPost();
- $model = new Seo_Model_SitemapStaticRules;
- unset($data['submit']);
- $model->insert($data);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- } else {
- $this->view->form = $form;
- }
- $this->render('sitemap/add-static-rule');
- break;
- case 'edit-static-rule':
- $model = new Seo_Model_SitemapStaticRules;
- $form = new Seo_Form_Sitemap_EditStaticRule;
- if ($this->getRequest()->isPost()) {
- $data = $this->getRequest()->getPost();
- $id = $data['id'];
- unset($data['id'], $data['submit']);
- $model->update($data, 'id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- } else {
- $id = $this->_getParam('id');
- $data = $model->getByPk($id);
- $this->view->form = $form->populate($data);
- }
- $this->render('sitemap/edit-static-rule');
- break;
- case 'del-static-rule':
- $this->_helper->layout()->disableLayout();
- $id = $this->_getParam('id');
- $model = new Seo_Model_SitemapStaticRules;
- $model->delete('id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- break;
- case 'pub-static':
- $this->_helper->layout()->disableLayout();
- $id = $this->_getParam('id');
- $model = new Seo_Model_SitemapStaticRules();
- $data = $model->getByPk($id);
- $newState = $data['active'] ? 0 : 1;
- $model->update(array('active' => $newState), 'id=' . $id);
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml', array('hash' => 'rules')));
- break;
- }
- }
- public function createsitemapAction() {
- //$this->enableErrors();
- $form = new Seo_Form_Sitemap_Create;
- if ($this->getRequest()->isPost()) {
- $data = $this->getRequest()->getPost();
- $this->_helper->layout()->disableLayout();
- $model = new Seo_Model_SitemapRules;
- $model->customSitemapRules = function() use($model) {
- $filters = new Catalog_Model_Properties_Categories;
- $categories = (new Catalog_Model_Categories)->getAll(false, true, false);
- $filters->setKeys($categories);
- $data = $filters->lst();
- foreach ($data as $v) {
- $propertiesList = json_decode($v['properties_list'], true);
- $categoryUrl = '/' . trim($categories[$v['category_id']]['href'], '/');
- foreach ($propertiesList as $prop => $values) {
- foreach ($values as $value) {
- if (mb_strlen($value)&&mb_strlen($categoryUrl)>1) {
- $urlData = [
- 'changefreq' => 'daily',
- 'priority' => '0.9',
- 'url' => $categoryUrl . '-' . $value . '/'
- ];
- $model->addItem($urlData);
- }
- }
- }
- }
- };
- $result = $model->process($data, $data['languages']);
- if ($result) {
- $this->_helper->flashMessenger->addMessage('ok:Sitemap успешно сгенерирован');
- } else {
- $this->_helper->flashMessenger->addMessage('error:Возникла ошибка при создании sitemap');
- }
- $this->_redirect($this->view->adminUrl('seo', 'sitemapxml'));
- } else {
- $this->view->form = $form;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement