Line # Revision Author
1 296 ahitrov % if ( $m->comp_exists ("/comps/$prj/header.msn") ) {
2 <& "/comps/$prj/header.msn", alias => 'main' &>
3 % } else {
4 <& "/comps/header_rambler.msn", alias => 'main' &>
5 % }
6
7
8 <table class="r--main">
9 <tr>
10 <td class="dev--left-10"><div class="dev--left-10"><!-- --></div></td>
11 <td class="dev--left-menu r--vtop">
12 <div class="dev--left-menu"><!-- --></div>
13
14 <& "/comps/$prj/menus.msn", s => $s, id => $id &>
15 <br>
16 </td>
17 <td class="dev--left-25"><div class="dev--left-25"><!-- --></div></td>
18 <td class="r--vtop r--normal">
19
20 % if ( $id && ref $document ) {
21 <h1><% $section->name %></h1>
22 % } else {
23 <h1><% $profile->header %></h1>
24 <p><& /inc/text_format.msn, doc => $profile, field => 'abstr' &></p>
25 % }
26
27 <script type="text/javascript">
28 <!--
29 function check_fields ( oForm ) {
30
31 if (!oForm.name.value) {
32 alert ('Необходимо указать имя');
33 return false;
34 }
35 if (!oForm.lastname.value) {
36 alert ('Необходимо указать фамилию');
37 return false;
38 }
39 var email = oForm.email.value;
40 if ( !email ) {
41 alert ('Необходимо указать электронный адрес');
42 return false;
43 }
44 if ( email.indexOf('@') == -1 || email.indexOf('.') == -1 ) {
45 alert ('Указан неверный электронный адрес');
46 return false;
47 }
48 if (!oForm.question.value) {
49 alert ('Необходимо заполнить поле вопроса');
50 return false;
51 }
52 var Question = $('#question').attr('value');
53 $('#feedbackcontainer').load('./ajax/feedback.html', {
54 'name': $('#name').attr('value'),
55 'lastname': $('#lastname').attr('value'),
56 'email': $('#email').attr('value'),
57 'job': $('#job').attr('value'),
58 'position': $('#position').attr('value'),
59 'doc_id': $('#doc_id').attr('value'),
60 'filled': $('#filled').attr('value'),
61 'question': Question
62 });
63 return false;
64 }
65 //-->
66 </script>
67
68
69 <div id="mailform" class="hidden" onmouseover="javascript:showObject(mailform)">
70 <h2 class="mb10 mt10">Обратная связь</h2>
71 <u class=uTop><i class=uLft><!-- --></i><i class=uRgt><!-- --></i></u>
72 <div id="feedbackcontainer" class="grayBg">
73
74 <& "/comps/$prj/feedback_form.msn", id => $id, ajax => 1 &>
75
76 </div>
77 <u class="uBtm"><i class="uLft"><!-- --></i><i class="uRgt"><!-- --></i></u>
78 <div class="mt30"></div>
79 </div>
80
81
82 % if ( $id && ref $document ) {
83 <%doc>
84 <h1 class="mt30"><% $section->name %></h1>
85 <ul>
86 <li>Интеграция ID
87 <li>Rambler ID и OpenID
88 <li>Безопасность авторизации
89 </ul>
90 </%doc>
91
92 <h2 class="mb10"><% $document->name %></h2>
93
94 <& /inc/text_format.msn, doc => $document &>
95 % }
96
97 <div class="dev--content"><!-- --></div>
98
99 </td>
100 </tr>
101 </table>
102
103
104 % ### Футер
105 % ##############################################
106 % if ( $m->comp_exists ("/comps/$prj/footer.msn") ) {
107 <& "/comps/$prj/footer.msn" &>
108 % } else {
109 <& "/comps/footer_rambler.msn" &>
110 % }
111 % ### /Футер
112 <%args>
113
114 $id => undef
115
116 </%args>
117 <%init>
118
119 my $prj = $request->{project};
120 my $profile = $request->{project_profile};
121 my $root = $request->{project_section};
122 &abort404 if $id && $id !~ /^\d+$/;
123
124 my $subsections = $request->{subsections};
125 my ($section, $s, $doclist);
126
127 my $document;
128 if ( $id && ref $subsections eq 'ARRAY' ) {
129 my @sids = map { $_->id } @$subsections;
130 if ( @sids ) {
131 $document = $keeper->get_document_by_id ( $id,
132 s => \@sids,
133 class => 'promosuite::Article',
134 status => 1,
135 );
136 }
137 &abort404 unless ref $document;
138 ($section) = grep { my $sec = $_->id; grep { $_ == $sec } $document->sections } @$subsections;
139 $s = $section->id;
140 }
141
142 </%init>

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.