package Contenido::Document; # ---------------------------------------------------------------------------- # Класс Документ # ---------------------------------------------------------------------------- use strict; use warnings; use locale; use base 'Contenido::Object'; use Utils; use Contenido::Globals; use Data::Dumper; sub class_name { return 'Документ'; } sub class_description { return 'Документ по умолчанию'; } # клас реализации таблицы sub class_table { return 'SQL::DocumentTable'; } # ---------------------------------------------------------------------------- # Конструктор. Создает новый объект для работы с документами в среде базы # данных PostgreSQL. # # Формат использования: # Contenido::Document->new() # Contenido::Document->new($keeper) # Contenido::Document->new($keeper, $id) # # Возвращает либо истинное значение, если все получилось, либо ложь. # ---------------------------------------------------------------------------- sub new { my ($proto, $keeper, $id) = @_; my $class = ref($proto) || $proto; my $self; if (defined($id) && ($id>0) && defined($keeper)) { $self=$keeper->get_document_by_id($id, class=>$class); } else { $self = {}; bless($self, $class); $self->init(); $self->class($class); $self->keeper($keeper) if (ref $keeper); } return $self; } # Возвращает главную секцию (первую)... # вот такой вот загадочный код ;)) # искренне надеюсь что он работает и причем так как надо sub section { shift @{[shift->sections()]}; } #### # Шаблонный метод для определения полей, по которым можно искать. # Переопределяется в документах, возвращает массив названий полей. ################################################################## sub search_fields { return ('name'); } #### # Шаблонный метод для описания полей в документах других классов, # связанных с данным документом связью многие-к-одному от поля # field документа класса class к id данного документа # # Пример: # { # name => 'Описание связи', # class => 'project::Class', # filter => 'filter_name' # field => 'table_field' # } # ################################################################## sub table_links { return undef; } #### # Jevix ################################################################## sub jevix_conf { my $jevix_conf = { isHTML => 1, # ( ) lineBreaks => 0, #
paragraphs => 0, #

dashes => 1, # dots => 1, # edgeSpaces => 1, # tagSpaces => 1, # ( ) multiSpaces => 1, # redundantSpaces => 1, # , compositeWords => 0, # compositeWordsLength => 10, # , nbsp => 0, # quotes => 1, # qaType => 0, # (. http://jevix.ru/) qbType => 1, # misc => 1, # (©, ) codeMode => 2, # . (0: ANSI <...>, 1: HTML- <…>, 2: HTML- <…>) tagsDenyAll => 0, # tagsDeny => 'script', # ݣ tagsAllow => '', # ۣ ( , ) tagCloseSingle => 0, # , tagNamesToLower => 0, # tagNamesToUpper => 0, # tagAttributesToLower => 0, # tagAttributesToUpper => 0, # tagQuoteValues => 0, # tagUnQuoteValues => 0, # simpleXSS => 1, # XSS- checkHTML => 0, # HTML logErrors => 0 # }; return $jevix_conf; } 1;