X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Что то я не то затронул
Root
сообщение 2013-09-15, 10:07
Сообщение #1
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 443
Регистрация: 2012-01-16
Из: Казахстан

Репутация:   нет  
Всего: нет


Копаю оформление комментариев. Почти сделал все так как мне нравится:

Все оформление сделал в файле Comments.php, я только заменял участки кода от шаблона Uniel на свои код и добавлял если было нужно. Все важные аргументы оставлял, например в кнопке перезагружающей список комментариев, чтобы она работала оставил часть cb-lnc и у меня получился код:

<button class="btn btn-primary btn-small cb-lnc"><i class="icon-white icon-refresh"></i>Обновить комментарии</button>

На скрине видно синюю кнопочку которая работает. Так я делал и с остальными участками, но где то видать накосячил.. Суть в нескольких проблемах.

1. Когда обновляю комментарии то не убирается информационное сообщение



2. Когда нажимаю на Быстрая цитата, Ответить или Править то кнопки исчезают, как бы должна появится форма редактирования комментария к примеру но ее нет. Может я что пропустил в коде? Работает только кнопка удаления комментария:


Кто хорошо знает код можете глянуть файл? http://pastebin.com/f4UjL3hy
Может я где то что то пропустил или еще что. Хотя удалял вроде только участки шаблона Uniel, которые не связаны с кодом а только задают оформление..
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2013-09-15, 18:43
Сообщение #2
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Попытаюсь объяснить.

Есть общий контейнер #comments, который содержит:
  • Контейнер .comments в котором содержатся контейнеры .comment, каждый из которых представляет собой отдельный комментарий. Именно .comment удаляется при удалении комментария;
  • .moderate, в котором располагаются модераторские инструменты (селект и общий чекбокс);
  • .nocomments - сообщение о том, что комментариев нет;
  • .paginator - листалка страниц;
  • .status - статусная строка, которая показывает результаты текущих действия "Загрузка новых комментариев", "Новые комментарии загружены", "Новых комментариев нет", ошибки.

Особенность заключается в том, .status должен находится именно внутри .comments, как и остальные контейнеры. Но свой js я немного невнимательно написал, поэтому получается такой глюк. Исправьте у себя в верстке, если это возможно. Если нет - подождите чуть, я исправлю свой JS, в котором можно будет указать точное местонахождение контейнеров. Это ответ на первый вопрос.

Что касается второго, то контейнер .comment должен содержать в себе такие элементы:
  • .text - текст поста;
  • .signature - подпись пользователя в посте;
  • .buttons - кнопки управления постом.

Соответственно добавьте недостающие классы в вашу верстку. :)
Перейти в начало страницы
+Цитировать сообщение
Root
сообщение 2013-09-16, 19:36
Сообщение #3
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 443
Регистрация: 2012-01-16
Из: Казахстан

Репутация:   нет  
Всего: нет


Со вторым разобрался. С первым, немного не ясно..
Если я правильно понял, то контейнер этот находится тут?

Eleanor::LoadOptions('user-profile');
		return Eleanor::$Template->Title(static::$lang['vc']).'<div id="comments">'
			.($rights['status'] ? '<div class="moderate"'.($pagpq[0] ? '>'.static::CommentsModerate($rights) : ' style="display:none">').'</div>' : '')
			.($pagpq[3] ? '<div class="parent">'.static::CommentsPost($rights,$pagpq[3]['id'],$pagpq[3],true,$pagpq[1],$pagpq[2],$pagpq[4],static::$lang).'</div>' : '')
			.'<div class="nocomments"'.($pagpq[0] ? ' style="display:none">' : '>'.Eleanor::$Template->Message($pagpq[3] ? static::$lang['anc'] : static::$lang['nc'],'info')).'</div>'
			.'<div class="comments'.($pagpq[3] ? ' children' : '').'"'.($pagpq[0] ? '>'.static::CommentsPosts($rights,$pagpq,static::$lang) : ' style="display:none">').'</div>'
			.'<div class="paginator"'.($pager ? '>'.$pager : ' style="display:none">').'</div>
			<div class="status" id="commentsinfo"></div><div style="text-align:center;margin-bottom:15px"><a href="#" class="link-button cb-lnc" style="width:250px"><b>'.static::$lang['lnp'].'</b></a></div>'
			.$editor.'</div><script type="text/javascript">/*<![CDATA[*/var C;$(function(){C=new CORE.Comments('.Eleanor::JsVars(array(
				'lastpost'=>time(),
				'postquery'=>$postquery,
				'!dataquery'=>'["'.join('","',$dataquery).'"]',
				'nextn'=>$statuses[1]+$statuses[0],
				'reverse'=>$reverse,
				'page'=>$page,
				'pages'=>$pages,
				'baseurl'=>$links['first_page'],
				'parent'=>$pagpq[3] ? (int)$pagpq[3]['id'] : 0,
			),false,true,'').')})//]]></script>';
	} 


И вот этот код:
Цитата
<div class="status" id="commentsinfo"></div>

Должен находится внутри этого:
.'<div id="comments">'

И тогда сообщение будет работать нормально. Я так понял, или как всегда совсем не в ту сторону?) Если все верно понял, то у меня все правильно. Я ведь не удалял и не перемещал эти классы, просто добавил необходимые для оформления.
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2013-09-16, 20:16
Сообщение #4
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Root, да. Один должен находится непосредственно внутри другого, то есть:
#comments > .status
Перейти в начало страницы
+Цитировать сообщение
Root
сообщение 2013-09-27, 21:18
Сообщение #5
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 443
Регистрация: 2012-01-16
Из: Казахстан

Репутация:   нет  
Всего: нет


Цитата (Alexander @ 2024-03-28 22:39)
Если нет - подождите чуть, я исправлю свой JS, в котором можно будет указать точное местонахождение контейнеров.

А мне сейчас в коде нельзя что то поменять чтобы .status работал находясь вне класса "comments" ?
Я попробовал по разному, сообщение работает нормально только когда назодится прямо после класса, т.е <div id="comments"> и тут сразу <div class="status" id="commentsinfo"></div>
И получается немного некрасиво. Точнее не уместно тут это сообщение:

А нельзя ли как то.. может с помощью js объявить непосредственно внутри класса comments а сам див вывести где мне нужно?

Добавлено через 6 минут, 10 секунд:

Я сейчас внимательно рассмотрел и понял, получается что между <div id="comments"> и <div class="status" id="commentsinfo"></div> не должно быть других дивов?
Просто у меня весь код находится внутри дива comments и по логике класс status должен работать. Но он работает только когда идет следом за comments как я уже выше написал..

Сообщение отредактировал Root - 2013-09-27, 21:25
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0338 сек.    12 запросов    GZIP включен    Сейчас: 2024-03-28, 22:39