Вывод единственного материала

Для передачи данных используем функцию. Здесь дата в конце для того, чтобы быть универсальной функцией, как для материалов с датой в УРЛ так и без нее. Массивы мы объединяем, по-этому бывшие ключи становятся переменными в отображении.:

$R = $this->data->getMaterial($category, $huu, $date);
$D = array_merge($D,$R);

Для вывода материала используем код по образцу:

$image_properties = array(
‘src’ => $imgSrc,
‘alt’ => $imgAlt,
‘width’ => ‘140’,
‘height’ => ‘140’,
‘title’ => $imgTitle
);
$phpdate = strtotime($date);
$day = date(‘j’, $phpdate); // day
$mon = getRusDate(date(‘M’, $phpdate)); // month
$year = date(‘Y’, $phpdate); //year 2011
$tdate = “$day $mon, $year”;

echo’

‘.img($image_properties).’
‘.heading($title, 1).’

Рубрика: ‘.$categoryTitle.’

Раздел:
‘.$categoryTitle.’

Опубликовано: ‘.$tdate .’

Комментариев: ‘.$commentsCount.’

‘.$body.’

‘;
?>

В низу можем выводить похожий материал, но так как он не реализован по настоящему пример не показан.

Подключение blohher UI

Сначала подключите скрипты и стили:

$D[‘js’][] = ‘jquery.blohher.drag’;
$D[‘js’][] = ‘jquery.blohher.ui’;
$D[‘css’][] = ‘boxui’;

А теперь нужно будет добавить в конец страницы пока не видимый код окна:

А теперь еще нужно и инициализацию провести, а так же допишем функцию, имитирующую стандартный alert – назвем её box:

Отказ от JQuery UI

Если вы хотите использовать мой UI, скачайте Файлы blohher.ui.7z

Краткая документация:

Регистрируем окно UI, указывая необходимые callback-функции:

$(‘#ui-dialog’).blohherui({
cbUiClose : anyShow,
cbUiOk : function(){ any1(); any2(); },
cbUiShow : anyHide
});

Собственная кнопка закрытия окна

$(‘#ui-close-link’).click(function(){
$(‘#ui-dialog’).blohherui(‘uiClose’);
});

А вот так можно заменить текст сообщения и надпись на кнопке

