Suffrage’s Blog

Автор блога:
Все рубрики (5)

Без рубрики - все блоги

Вырожу суть хака через просьбы пользователей

Mr.Queer:
Нужно сделать, чтобы при заходе в любой блог выводились ВСЕ записи этого блога, а не только "Без рубрики". А потом уже при навигации по рубрикам выводились посты из тих конкретных рубрик. Поковырялся в компоненте - не нашел как это сделать.

LG:
Все таки блоги как то не очень смотрятся, когда в них заходишь - много чистого пространства, и категории с записями, наверху многие люди теряются, просят сделать чуть более похоже на тот же вордпресс - чтобы показываль последние записи (новые сначала), а дальше - страницы с более старыми  постами(вне зависимости от разделов, только по дате сортируются, старые в глубине)  так то показваются только категории, а если бы последние записи владельца блога сразу при заходе в блог показывались (вне зависимости от категории опубликованного поста).

Вот выкладываю свой вариант.

1. находим components/blog/model.php

Ищем блок
Код PHP:
/* ==================================================================================================== */
/* ==================================================================================================== */

    public function getPosts($blog_id, $page=0, $perpage=0, $category_id=0, $owner='user'){
...
}
/* ==================================================================================================== */
/* ==================================================================================================== */
Заменяем на

Код PHP:
public function getPosts($blog_id, $page=0, $perpage=0, $category_id=0, $owner='user'){
        $list = array();
        //Получаем записи, относящиеся к нужной странице блога
     
        if ($category_id){
	    $sql = "SELECT p.*, DATE_FORMAT(p.pubdate, '%d-%m-%Y (%H:%i)') as fpubdate, IFNULL(SUM(r.points), 0) as points, u.nickname as author, u.id as author_id
                FROM cms_blogs b, cms_users u, cms_blog_posts p
                LEFT JOIN cms_ratings r ON r.item_id=p.id AND r.target='blogpost'
                WHERE p.cat_id = $category_id AND p.blog_id = b.id AND b.id = $blog_id AND p.user_id = u.id AND p.published = 1 AND b.owner = '$owner'
                GROUP BY p.id
                ORDER BY p.pubdate DESC";

} 
else {
	$sql = "SELECT p.*, DATE_FORMAT(p.pubdate, '%d-%m-%Y (%H:%i)') as fpubdate, IFNULL(SUM(r.points), 0) as points, u.nickname as author, u.id as author_id
                FROM cms_blogs b, cms_users u, cms_blog_posts p
                LEFT JOIN cms_ratings r ON r.item_id=p.id AND r.target='blogpost'
                WHERE p.blog_id = b.id AND b.id = $blog_id AND p.user_id = u.id AND p.published = 1 AND b.owner = '$owner'
                GROUP BY p.id
                ORDER BY p.pubdate DESC";

}

        if ($page && $perpage) { $sql .= " LIMIT ".(($page-1)*$perpage).", $perpage"; }

        $result = $this->inDB->query($sql);

        if ($this->inDB->num_rows($result)){
            while($post = $this->inDB->fetch_assoc($result)){
                $list[] = $post;
            }
        }

        return $list ?  cmsCore::callEvent('GET_POSTS', $list) : false;
    }
2.  находим components/blog/frontend.php

Код PHP:
if ($total){
заменяем на

Код PHP:
if ($total or $cat_id==0){
Вроде все! еще можно раздел без рубрики переименовать в "все разделы", но пока не нашел как

Кат в блогах.

Небольшой хак как прятать продолжение сообщения в блогах под кат

1. Открываем components/blog/frontend.php
Ищем
Код PHP:
$msg                = $post['content'];
Вставляем после
Код PHP:
// cut hack by Suffrage
if (strpos($msg, '[cut]'))
   {

      preg_match("/([^\f]*)\[cut\]/", $msg, $msg);

      $msg = $msg[1];

   }

else 
   { 
      $msg = substr($post['content'],0,$peranons); 
   }
// end cut hack
2. Открываем templates/ваш шаблон/components/com_blog_view.tpl
Ищем
Код PHP:
{$post.msg}
Вставляем после
Код PHP:
<!-- cut hack by Suffrage -->


<a href="/blogs/{$menuid}/{$blog.id}/post{$post.id}.html">Читать дальше...</a>
<!-- end cut hack -->
3. Открываем inludes/bbcode/bbcode.lib.php
Ищем
Код PHP:
'hr' => array(

                    'handler' => 'hr_2html',

                    'is_close' => true,

                    'lbr' => 0,

                    'rbr' => 1,

                    'ends' => array(),

                    'permission_top_level' => true,

                    'children' => array()

                ),
Вставляем после
Код PHP:
// cut hack by Suffrage
	'cut' => array(

                    'handler' => 'cut_2html',

                    'is_close' => true,

                    'lbr' => 0,

                    'rbr' => 1,

                    'ends' => array(),

                    'permission_top_level' => true,

                    'children' => array()

                ),
// end cut hack 
Ищем
Код PHP:
 function hr_2html($elem) {

        return '<hr class="bb" />';

    }
Вставляем после
Код PHP:
// cut hack by Suffrage
function cut_2html($elem) {

        return '
';

    }
// end cut hack
Спасибо за дополнение Виктора

Все сохраняем. и пробуем. при использование тега [cut] в блогах в списке постов будут отображаться текст сообщения расположенный до тега. А если тега не будет, "для тех кто в танке", сообщение будет обрезаться по длинне

Осталось вставить кнопочку на панель, забыл как это сделать, не напомните?

[size=2]офтоп: не убирайте коментарии, они помогут вам вернуть движок в прежнее состояние, если что то пойдет не так[/size]

Улучшаем поля ввода пароля

Всем привет!

Печатая пароль, вместо вводимых символов мы видим только звездочки и поэтому часто ошибаемся (если только вы не мастер слепого метода печати). Согласитесь, что это не очень хорошо.



В интернете нашел решение на jQuery, который бы как-то показывал вводимые символы.

Итак.
1 шаг.
Скачиваем архив - Скачать архив

2 шаг.
Заливаем файлы в includes/jquery/

3 шаг.
Добавляем в шаблон между тегами <head></head> следующие строки:
Код PHP:
<script src="includes/jquery/iphone.style.pass.js" type="text/javascript"> </script>
<script src="includes/jquery/pass.js" type="text/javascript">		</script>

Шпоргалка по jQuery

Отличная шпоргалга с примерами по jQuery... Мне рассказал о ней мой учитель, теперь я делюсь с Вами



[size=10]visualjquery.com[/size]

Длинный аватар

Инстант отображает в виде квадрата, захотелось исправить это и сделать вытянутые аватары



для этого открываем components/users/css/styles.css и добавляем строку
Код PHP:
.usr_img{
	width:170px;
}

usr_img_small{
	width:54px;
}
Далее идем в админку
Главная &#8594; Компоненты &#8594; Профили пользователей
ставим Ширина большого аватара:   пикс.

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