Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1 2 3 ... >>

Готовые сниппеты

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#1
По просьбе Drunya и на благо всем будем сюда ложить готовые к употреблению сниппеты :)

Если в начале написано <?php и в конце ?> то эти надписи не копируйте - это движок сайта автоматически их добавляет

Добавлено2011.06.17 13-41

Сниппет для проверки пришло ли новое сообщение в личку


 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
<?php // Чтоб показывалось только авторизованным
if (!empty($_SESSION['user']['id'])) {

// Считываем инфу о сообщениях. $cntNewMsg выводит число, сколько личек
$cntNewMsg UserAuth::countNewMessages();

// Если личек 0 значит не пришло.
if ($cntNewMsg=="0") {

echo 
'не пришло';

// Если нет, то пришло *СТОЛЬКО_ТО*
} else {

echo 
'пришло ' $cntNewMsg '';

}

}
?>

ОтредактированоARMI(Пользователь) 30 Дек 2011

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:108 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#2
Сниппет вывода рандомных тем

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
<?php $rand_themes $FpsDB->select('themes'DB_ALL, array('order' => 'RAND()''limit' => 8));
if (
count($rand_themes) > 0) {
    echo 
'<ul>';
    foreach (
$rand_themes as $ra_theme) {
        echo 
'<li><a href="/' 'forum/view_theme/' $ra_theme['id'] . '">' $ra_theme['title'] . '</a></li>';
    }
        echo 
'</ul>';
}
?>

Добавлено2011.06.17 14-53

сниппет вывода последних обновленных тем форума.
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
<?php $last_added_posts $FpsDB->select('themes'DB_ALL, array('limit' => 10'order' => 'last_post DESC'));
if (!empty(
$last_added_posts)) {
    echo 
'<ul>';
    foreach (
$last_added_posts as $last_post) {
        echo 
'<li class="point"><a style="font-weight:400;" href="/' 'forum/view_theme/' $last_post['id'] . '">' $last_post['title'] . '</a> » <span style="color:#D6C39B;">' $last_post['last_post'] . '</span></li>';
    }
    echo 
'</ul>';
} else {
    echo 
'';
}
?>

Добавлено2011.06.17 14-54

Вывод рандомных статей
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
<?php $last_added_stats $FpsDB->select('stat'DB_ALL, array('order' => 'RAND()''limit' => 7));
if (
count($last_added_stats) > 0) {
    echo 
'<ul>';
    foreach (
$last_added_stats as $la_stat) {
        echo 
'<li><a href="/' 'stat/view/' $la_stat['id'] . '">' $la_stat['title'] . '</a></li>';
    }
        echo 
'</ul>';
}
?>

Добавлено2011.06.17 14-57

Вывод всех категорий статей с количеством материалов в каждой


 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
<?php $stats '';


$stat $FpsDB->select('stat_sections'DB_ALL, array(
    
'cond' => array(
        
"a.`class` = 'category'",
    ),
    
'alias' => 'a',
    
'fields' => array(
        
'`id` as id',
        
'`title` as title',
        
'(SELECT COUNT(*) FROM `stat` WHERE `category_id` = `a`.`id`) as cnt',
    ),
));


if (!empty(
$stat)) {
    
$stats .= '<ul class="hm">';
    foreach (
$stat as $st) {
        
$stats .= '<li><a href="/stat/category/' $st['id'] . '">' h($st['title']) . '</a><span class="cnt">(' $st['cnt'] . ')</span></li>';
    }
    
$stats .= '<div class="clear"></div></ul>';
}

echo 
$stats;?>

Добавлено2011.06.17 14-58

Вывод самых просматриваемых статей
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
<?php $news $FpsDB->select('stat'DB_ALL, array('limit' => 2'order' => 'views DESC'));
$text = new PrintText;
echo 
'<div class="m-block">';
if (!empty(
$news)) {
   foreach(
$news as $new) {
    
$entry_url get_url(entryUrl($new'stat'));
    
$announce $text->getAnnounce($new['main'], $entry_url0200);
        echo 
'<h3><a href="' $entry_url '">' h($new['title']) . '</a></h3>' $announce '<br /><br />';
   }
}
echo 
'</div>';?>

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

Krevedko

  • Атом-мастер
  • Юзер
  • 227
  • Репутация:3 
  • Предупреждения: 0 
  • Регистрация:
    18 Ноя 2010
#3
Забабахали на отличненько!

r00t_san

  • ДиЗиГнЕр
  • Пользователь
  • 169
  • Репутация:11 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#4
Вывод статей с последними комментами:

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
<?php $last_added_posts $FpsDB->select('stat_comments'DB_ALL, array(
                
'joins' => array(
                    array(
                        
'table' => 'stat',
                        
'type' => 'LEFT',
                        
'alias' => 'b',
                        
'cond' => 'b.`id` = a.`entity_id`',
                    ),
                ),
                
'fields' => array('a.*''b.`title` as stat_name'),
                
'alias' => 'a',
                 
'order' => 'a.`date` DESC',
                
'group' => 'b.id',
                
'limit' => 5,
            ));
