Line # Revision Author
1 296 ahitrov % if ( $m->comp_exists ("/comps/$prj/header.msn") ) {
2 <& "/comps/$prj/header.msn" &>
3 % } else {
4 <& "/comps/header.msn" &>
5 % }
6
7 %### новости и видео
8
9 <table cellspacing="0" cellpadding="0" width="100%" border="0" style="margin-bottom: 20px;">
10 <tr><td width="4%"><div style="width: 10px; height: 1px"><spacer height="1" width="10" type="block"></div></td>
11
12 <td width="35%" valign="top">
13 %
14 % if ( $m->comp_exists ("/comps/$prj/block_news.msn") ) {
15 <& "/comps/$prj/block_news.msn" &>
16 % } else {
17 <& "/comps/block_news.msn" &>
18 % }
19 %
20
21 </td>
22 <td valign="top"><img src="/i/<% $prj %>/z.gif" width="15" height="1"></td>
23
24 % if ( ref $video ) {
25 <td width="57%" valign="top"><div style="width:530px; height:11px;"><spacer type="block"></div>
26 <div style="background:#333333; padding:5px 0px 5px 25px;" class="hdr"><a href="./video.html"><% $vsection->name %></a></div>
27 <table width="100%" border="0" cellspacing="0" cellpadding="0">
28 <tr>
29 <td colspan="3" style="border-left:#3C3C3C 1px solid; border-right:#3C3C3C 1px solid;">
30 <div style="margin:15px 10px 0px 10px; text-align:center;"><% $video->html %></div>
31 </td></tr>
32 <tr>
33 <td width="10%"><div style="background: url(/i/<% $prj %>/l_gr2.gif) no-repeat bottom left; height:17px;"><spacer type="block"></div></td>
34 <td width="80%"><div style="background: url(/i/<% $prj %>/b_gr2.gif) repeat-x; height:17px;"><spacer type="block"></div></td>
35 <td width="10%" align="right"><div style="background:url(/i/<% $prj %>/r_gr2.gif) no-repeat bottom right; height:17px;"><spacer type="block"></div></td>
36 </tr>
37 </table>
38 </td>
39 % }
40
41 <td width="4%"><div style="width: 10px; height: 1px"><spacer height="1" width="10" type="block"></div></td>
42 </tr>
43 </table>
44
45
46
47 %### cегодня и видеогалерея
48 <table cellspacing="0" cellpadding="0" width="100%" border="0">
49 <tr>
50 <td width="4%"><div style="width: 10px; height: 1px"><spacer height="1" width="10" type="block"></div></td>
51 <td width="35%" valign="top"><div style="width:328px; height:1px;"><spacer type="block"></div>
52 % ### Блок "сегодня"
53 % ##############################################
54 % if ( $m->comp_exists ("/comps/$prj/block_today_schedule.msn") ) {
55 <& "/comps/$prj/block_today_schedule.msn" &>
56 % } else {
57 <& "/comps/block_today_schedule.msn" &>
58 % }
59 % ### /Футер
60 </td>
61 <td valign="top" ><img src="/i/<% $prj %>/z.gif" width="15" height="1"></td>
62
63 <td width="57%" valign="top"><div style="width:530px; height:1px;"><spacer type="block"></div>
64 <div style="background:#333333; padding:5px 10px 5px 25px;" class="hdr"><a href="./video.html"><% $vsection->name %></a></div>
65 <table width="100%" border="0" cellspacing="0" cellpadding="0" style="background:#5C5D62;">
66 <tr>
67 <td><div style="padding:0px 10px 0px 15px;">
68 <table border="0" cellspacing="0" cellpadding="10">
69 <tr><td>
70 % if ( $m->comp_exists ("/comps/$prj/block_rep_videos.msn") ) {
71 <& "/comps/$prj/block_rep_videos.msn", doc => $vsection, show => 'rubber', max => 10, visual => 4 &>
72 % } else {
73 <& "/comps/block_rep_photos.msn", doc => $vsection, show => 'rubber', max => 10, visual => 4 &>
74 % }
75 </td></tr>
76 </table>
77 <div style="padding-left:10px">
78 <a href="./video.html" class="txt"><b>Все видео &raquo;</b></a> </div></div></td>
79 </tr>
80 <tr>
81 <td><div style="background: url(/i/<% $prj %>/l_gr.gif) no-repeat bottom left; width:17px; height:17px; float: left;"><spacer type="block"></div>
82 <div style="background:url(/i/<% $prj %>/r_gr.gif) no-repeat bottom right; width:17px; height:17px; float: right;"><spacer type="block"></div></td>
83 </tr>
84 </table>
85
86
87
88
89
90
91
92 <div style="background:#333333; padding:5px 10px 5px 25px; margin-top:15px;" class="hdr"><a href="./photo.html"><% $psection->name %></a></div>
93
94 <table width="100%" border="0" cellspacing="0" cellpadding="0" style="background:#5C5D62;">
95 <tr>
96 <td><div style="padding:0px 10px 0px 15px;">
97 <table border="0" cellspacing="0" cellpadding="10">
98 <tr><td>
99
100 % if ( $m->comp_exists ("/comps/$prj/block_rep_photos.msn") ) {
101 <& "/comps/$prj/block_rep_photos.msn", doc => $photorep, show => 'rubber', max => 10, visual => 4 &>
102 % } else {
103 <& "/comps/block_rep_photos.msn", doc => $photorep, show => 'rubber', max => 10, visual => 4 &>
104 % }
105
106 </td></tr>
107 </table>
108 <div style="padding-left:10px">
109 <a href="./photo.html" class="txt"><b>Все фото &raquo;</b></a></div></div></td>
110 </tr>
111 <tr>
112 <td><div style="background: url(/i/<% $prj %>/l_gr.gif) no-repeat bottom left; width:17px; height:17px; float: left;"><spacer type="block"></div>
113 <div style="background:url(/i/<% $prj %>/r_gr.gif) no-repeat bottom right; width:17px; height:17px; float: right;"><spacer type="block"></div></td>
114 </tr>
115 </table></td>
116
117 <td width="4%"><div style="width: 10px; height: 1px"><spacer height="1" width="10" type="block"></div></td>
118 </tr>
119 </table>
120
121
122
123 % ### Футер
124 % ##############################################
125 % if ( $m->comp_exists ("/comps/$prj/footer.msn") ) {
126 <& "/comps/$prj/footer.msn" &>
127 % } else {
128 <& "/comps/footer.msn" &>
129 % }
130 % ### /Футер
131 <%args>
132
133 $p => 1
134 $id => undef
135
136 </%args>
137 <%init>
138
139 my $prj = $request->{project};
140 my $profile = $request->{project_profile};
141 my $root = $request->{project_section};
142 &abort404 if $id && $id !~ /^\d+$/;
143
144 my $document;
145 my ($section) = $keeper->get_sections (
146 s => $root->id,
147 class => 'promosuite::AnnoSection',
148 limit => 1,
149 status => 1,
150 );
151 if ( $id && ref $section ) {
152 $document = $keeper->get_document_by_id ($id,
153 s => $section->id,
154 class => 'promosuite::Anons',
155 status => 1,
156 );
157 }
158 my ($psection) = $keeper->get_sections (
159 s => $root->id,
160 class => 'promosuite::MultimediaSection',
161 limit => 1,
162 status => 1,
163 );
164 my ($photorep) = $keeper->get_documents (
165 s => $psection->id,
166 class => 'promosuite::Photorep',
167 status => 1,
168 order => ['date', 'direct'],
169 limit => 1
170 );
171 $request->{photorep} = $photorep;
172
173 my ($vsection) = $keeper->get_sections (
174 s => $root->id,
175 class => 'promosuite::PromoSection',
176 limit => 1,
177 status => 1,
178 );
179 my ($video) = $keeper->get_documents (
180 s => $vsection->id,
181 class => 'promosuite::Promoblock',
182 status => 1,
183 order => ['date', 'direct'],
184 limit => 1,
185 );
186
187 </%init>

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

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

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

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

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