На вкус и цвет все фломастеры разные.
Так выглядит обычный блог
А так, блог с шапкой
У шапки блога есть подложка, в ней кроме прежних данных есть
— крупный аватар владельца блога,
— количество записей в блоге,
— суммарный рейтинг блогов,
— общее количество голосов.
А самое главное – теперь достойные блогеры могут получить право менять подложку на свою!
Для того чтобы установить хак надо
В файле /components/blogs/model.php
Перед самой последней закрывающейся скобкой } вставить
function getAvatar($auth){ $sql = "SELECT imageurl FROM cms_user_profiles WHERE user_id='$auth' LIMIT 1"; $result = $this->inDB->query($sql); $author = $this->inDB->fetch_assoc($result); $avatar ='/images/users/avatars/nopic.jpg'; $avatar='/images/users/avatars/'.$author[imageurl]; } } return "<img style='max-width:150px; max-height:150px' src='$avatar' />"; } function getAvatarClub($club_id){ $sql = "SELECT imageurl FROM cms_clubs WHERE id='$club_id' LIMIT 1"; $result = $this->inDB->query($sql); $author = $this->inDB->fetch_assoc($result); $avatar =''; $avatar='/images/clubs/'.$author[imageurl]; } } return "<img style='max-width:150px; max-height:150px' src='$avatar' />";; } function getClubMember($club_id){ $sql = "SELECT c.user_id FROM cms_user_clubs c WHERE c.club_id = '$club_id' AND c.role = 'member'"; $result = $this->inDB->query($sql); return $this->inDB->num_rows($result); } function getDeco($id,$owner){ if ($owner=='user'){$ur= $id;} else {$sql = "SELECT admin_id FROM cms_clubs WHERE id='$id' LIMIT 1"; $result = $this->inDB->query($sql); $idmin=$this->inDB->fetch_assoc($result); $ur= $idmin['admin_id']; } $sql = "SELECT user_id FROM cms_user_awards WHERE user_id='$ur' AND title='Золотое перо'"; $result = $this->inDB->query($sql); $award= $this->inDB->num_rows($result); $deco['head']=$deco['foot']='/templates/_default_/images/bg.jpg'; if ($award){ $lin='upload/userfiles/'.$ur.'/bloghead.jpg'; $lin='upload/userfiles/'.$ur.'/blogfoot.jpg'; else {$deco['foot']=$deco['head'];} } return $deco; } function getPostsRating($blog_id){ $sql = "SELECT SUM(r.total_rating) AS rating, SUM(r.total_votes) AS votes FROM cms_ratings_total r LEFT JOIN cms_blog_posts p ON p.id = r.item_id WHERE p.blog_id = $blog_id AND r.target = 'blogpost'"; $result = $this->inDB->query($sql); $post = $this->inDB->num_rows($result) ? $this->inDB->fetch_assoc($result) : false; return $post; }
В файле /components/blogs/frontend.php
Находим часть
if ($do=='blog'){
if($owner=='user'){
$avatar=$model->getAvatar($blog['user_id']);
if ($owner=='club'){
$ClubMember= $model->getClubMember($blog['user_id'])+1; $avatar=$model->getAvatarClub($blog['user_id']);
$smarty->assign('myblog', $myblog);
$ratings=$model->getPostsRating($blog['id']); $deco=$model->getDeco($blog['user_id'],$owner); $smarty->assign('deco', $deco); $smarty->assign('clubmembers', $ClubMember); $smarty->assign('ratings', $ratings); $smarty->assign('avatar', $avatar);
Далее переходим к другой части файла
для этого находим строку
if($do=='post'){
$smarty = $inCore->initSmarty('components', 'com_blog_view_post.tpl');
$avatar=$model->getAvatar($post['author_id']); $deco=$model->getDeco($blog['user_id'],$owner); $smarty->assign('deco', $deco); $smarty->assign('avatar', $avatar);
С программной частью закончили — дальше работа с шаблонами
Описать подробно, что куда вставить не представляется возможным — у всех ведь шаблоны разные.
Скажу в общем:
Надо верху вставить DIV у которого в стиле будет указан адрес фона
background: url({$deco.head})
внутри этого дива-шапки ставим таблицу (ну или div — кому как нравиться)
куда встраиваем полученные переменные
{$avatar} — аватар владельца блога
{$ratings.rating} — Сумма рейтинга всех записей (только для com_blog_view.tpl)
{$ratings.votes} — Общее количество голосов (только для com_blog_view.tpl)
а в конце файла еще один див-футер
с background: url({$deco.foot})
В приложенном архиве в качестве примера
два файла дефолтного шаблона
/templates/_default_/components/com_blog_view.tpl
/templates/_default_/components/com_blog_view_post.tpl
там же есть измененные файлы
/components/blogs/model.php
/components/blogs/frontend.php
с чистой версии instantcms
Внимание, если вы решите заменить свои файлы файлами из архива,
сделайте сначала копию оригиналов!
Как дать права блогеру на оформление своего блога:
Я долго думал, как и кому давать права
— Всем? Но тогда блог превратиться в трудночитаемый калейдоскоп.
— Заносить блогера в специальную группу редакторов? Но ведь он может уже состоять в какой-то группе, а система не предусматривает несколько групп для одного юзера.
— Разрешить всем кто достиг какого-то рейтинга? Но ведь может так быть что выдать права надо новому человеку, и наоборот набивший рейтинг — неадекват.
— Внести в таблицу юзеров БД еще одно поле? Некрасиво
И тут вспомнил про систему наград
И решил назначить награду "Золотое перо", которую выдавать лучшим блогерам с правом оформления блога.
А если кто пожелает выдавать награду-право за рейтинг — без проблем, указываем в настройках награды выдаваться автоматически при достижении заданного рейтинга, кармы и количества постов.
— Всем? Но тогда блог превратиться в трудночитаемый калейдоскоп.
— Заносить блогера в специальную группу редакторов? Но ведь он может уже состоять в какой-то группе, а система не предусматривает несколько групп для одного юзера.
— Разрешить всем кто достиг какого-то рейтинга? Но ведь может так быть что выдать права надо новому человеку, и наоборот набивший рейтинг — неадекват.
— Внести в таблицу юзеров БД еще одно поле? Некрасиво
И тут вспомнил про систему наград
И решил назначить награду "Золотое перо", которую выдавать лучшим блогерам с правом оформления блога.
А если кто пожелает выдавать награду-право за рейтинг — без проблем, указываем в настройках награды выдаваться автоматически при достижении заданного рейтинга, кармы и количества постов.
Как пользователю оформить свою шапку
Если у пользователя есть права на оформление, он может просто залить в свои файлы
картинки с названием bloghead.jpg и blogfoot.jpg и они станут подложкой блога.
картинки с названием bloghead.jpg и blogfoot.jpg и они станут подложкой блога.
Цена
Разработка бесплатная,
но буду рад финансовой благодарности.
Z625314341204
но буду рад финансовой благодарности.
Z625314341204
Реклама #
Настёна 13 лет назад #
reload 13 лет назад #
+ попробуем потестить
зы: понравилось как ты добавил кошелек) национальная валюта, че, не канает?) или есть информация о большой инфляции?)
Telema93 13 лет назад #
Maximov 13 лет назад #
Просто сегодня Z более универсальная валюта.
По крайней для меня - Украинца. )
Telema93 13 лет назад #
Кстати, я за то, чтоб внести в стандартную сборку такое опционально - захотел - включил, не захотел - отключил.
Maximov 13 лет назад #
Katerina 13 лет назад #
Скажи, а на отдельных записях в блоге он показывается? Или только в ленте блога.
Клубные фото вместо аватаров можно вставить?
Maximov 13 лет назад #
И в клубных блогах. Вместо аватарки берется картинка группы.
Katerina 13 лет назад #
Нельзя ли в записи блога оставить шапку, как в общей ленте, а поля "опубликовано", "рубрика", "Редактировалось" и "рейтинг" оставить под шапкой?
Katerina 13 лет назад #
Maximov 13 лет назад #
Схематично шапка выглядит так:
Также и с названием...
Katerina 13 лет назад #
На выходных опробую, отпишусь, оплачу.
Настёна 13 лет назад #
Настёна 13 лет назад #
Денис Васильевич 13 лет назад #
в файле com_blog_view.tpl в строчке
Денис Васильевич 13 лет назад #
Настёна 13 лет назад #
Maximov 13 лет назад #
Лучше всего заглянуть в исходник страницы этого блога.
Думаю, там все станет ясно.
А файлы шаблон сами меняли или вставляли скаченные?
Настёна 13 лет назад #
Maximov 13 лет назад #
Настёна 13 лет назад #
lezginka.ru 13 лет назад #
Александр 13 лет назад #
Maximov 13 лет назад #
Джехутимери 13 лет назад #
NIKITA 13 лет назад #
"Описать подробно, что куда вставить не представляется возможным - у всех ведь шаблоны разные.
Скажу в общем:
Надо верху вставить DIV у которого в стиле будет указан адрес фона
background: url({$deco.head})
внутри этого дива-шапки ставим таблицу (ну или div - кому как нравиться)
куда встраиваем полученные переменные
{$avatar} - аватар владельца блога
{$ratings.rating} - Сумма рейтинга всех записей (только для com_blog_view.tpl)
{$ratings.votes} - Общее количество голосов (только для com_blog_view.tpl)
а в конце файла еще один див-футер
с background: url({$deco.foot})"
NIKITA 13 лет назад #
Maximov 13 лет назад #
NIKITA 13 лет назад #
Maximov 13 лет назад #
Что грузить по умолчанию прописано в файле /components/blogs/model.php
в строке
NIKITA 13 лет назад #
Azura 12 лет назад #
spacer 12 лет назад #
Вы продвинулись с добавлением списка фонов для выбора пользователем?
Александр 12 лет назад #
Igor 12 лет назад #
Helg 12 лет назад #
Warning: Smarty error: unable to read resource: "com_blog_create_ok.tpl" in /home/wm17235/domains/lesozavodsk25.ru/public_html/includes/smarty/libs/Smarty.class.php on line 1092
SE7EN 11 лет назад #
Капитан 10 лет назад #
Доротея 10 лет назад #
Можно вывод шапки с помощью модуля. Не обязательно через ядро)
Думаю много кто скинется на доработку.
Доротея 10 лет назад #