if (!empty(
$last_added_posts)) {
    echo 
'<ul>';
    foreach (
$last_added_posts as $last_post) {
        echo 
'<li class="point"><a style="font-weight:400;" href="/' 'stat/view/' $last_post['entity_id'] . '">' $last_post['stat_name'] . '</a> » <span style="color:#D6C39B;">' $last_post['date'] . '</span></li>';
    }
    echo 
'</ul>';
} else {
    echo 
'';
}
?>
Еще надо добавить поле в таблицу stat_comments -> date (CURRENT TIMESTAMP)
П.С. Спасибо Андрюхе :girlgy:

Если где то нет чего то значит что то где то есть.

lor08

  • Свой человек
  • Юзер
  • 130
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    1 Фев 2011
#5
5 последних юзеров
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
<?php $new_user $FpsDB->select('users'DB_ALL, array('limit' => 5'order' => 'id DESC'));
if (!empty(
$new_user)) {
    echo 
'<ul>';
    foreach (
$new_user as $n_u) {
        echo 
'<li class="point"><a style="font-weight:400;" title="Последний раз был:' $n_u['last_visit'] . '" href="/' 'users/info/' $n_u['id'] . '">' $n_u['name'] . '</a> </li>';
    }
    echo 
'</ul>';
} else {
    echo 
'Юзеры все сбежали ))';
}
?>

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#6


Этот скрипт позволяет выводить статус online справа на фоне сообщения как на скриншоте. К сожалению я не понял как это сделать с помощью сниппета, поэтому будем редактировать файл, но всё же...


1. Открываем /modules/forum/index.php и после

 1 
 2 
 3 
 4 
 5 
 6 
 7 
<?php // Если автор сообщения сейчас "на сайте"
                    
$users_on_line getOnlineUsers(); 
                    if (isset(
$users_on_line) &&  isset($users_on_line[$post['id_author']])) {
                        
$p_markets['{STATUS_ON_OFF}'] = get_img('/sys/img/online.png', array('title' => __('Online'), 'alt' => __('Online')));
                    } else {
                        
$p_markets['{STATUS_ON_OFF}'] = get_img('/sys/img/offline.png', array('title' => __('Offline'), 'alt' => __('Offline')));
                    }
?>


пишем


 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
<?php // Если автор сообщения сейчас "на сайте" полоска справа
$users_on_line getOnlineUsers(); 
if (isset(
$users_on_line) &&  isset($users_on_line[$post['id_author']])) {

$p_markets['{STATUS_ON_OFF_RIGHT}'] = "background-position: right top; background: url('/sys/img/online_right.png') no-repeat right top; padding:5px;";
// всё что после $p_markets['{STATUS_ON_OFF_RIGHT}'] = " - это стиль css, редактируйте как хотите
} else {
$p_markets['{STATUS_ON_OFF_RIGHT}'] = '/sys/img/online_right.png';
// если офф то ничего не показывать (если не хотите, можете сделать показ оффлайн статуса по аналогии с онлайн)
}?>

2. Теперь открываем /template/ВАШ_ДИЗ/html/forum/vievpost.html

И меняем
Code:
<td class="posttdMessage" valign="top">{MESSAGE}
на
Code:
<td class="posttdMessage" valign="top"  style="{STATUS_ON_OFF_RIGHT}">{MESSAGE}

3. Теперь в /sys/img/ ложим online_right.png (имя файла можно отредактировать в css, см.п1)
К примеру вот моё

Отредактировано автором 21 Июн 2011

Prince_

  • Свой человек
  • Юзер
  • 92
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    18 Мар 2011
#7
Сашка_из_Шебекино,
Очень интересная вещица!!! Молодца!!!! :jahu:

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:108 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#8
Сашка_из_Шебекино, да, симпотишно)

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#9
Drunya, я ещё делаю новые aJax окошки в стиле одной из тем для убунты. Может для окошек отдельную тему создать?


Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:108 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#10
Сашка_из_Шебекино, сорри, что не ответил. Не заметил.

И так, еще один сниппет для вывода категорий и разделов модуля "Статьи" в виде древовидного меню
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
<?php $stat $FpsDB->query("SELECT `stat_sections`.`title`, `stat_sections`.`id`, `stat_sections`.`section_id`,
(SELECT COUNT(*) FROM `stat` WHERE `section_id` = `stat_sections`.`id` and `available` = '1' ) as cnt, (SELECT COUNT(*) FROM `stat` WHERE `category_id` = `stat_sections`.`id` and `available` = '1' ) as cnt1
 FROM `stat_sections`"
);
 

if (
count($stat) > 0) {
    
$sections = array();
    
$categories = array();
    foreach (
$stat as $row) {
        if (
$row['section_id'] == 0) {
            
$sections[$row['id']] = $row;
        } else {
            if (!isset(
$categories[$row['section_id']])) {
                
$categories[$row['section_id']] = array();
            }
            
$categories[$row['section_id']][] = $row;
        }
    }
}

$out '<ul>';
foreach (
$sections as $key => $section) {
    
$out .= '<li><a href="/stat/section/' h($section['id']) . '">' h($section['title']) . '</a></li>';
    if (!empty(
$categories[$section['id']])) {
        
$out .= '<ul>';
        foreach (
$categories[$section['id']] as $cat) {
            
$out .= '<li><a href="/stat/category/' h($cat['id']) . '">' h($cat['title']) . '</a></li>';
        }
        
$out .= '</ul>';
    }
}
$out .= '</ul>';


print(
$out);?>

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)
1 2 3 ... >>
Сейчас online: 26. Зарегистрированных: 1. Гостей: 25.