0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 417 Просмотров
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Приветствую товарищи!
Нужна ваша помощь с экспортом данных из компонента CCK Cobalt 8.

в Админку компонента я вывел уже поле в боковом сайдбаре как экспорт, на данный момент для тестового вывода в файл csv и проверка работает получение всех колонок какие мне нужны. Скачивание сразу происходит как нажал на кнопку "экспорт" в сайбаре.


Код
defined('_JEXEC') or die('Restricted access');

include_once JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_cobalt' . DIRECTORY_SEPARATOR . 'api.php';

$api = new CobaltApi();
$result = $api->records(
    7,
    'all',
    'r.ctime ASC',
    0,
    FALSE,
    FALSE,
    FALSE,
    FALSE,
    FALSE,
    FALSE,
    '0',
    FALSE);

$members = [];
$k = 0;
foreach ($result['list'] as $key) {
    $members[$k] = [
        $key->id,
        $key->title,
        $key->created,
        JText::_('UKRAINE_' . reset($key->categories)),
        $key->fields[27],//Year
        $key->fields[28],//Position
        $key->fields[29],//Workplace
        $key->fields[35][0],//Status
        $key->fields[37], //Email
        $key->fields[30], //Phone
        $key->fields[54], //Payment ID
        $key->fields[26], //university
        $key->fields[28], //Degree

    ];
    $k++;
}

array_unshift($members, ['ID', 'TITLE', 'created', 'categories', 'Year', 'Position', 'Workplace', 'Status', 'Email', 'Phone', 'Payment', 'university', 'Degree']);


function array2csv(array &$array)
{
    if (count($array) == 0) {
        return null;
    }
    ob_start();
    $df = fopen("php://output", 'w');
    fputcsv($df, array_values(reset($array)));
    foreach ($array as $row) {
        fputcsv($df, $row);
    }
    fclose($df);
    return ob_get_clean();
}

function download_send_headers($filename)
{

    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment;filename={$filename}");
    header("Content-Transfer-Encoding: binary");
}

download_send_headers("data_export_" . date("Y-m-d"). ".csv");

echo array2csv($members);
die();

Файл с данными скачивается но хотелось бы форму сделать на странице view где можно указать будет дату "с" и "по", а так же кол. строк сколько берем.

Где я должен разместить код который выполняет скачивание так чтоб из форму передавать туда данные какие мне надо и файл сразу создается и скачивается ?

Я примеры пересматривал из других компонентов, как то я с этим MVC не разобрался.

Я так понимаю у меня должна быть модель /administrator/components/com_cobalt/models/

Код
defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.modellist');

class CobaltBModelExport extends JModelList
{


}


view.html.php

Код
class CobaltViewImportexport extends JViewLegacy {

    public function display($tpl = null) {

        JHtml::_('behavior.tooltip');

        $uri = JFactory::getURI();
        $this->action = $uri->toString();

        $this->state = $this->get('State');
        $this->items = $this->get('Items');
        $this->pagination = $this->get('Pagination');

        // Check for errors.
        if(count($errors = $this->get('Errors')))
        {
            JError::raiseError(500, implode("\n", $errors));
            return false;
        }




        $this->addToolbar();

        parent::display($tpl);

    }


    protected function addToolbar()
    {
        JToolBarHelper::title(JText::_('ImportExport' ));

        MRToolBar::addSubmenu('Importexport');

        JToolBarHelper::custom('export.export', 'file', 'file', 'Экспорт', false,false);
//        JToolBarHelper::addNew('export.export');

        //JSubMenuHelper::setAction('index.php?option=com_cobalt&view=importexport');

    }



}




Как поместить код сюда или что надо сделать так чтоб данные из View поподали в модель где идет действие над ними и ответ вернуло.
Я знаю что код у меня не совсем по стандартам J, прийму ваши советы и помощь.

« Последнее редактирование: 15.06.2019, 08:37:04 от pavel2950 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 350
Последний ответ 05.02.2024, 11:45:36
от web1
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 1
Просмотров: 369
Последний ответ 29.03.2023, 16:47:54
от arma
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 0
Просмотров: 309
Последний ответ 29.03.2023, 01:15:03
от Vlad1323
Базы данных

Автор rezchik

Ответов: 7
Просмотров: 368
Последний ответ 16.02.2023, 22:59:29
от rezchik
Ошибка при Создание пунктов меню

Автор RomanRomanivich

Ответов: 0
Просмотров: 396
Последний ответ 23.09.2021, 15:01:14
от RomanRomanivich