diff --git a/classes/actions/ActionBlog.class.php b/classes/actions/ActionBlog.class.php index c56fc389..e472e960 100644 --- a/classes/actions/ActionBlog.class.php +++ b/classes/actions/ActionBlog.class.php @@ -118,12 +118,12 @@ class ActionBlog extends Action { * */ protected function RegisterEvent() { - $this->AddEventPreg('/^good$/i','/^(page(\d+))?$/i','EventTopics'); - $this->AddEvent('good','EventTopics'); - $this->AddEventPreg('/^bad$/i','/^(page(\d+))?$/i','EventTopics'); - $this->AddEventPreg('/^new$/i','/^(page(\d+))?$/i','EventTopics'); - $this->AddEventPreg('/^discussed$/i','/^(page(\d+))?$/i','EventTopics'); - $this->AddEventPreg('/^top$/i','/^(page(\d+))?$/i','EventTopics'); + $this->AddEventPreg('/^good$/i','/^(page(\d+))?$/i',array('EventTopics','topics')); + $this->AddEvent('good',array('EventTopics','topics')); + $this->AddEventPreg('/^bad$/i','/^(page(\d+))?$/i',array('EventTopics','topics')); + $this->AddEventPreg('/^new$/i','/^(page(\d+))?$/i',array('EventTopics','topics')); + $this->AddEventPreg('/^discussed$/i','/^(page(\d+))?$/i',array('EventTopics','topics')); + $this->AddEventPreg('/^top$/i','/^(page(\d+))?$/i',array('EventTopics','topics')); $this->AddEvent('add','EventAddBlog'); $this->AddEvent('edit','EventEditBlog'); @@ -138,14 +138,14 @@ class ActionBlog extends Action { $this->AddEvent('ajaxbloginfo', 'AjaxBlogInfo'); $this->AddEvent('ajaxblogjoin', 'AjaxBlogJoin'); - $this->AddEventPreg('/^(\d+)\.html$/i','/^$/i','EventShowTopic'); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic'); + $this->AddEventPreg('/^(\d+)\.html$/i','/^$/i',array('EventShowTopic','topic')); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i',array('EventShowTopic','topic')); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^(page(\d+))?$/i','EventShowBlog'); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^bad$/i','/^(page(\d+))?$/i','EventShowBlog'); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^new$/i','/^(page(\d+))?$/i','EventShowBlog'); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^discussed$/i','/^(page(\d+))?$/i','EventShowBlog'); - $this->AddEventPreg('/^[\w\-\_]+$/i','/^top$/i','/^(page(\d+))?$/i','EventShowBlog'); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^(page(\d+))?$/i',array('EventShowBlog','blog')); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^bad$/i','/^(page(\d+))?$/i',array('EventShowBlog','blog')); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^new$/i','/^(page(\d+))?$/i',array('EventShowBlog','blog')); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^discussed$/i','/^(page(\d+))?$/i',array('EventShowBlog','blog')); + $this->AddEventPreg('/^[\w\-\_]+$/i','/^top$/i','/^(page(\d+))?$/i',array('EventShowBlog','blog')); $this->AddEventPreg('/^[\w\-\_]+$/i','/^users$/i','/^(page(\d+))?$/i','EventShowUsers'); } diff --git a/config/config.php b/config/config.php index 5646c589..5c71a43a 100644 --- a/config/config.php +++ b/config/config.php @@ -395,16 +395,8 @@ $config['router']['config']['action_not_found'] = 'error'; * Настройки вывода блоков */ $config['block']['rule_index_blog'] = array( - 'path' => array( - '___path.root.web___/blog$', - '___path.root.web___/blog/*$', - '___path.root.web___/blog/*/page\d+$', - '___path.root.web___/blog/*/*\.html$', - '___path.root.web___/blog/*\.html$', - '___path.root.web___/top(|(/.+))$', - ), 'action' => array( - 'index', 'new' + 'index', 'blog' => array('{topics}','{topic}','{blog}') ), 'blocks' => array( 'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1)) diff --git a/engine/classes/Action.class.php b/engine/classes/Action.class.php index 38c1e06e..4ebcbe16 100644 --- a/engine/classes/Action.class.php +++ b/engine/classes/Action.class.php @@ -71,6 +71,13 @@ abstract class Action extends LsObject { * @var string|null */ protected $sCurrentEvent=null; + /** + * Имя текущий евента + * Позволяет именовать экшены на основе регулярных выражений + * + * @var string|null + */ + protected $sCurrentEventName=null; /** * Текущий экшен * @@ -113,7 +120,17 @@ abstract class Action extends LsObject { throw new Exception("Incorrect number of arguments when adding events"); } $aEvent=array(); - $aEvent['method']=func_get_arg($iCountArgs-1); + /** + * Последний параметр может быть массивом - содержать имя метода и имя евента(именованный евент) + * Если указан только метод, то имя будет равным названию метода + */ + $aNames=(array)func_get_arg($iCountArgs-1); + $aEvent['method']=$aNames[0]; + if (isset($aNames[1])) { + $aEvent['name']=$aNames[1]; + } else { + $aEvent['name']=$aEvent['method']; + } if (!method_exists($this,$aEvent['method'])) { throw new Exception("Method of the event not found: ".$aEvent['method']); } @@ -148,6 +165,7 @@ abstract class Action extends LsObject { continue 2; } } + $this->sCurrentEventName=$aEvent['name']; $sCmd='$result=$this->'.$aEvent['method'].'();'; $this->Hook_Run("action_event_".strtolower($this->sCurrentAction)."_before",array('event'=>$this->sCurrentEvent,'params'=>$this->GetParams())); eval($sCmd); @@ -306,6 +324,15 @@ abstract class Action extends LsObject { return Router::GetActionClass(); } + /** + * Возвращает имя евента + * + * @return null|string + */ + public function GetCurrentEventName() { + return $this->sCurrentEventName; + } + /** * Вызывается в том случаи если не найден евент который запросили через URL * По дефолту происходит перекидывание на страницу ошибки, это можно переопределить в наследнике diff --git a/engine/classes/Router.class.php b/engine/classes/Router.class.php index 27abf34e..f29b1bf4 100644 --- a/engine/classes/Router.class.php +++ b/engine/classes/Router.class.php @@ -44,6 +44,12 @@ class Router extends LsObject { * @var string|null */ static protected $sActionEvent=null; + /** + * Имя текущего евента + * + * @var string|null + */ + static protected $sActionEventName=null; /** * Класс текущего экшена * @@ -272,6 +278,7 @@ class Router extends LsObject { $iTimeId=$oProfiler->Start('ExecAction',self::$sAction); $res=$this->oAction->ExecEvent(); + self::$sActionEventName=$this->oAction->GetCurrentEventName(); $this->Hook_Run("action_shutdown_".strtolower($sActionClass)."_before"); $this->oAction->EventShutdown(); @@ -344,6 +351,14 @@ class Router extends LsObject { static public function GetActionEvent() { return self::$sActionEvent; } + /** + * Возвращает имя текущего евента + * + * @return string + */ + static public function GetActionEventName() { + return self::$sActionEventName; + } /** * Возвращает класс текущего экшена * @@ -455,7 +470,7 @@ class Router extends LsObject { * @param string $sPage * @return string */ - protected function Rewrite($sPage) { + public function Rewrite($sPage) { return (isset($this->aConfigRoute['rewrite'][$sPage])) ? $this->aConfigRoute['rewrite'][$sPage] : $sPage; @@ -470,7 +485,7 @@ class Router extends LsObject { * @param string $sPage * @return string */ - protected function Standart($sPage) { + public function Standart($sPage) { $aRewrite=array_flip($this->aConfigRoute['rewrite']); return (isset($aRewrite[$sPage])) ? $aRewrite[$sPage] diff --git a/engine/modules/viewer/Viewer.class.php b/engine/modules/viewer/Viewer.class.php index bfad15a1..37111c70 100644 --- a/engine/modules/viewer/Viewer.class.php +++ b/engine/modules/viewer/Viewer.class.php @@ -208,14 +208,6 @@ class ModuleViewer extends Module { $this->oSmarty->setCompileDir($sCompilePath); $this->oSmarty->setCacheDir(Config::Get('path.smarty.cache')); $this->oSmarty->setPluginsDir(array_merge(array(Config::Get('path.smarty.plug'),'plugins'),$this->oSmarty->getPluginsDir())); - /** - * Получаем настройки блоков из конфигов - */ - $this->InitBlockParams(); - /** - * Добавляем блоки по предзагруженным правилам из конфигов - */ - $this->BuildBlocks(); /** * Получаем настройки JS, CSS файлов */ @@ -582,7 +574,8 @@ class ModuleViewer extends Module { */ protected function BuildBlocks() { $sAction = strtolower(Router::GetAction()); - $sEvent = strtolower(Router::GetActionEvent()); + $sEvent = strtolower(Router::GetActionEvent()); + $sEventName = strtolower(Router::GetActionEventName()); foreach($this->aBlockRules as $sName=>$aRule) { $bUse=false; /** @@ -603,16 +596,24 @@ class ModuleViewer extends Module { * переходи к следующему действию. */ foreach ((array)$aRule['action'][$sAction] as $sEventPreg) { - if(substr($sEventPreg,0,1)!='/') { + if(substr($sEventPreg,0,1)=='/') { /** - * значит это название event`a - */ - if($sEvent==$sEventPreg) { $bUse=true; break; } - } else { - /** - * это регулярное выражение + * Это регулярное выражение */ if(preg_match($sEventPreg,$sEvent)) { $bUse=true; break; } + } elseif (substr($sEventPreg,0,1)=='{') { + /** + * Это имя event'a (именованный евент, если его нет, то совпадает с именем метода евента в экшене) + */ + if(trim($sEventPreg,'{}')==$sEventName) { + $bUse=true; + break; + } + } else { + /** + * Это название event`a + */ + if($sEvent==$sEventPreg) { $bUse=true; break; } } } } @@ -1343,7 +1344,16 @@ class ModuleViewer extends Module { * Загружаем переменные в шаблон при завершении модуля * */ - public function Shutdown() { + public function Shutdown() { + /** + * Получаем настройки блоков из конфигов + */ + $this->InitBlockParams(); + /** + * Добавляем блоки по предзагруженным правилам из конфигов + */ + $this->BuildBlocks(); + $this->SortBlocks(); /** * Добавляем JS и CSS по предписанным правилам diff --git a/templates/skin/developer-jquery/css/base.css b/templates/skin/developer-jquery/css/base.css index 95831c9a..f41f99c4 100644 --- a/templates/skin/developer-jquery/css/base.css +++ b/templates/skin/developer-jquery/css/base.css @@ -1 +1,43 @@ -/* Глобальные стили -------------------------------------- */ body { font-size: 13px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 18px; color: #333; background-color: #f7f7f7; } /* Ссылки -------------------------------------- */ a { color: #5055b2; text-decoration: none; } a:hover { color: #06e; } a.link-dashed { border-bottom: 1px dashed #5055b2; } a.link-dashed:hover { border-color: #06e; } a.link-dotted { text-decoration: none; border-bottom: 1px dotted #5055b2; } a.link-dotted:hover { border-color: #06e; } /* Заголовки -------------------------------------- */ h2.page-header { color: #333; font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 20px; } h2.page-header span { color: #aaa; } h2.header-table { margin-bottom: 0; border-bottom: 1px solid #eee; padding-bottom: 5px; font-size: 14px; font-weight: bold; } /* Шапка сайта -------------------------------------- */ #header a { text-decoration: none; color: #333; } #header .site-name { margin: 0 0 10px; font-size: 54px; line-height: 1em; font-weight: bold; } #header .site-name a:hover { color: #444AA3; } #header .site-description { width: 500px; color: #777; font-size: 15px; } /* Футер -------------------------------------- */ #footer .copyright { float: right; } \ No newline at end of file +/* Глобальные стили +-------------------------------------- */ +body { + font-size: 13px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + line-height: 18px; + color: #333; + background-color: #f7f7f7; +} + + +/* Ссылки +-------------------------------------- */ +a { color: #5055b2; text-decoration: none; } +a:hover { color: #06e; } + +a.link-dashed { border-bottom: 1px dashed #5055b2; } +a.link-dashed:hover { border-color: #06e; } + +a.link-dotted { text-decoration: none; border-bottom: 1px dotted #5055b2; } +a.link-dotted:hover { border-color: #06e; } + + +/* Заголовки +-------------------------------------- */ +h2.page-header { color: #333; font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 20px; } +h2.page-header span { color: #aaa; } + +h2.header-table { margin-bottom: 0; border-bottom: 1px solid #eee; padding-bottom: 5px; font-size: 14px; font-weight: bold; } + + +/* Шапка сайта +-------------------------------------- */ +#header a { text-decoration: none; color: #333; } + +#header .site-name { margin: 0 0 10px; font-size: 54px; line-height: 1em; font-weight: bold; } +#header .site-name a:hover { color: #444AA3; } +#header .site-description { width: 500px; color: #777; font-size: 15px; } + + +/* Футер +-------------------------------------- */ +#footer .copyright { float: right; } \ No newline at end of file diff --git a/templates/skin/developer-jquery/css/blocks.css b/templates/skin/developer-jquery/css/blocks.css index f85fd6c4..de4d2e44 100644 --- a/templates/skin/developer-jquery/css/blocks.css +++ b/templates/skin/developer-jquery/css/blocks.css @@ -1,57 +1,57 @@ -/* ------------------------------------------------------------------- - БЛОКИ -------------------------------------------------------------------- */ - -.block { background: #fafafa; margin-bottom: 30px; border-radius: 3px; } -.block:last-child { margin-bottom: 0; } -.sidebar-left .block { margin-bottom: 10px; } - -.block .block-header { padding: 13px 20px; background: #f5f5f5; border-top: 1px solid #eee; position: relative; } -.block .block-header h3 { font-size: 16px; line-height: 1em; font-weight: normal; } -.block .block-header h3 a { text-decoration: none; color: #333; } -.block .block-header h3 a.link-dotted { color: #5055B2; } -.block .block-content { padding: 20px; } -.block footer { margin-top: 15px; font-size: 12px; } - -.block .max-height-200 { overflow: auto; max-height: 200px; _height: expression( this.scrollHeight > 200 ? "200px" : "auto" ); position: relative; } - - -/* Block Type - Stream */ -.block.block-type-stream .stream-update { position: absolute; top: 13px; right: 15px; width: 16px; height: 16px; background: url(../images/update.gif) no-repeat; cursor: pointer; } -.block.block-type-stream .stream-update.active { background-position: -16px 0; } - - -/* Block Type - Activity Settings */ -.block.block-type-activity p { margin-bottom: 15px; } -.block.block-type-activity ul li { margin-bottom: 5px; } -.block.block-type-activity .note { display: block; margin-bottom: 15px; color: #aaa; } - - -/* Block Type - Profile */ -.block.block-type-profile { background: none; border: none; padding: 0; } -.block.block-type-profile .profile-photo-wrapper { position: relative; min-height: 50px; } -.block.block-type-profile .profile-photo { vertical-align: top; } -.block.block-type-profile .status { position: absolute; top: 5px; left: 5px; padding: 0 5px; border-radius: 2px; font-size: 11px; } -.block.block-type-profile .status.status-online { background: #B7BC1C; color: #fff; } -.block.block-type-profile .status.status-offline { background: #333; color: #fff; opacity: .5; filter: alpha(opacity=50); } -.block.block-type-profile .upload-photo { padding: 7px 10px 10px; background: #f7f7f7; } - -.block.block-type-profile-note { background: #F1F7AF; border: 1px solid #E1EA83; padding: 15px; } -.block.block-type-profile-note p { margin-bottom: 10px; } -.block.block-type-profile-note .actions { margin-bottom: 0; } - -.block.block-type-profile-nav { padding: 0; background: none; } - -.block.block-type-profile-actions .block-content { padding: 10px 15px; } -.block.block-type-profile-actions ul li { margin-bottom: 5px; } -.block.block-type-profile-actions ul li:last-child { margin-bottom: 0; } -.block.block-type-profile-actions ul li a.followed { color: #f00; } - - -/* Block Type - Foldable */ -.block.block-type-foldable { background: none; } -.block.block-type-foldable .block-header { background: none; border: none; padding: 0 0 10px; } -.block.block-type-foldable .block-content { display: none; background: #fafafa; } - -.block.block-type-talk-search { margin-bottom: 10px; } +/* ------------------------------------------------------------------- + БЛОКИ +------------------------------------------------------------------- */ + +.block { background: #fafafa; margin-bottom: 30px; border-radius: 3px; } +.block:last-child { margin-bottom: 0; } +.sidebar-left .block { margin-bottom: 10px; } + +.block .block-header { padding: 13px 20px; background: #f5f5f5; border-top: 1px solid #eee; position: relative; } +.block .block-header h3 { font-size: 16px; line-height: 1em; font-weight: normal; } +.block .block-header h3 a { text-decoration: none; color: #333; } +.block .block-header h3 a.link-dotted { color: #5055B2; } +.block .block-content { padding: 20px; } +.block footer { margin-top: 15px; font-size: 12px; } + +.block .max-height-200 { overflow: auto; max-height: 200px; _height: expression( this.scrollHeight > 200 ? "200px" : "auto" ); position: relative; } + + +/* Block Type - Stream */ +.block.block-type-stream .stream-update { position: absolute; top: 13px; right: 15px; width: 16px; height: 16px; background: url(../images/update.gif) no-repeat; cursor: pointer; } +.block.block-type-stream .stream-update.active { background-position: -16px 0; } + + +/* Block Type - Activity Settings */ +.block.block-type-activity p { margin-bottom: 15px; } +.block.block-type-activity ul li { margin-bottom: 5px; } +.block.block-type-activity .note { display: block; margin-bottom: 15px; color: #aaa; } + + +/* Block Type - Profile */ +.block.block-type-profile { background: none; border: none; padding: 0; } +.block.block-type-profile .profile-photo-wrapper { position: relative; min-height: 50px; } +.block.block-type-profile .profile-photo { vertical-align: top; } +.block.block-type-profile .status { position: absolute; top: 5px; left: 5px; padding: 0 5px; border-radius: 2px; font-size: 11px; } +.block.block-type-profile .status.status-online { background: #B7BC1C; color: #fff; } +.block.block-type-profile .status.status-offline { background: #333; color: #fff; opacity: .5; filter: alpha(opacity=50); } +.block.block-type-profile .upload-photo { padding: 7px 10px 10px; background: #f7f7f7; } + +.block.block-type-profile-note { background: #F1F7AF; border: 1px solid #E1EA83; padding: 15px; } +.block.block-type-profile-note p { margin-bottom: 10px; } +.block.block-type-profile-note .actions { margin-bottom: 0; } + +.block.block-type-profile-nav { padding: 0; background: none; } + +.block.block-type-profile-actions .block-content { padding: 10px 15px; } +.block.block-type-profile-actions ul li { margin-bottom: 5px; } +.block.block-type-profile-actions ul li:last-child { margin-bottom: 0; } +.block.block-type-profile-actions ul li a.followed { color: #f00; } + + +/* Block Type - Foldable */ +.block.block-type-foldable { background: none; } +.block.block-type-foldable .block-header { background: none; border: none; padding: 0 0 10px; } +.block.block-type-foldable .block-content { display: none; background: #fafafa; } + +.block.block-type-talk-search { margin-bottom: 10px; } .block.block-type-talk-friends { margin-bottom: 10px; } \ No newline at end of file diff --git a/templates/skin/developer-jquery/css/comments.css b/templates/skin/developer-jquery/css/comments.css index d4a340db..f440911e 100644 --- a/templates/skin/developer-jquery/css/comments.css +++ b/templates/skin/developer-jquery/css/comments.css @@ -1,76 +1,76 @@ -/* -------------------------------------------- - Стили комментариев --------------------------------------------- */ - -/* Блок с комментариями */ -.comments-header { margin-bottom: 20px; } -.comments-header h3 { font-size: 24px; margin-bottom: 5px; } - -.comments { margin-bottom: 30px; } - -.comment-wrapper { position: relative; } -.comment-wrapper .comment-wrapper { padding-left: 25px; } - -.comment-preview { padding: 5px 10px 6px; margin-bottom: 10px; background: #fafafa; border: 1px solid #eee; border-radius: 3px; } -.comment-preview { font-size: 13px; line-height: 18px; } - - -/* Стили для списка комментариев на странице http://ваш_сайт/comments/ */ -.comments.comment-list .comment { margin-bottom: 15px; } -.comments.comment-list .comment-path { background: #eee; padding: 5px 10px 6px; border-top: 1px solid #ddd; } -.comments.comment-list .comment-path .blog-name { color: #777; } - - -/* Комментарий */ -.comment { min-height: 48px; margin-bottom: 10px; padding: 10px 10px 10px 68px; position: relative; } -.comment .deleted { padding: 5px 10px; color: #777; background: #f4f4f4; } -.comment .comment-avatar { position: absolute; top: 10px; left: 10px; } - - -/* Типы комментариев - * - * deleted - удаленный комментарий - * self - ваш комментарий - * new - новый, непрочитанный комментарий - * current - активный комментарий, который выделяется при исползование кнопки обновления в тулбаре - * - */ -.comment { background: #f7f7f7; } -.comment.comment-deleted { background: #efd5d5; } -.comment.comment-self { background: #c5f7ea; } -.comment.comment-new { background: #fbfba8; } -.comment.comment-current { background: #a5e7fa; } -.comment.comment-bad { opacity: 0.3; filter: alpha(opacity=30); } -.comment.comment-bad:hover { opacity: 1; filter: alpha(opacity=100); } - -.ls-user-role-not-admin .comment.comment-deleted { padding: 10px 15px; min-height: 0; background: #f7f7f7; color: #888; } - - -/* Info Block */ -.comment .comment-info { padding: 0 70px 7px 0; line-height: 12px; position: relative; top: -2px; overflow: hidden; zoom: 1; } -.comment .comment-info li { float: left; height: 18px; padding-top: 3px; margin-right: 10px; } -.comment .comment-info li a { text-decoration: none; } -.comment .comment-info li.comment-author a { font-weight: bold; } -.comment .comment-info li.comment-author .comment-topic-author { background: #C9A518; color: #fff; font-size: 11px; border-radius: 3px; padding: 1px 7px; margin-right: 5px; } -.comment .comment-info li.comment-date a { color: #999; border-color: #999; } -.comment .comment-info li.vote { position: absolute; top: 0; right: 0; margin: 0; } -.comment .comment-info li.goto-comment-child { display: none; } - - -/* Content */ -.comment .comment-content { margin-bottom: 10px; } -.comment .comment-content.text { font-size: 13px; } -.comment .comment-content.text blockquote { background: #fff; border-color: #ccc; padding: 5px 10px; margin-bottom: 5px; } - - -/* Actions */ -.comment .comment-actions { } -.comment .comment-actions li { display: inline; margin-right: 10px; } - - -/* Форма комментирования */ -.reply-header { font-size: 20px; line-height: 1.3em; margin-bottom: 15px; } - -.reply { padding-bottom: 10px; } -.reply textarea { height: 100px; } +/* -------------------------------------------- + Стили комментариев +-------------------------------------------- */ + +/* Блок с комментариями */ +.comments-header { margin-bottom: 20px; } +.comments-header h3 { font-size: 24px; margin-bottom: 5px; } + +.comments { margin-bottom: 30px; } + +.comment-wrapper { position: relative; } +.comment-wrapper .comment-wrapper { padding-left: 25px; } + +.comment-preview { padding: 5px 10px 6px; margin-bottom: 10px; background: #fafafa; border: 1px solid #eee; border-radius: 3px; } +.comment-preview { font-size: 13px; line-height: 18px; } + + +/* Стили для списка комментариев на странице http://ваш_сайт/comments/ */ +.comments.comment-list .comment { margin-bottom: 15px; } +.comments.comment-list .comment-path { background: #eee; padding: 5px 10px 6px; border-top: 1px solid #ddd; } +.comments.comment-list .comment-path .blog-name { color: #777; } + + +/* Комментарий */ +.comment { min-height: 48px; margin-bottom: 10px; padding: 10px 10px 10px 68px; position: relative; } +.comment .deleted { padding: 5px 10px; color: #777; background: #f4f4f4; } +.comment .comment-avatar { position: absolute; top: 10px; left: 10px; } + + +/* Типы комментариев + * + * deleted - удаленный комментарий + * self - ваш комментарий + * new - новый, непрочитанный комментарий + * current - активный комментарий, который выделяется при исползование кнопки обновления в тулбаре + * + */ +.comment { background: #f7f7f7; } +.comment.comment-deleted { background: #efd5d5; } +.comment.comment-self { background: #c5f7ea; } +.comment.comment-new { background: #fbfba8; } +.comment.comment-current { background: #a5e7fa; } +.comment.comment-bad { opacity: 0.3; filter: alpha(opacity=30); } +.comment.comment-bad:hover { opacity: 1; filter: alpha(opacity=100); } + +.ls-user-role-not-admin .comment.comment-deleted { padding: 10px 15px; min-height: 0; background: #f7f7f7; color: #888; } + + +/* Info Block */ +.comment .comment-info { padding: 0 70px 7px 0; line-height: 12px; position: relative; top: -2px; overflow: hidden; zoom: 1; } +.comment .comment-info li { float: left; height: 18px; padding-top: 3px; margin-right: 10px; } +.comment .comment-info li a { text-decoration: none; } +.comment .comment-info li.comment-author a { font-weight: bold; } +.comment .comment-info li.comment-author .comment-topic-author { background: #C9A518; color: #fff; font-size: 11px; border-radius: 3px; padding: 1px 7px; margin-right: 5px; } +.comment .comment-info li.comment-date a { color: #999; border-color: #999; } +.comment .comment-info li.vote { position: absolute; top: 0; right: 0; margin: 0; } +.comment .comment-info li.goto-comment-child { display: none; } + + +/* Content */ +.comment .comment-content { margin-bottom: 10px; } +.comment .comment-content.text { font-size: 13px; } +.comment .comment-content.text blockquote { background: #fff; border-color: #ccc; padding: 5px 10px; margin-bottom: 5px; } + + +/* Actions */ +.comment .comment-actions { } +.comment .comment-actions li { display: inline; margin-right: 10px; } + + +/* Форма комментирования */ +.reply-header { font-size: 20px; line-height: 1.3em; margin-bottom: 15px; } + +.reply { padding-bottom: 10px; } +.reply textarea { height: 100px; } .reply textarea.loader { background: #f7f7f7 url(../images/loader.gif) no-repeat center;} \ No newline at end of file diff --git a/templates/skin/developer-jquery/css/forms.css b/templates/skin/developer-jquery/css/forms.css index 3e47aaa9..e61e6d7b 100644 --- a/templates/skin/developer-jquery/css/forms.css +++ b/templates/skin/developer-jquery/css/forms.css @@ -1,54 +1,54 @@ -.input-text { - width: 150px; - padding: 5px; - border: 1px solid #ddd; - box-shadow: 0 2px 4px rgba(0,0,0,.07) inset; - border-radius: 3px; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.input-text:focus { border-color: #4D90FE; box-shadow: 0 2px 4px rgba(0,0,0,.07) inset, 0 0 3px #4D90FE; } -.input-checkbox { position: relative; top: 1px; margin: 0 2px 0 1px; } - -.input-width-full { width: 100%; } -.input-width-50 { width: 50px; } -.input-width-100 { width: 100px; } -.input-width-150 { width: 150px; } -.input-width-200 { width: 200px; } -.input-width-250 { width: 250px; } -.input-width-300 { width: 300px; } -.input-width-400 { width: 400px; } -.input-width-500 { width: 500px; } - -.poll-create { padding: 15px 20px; margin-bottom: 20px; background: #f7f7f7; } -.question-list { margin-bottom: 15px; } -.question-list li { margin-bottom: 5px; } -.question-list li .input-text { margin-right: 10px; } - -select { padding: 4px; border: 1px solid #ddd; border-radius: 3px; } - -fieldset { margin-bottom: 30px; padding-top: 20px; border-top: 1px solid #eaeaea; } -fieldset legend { color: #000; font-size: 18px; padding-right: 10px; } - -input:-moz-placeholder { color: #aaa; } - -form p { margin-bottom: 20px; } -form label { display: block; margin-bottom: 3px; } -form .icon-question-sign { cursor: help; } - -.note { display: block; margin-top: 3px; font-size: 12px; color: #aaa; } -.note.note-header { margin-bottom: 20px; } - -.validate-error-hide { display: none; } -.validate-error-show { display: block; } - -.captcha-image { vertical-align: top; } - -dl.form-item { overflow: hidden; zoom: 1; margin-bottom: 20px; } -dl.form-item dt { float: left; width: 135px; padding-top: 4px; padding-right: 15px; overflow: hidden; } -dl.form-item dd { float: left; width: 300px; } - -.form-profile { position: relative; } -.form-profile .avatar-change { position: absolute; top: 40px; right: 0; padding: 10px; background: #f7f7f7; font-size: 11px; } - +.input-text { + width: 150px; + padding: 5px; + border: 1px solid #ddd; + box-shadow: 0 2px 4px rgba(0,0,0,.07) inset; + border-radius: 3px; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.input-text:focus { border-color: #4D90FE; box-shadow: 0 2px 4px rgba(0,0,0,.07) inset, 0 0 3px #4D90FE; } +.input-checkbox { position: relative; top: 1px; margin: 0 2px 0 1px; } + +.input-width-full { width: 100%; } +.input-width-50 { width: 50px; } +.input-width-100 { width: 100px; } +.input-width-150 { width: 150px; } +.input-width-200 { width: 200px; } +.input-width-250 { width: 250px; } +.input-width-300 { width: 300px; } +.input-width-400 { width: 400px; } +.input-width-500 { width: 500px; } + +.poll-create { padding: 15px 20px; margin-bottom: 20px; background: #f7f7f7; } +.question-list { margin-bottom: 15px; } +.question-list li { margin-bottom: 5px; } +.question-list li .input-text { margin-right: 10px; } + +select { padding: 4px; border: 1px solid #ddd; border-radius: 3px; } + +fieldset { margin-bottom: 30px; padding-top: 20px; border-top: 1px solid #eaeaea; } +fieldset legend { color: #000; font-size: 18px; padding-right: 10px; } + +input:-moz-placeholder { color: #aaa; } + +form p { margin-bottom: 20px; } +form label { display: block; margin-bottom: 3px; } +form .icon-question-sign { cursor: help; } + +.note { display: block; margin-top: 3px; font-size: 12px; color: #aaa; } +.note.note-header { margin-bottom: 20px; } + +.validate-error-hide { display: none; } +.validate-error-show { display: block; } + +.captcha-image { vertical-align: top; } + +dl.form-item { overflow: hidden; zoom: 1; margin-bottom: 20px; } +dl.form-item dt { float: left; width: 135px; padding-top: 4px; padding-right: 15px; overflow: hidden; } +dl.form-item dd { float: left; width: 300px; } + +.form-profile { position: relative; } +.form-profile .avatar-change { position: absolute; top: 40px; right: 0; padding: 10px; background: #f7f7f7; font-size: 11px; } + .placeholder { color: #aaa; } \ No newline at end of file diff --git a/templates/skin/developer-jquery/css/grid.css b/templates/skin/developer-jquery/css/grid.css index 2321394f..5b112f7a 100644 --- a/templates/skin/developer-jquery/css/grid.css +++ b/templates/skin/developer-jquery/css/grid.css @@ -1,19 +1,19 @@ -/* -------------------------------------------- - СЕТКА --------------------------------------------- */ - -#container { width: 1000px; margin: 0 auto; margin-bottom: 20px; } -#header { padding: 50px 0; position: relative; } -#nav { margin-bottom: 15px; overflow: hidden; } -#wrapper { overflow: hidden; zoom: 1; padding: 30px; background: #fff; border-bottom: 1px solid #eee; box-shadow: 0 0 3px rgba(0,0,0,.1); } -#content { float: left; width: 61%; margin-right: 4%; background: #fff; position: relative; } -#sidebar { float: left; width: 35%; } -#footer { overflow: hidden; zoom: 1; margin-bottom: 20px; padding: 20px 0 50px; color: #777; } - - -#content.content-full-width { width: 100%; margin-right: 0; } - -#content.content-right { margin-right: 0; float: none; margin-left: 311px; width: auto; } -#sidebar.sidebar-left { float: left; width: 250px; padding-right: 30px; border-right: 1px solid #eee; margin-right: 30px; } - - +/* -------------------------------------------- + СЕТКА +-------------------------------------------- */ + +#container { width: 1000px; margin: 0 auto; margin-bottom: 20px; } +#header { padding: 50px 0; position: relative; } +#nav { margin-bottom: 15px; overflow: hidden; } +#wrapper { overflow: hidden; zoom: 1; padding: 30px; background: #fff; border-bottom: 1px solid #eee; box-shadow: 0 0 3px rgba(0,0,0,.1); } +#content { float: left; width: 61%; margin-right: 4%; background: #fff; position: relative; } +#sidebar { float: left; width: 35%; } +#footer { overflow: hidden; zoom: 1; margin-bottom: 20px; padding: 20px 0 50px; color: #777; } + + +#content.content-full-width { width: 100%; margin-right: 0; } + +#content.content-right { margin-right: 0; float: none; margin-left: 311px; width: auto; } +#sidebar.sidebar-left { float: left; width: 250px; padding-right: 30px; border-right: 1px solid #eee; margin-right: 30px; } + + diff --git a/templates/skin/developer-jquery/css/navs.css b/templates/skin/developer-jquery/css/navs.css index f7956a13..3e1e4071 100644 --- a/templates/skin/developer-jquery/css/navs.css +++ b/templates/skin/developer-jquery/css/navs.css @@ -23,10 +23,10 @@ background: -ms-linear-gradient(top, #2891d3 0%,#2375c6 100%); background: linear-gradient(top, #2891d3 0%,#2375c6 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2891d3', endColorstr='#2375c6',GradientType=0 ); - + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - - color: #fff; + + color: #fff; } .nav.nav-pills.nav-pills-profile { margin-bottom: 30px; } @@ -50,10 +50,10 @@ /* Userbar */ -#userbar { - border: 1px solid #ddd; - border-top: none; - +#userbar { + border: 1px solid #ddd; + border-top: none; + background: #ffffff; background: -moz-linear-gradient(top, #ffffff 0%, #f3f3f3 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f3f3f3)); @@ -61,10 +61,10 @@ background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: linear-gradient(top, #ffffff 0%,#f3f3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f3f3f3',GradientType=0 ); - + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f3f3f3',GradientType=0 ); + border-radius: 0 0 4px 4px; - box-shadow: 0 0 5px #ddd; + box-shadow: 0 0 5px #ddd; } #userbar .search { float: left; margin: 5px 0 0 6px; *margin: 4px 0 0 4px; } @@ -116,4 +116,3 @@ - diff --git a/templates/skin/developer-jquery/css/reset.css b/templates/skin/developer-jquery/css/reset.css index 33117170..18cfd3bf 100644 --- a/templates/skin/developer-jquery/css/reset.css +++ b/templates/skin/developer-jquery/css/reset.css @@ -1,480 +1,480 @@ -/*! normalize.css 2012-03-06T10:21 UTC - http://github.com/necolas/normalize.css */ - -/* ============================================================================= - HTML5 display definitions - ========================================================================== */ - -/* - * Corrects block display not defined in IE6/7/8/9 & FF3 - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section, -summary { - display: block; -} - -/* - * Corrects inline-block display not defined in IE6/7/8/9 & FF3 - */ - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -/* - * Prevents modern browsers from displaying 'audio' without controls - * Remove excess height in iOS5 devices - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/* - * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 - * Known issue: no IE6 support - */ - -[hidden] { - display: none; -} - - -/* ============================================================================= - Base - ========================================================================== */ - -/* - * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units - * http://clagnut.com/blog/348/#c790 - * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom - * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ - */ - -html { - font-size: 100%; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ -} - -/* - * Addresses font-family inconsistency between 'textarea' and other form elements. - */ - -html, -button, -input, -select, -textarea { - font-family: sans-serif; -} - -/* - * Addresses margins handled incorrectly in IE6/7 - */ - -body { - margin: 0; -} - - -/* ============================================================================= - Links - ========================================================================== */ - -/* - * Addresses outline displayed oddly in Chrome - */ - -a:focus { - outline: 0; -} - -/* - * Improves readability when focused and also mouse hovered in all browsers - * people.opera.com/patrickl/experiments/keyboard/test - */ - -a:hover, -a:active { - outline: 0; -} - - -/* ============================================================================= - Typography - ========================================================================== */ - -/* - * Addresses font sizes and margins set differently in IE6/7 - * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 - */ - -h1, h2, h3, h4, h5, h6 { - font-size: 13px; - line-height: 1.6em; - font-weight: normal; - margin: 0; -} - -/* - * Addresses styling not present in IE7/8/9, S5, Chrome - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/* - * Addresses style set to 'bolder' in FF3+, S4/5, Chrome -*/ - -b, -strong { - font-weight: bold; -} - -blockquote { - margin: 1em 40px; -} - -/* - * Addresses styling not present in S5, Chrome - */ - -dfn { - font-style: italic; -} - -/* - * Addresses styling not present in IE6/7/8/9 - */ - -mark { - background: #ff0; - color: #000; -} - -/* - * Addresses margins set differently in IE6/7 - */ - -p, -pre { - margin: 0; -} - -/* - * Corrects font family set oddly in IE6, S4/5, Chrome - * en.wikipedia.org/wiki/User:Davidgothberg/Test59 - */ - -pre, -code, -kbd, -samp { - font-family: monospace, serif; - _font-family: 'courier new', monospace; -} - -/* - * Improves readability of pre-formatted text in all browsers - */ - -pre { - -} - -/* - * 1. Addresses CSS quotes not supported in IE6/7 - * 2. Addresses quote property not supported in S4 - */ - -/* 1 */ - -q { - quotes: none; -} - -/* 2 */ - -q:before, -q:after { - content: ''; - content: none; -} - -small { - font-size: 75%; -} - -/* - * Prevents sub and sup affecting line-height in all browsers - * gist.github.com/413930 - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - - -/* ============================================================================= - Lists - ========================================================================== */ - -/* - * Addresses margins set differently in IE6/7 - */ - -dl, -menu, -ol, -ul { - margin: 0 0; -} - -dd { - margin: 0 0 0 0; -} - -/* - * Addresses paddings set differently in IE6/7 - */ - -menu, -ol, -ul { - padding: 0 0 0 0; -} - -/* - * Corrects list images handled incorrectly in IE7 - */ - -ul, -ol { - list-style: none; - list-style-image: none; -} - - -/* ============================================================================= - Embedded content - ========================================================================== */ - -/* - * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 - * 2. Improves image quality when scaled in IE7 - * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ - */ - -img { - border: 0; /* 1 */ - -ms-interpolation-mode: bicubic; /* 2 */ -} - -/* - * Corrects overflow displayed oddly in IE9 - */ - -svg:not(:root) { - overflow: hidden; -} - - -/* ============================================================================= - Figures - ========================================================================== */ - -/* - * Addresses margin not present in IE6/7/8/9, S5, O11 - */ - -figure { - margin: 0; -} - - -/* ============================================================================= - Forms - ========================================================================== */ - -/* - * Corrects margin displayed oddly in IE6/7 - */ - -form { - margin: 0; -} - -/* - * Define consistent border, margin, and padding - */ - -fieldset { - border: none; - margin: 0; - padding: 0; -} - -/* - * 1. Corrects color not being inherited in IE6/7/8/9 - * 2. Corrects text not wrapping in FF3 - * 3. Corrects alignment displayed oddly in IE6/7 - */ - -legend { - border: 0; /* 1 */ - padding: 0; - white-space: normal; /* 2 */ - *margin-left: -7px; /* 3 */ -} - -/* - * 1. Corrects font size not being inherited in all browsers - * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome - * 3. Improves appearance and consistency in all browsers - */ - -button, -input, -select, -textarea { - font-size: 100%; /* 1 */ - margin: 0; /* 2 */ - vertical-align: baseline; /* 3 */ - *vertical-align: middle; /* 3 */ -} - -/* - * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet - */ - -button, -input { - line-height: normal; /* 1 */ -} - -/* - * 1. Improves usability and consistency of cursor style between image-type 'input' and others - * 2. Corrects inability to style clickable 'input' types in iOS - * 3. Removes inner spacing in IE7 without affecting normal text inputs - * Known issue: inner spacing remains in IE6 - */ - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; /* 1 */ - -webkit-appearance: button; /* 2 */ - *overflow: visible; /* 3 */ -} - -/* - * Re-set default cursor for disabled elements - */ - -button[disabled], -input[disabled] { - cursor: default; -} - -/* - * 1. Addresses box sizing set to content-box in IE8/9 - * 2. Removes excess padding in IE8/9 - * 3. Removes excess padding in IE7 - Known issue: excess padding remains in IE6 - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - *height: 13px; /* 3 */ - *width: 13px; /* 3 */ -} - -/* - * 1. Addresses appearance set to searchfield in S5, Chrome - * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/* - * Removes inner padding and search cancel button in S5, Chrome on OS X - */ - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -/* - * Removes inner padding and border in FF3+ - * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* - * 1. Removes default vertical scrollbar in IE6/7/8/9 - * 2. Improves readability and alignment in all browsers - */ - -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ -} - - -/* ============================================================================= - Tables - ========================================================================== */ - -/* - * Remove most spacing between table cells - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -frame { border: none; } +/*! normalize.css 2012-03-06T10:21 UTC - http://github.com/necolas/normalize.css */ + +/* ============================================================================= + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects block display not defined in IE6/7/8/9 & FF3 + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section, +summary { + display: block; +} + +/* + * Corrects inline-block display not defined in IE6/7/8/9 & FF3 + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* + * Prevents modern browsers from displaying 'audio' without controls + * Remove excess height in iOS5 devices + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/* + * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 + * Known issue: no IE6 support + */ + +[hidden] { + display: none; +} + + +/* ============================================================================= + Base + ========================================================================== */ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units + * http://clagnut.com/blog/348/#c790 + * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom + * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/* + * Addresses font-family inconsistency between 'textarea' and other form elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/* + * Addresses margins handled incorrectly in IE6/7 + */ + +body { + margin: 0; +} + + +/* ============================================================================= + Links + ========================================================================== */ + +/* + * Addresses outline displayed oddly in Chrome + */ + +a:focus { + outline: 0; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:hover, +a:active { + outline: 0; +} + + +/* ============================================================================= + Typography + ========================================================================== */ + +/* + * Addresses font sizes and margins set differently in IE6/7 + * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 + */ + +h1, h2, h3, h4, h5, h6 { + font-size: 13px; + line-height: 1.6em; + font-weight: normal; + margin: 0; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/* + * Addresses style set to 'bolder' in FF3+, S4/5, Chrome +*/ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/* + * Addresses styling not present in S5, Chrome + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9 + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Addresses margins set differently in IE6/7 + */ + +p, +pre { + margin: 0; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +pre, +code, +kbd, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; +} + +/* + * Improves readability of pre-formatted text in all browsers + */ + +pre { + +} + +/* + * 1. Addresses CSS quotes not supported in IE6/7 + * 2. Addresses quote property not supported in S4 + */ + +/* 1 */ + +q { + quotes: none; +} + +/* 2 */ + +q:before, +q:after { + content: ''; + content: none; +} + +small { + font-size: 75%; +} + +/* + * Prevents sub and sup affecting line-height in all browsers + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + + +/* ============================================================================= + Lists + ========================================================================== */ + +/* + * Addresses margins set differently in IE6/7 + */ + +dl, +menu, +ol, +ul { + margin: 0 0; +} + +dd { + margin: 0 0 0 0; +} + +/* + * Addresses paddings set differently in IE6/7 + */ + +menu, +ol, +ul { + padding: 0 0 0 0; +} + +/* + * Corrects list images handled incorrectly in IE7 + */ + +ul, +ol { + list-style: none; + list-style-image: none; +} + + +/* ============================================================================= + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 + * 2. Improves image quality when scaled in IE7 + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/* + * Corrects overflow displayed oddly in IE9 + */ + +svg:not(:root) { + overflow: hidden; +} + + +/* ============================================================================= + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11 + */ + +figure { + margin: 0; +} + + +/* ============================================================================= + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7 + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding + */ + +fieldset { + border: none; + margin: 0; + padding: 0; +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9 + * 2. Corrects text not wrapping in FF3 + * 3. Corrects alignment displayed oddly in IE6/7 + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/* + * 1. Corrects font size not being inherited in all browsers + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome + * 3. Improves appearance and consistency in all browsers + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/* + * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet + */ + +button, +input { + line-height: normal; /* 1 */ +} + +/* + * 1. Improves usability and consistency of cursor style between image-type 'input' and others + * 2. Corrects inability to style clickable 'input' types in iOS + * 3. Removes inner spacing in IE7 without affecting normal text inputs + * Known issue: inner spacing remains in IE6 + */ + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; /* 1 */ + -webkit-appearance: button; /* 2 */ + *overflow: visible; /* 3 */ +} + +/* + * Re-set default cursor for disabled elements + */ + +button[disabled], +input[disabled] { + cursor: default; +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9 + * 2. Removes excess padding in IE8/9 + * 3. Removes excess padding in IE7 + Known issue: excess padding remains in IE6 + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/* + * 1. Addresses appearance set to searchfield in S5, Chrome + * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/* + * Removes inner padding and search cancel button in S5, Chrome on OS X + */ + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+ + * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9 + * 2. Improves readability and alignment in all browsers + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + + +/* ============================================================================= + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +frame { border: none; } diff --git a/templates/skin/developer-jquery/css/topic.css b/templates/skin/developer-jquery/css/topic.css index 261b2716..f1ba85a0 100644 --- a/templates/skin/developer-jquery/css/topic.css +++ b/templates/skin/developer-jquery/css/topic.css @@ -1,129 +1,129 @@ -.topic { overflow: hidden; zoom: 1; margin-bottom: 50px; } -.topic:last-child { margin-bottom: 0; } - -/* Header */ -.topic .topic-header .topic-title { font-size: 26px; line-height: 1.1em; font-weight: bold; margin: 0 0 15px; } -.topic .topic-header .topic-title a { text-decoration: none; } -.topic .topic-header .topic-title i { position: relative; top: 7px; cursor: help; } -.topic .topic-header .topic-url { margin-bottom: 15px; } -.topic .topic-header .topic-url a { background: #eee; border-radius: 3px; padding: 3px 10px 4px; text-decoration: none; } -.topic .topic-header .topic-info { margin-bottom: 25px; color: #777; } -.topic .topic-header .topic-info time { margin-right: 15px; } -.topic .topic-header .topic-info .topic-blog { margin-right: 15px; } -.topic .topic-header .topic-info .actions, -.topic .topic-header .topic-info .actions li { display: inline; float: none; margin-bottom: 0; } -.topic .topic-header .topic-info .actions li { margin-right: 10px; } - -/* Content */ -.topic .topic-content { margin-bottom: 15px; } -.topic .topic-content.text { color: #333; } - -/* Tags */ -.topic .topic-footer .topic-tags { margin: 0 0 15px; } -.topic .topic-footer .topic-tags li { display: inline; color: #888; } -.topic .topic-footer .topic-tags li.topic-tags-edit { margin-left: 20px; } -.topic .topic-footer .topic-tags li.topic-tags-user a { color: #3CA023; } - -/* Info */ -.topic .topic-footer .topic-info { overflow: hidden; background: #f7f7f7; border-radius: 3px; } -.topic .topic-footer .topic-info li { float: left; height: 19px; padding: 8px 15px; border-right: 1px solid #fff; } -.topic .topic-footer .topic-info li a { text-decoration: none; } - -.topic .topic-footer .topic-info li.topic-info-author a { font-weight: bold; color: #333; } -.topic .topic-footer .topic-info li.topic-info-author a:hover { text-decoration: underline; } -.topic .topic-footer .topic-info li.topic-info-comments a { } -.topic .topic-footer .topic-info li.topic-info-comments a span { color: #777; } -.topic .topic-footer .topic-info li.topic-info-comments a:hover { text-decoration: underline; } - -/* Share */ -.topic .topic-share { display: none; padding: 3px; margin-bottom: 10px; border: 5px solid #eee; } - -/* Poll */ -.topic .poll { margin-bottom: 15px; background: #fafafa; padding: 15px; } - -.topic .poll .poll-vote { margin-bottom: 20px; margin-left: 0; list-style-type: none; } -.topic .poll .poll-vote li { margin-bottom: 10px; } -.topic .poll .poll-vote li:last-child { margin-bottom: 0; } -.topic .poll .poll-vote li label { display: inline; } -.topic .poll .poll-vote li input { position: relative; top: 1px; margin-right: 2px; } - -.topic .poll .poll-result { margin-bottom: 10px; margin-left: 0; list-style-type: none; padding: 15px 15px 0; background: #fff; border: 1px solid #eee; } -.topic .poll .poll-result li { margin-bottom: 20px; } -.topic .poll .poll-result li dl { overflow: hidden; zoom: 1; } -.topic .poll .poll-result li dl dt { float: left; width: 50px; text-align: right; padding-right: 15px; } -.topic .poll .poll-result li dl dt span { color: #aaa; } -.topic .poll .poll-result li dl dd { float: left; width: 400px; } -.topic .poll .poll-result li dl dd div { height: 10px; margin-top: 5px; background: #ccc; overflow: hidden; border-radius: 2px; } -.topic .poll .poll-result li.most dl dd div { background: #60CC4E; } - -.topic .poll .poll-total { color: #aaa; margin-left: 10px; } - -/* Topic Photo */ -.topic.topic-type-photoset { } -.topic.topic-type-photoset .topic-photo-preview { position: relative; margin-bottom: 15px; } -.topic.topic-type-photoset .topic-photo-preview img { vertical-align: top; } -.topic.topic-type-photoset .topic-photo-preview .topic-photo-count { display: none; cursor: pointer; position: absolute; top: 5px; right: 5px; background: #000; color: #6bd24b; padding: 4px 7px; background: rgba(0,0,0,.6); } -.topic.topic-type-photoset .topic-photo-preview .topic-photo-desc { display: none; width: 96%; padding: 7px 2%; position: absolute; bottom: 0; left: 0; background: #000; color: #6bd24b; color: #fff; line-height: 16px; background: rgba(0,0,0,.7); } - -.topic.topic-type-photoset .topic-photo-images { padding-top: 10px; margin-bottom: 15px; } -.topic.topic-type-photoset .topic-photo-images h2 { border-bottom: 1px solid #ddd; padding-bottom: 4px; margin-bottom: 15px; } -.topic.topic-type-photoset .topic-photo-images ul { overflow: hidden; zoom: 1; } -.topic.topic-type-photoset .topic-photo-images ul li { float: left; margin: 0 9px 9px 0; position: relative; } -.topic.topic-type-photoset .topic-photo-images ul li .image-number { display: none; position: absolute; top: 5px; right: 5px; background: #000; color: #6bd24b; padding: 1px 6px; font-size: 11px; background: rgba(0,0,0,.6); } -.topic.topic-type-photoset .topic-photo-images ul li:hover .image-number { display: block; } -.topic.topic-type-photoset .topic-photo-images ul li img { vertical-align: top; } -.topic.topic-type-photoset .topic-photo-images .topic-photo-more { display: block; border-top: 1px solid #dbe6f0; text-align: center; padding: 10px 0; margin-bottom: 15px; text-decoration: none; background: #f3f7fa; color: #7b90a5; } -.topic.topic-type-photoset .topic-photo-images .topic-photo-more:hover { background: #eaf2f8; } - -.topic-photo-upload { background: #fafafa; padding: 15px 15px 15px; margin-bottom: 20px; } -.topic-photo-upload h2 { margin-bottom: 15px; } -.topic-photo-upload ul { overflow: hidden; zoom: 1; } -.topic-photo-upload ul li { min-height: 100px; _height: 100px; margin-bottom: 10px; padding-left: 110px; position: relative; } -.topic-photo-upload ul li img { position: absolute; top: 0; left: 0; } -.topic-photo-upload ul li label { color: #aaa; } -.topic-photo-upload ul li textarea { border: 1px solid #ddd; width: 350px; height: 60px; padding: 3px; font-size: 12px; font-family: Arial, sans-serif; color: #333; } -.topic-photo-upload ul li .image-delete { text-decoration: none; margin-right: 15px; } -.topic-photo-upload ul li .image-delete:hover { color: #f00; } -.topic-photo-upload ul li.marked-as-preview .mark-as-preview { display: inline; color: #43c70f; font-weight: bold; } -.topic-photo-upload ul li .mark-as-preview { display: none; text-decoration: none; } -.topic-photo-upload ul li:hover .mark-as-preview { display: inline; } -.topic-photo-upload .topic-photo-upload-rules { color: #888; margin-bottom: 15px; } -.topic-photo-upload .topic-photo-upload-input { margin-bottom: 20px; } -.topic-photo-upload .topic-photo-upload-input input { margin-top: 3px; } - -#photoset-upload-form { - width: 270px; - padding: 15px; - position: absolute; - top:70%; - display: none; - background-color: #fff; - border: 1px solid #ccc; - -moz-box-shadow: 0 0 10px #ddd; - -webkit-box-shadow: 0 0 10px #ddd; - box-shadow: 0 0 10px #ddd; -} -#photoset-upload-form p { margin-bottom: 10px; } -#photoset-upload-form .input-text { width: 262px; border: 1px solid #ccc; margin: 0; padding: 3px; font-family: Arial, sans-serif; font-size: 12px; } - - -/* Topic Talk */ -.topic.topic-type-talk { } -.topic.topic-type-talk .topic-header { background: #f7f7f7; padding: 10px 15px 15px; border-top: 1px solid #dfdfdf; border-bottom: 1px solid #eee; } -.topic.topic-type-talk .topic-header .topic-title { margin-bottom: 13px; font-size: 20px; } -.topic.topic-type-talk .topic-header .topic-info { margin-bottom: 0; position: relative; min-height: 30px; padding-left: 40px; line-height: 14px; } -.topic.topic-type-talk .topic-header .topic-info .avatar { position: absolute; top: 0; left: 0; } -.topic.topic-type-talk .topic-header .topic-info .author-wrapper { margin-bottom: 4px; position: relative; top: -2px; } -.topic.topic-type-talk .topic-header .topic-info .author-wrapper .author { font-weight: bold; margin-right: 15px; } -.topic.topic-type-talk .topic-header .topic-info .recipient { margin-right: 10px; } -.topic.topic-type-talk .topic-content { font-size: 13px; padding: 15px; background: #fafafa; margin-bottom: 1px; border-top: 1px solid #fff; } -.topic.topic-type-talk .topic-footer .topic-info { border-radius: 0; background: #fafafa; } - -.topic.topic-type-talk .talk-recipients { padding: 15px; background: #fafafa; display: none; border-top: 1px solid #fff; border-bottom: 1px solid #eee; } -.topic.topic-type-talk .talk-recipients h3 { font-size: 16px; font-weight: bold; margin-bottom: 10px; } - - -/* Topic Preview */ -.topic-preview { margin-top: 30px; } -.topic-preview .profile-page-header { border-top: 1px solid #ddd; } +.topic { overflow: hidden; zoom: 1; margin-bottom: 50px; } +.topic:last-child { margin-bottom: 0; } + +/* Header */ +.topic .topic-header .topic-title { font-size: 26px; line-height: 1.1em; font-weight: bold; margin: 0 0 15px; } +.topic .topic-header .topic-title a { text-decoration: none; } +.topic .topic-header .topic-title i { position: relative; top: 7px; cursor: help; } +.topic .topic-header .topic-url { margin-bottom: 15px; } +.topic .topic-header .topic-url a { background: #eee; border-radius: 3px; padding: 3px 10px 4px; text-decoration: none; } +.topic .topic-header .topic-info { margin-bottom: 25px; color: #777; } +.topic .topic-header .topic-info time { margin-right: 15px; } +.topic .topic-header .topic-info .topic-blog { margin-right: 15px; } +.topic .topic-header .topic-info .actions, +.topic .topic-header .topic-info .actions li { display: inline; float: none; margin-bottom: 0; } +.topic .topic-header .topic-info .actions li { margin-right: 10px; } + +/* Content */ +.topic .topic-content { margin-bottom: 15px; } +.topic .topic-content.text { color: #333; } + +/* Tags */ +.topic .topic-footer .topic-tags { margin: 0 0 15px; } +.topic .topic-footer .topic-tags li { display: inline; color: #888; } +.topic .topic-footer .topic-tags li.topic-tags-edit { margin-left: 20px; } +.topic .topic-footer .topic-tags li.topic-tags-user a { color: #3CA023; } + +/* Info */ +.topic .topic-footer .topic-info { overflow: hidden; background: #f7f7f7; border-radius: 3px; } +.topic .topic-footer .topic-info li { float: left; height: 19px; padding: 8px 15px; border-right: 1px solid #fff; } +.topic .topic-footer .topic-info li a { text-decoration: none; } + +.topic .topic-footer .topic-info li.topic-info-author a { font-weight: bold; color: #333; } +.topic .topic-footer .topic-info li.topic-info-author a:hover { text-decoration: underline; } +.topic .topic-footer .topic-info li.topic-info-comments a { } +.topic .topic-footer .topic-info li.topic-info-comments a span { color: #777; } +.topic .topic-footer .topic-info li.topic-info-comments a:hover { text-decoration: underline; } + +/* Share */ +.topic .topic-share { display: none; padding: 3px; margin-bottom: 10px; border: 5px solid #eee; } + +/* Poll */ +.topic .poll { margin-bottom: 15px; background: #fafafa; padding: 15px; } + +.topic .poll .poll-vote { margin-bottom: 20px; margin-left: 0; list-style-type: none; } +.topic .poll .poll-vote li { margin-bottom: 10px; } +.topic .poll .poll-vote li:last-child { margin-bottom: 0; } +.topic .poll .poll-vote li label { display: inline; } +.topic .poll .poll-vote li input { position: relative; top: 1px; margin-right: 2px; } + +.topic .poll .poll-result { margin-bottom: 10px; margin-left: 0; list-style-type: none; padding: 15px 15px 0; background: #fff; border: 1px solid #eee; } +.topic .poll .poll-result li { margin-bottom: 20px; } +.topic .poll .poll-result li dl { overflow: hidden; zoom: 1; } +.topic .poll .poll-result li dl dt { float: left; width: 50px; text-align: right; padding-right: 15px; } +.topic .poll .poll-result li dl dt span { color: #aaa; } +.topic .poll .poll-result li dl dd { float: left; width: 400px; } +.topic .poll .poll-result li dl dd div { height: 10px; margin-top: 5px; background: #ccc; overflow: hidden; border-radius: 2px; } +.topic .poll .poll-result li.most dl dd div { background: #60CC4E; } + +.topic .poll .poll-total { color: #aaa; margin-left: 10px; } + +/* Topic Photo */ +.topic.topic-type-photoset { } +.topic.topic-type-photoset .topic-photo-preview { position: relative; margin-bottom: 15px; } +.topic.topic-type-photoset .topic-photo-preview img { vertical-align: top; } +.topic.topic-type-photoset .topic-photo-preview .topic-photo-count { display: none; cursor: pointer; position: absolute; top: 5px; right: 5px; background: #000; color: #6bd24b; padding: 4px 7px; background: rgba(0,0,0,.6); } +.topic.topic-type-photoset .topic-photo-preview .topic-photo-desc { display: none; width: 96%; padding: 7px 2%; position: absolute; bottom: 0; left: 0; background: #000; color: #6bd24b; color: #fff; line-height: 16px; background: rgba(0,0,0,.7); } + +.topic.topic-type-photoset .topic-photo-images { padding-top: 10px; margin-bottom: 15px; } +.topic.topic-type-photoset .topic-photo-images h2 { border-bottom: 1px solid #ddd; padding-bottom: 4px; margin-bottom: 15px; } +.topic.topic-type-photoset .topic-photo-images ul { overflow: hidden; zoom: 1; } +.topic.topic-type-photoset .topic-photo-images ul li { float: left; margin: 0 9px 9px 0; position: relative; } +.topic.topic-type-photoset .topic-photo-images ul li .image-number { display: none; position: absolute; top: 5px; right: 5px; background: #000; color: #6bd24b; padding: 1px 6px; font-size: 11px; background: rgba(0,0,0,.6); } +.topic.topic-type-photoset .topic-photo-images ul li:hover .image-number { display: block; } +.topic.topic-type-photoset .topic-photo-images ul li img { vertical-align: top; } +.topic.topic-type-photoset .topic-photo-images .topic-photo-more { display: block; border-top: 1px solid #dbe6f0; text-align: center; padding: 10px 0; margin-bottom: 15px; text-decoration: none; background: #f3f7fa; color: #7b90a5; } +.topic.topic-type-photoset .topic-photo-images .topic-photo-more:hover { background: #eaf2f8; } + +.topic-photo-upload { background: #fafafa; padding: 15px 15px 15px; margin-bottom: 20px; } +.topic-photo-upload h2 { margin-bottom: 15px; } +.topic-photo-upload ul { overflow: hidden; zoom: 1; } +.topic-photo-upload ul li { min-height: 100px; _height: 100px; margin-bottom: 10px; padding-left: 110px; position: relative; } +.topic-photo-upload ul li img { position: absolute; top: 0; left: 0; } +.topic-photo-upload ul li label { color: #aaa; } +.topic-photo-upload ul li textarea { border: 1px solid #ddd; width: 350px; height: 60px; padding: 3px; font-size: 12px; font-family: Arial, sans-serif; color: #333; } +.topic-photo-upload ul li .image-delete { text-decoration: none; margin-right: 15px; } +.topic-photo-upload ul li .image-delete:hover { color: #f00; } +.topic-photo-upload ul li.marked-as-preview .mark-as-preview { display: inline; color: #43c70f; font-weight: bold; } +.topic-photo-upload ul li .mark-as-preview { display: none; text-decoration: none; } +.topic-photo-upload ul li:hover .mark-as-preview { display: inline; } +.topic-photo-upload .topic-photo-upload-rules { color: #888; margin-bottom: 15px; } +.topic-photo-upload .topic-photo-upload-input { margin-bottom: 20px; } +.topic-photo-upload .topic-photo-upload-input input { margin-top: 3px; } + +#photoset-upload-form { + width: 270px; + padding: 15px; + position: absolute; + top:70%; + display: none; + background-color: #fff; + border: 1px solid #ccc; + -moz-box-shadow: 0 0 10px #ddd; + -webkit-box-shadow: 0 0 10px #ddd; + box-shadow: 0 0 10px #ddd; +} +#photoset-upload-form p { margin-bottom: 10px; } +#photoset-upload-form .input-text { width: 262px; border: 1px solid #ccc; margin: 0; padding: 3px; font-family: Arial, sans-serif; font-size: 12px; } + + +/* Topic Talk */ +.topic.topic-type-talk { } +.topic.topic-type-talk .topic-header { background: #f7f7f7; padding: 10px 15px 15px; border-top: 1px solid #dfdfdf; border-bottom: 1px solid #eee; } +.topic.topic-type-talk .topic-header .topic-title { margin-bottom: 13px; font-size: 20px; } +.topic.topic-type-talk .topic-header .topic-info { margin-bottom: 0; position: relative; min-height: 30px; padding-left: 40px; line-height: 14px; } +.topic.topic-type-talk .topic-header .topic-info .avatar { position: absolute; top: 0; left: 0; } +.topic.topic-type-talk .topic-header .topic-info .author-wrapper { margin-bottom: 4px; position: relative; top: -2px; } +.topic.topic-type-talk .topic-header .topic-info .author-wrapper .author { font-weight: bold; margin-right: 15px; } +.topic.topic-type-talk .topic-header .topic-info .recipient { margin-right: 10px; } +.topic.topic-type-talk .topic-content { font-size: 13px; padding: 15px; background: #fafafa; margin-bottom: 1px; border-top: 1px solid #fff; } +.topic.topic-type-talk .topic-footer .topic-info { border-radius: 0; background: #fafafa; } + +.topic.topic-type-talk .talk-recipients { padding: 15px; background: #fafafa; display: none; border-top: 1px solid #fff; border-bottom: 1px solid #eee; } +.topic.topic-type-talk .talk-recipients h3 { font-size: 16px; font-weight: bold; margin-bottom: 10px; } + + +/* Topic Preview */ +.topic-preview { margin-top: 30px; } +.topic-preview .profile-page-header { border-top: 1px solid #ddd; } .topic-preview .topic { margin-bottom: 20px; } \ No newline at end of file