Перейти к содержимому


Фотография
- - - - -

Как осуществить импорт даты изменения материала

modification date

Лучший Ответ Cheren-dow , 27 April 2016 - 01:48

autoskat, здравствуйте. Что бы появилась возможность загрузки и выгрузки даты изменения материала, необходимо сделать следующее:

Открыть файл:

\media\zoo\applications\jbuniversal\framework\helpers\jbcsvmapper.php

В раздел ядро для материала добавим новый класс - для выгрузки даты модификации. В методе getItemCore в массив добавьте:

'modified' => $this->_csvcell->createItem('modified', $item, 'core')->toCSV(),

Теперь этот метод имеет следующий вид:

public function getItemCore(Item $item)
{
    return array(
        'author'   => $this->_csvcell->createItem('author', $item, 'core')->toCSV(),
        'created'  => $this->_csvcell->createItem('created', $item, 'core')->toCSV(),
        'category' => $this->_csvcell->createItem('category', $item, 'core')->toCSV(),
        'tags'     => $this->_csvcell->createItem('tags', $item, 'core')->toCSV(),
        //  Наша добавленная строка
        'modified' => $this->_csvcell->createItem('modified', $item, 'core')->toCSV(),
    );
}

Что бы на странице импорта можно было выбрать дату изменения материала, в методе getItemFields в разlеле core  добавить следующую строку:

'modified' => JText::_('Modified'),

at3j_200x0.png

Теперь необходимо добавить сам класс который будет загружать и выгружать в CSV.  Так как мы указали раздел core. то и наш новый класс необходимо помести в папку:

\media\zoo\applications\jbuniversal\framework\elements\core

В зависимости от типа своя папка. Итак, в папке создайте файл modified.php со следующим кодом:

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBCSVItemCoreModified
 */
class JBCSVItemCoreModified extends JBCSVItem
{
    /**
     * @return int
     */
    public function toCSV()
    {
        return $this->_item->modified;
    }

    /**
     * @param $value
     * @param null $position
     * @return Item|void
     */
    public function fromCSV($value, $position = null)
    {
        if ($time = $this->_getDate($value)) {
            $this->_item->modified = $time;
        }

        return $this->_item;
    }
}

По такой аналогии вы можете добавить и другие поля для импорта и экспорта

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 autoskat

autoskat

Отправлено 20 April 2016 - 10:06

При импорте из CSV, есть возможность выгрузки таких "нужных" параметров как - Начало публикации, Завершение публикации, Псевдоним автора, а вот то что реально используется в XML карте сайта, нет возможности изменять при импорте!

Есть возможность это как-то исправить? ???

 

Не забываем также пытаться найти решение в ЭТОЙ ТЕМЕ


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 21 April 2016 - 15:14

здравствуйте autoskat, на решение данного вопроса нам по требуется некоторое время.


  • 0
Изображение
 

#3 Cheren-dow

Cheren-dow

Отправлено 27 April 2016 - 01:48   Лучший Ответ

autoskat, здравствуйте. Что бы появилась возможность загрузки и выгрузки даты изменения материала, необходимо сделать следующее:

Открыть файл:

\media\zoo\applications\jbuniversal\framework\helpers\jbcsvmapper.php

В раздел ядро для материала добавим новый класс - для выгрузки даты модификации. В методе getItemCore в массив добавьте:

'modified' => $this->_csvcell->createItem('modified', $item, 'core')->toCSV(),

Теперь этот метод имеет следующий вид:

public function getItemCore(Item $item)
{
    return array(
        'author'   => $this->_csvcell->createItem('author', $item, 'core')->toCSV(),
        'created'  => $this->_csvcell->createItem('created', $item, 'core')->toCSV(),
        'category' => $this->_csvcell->createItem('category', $item, 'core')->toCSV(),
        'tags'     => $this->_csvcell->createItem('tags', $item, 'core')->toCSV(),
        //  Наша добавленная строка
        'modified' => $this->_csvcell->createItem('modified', $item, 'core')->toCSV(),
    );
}

Что бы на странице импорта можно было выбрать дату изменения материала, в методе getItemFields в разlеле core  добавить следующую строку:

'modified' => JText::_('Modified'),

at3j_200x0.png

Теперь необходимо добавить сам класс который будет загружать и выгружать в CSV.  Так как мы указали раздел core. то и наш новый класс необходимо помести в папку:

\media\zoo\applications\jbuniversal\framework\elements\core

В зависимости от типа своя папка. Итак, в папке создайте файл modified.php со следующим кодом:

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBCSVItemCoreModified
 */
class JBCSVItemCoreModified extends JBCSVItem
{
    /**
     * @return int
     */
    public function toCSV()
    {
        return $this->_item->modified;
    }

    /**
     * @param $value
     * @param null $position
     * @return Item|void
     */
    public function fromCSV($value, $position = null)
    {
        if ($time = $this->_getDate($value)) {
            $this->_item->modified = $time;
        }

        return $this->_item;
    }
}

По такой аналогии вы можете добавить и другие поля для импорта и экспорта


  • 2
Изображение
 

#4 autoskat

autoskat

Отправлено 27 April 2016 - 09:06

появилась возможность загрузки и выгрузки даты изменения материала

 

 

Огромное спасибо за решение! Всё работает, дата и время импортируются корректно.


  • 0




Click to return to top of page in style!