Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=KOI8-R">
<style>
	body {
		background-color: #FFFFFF;
		margin: 0px;
	}
	form {
		margin:  0px;
		padding: 0px;
	}
	input, select, textarea {
		font-family: Tahoma, Arial, sans-serif;
		font-size:9pt;
	}
	a {
		color:#0000ee;
	}
	a:visited.v {
		color:#0000ee;
	}

	fieldset {padding:6px;margin-bottom:10px;border:2px solid #8093B0;}
	fieldset legend {font-size:8pt;font-weight:bold;font-family:Tahoma;padding:3px 6px 3px 6px;margin-bottom:6px;color:#ffffff;background-color:#8093B0;}
	
	.tatop {font-size:70%;font-family:Tahoma;color:#ffffff;}
	.tatop a {color:#ffffff;}
	.npath {font-size:70%;font-family:Tahoma;padding:8px;}
	
	.textnorm { font-size:70%; font-family:Tahoma; }
	.input_btn {background-color:#930300;color:#FFFFFF;height:2.4em;}
	
	table.tlistdocs { margin-top:10px; margin-bottom:10px; border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9; }
	table.tlistdocs td, table.tlistdocs th { border:1px solid #d9d9d9; border-right:0px; border-bottom:0px; }
	table.tlistdocs td {font-size:70%;font-family:Tahoma;}
	table.tlistdocs table td {border:0px;}
	
	table.tform th, table.tform td {
		font-size:   70%;
		font-family: Tahoma;
		text-align:  left;
	}
	
	th {font-size:70%;font-family:Tahoma;text-align:left;}
	
	h5, .hdr5 {font-size:70%;font-family:Tahoma;font-weight:bold;padding-top:10px;padding-bottom:5px;}
	

	.hiddensect { color:#909090; }
	.hiddensect a { color:#909090; }
	
	.btn {font-size:9pt;}

	.bb {
		border: solid 1px #000000;
	}
	.gb {
		background-color: #D8D8D8;
	}
	.undo {
		font-family: Tahoma;
		font-size: 9pt;
		background-color: #FFD8D8;
	}
	.link_string { font: 12px Tahoma; padding:5px 10px; border-bottom:1px solid gray; }
	.link_string p { margin:0; padding:0; }
	
</style>
<title>������������ ���������<% (length($title) > 0) ? " | $title" : "" %></title>
<script language="javascript" type="text/javascript" src="/contenido/i/js/jquery-1.3.2.min.js"></script>
<% $m->comp_exists('/contenido/components/custom_head.msn') ? $m->comp('/contenido/components/custom_head.msn') : '' %>
<script language="javascript" type="text/javascript" src="/contenido/i/js/links.js"></script>
<script language="javascript" type="text/javascript" src="/contenido/i/js/tiny_mce/jquery.tinymce.js"></script>
<script language="javascript" type="text/javascript">
var WYSIWYGControls = new Array();
var sDocumentClass;
var nDocumentID;
$().ready(function() {
  var sControls;
	$('textarea.tinymce').tinymce({
			// Location of TinyMCE script
			script_url : '/contenido/i/js/tiny_mce/tiny_mce.js',

			// General options
			theme : "advanced",
			plugins : "style,layer,table,advhr,advimage,advlink,inlinepopups,preview,media,contextmenu,paste,noneditable,visualchars,nonbreaking,template,advlist",

			// Theme options
			theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect,|,forecolor,backcolor,|,undo,redo,|,preview,help,code",
			theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,link,unlink,anchor,image,|,tablecontrols",
			theme_advanced_buttons3 : "cleanup,removeformat,visualaid,|,sub,sup,|,charmap,media,hr,advhr,|,insertlayer,moveforward,movebackward,absolute,|,styleprops,|,visualchars,nonbreaking",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "bottom",
			theme_advanced_resizing : true,

			convert_urls : false,

			paste_create_paragraphs : false,
			paste_create_linebreaks : false,
			paste_auto_cleanup_on_paste : true,
			paste_convert_middot_lists : false,

			// Example content CSS (should be your site CSS)
			//content_css : "css/content.css",

			// Drop lists for link/image/media/template dialogs
			//template_external_list_url : "lists/template_list.js",
			//external_link_list_url : "lists/link_list.js",
			//external_image_list_url : "lists/image_list.js",
			//media_external_list_url : "lists/media_list.js"
			external_image_list_url : "/contenido/image_list.js?class=" + sDocumentClass + "&id=" + nDocumentID

	});
<%doc>
  if ( WYSIWYGControls.length ) {
	sControls = WYSIWYGControls.join(',');
	$('textarea.tinymce').tinymce({
		// Location of TinyMCE script
		script_url : '/contenido/i/js/tiny_mce/tiny_mce.js',

		theme : "advanced",
		plugins : "safari,paste,advimage,table",
		paste_create_paragraphs : false,
		paste_create_linebreaks : false,
		paste_use_dialog : true,
		paste_auto_cleanup_on_paste : true,
		paste_convert_middot_lists : false,
		paste_unindented_list_class : "unindentedList",
		paste_convert_headers_to_strong : true,
		paste_insert_word_content_callback : "convertWord",
		theme_advanced_buttons3_add : "pastetext,pasteword,selectall,|,forecolor,backcolor,|,tablecontrols",
		convert_urls : false,

		external_image_list_url : "/contenido/image_list.js?class=" + sDocumentClass + "&id=" + nDocumentID
	});
  }
</%doc>
});
<%doc>
function convertWord(type, content) {
	switch (type) {
		// Gets executed before the built in logic performes it's cleanups
		case "before":
			//content = content.toLowerCase(); // Some dummy logic
			break;

		// Gets executed after the built in logic performes it's cleanups
		case "after":
			//content = content.toLowerCase(); // Some dummy logic
			break;
	}

	return content;
}
</%doc>

</script>
</head>
<body>

<%args>

	$style => undef
	$title => undef

</%args>
<%init>
	my $pn = $state->project_name();
	my ($pn_name, $pn_domen) = split(/\./, $pn);
</%init>

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

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

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

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

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