$(‘#ui-dialog .ui-buttons button span’).html(‘1’);
$(‘#ui-dialog .ui-text p’).html(‘2’);

Фунцкии:

  • uiReg(options) – явно не указывается, просто передавайте объект опций
  • uiShow() – показать окно
  • uiClose() – закрыть окно

Ссылка на пример использования: удалена после переноса сайта на WordPress

Как очистить фокус, как снять выделение текста на странице

Вот вам функция:

function clearPageSelection()
{
if (window.getSelection) {
if (window.getSelection().empty) { // Chrome
window.getSelection().empty();
} else if (window.getSelection().removeAllRanges) { // Firefox
window.getSelection().removeAllRanges();
}
} else if (document.selection) { // IE?
document.selection.empty();
}
}

В опере тоже работает

Вывод на главной странице последних материалов

Для передачи данных используем функцию:

$R = $this->data->getArrayOfRecentPublicMaterials(20);
$D[‘materialsObject’] = $R;

Для вывода используем код по образцу:

if (is_array($materialsObject)) foreach ($materialsObject as $row)
{
$image_properties = array(
‘src’ => $row[‘imgSrc’],
‘alt’ => $row[‘imgAlt’],
‘width’ => ‘140’,
‘height’ => ‘140’,
‘title’ => $row[‘imgTitle’]
);

echo’

‘;
}
?>

В этом случае материалы идут все подряд и невозможно настроить вывод по категориям.

Настройка при установке сайта на новое место(на хостинг)

Сначала нужно зайти в конфиг, набирай http://sait.ru/config ввести там логин и пароль и прописать настройки баз данных и системные настройки. Посмотрим в картинках.

Если работаем в папке, то нужно дописать /имя_папки в .htaccess, в противном случае удалить это.

Это с таких 3-х файловых баз состоят настройки

Настройки системы. Здесь так же само прописывается, работаем мы в папке или нет. То же пишется в первую строку что и на первой картинке.

Все ясно. Главная база. Пользователь, пароль, имя базы.

То же самое для базы “менеджера рассылок”.

Как зарегистрировать и подключить бесплатный городской домен в Украине

Стоп! Эта информация устарела! Теперь Украина стала “торговать” этими доменами!

Первым делом тут зарегистрируем себя, что мы украинец http://hostmaster.net.ua/

Потом залогинимся сюда, в автоматическое добавление информации о домене https://auto.uanic.ua/cgi-bin/add.cgi

Порядок действий:

  1. Идем на хостинг, добавляем новый домен, запоминаем первый сервер имен NS, пример dns1.host-food.ru
  2. Идем на auto.uanic.ua и вписываем туда сервер имен, IP будет определен автоматически. Если на хостинге домен не добавлен или что-то неправильно возникает ошибка dominvest.poltava.ua не знайдено на dns1.host-food.ru
  3. Нажимаем Отправить заявку и получаем Заявка відправлена на обробку до системи UANIC.
    Про подальший хід обробки заявки буде повідомлено адміністративному та технічному контактам домену
  4. Ждем когда на елмеил вашего хэндла придет запрос о подтверждении, он выглядит так: ADD dominvest.poltava.ua processing approval request, У вхідну чергу адміністратора публічного домену poltava.ua надійшла Заявка на делегування доменного імені dominvest.poltava.ua.
    Інформацію про заявку дивіться нижче.
    Підтвердити заявку можна на сайті за адресою:
    https://hostmaster.ua/confirm.php?code=BFE91ED3629F20B507C5A888ED0C1D67
    Нужно перейти по ссылке и подтвердить, что делегирование домена.

На елмеил придет письмо с успешными новостями, домен в сети обновится в среднем через полсутки.

!!! Домен org.ua требует хорошего дорогого хостинга, такие как показанный в примере хостинг у него в черных списках, тогда в ответ приходит не понятно что. Я это пробовал давно, потому не могу написать точный текст.

Все, создавайте сайт.

Вывод комментариев и формы комментирования

В этой статье посмотрим как выводятся комментарии и форма для комментирования.

Сначала посмотрим что пишется в функции вывода в контроллере

$idThis = $R[‘idAll’];
$D[‘commentAddUrl’] = site_url(“$this->ccnm/ajaxCommentAdd/$idThis”);
$onPage = safeInt($this->Sets->read(‘commentsOnPageUsr’));
$resultArray = $this->data->aGetComments($idThis, $onPage, $start);
if (!is_array($resultArray)) $D[‘comments’] = ‘no comments’;
else
{
$D[‘commentsCount’] = $resultArray[‘numRows’];
$D[‘begin’] = $resultArray[‘begin’];
$D[‘comments’] = $resultArray[‘comments’];
$this->load->library(‘pagination’);
$config[‘cur_page’] = $start;
$config[‘base_url’] = site_url(“$this->ccnm/”.__FUNCTION__.”/$category/$date/$huu”);
$config[‘total_rows’] = $resultArray[‘numRows’];
$config[‘per_page’] = $onPage;
$config[‘full_tag_open’] = ‘

‘;
$config[‘first_link’] = ‘ ‘;
$config[‘last_link’] = ‘ ‘;
$config[‘next_link’] = ‘ ‘;
$config[‘prev_link’] = ‘ ‘;
$config[‘cur_tag_open’] = ‘‘;
$config[‘cur_tag_close’] = ‘
‘;
$config[‘first_tag_open’] = ‘

‘;
$config[‘first_tag_close’] = ‘

‘;
$config[‘last_tag_open’] = ‘

‘;
$config[‘last_tag_close’] = ‘

‘;
$config[‘next_tag_open’] = ‘

‘;
$config[‘next_tag_close’] = ‘

‘;
$config[‘prev_tag_open’] = ‘

‘;
$config[‘prev_tag_close’] = ‘

‘;
$config[‘num_tag_open’] = ‘

‘;
$config[‘num_tag_close’] = ‘

‘;
$this->pagination->initialize($config);
$D[‘paging’] = $this->pagination->create_links();
}
if ($D[‘comment’]) $this->load->view(‘site/body-mater-form’,$D);

sa

Последняя строчка показывает, что нужно выводить форму комментирования только тогда, когда комментирование разрешено. Эту функциональность можно внести в файл вывода самого материала.


if (!is_string($comments))
{
$counter = 0;
for ($i=1; $i<15; $i++) $a14[] = $i; //vd($a14);
shuffle($a14);
echo “

Комментарии к материалу ($commentsCount)

“;
foreach ($comments as $row)
{
$pattDow = ‘l’;
$pattMonth = ‘M’;
$pattDay = ‘j’;
$pattYear = ‘Y’;
$phpdate = strtotime($row->date);
$day = date($pattDay, $phpdate);
$mon = getRusDate(date($pattMonth, $phpdate));
$year = date($pattYear, $phpdate);
$time = substr($row->time, 0, 5);
$tdate = “$day $mon $year в $time “;
$hash = md5(strtolower(trim($row->email)));
$counter++;
if ($counter >= 14)
{
$counter = 0;
shuffle($a14);
}
$boo = site_url(“_/avatars/$a14[$counter].jpg”);
$grava = ‘http://www.gravatar.com/avatar/’.$hash.’/?d=’.$boo;
$text = $row->text;
$begin++;
echo’

‘;
}
echo ‘

‘;
echo $paging;
}

?>

Теперь вывод формы, код HTML

Добавьте свой комментарий

$attributes = array(‘name’ => ‘formItself’, ‘id’ => ‘formItself’);
echo form_open(site_url(), $attributes);
?>

Имя (ник):

Текст комментария:

А вот сопровождающий форму код JavaScript

Для полной комплектации приведу еще и CSS код, сопровождающий форму комментирования.

p.h1 {
padding: 0 0 10px 0px;
font-size: 20px;
text-align: center;
}
#formHolder label {
color: #555555;
display: block;
font-family: Arial;
font-size: 11px;
font-style: italic;
}
#formHolder label.error {
color: #800000;
display: block;
font-family: Arial;
font-size: 12px;
}
#formHolder span {
color: #000000;
display: block;
font-family: Arial;
font-size: 15px;
padding-left: 1px;
}
.widthplus {
height: 70px;
width: 350px;
}
.widthtext {
height: 165px;
}
.F {
background-color: #e9e9ff;
border-color: #004276;
border-radius: 2px 2px 2px 2px;
border-style: solid;
border-width: 1px;
font-family: Arial;
font-size: 14px;
}
.FInput {
font-size: 14px;
height: 24px;
line-height: 20px;
margin-top: 4px;
padding-left: 10px;
width: 100%;
}
.FArea {
height: 100px;
line-height: 1.3em;
margin: 4px 0;
padding: 3px;
width: 485px;
}
.F:hover {
background-color: #c6dcff;
}
.fhover {
background-color: #c6dcff;
}
.formButton {
margin: 20px 25px 0 5px;
text-align: right;
}
a.buttonBig {
background: none repeat scroll 0 0 #003399;
border: 1px solid #004276;
border-radius: 3px 3px 3px 3px;
color: white;
font-size: 14px;
padding: 6px 12px;
text-decoration: none;
}
#servMes {
display: inline;
font-size: 13px;
margin: 20px 25px 0 5px;
}
/*pigination*/
.for-pg {
width: auto;
height: 30px;
}
.forumpaginator-links div {
background-color: wheat;
border: 1px solid #555555;
color: black;
display: block;
float: left;
height: 21px;
line-height: 15px;
margin: 0 1px;
text-align: center;
text-decoration: none;
}
.forumpaginator-links div:hover {
border: 1px solid #E87676;
color: #003399;
}
.forumpaginator-links div a {
display: block;
height: 100%;
width: 100%;
}
.forumpaginator-links span.current {
border: 1px solid #555555;
color: black;
display: block;
float: left;
height: 15px;
margin: 0 1px;
padding: 3px 2px;
width: 7px;
}
.forumpaginator-info {
background: none repeat scroll 0 0 transparent;
color: #000000;
float: left;
font-size: 10px;
line-height: 1em;
padding: 12px 4px 4px;
text-decoration: none;
text-indent: 4px;
}
.forumpaginator-links {

}
.forumpaginator-links div {
margin: 0 1px;
}
div.nextbutton {
background: url(“usrsrc/arrow_right.png”) no-repeat scroll center center #555555;
display: block;
}
div.prevbutton {
background: url(“usrsrc/arrow_left.png”) no-repeat scroll center center #555555;
display: block;
}
div.stepfwdtenbutton {
background: url(“usrsrc/arrow_stepfwdten.png”) no-repeat scroll center center #555555;
display: block;
}
div.stepbacktenbutton {
background: url(“usrsrc/arrow_stepbackten.png”) no-repeat scroll center center #555555;
display: block;
}
div.nextbutton, div.prevbutton {
width: 12px;
}
div.stepbacktenbutton, div.stepfwdtenbutton {
width: 16px;
}
div.numbered a {
color: black;
line-height: 21px;
text-align: center;
text-decoration: none;
width: 12px;
}

Блог розробника сайтів і електронних схем