Revision 275 
  Date: 
  2013/02/07 18:20:04 
  Author: 
  ahitrov 
  Revision Log: 
  Lookup multi bug - multiple deletion didn't funtion 
  Files: 
  
    
   
 
  
    Legend: 
    
        Added 
        Removed 
        Modified 
     
       
     
      utf8/core/comps/contenido/components/document_links_block.msn 
      
        
           
        
          
              
           
         
                  
      
             9 
            9 
            % }  
          
      
             10 
            10 
            <br clear="all">  
          
      
             11 
            11 
            <div style="padding:4px 0 2px;"><a target="_top"  
                      
      
             12 
             href="link_frame.html?class=<% $class %>&<% $link_class_name %>=<% $document->class %>&<% $link_id_name %>=<% $document->id %>"><b>Добавить связь</b></a></div>  
                     
      
             12 
             href="link_frame.html?class=<% $class %>&<% $link_class_name %>=<% $document->class %>&<% $link_id_name %>=<% $document->id %>&back=<% $back %>"><b>Добавить связь</b></a></div>  
                     
      
             13 
            13 
            % if ( $total > $size ) {  
          
      
             14 
            14 
            <div style="padding:2px 0 4px;"><b>Страницы:</b>  <&  
          
      
             15 
            15 
            	'/inc/pages_.msn', total => $total, n => $size, p => $p,  
                      
      
             16 
            16 
            	params => { id => $document->id,  class => $document->class, link_class => $class },  
          
      
             17 
            17 
             &></div>  
          
      
             18 
            18 
            % }  
                      
      
             19 
            <& /contenido/components/document_links_list.msn,   
                     
      
             19 
            <& /contenido/components/document_links_list.msn, parent_url => $parent_url,  
                     
      
             20 
            20 
            	links => $links, docs => $docs, $link_id_name eq 'dest_id' ? (destination => $document) : (source => $document) &>  
          
      
             21 
            21 
            <%args>  
          
      
             22 
            22 
             
                  
          
            … 
            … 
              
           
               
      
             27 
            27 
            	$opts		=> {}  
          
      
             28 
            28 
            	$link_id_name	=> 'dest_id'  
          
      
             29 
            29 
            	$link_class_name=> 'dest_class'  
                      
      
             30 
            	$parent_url	=> undef  
                     
      
             30 
            31 
             
          
      
             31 
            32 
            </%args>  
          
      
             32 
            33 
            <%init>  
                  
          
            … 
            … 
              
           
               
      
             34 
            35 
              return	unless ref $document;  
          
      
             35 
            36 
              return	unless ref $lclasses eq 'ARRAY' && @$lclasses;  
          
      
             36 
            37 
              $class ||= $lclasses->[0];  
                      
      
             38 
              my $back = URI::Escape::uri_escape( $parent_url );  
                     
      
             37 
            39 
             
          
      
             38 
            40 
              my $size = 20;  
          
      
             39 
            41 
              my $revert_id = $link_id_name eq 'dest_id' ? 'source_id' : 'dest_id';  
           
   
      utf8/core/comps/contenido/components/document_links_list.msn 
      
        
           
        
          
              
           
         
                  
      
             75 
            75 
            <div style="padding:2px; text-align:right">  
          
      
             76 
            76 
            <input type="hidden" name="id" value="<% $document->id %>">  
          
      
             77 
            77 
            <input type="hidden" name="class" value="<% $document->class %>">  
                      
      
             78 
            <input type="hidden" name="parent_url" value="<% $parent_url %>">  
                     
      
             78 
            79 
            %	if ( ref $destination ) {  
          
      
             79 
            80 
            <input type="hidden" name="source_class" value="<% $links->[0]->class %>">  
          
      
             80 
            81 
            %	} else {  
                  
          
            … 
            … 
              
           
               
      
             92 
            93 
            	$docs	=> undef  
          
      
             93 
            94 
            	$destination	=> undef  
          
      
             94 
            95 
            	$source		=> undef  
                      
      
             96 
            	$parent_url	=> undef  
                     
      
             95 
            97 
             
          
      
             96 
            98 
            </%args>  
          
      
             97 
            99 
            <%init>  
           
   
      utf8/core/comps/contenido/components/outputs/lookup_multi.msn 
      
        
           
        
          
              
           
         
                  
      
             19 
            19 
            		next unless $k =~ /^${name}_(add|delete)$/;  
          
      
             20 
            20 
            		next unless $v;  
          
      
             21 
            21 
             
                      
      
             22 
            		warn Dumper $v;  
                     
      
             22 
            23 
            		if ($1 eq 'add') {  
          
      
             23 
            24 
            			$ids{$v} = 1;  
          
      
             24 
            25 
            		} elsif ($1 eq 'delete') {  
                      
      
             25 
            			delete $ids{$v};  
                     
      
             26 
            			if ( ref $v eq 'ARRAY' ) {  
         
      
             27 
            				map { delete $ids{$_} } @$v;  
         
      
             28 
            			} else {  
         
      
             29 
            				delete $ids{$v};  
         
      
             30 
            			}  
                     
      
             26 
            31 
            		}  
          
      
             27 
            32 
            	}  
          
      
             28 
            33 
             
           
   
      utf8/core/comps/contenido/document_links.html 
      
        
           
        
          
              
           
         
                  
      
             41 
            41 
            <& "/contenido/components/document_links_block.msn",   
          
      
             42 
            42 
            	document => $document, lclasses => \@sources, class => $lclass, p => $p,  
          
      
             43 
            43 
            	link_id_name => 'source_id',  
                      
      
             44 
            	link_class_name => 'source_class'  
                     
      
             44 
            	link_class_name => 'source_class',  
         
      
             45 
            	parent_url	=> $parent_url,  
                     
      
             45 
            46 
            &>  
          
      
             46 
            47 
            </div>  
          
      
             47 
            48 
            <div id="div_source_hidden" style="display:<% $show ? 'none' : 'block' %>; padding:5px;"><a href="javascript:switch_div('div_source')"  
                  
          
            … 
            … 
              
           
               
      
             62 
            63 
            <& "/contenido/components/document_links_block.msn",  
          
      
             63 
            64 
            	document => $document, lclasses => \@destinations, class => $lclass, p => $p,  
          
      
             64 
            65 
            	link_id_name => 'dest_id',  
                      
      
             65 
            	link_class_name => 'dest_class'  
                     
      
             66 
            	link_class_name => 'dest_class',  
         
      
             67 
            	parent_url	=> $parent_url,  
                     
      
             66 
            68 
            &>  
          
      
             67 
            69 
            </div>  
          
      
             68 
            70 
            <div id="div_destination_hidden" style="display:<% $show ? 'none' : 'block' %>; padding:5px;"><a href="javascript:switch_div('div_destination')"  
                  
          
            … 
            … 
              
           
               
      
             81 
            83 
            	$class	=> undef  
          
      
             82 
            84 
            	$id	=> undef  
          
      
             83 
            85 
            	$link_class	=> undef  
                      
      
             86 
            	$parent_url	=> undef  
                     
      
             84 
            87 
             
          
      
             85 
            88 
            </%ARGS>  
          
      
             86 
            89 
             
          
      
             87 
            90 
            <%INIT>  
                      
      
             91 
             
                     
      
             88 
            92 
            	return unless ($state->{available_links} and @{$state->{available_links}});  
                      
      
             93 
            	$parent_url ||= $r->header_in("Referer");  
                     
      
             89 
            94 
            	my $document;  
          
      
             90 
            95 
            	my (@sources, @destinations);  
          
      
             91 
            96 
            	if ($id && ($id !~ /\D/) && ($id > 0)) {  
           
   
      utf8/core/comps/contenido/link_frame.html 
      
        
           
        
          
              
           
         
                  
      
             15 
            15 
            	$dest_id	=> ''  
          
      
             16 
            16 
            	$save		=> 0  
          
      
             17 
            17 
            	$status		=> 0  
                      
      
             18 
            	$back		=> undef  
                     
      
             18 
            19 
            </%args>  
          
      
             19 
            20 
            <%init>  
          
      
             20 
            21 
             
                  
          
            … 
            … 
              
           
               
      
             22 
            23 
              push @source_args, 'class='.$class			if $class;  
          
      
             23 
            24 
              push @source_args, 'source_class='.$source_class	if $source_class;  
          
      
             24 
            25 
              push @source_args, 'source_id='.$source_id		if $source_id;  
                      
      
             26 
              push @source_args, 'back='.URI::Escape::uri_escape( $back );  
                     
      
             25 
            27 
              push @dest_args, 'class='.$class			if $class;  
          
      
             26 
            28 
              push @dest_args, 'dest_class='.$dest_class		if $dest_class;  
          
      
             27 
            29 
              push @dest_args, 'dest_id='.$dest_id			if $dest_id;  
                      
      
             30 
              push @dest_args, 'back='.URI::Escape::uri_escape( $back );  
                     
      
             28 
            31 
             
          
      
             29 
            32 
              $sargs = @source_args ? '?'.join('&', @source_args) : undef;  
          
      
             30 
            33 
              $dargs = @dest_args ? '?'.join('&', @dest_args) : undef;  
           
   
      utf8/core/comps/contenido/links/destination.html 
      
        
           
        
          
              
           
         
                  
      
             78 
            78 
            <form action="link_add.html" name="sourceform" target="_top" method="post" onsubmit="return CheckSource();">  
          
      
             79 
            79 
            <div id="link_list"></div>  
          
      
             80 
            80 
             
                      
      
             81 
            <input type="hidden" name="back" value="<% $back %>">  
                     
      
             81 
            82 
            <input type="hidden" name="class" value="<% $class %>">  
          
      
             82 
            83 
            <input type="hidden" name="dest_id" value="<% $dest_id %>">  
          
      
             83 
            84 
            <input type="hidden" name="dest_class" value="<% $dest_class %>">  
                  
          
            … 
            … 
              
           
               
      
             146 
            147 
            	$dest_id        => ''  
          
      
             147 
            148 
            	$save           => 0  
          
      
             148 
            149 
            	$status         => 0  
                      
      
             150 
            	$back		=> undef  
                     
      
             149 
            151 
             
          
      
             150 
            152 
            	$p		=> 1  
          
      
             151 
            153 
            	$use_section	=> undef  
           
   
      utf8/core/comps/contenido/links/link_add.html 
      
        
           
        
          
              
           
         
                  
      
             8 
            8 
              $dest_class	=> undef  
          
      
             9 
            9 
              $sources	=> undef  
          
      
             10 
            10 
              $destinations	=> undef  
                      
      
             11 
              $back		=> undef  
                     
      
             11 
            12 
             
          
      
             12 
            13 
            </%args>  
          
      
             13 
            14 
            <%init>  
                  
          
            … 
            … 
              
           
               
      
             59 
            60 
            	$ret_params = "id=$dest_id&class=$dest_class";  
          
      
             60 
            61 
              }  
          
      
             61 
            62 
              if ($ret_params) {  
                      
      
             62 
            	$r->header_out("Location", "/contenido/document.html?".$ret_params);  
         
      
             63 
            	$r->status(302);  
         
      
             64 
            	$r->send_http_header();  
         
      
             65 
            	$m->abort();  
         
      
             66 
              }else{  
         
      
             67 
            	abort404;  
                     
      
             63 
            	$m->redirect( $back || "/contenido/document.html?".$ret_params );  
         
      
             64 
              } else {  
         
      
             65 
            	&abort404;  
                     
      
             68 
            66 
              }  
          
      
             69 
            67 
             
          
      
             70 
            68 
            </%init>  
           
   
      utf8/core/comps/contenido/links/source.html 
      
        
           
        
          
              
           
         
                  
      
             77 
            77 
            <form action="link_add.html" name="destform" target="_top" method="post" onsubmit="return CheckDest();">  
          
      
             78 
            78 
            <div id="link_list"></div>  
          
      
             79 
            79 
             
                      
      
             80 
            <input type="hidden" name="back" value="<% $back %>">  
                     
      
             80 
            81 
            <input type="hidden" name="class" value="<% $class %>">  
          
      
             81 
            82 
            <input type="hidden" name="source_id" value="<% $source_id %>">  
          
      
             82 
            83 
            <input type="hidden" name="source_class" value="<% $source_class %>">  
                  
          
            … 
            … 
              
           
               
      
             145 
            146 
            	$dest_id        => ''  
          
      
             146 
            147 
            	$save           => 0  
          
      
             147 
            148 
            	$status         => 0  
                      
      
             149 
            	$back		=> undef  
                     
      
             148 
            150 
             
          
      
             149 
            151 
            	$p		=> 1  
          
      
             150 
            152 
            	$restrict_class	=> undef  
           
   
      utf8/core/comps/contenido/store_document_links.html 
      
        
           
        
          
              
           
         
                  
      
             5 
            5 
            	$source_class	=> undef  
          
      
             6 
            6 
            	$dest_class	=> undef  
          
      
             7 
            7 
            	$update	=> undef  
                      
      
             8 
            	$parent_url	=> undef  
                     
      
             8 
            9 
             
          
      
             9 
            10 
            </%ARGS>  
          
      
             10 
            11 
             
                  
          
            … 
            … 
              
           
               
      
             82 
            83 
            			}  
          
      
             83 
            84 
            		}  
          
      
             84 
            85 
             
                      
      
             86 
            		$parent_url = URI::Escape::uri_escape( $parent_url )	if $parent_url;  
                     
      
             85 
            87 
            		# Проброс на содержание документа...  
          
      
             86 
            88 
            		if ( $source_class ) {  
                      
      
             87 
            			$m->redirect ("document_links.html?id=$id&class=$class&source_class=$source_class");  
                     
      
             89 
            			$m->redirect ("document_links.html?id=$id&class=$class&source_class=$source_class&parent_url=$parent_url");  
                     
      
             88 
            90 
            		} elsif ( $dest_class ) {  
                      
      
             89 
            			$m->redirect ("document_links.html?id=$id&class=$class&dest_class=$dest_class");  
                     
      
             91 
            			$m->redirect ("document_links.html?id=$id&class=$class&dest_class=$dest_class&parent_url=$parent_url");  
                     
      
             90 
            92 
            		} else {  
                      
      
             91 
            			$m->redirect ("document_links.html?id=$id&class=$class");  
                     
      
             93 
            			$m->redirect ("document_links.html?id=$id&class=$class&parent_url=$parent_url");  
                     
      
             92 
            94 
            		}  
          
      
             93 
            95 
            	}  
          
      
             94 
            96 
             
           
     
 
 
      
    
Небольшая справка по веткам 
cnddist  – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8  – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8  – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core  – исходники ядра; install  – скрипт установки инсталляции; plugins  – плагины; samples  – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.