[РЕШЕНО]Делать собственный модуль или можно реализовать через views?

Главные вкладки

Аватар пользователя Full_acсess Full_acсess 27 сентября 2010 в 8:52

вообщем задача такая:

1) есть список арендаторов-должников в формате .xls либо .csv с полями "ИНН" "Наименование арендатора" "Задолженность", этот список какимто макаром должен импортироваться в некую таблицу в БД.

2) Далее для того чтоб пользователь мог получить информацию о задолженности должен быть создан какойнибуть тип материала, с одним единственным текстовым полем (либо Exposed Filter в views) в которое пользователь вводит свой ИНН, и нам выводятся результаты выборки из таблицы.

Вообще в приоритете я хотел бы сделать это все через views.

Второй пункт наверное можно сделать через Exposed Filter, а вот первый вообще не представляю, есть ли в views инструменты для импорта данных форматов? Либо всетаки придется писать собственный модуль? Подскажите где копать? Что читать?

Комментарии

Аватар пользователя Full_acсess Full_acсess 27 сентября 2010 в 10:00

"q2_faith" wrote:
сделайте тип контента должники и залейте туда .csv, а потом с помощью вьюс делайте выборку

Дак views же делает выборку по нодам это значит надо создавать для каждой строки из .csv свою ноду? Так должников же этих около 2000 штук, к пенсии наверное закончу. Либо как вариант добавить .csv в контент ноды, но тут тоже неполучится ибо вся информация из файла будет храниться в одной ячейке таблицы. Или я чтото неправильно понял?

Аватар пользователя kodo kodo 27 сентября 2010 в 10:01

"q2_faith" wrote:
сделайте тип контента должники и залейте туда .csv, а потом с помощью вьюс делайте выборку

Тоже первое что приходит в голову.
Но можно еще попробовать связку http://drupal.org/project/feeds и http://drupal.org/project/data
С Data не работал.

Аватар пользователя Full_acсess Full_acсess 28 сентября 2010 в 12:17

"q2_faith" wrote:
node_import в помощь)

но тут возникают проблемы, мне например необходимо чтобы эти поля были скрыты от любых пользователей, тоесть чтобы они могли получать к ним доступ введя только свой ИНН, в связи с этим со всем возникают следующие вопросы, а именно:

1) Эти ноды не должны индекироваться, чтобы пользователь не мог получить к ним доступ через поиск
2) Чтобы решить первую проблему можно вводить в содержание ноды чтонибудь не значительное, добавлять дополнительные поля спомощью ССК в которые и будем вводить наши секретные данные, затем убирать у пользователей право видеть эти поля, но тут тоже возникнет проблема, т.к. через views представление пользователь эти поля не увидит

Аватар пользователя Full_acсess Full_acсess 28 сентября 2010 в 12:32

"kodo" wrote:
Но можно еще попробовать связку http://drupal.org/project/feeds и http://drupal.org/project/data[/quote]таак по поводу этих модулей, http://drupal.org/project/data работает както кривовато, таблицу он создает, но в то-же время не может её просматривать, хоть в админке и есть такой пункт, в описании написано что он интегрируется с views, но нифига, интегрироваться с ним он начинает только после установки http://drupal.org/project/feeds и создания таблицы уже через него, все бы ничего но этот feeds не загржает данные из csv файла, уже все кодировки перепробовал, я не знаю почему так, толи потому что у меня сервер на локалке, толи потому что я на нем тестирую все модули которые мне надо внедрить в рабочи проект, поэтому они уже конфликтовать начали

kodo вы же с feeds работали, вы создавали importer который создает свою таблицу и агружали в него данные из csv файла? Если да то как? были ли у вас проблемы с этим на локальном сервере?

Аватар пользователя Full_acсess Full_acсess 28 сентября 2010 в 12:57

"q2_faith" wrote:
1. решается через разрешения

тоесть через admin/user/permissions, но разве там можно назначать разрешения на целый тип материала? Или для этого модуль есть какйото?
"q2_faith" wrote:
2. возникает вопрос, а как бы вы это решили в своем модуле?

а) При установке модуля создается таблица в которую собственно и заносим данные
б) Для администрирования (просмотра, импорта из csv) таблицы создается в admin/settings какойнить дополнительный пункт меню и ставится ограниченный доступ (либо доступ по разрешениям)
в) Создается нода, либо блок в который выводим форму с текстовым полем и кнопкой, с помощью которого пользователь и получает запрашиваемые данные

Аватар пользователя q2_faith q2_faith 28 сентября 2010 в 13:14

1. ИНН это же поле ССК?
2. б) как ставится доступ по разрешению?
проблема заметно усложняется))
мне мысль пришла в голову, что проще на мыло указанное при регистрации отсылать

Аватар пользователя Full_acсess Full_acсess 29 сентября 2010 в 7:07

все, всем спасибо, проблему действительно решил с помощью модулей http://drupal.org/project/feeds и http://drupal.org/project/data, только они какието хитровысранные, два дня с ними возился, видимо писали их чукчи, описание даже адекватно не соизволили написать, пришлось решать методом научного тыка, но главное работает.

Аватар пользователя Full_acсess Full_acсess 29 сентября 2010 в 7:28

"q2_faith" wrote:
1. ИНН это же поле ССК?

та уже не важно ))
"q2_faith" wrote:
2. б) как ставится доступ по разрешению?

<?php
function hook_menu() {
    
$items['mymenu'] = array(
        
'title' => 'Greeting',
        
'page callback' => 'mymenu_hello'//функция которая будет исполняться при переходе на страницу
        
'access callback' => 'user_access',   //доступ по разрешениям, TRUE - полный доступ
        
'access arguments' => array('receive greeting'), //аргументы доступа
        
'type' =>MENU_NORMAL_ITEM
        
'weight' => 1,
    );
}

 

//функция передает аргументы доступа кудато, я так понимаю в admin/user/permissions
function hook_perm() {
  return array(
'receive greeting');
}

//собственно функция которая будет исполняться при переходе на 
//страницу которую создали, может быть форма, выборка из БД, да что угодно
function mymenu_hello(){
 ----
}

?>

а вообще я это выкопал из Вандюка который еще по друпалу пятой версии, хотя по шестой тоже есть. Глава 4. Система меню, так что читайте его он вам лучше расскажет