Ответить
Этот скрипт позволяет выводить статус online справа на фоне сообщения как на скриншоте. К сожалению я не понял как это сделать с помощью сниппета, поэтому будем редактировать файл, но всё же...
1. Открываем /modules/forum/index.php и после
пишем
2. Теперь открываем /template/ВАШ_ДИЗ/html/forum/vievpost.html
И меняем на
3. Теперь в /sys/img/ ложим online_right.png (имя файла можно отредактировать в css, см.п1)
К примеру вот моё
Готовые сниппеты
Отправлено: 17 Июн 2011#1
По просьбе Drunya и на благо всем будем сюда ложить готовые к употреблению сниппеты
Если в начале написано <?php и в конце ?> то эти надписи не копируйте - это движок сайта автоматически их добавляет
Добавлено2011.06.17 13-41
Сниппет для проверки пришло ли новое сообщение в личку
Если в начале написано <?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
Отправлено: 17 Июн 2011#2
Сниппет вывода рандомных тем
Добавлено2011.06.17 14-53
сниппет вывода последних обновленных тем форума.
Добавлено2011.06.17 14-54
Вывод рандомных статей
Добавлено2011.06.17 14-57
Вывод всех категорий статей с количеством материалов в каждой
Добавлено2011.06.17 14-58
Вывод самых просматриваемых статей
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="/' . R . '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="/' . R . '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="/' . R . '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_url, 0, 200);
echo '<h3><a href="' . $entry_url . '">' . h($new['title']) . '</a></h3>' . $announce . '<br /><br />';
}
}
echo '</div>';?>
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 17 Июн 2011#4
Вывод статей с последними комментами:
Еще надо добавить поле в таблицу stat_comments -> date (CURRENT TIMESTAMP)
П.С. Спасибо Андрюхе
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="/' . R . 'stat/view/' . $last_post['entity_id'] . '">' . $last_post['stat_name'] . '</a> » <span style="color:#D6C39B;">' . $last_post['date'] . '</span></li>';
}
echo '</ul>';
} else {
echo '';
}?>
П.С. Спасибо Андрюхе
Если где то нет чего то значит что то где то есть.
Отправлено: 20 Июн 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="/' . R . 'users/info/' . $n_u['id'] . '">' . $n_u['name'] . '</a> </li>';
}
echo '</ul>';
} else {
echo 'Юзеры все сбежали ))';
}?>
Отправлено: 21 Июн 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
Отправлено: 21 Июн 2011#8
Сашка_из_Шебекино, да, симпотишно)
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 21 Июн 2011#9
Drunya, я ещё делаю новые aJax окошки в стиле одной из тем для убунты. Может для окошек отдельную тему создать?
Отправлено: 22 Июн 2011#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 . И люблю нашу команду)
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 107. Зарегистрированных: 1. Гостей: 106.