Личный Блог

А именно — смена его названия.
Впервые увидел эту возможность в настройках профиля после выхода (кажется второй) beta версии AltoCMS 1.0 в скине Synio (собственно тогда только он и был в коробке). Мне эта функция показалась очень полезной и нужной. Огорчению моему не было придела, когда я не нашел её в последующих релизах движка. Но собственно, как следовало ожидать, прикрутить возможность редактирования названия личного блога не составило особого труда. Итак.
Версия движка — 1.0.х,
Скин — проверял только в Experience.

В файл /common/templates/skin/ваш_скин/tpls/actions/settings/action.settings.profile.tpl, в нужное место (у меня это над «Основной информацией») вставляем следующий код:

{if $oUserCurrent->getBlog()}
    <div class="form-group">
      <h2 class="panel-header">{$aLang.settings_profile_section_blog}</h2>
        <input type="text" name="blog_title" id="blog_title" 
           value="{$oUserCurrent->getBlog()->getBlogTitle()|escape:'html'}" class="form-control input-width-350">
    </div>
{/if}

— и всё.

И походу вопрос: а можно ли как-то организовать, чтобы была возможность редактирования описания личного блога? И на сколько вообще это безопасно и правильно...?

UPD Весь код редактирования названия и описания Личного (персонального) Блога
(файл /common/templates/skin/ваш_скин/tpls/actions/settings/action.settings.profile.tpl):
{if $oUserCurrent->getBlog()}
   <div class="form-group">
      <h2 class="panel-header">Настройки личного блога</h2>
                        
      {* НАЗВАНИЕ БЛОГА *}
      <input type="text" name="blog_title" id="blog_title" 
         value="{$oUserCurrent->getBlog()->getBlogTitle()|escape:'html'}" class="form-control input-width-350">
         <small class="control-notice">Подсказка...</small>
                      
      {* ОПИСАНИЕ БЛОГА *}
      <div class="input-group fill-width">
         <textarea name="blog_description"
            placeholder="{$oUserCurrent->getBlog()->getBlogDescription()}"
            id="blog_description" rows="3"
            class="form-control">{$_aRequest.blog_description}</textarea>
      </div>
      <small class="control-notice">Подсказка...</small>
   </div>
{/if}


Для того, чтобы работала функция редактирования описания Блога, в файл
/common/classes/actions/ActionSettings.class.php после:
// * Обновляем название личного блога
    $oBlog = $this->oUserCurrent->getBlog();
    if (F::GetRequestStr('blog_title') && $this->checkBlogFields($oBlog)) {
        $oBlog->setTitle(strip_tags(F::GetRequestStr('blog_title')));
        $this->Blog_UpdateBlog($oBlog);
    }

добавляем
// * Обновляем описание личного блога
    $oBlog = $this->oUserCurrent->getBlog();
    if (F::GetRequestStr('blog_description') && $this->checkBlogFields($oBlog)) {
        $oBlog->setDescription(strip_tags(F::GetRequestStr('blog_description')));
        $this->Blog_UpdateBlog($oBlog);
    }

Похожие статьи

  • Я вот не понимаю...
    Доброго дня или вечера всем. Вот почему , когда регистрируется новый пользователь в системе, ему сразу дается создание поста либо уже в готовых блогах, либо что интересно сразу в 2 личных типа «блогах» —...
  • AltoWiki — новый раздел сайта
    Вообще-то раздел AltoWiki появился не сегодня. Но до недавнего времени он был в процессе отладки и доработки — что-то допиливалось, что-то корректировалось. Но вот сейчас, полагаю, можно о нем уже рассказать, как о...
  • Кажется проявился неприятный баг
    Заранее прошу прощения, что пишу в «Вопросы»... На гите тоже пишу, но там 32 открытых issues и особого движения нет. Просто хочется чтобы побыстрее все фиксилось:) Я понимаю Avadim в небольшом отпуске, но может кто...
  • Можно ли для персональных блогов сделать категории?
    Можно ли для персональных блогов сделать категории. Т.е. что бы была возможность вести пользователю конкретный блог (например имени себя), а так же распределять тематики записей.

10 комментариев

0
Вы все еще пользуетесь встроенным архаичным недоразумением под названием «блог им. блабла» типа personal?
0
Ну не то чтобы пользуюсь…
Вот сегодня один из пользователей обратился с вопросом: «Как мне завести свой блог?».
Пришлось объяснять, что у него «свой» блог уже есть, но возникли сопутствующие вопросы о смене названия блога с «Блог им. username» на что-то другое… Вот и вспомнилась вышеуказанная функция. А вот с изменением blog_description вопрос завис (не хватает тямы и времени).
встроенным архаичным недоразумением
А вообще, как посоветуете сделать? Отключить автоматическое создание персональных блогов и разрешить создание коллективных всем пользователям не зависимо от рейтинга?
+1
Да, создать кастомный тип с нужными правами и дать возможность их создавать.
Персональных в 1.0 уже по сути нет, вместо них -> /topics/created, что конечно нонсенс.
0
Мне эта функция показалась очень полезной и нужной.

А действительно, очень интересная возможность. А проверяли если пользователь сменит на аналогичное название существующему?
0
Будет 2 блога с одинаковым названием.)
+1
0
Хмм… неожиданно.
+2
Итак, давайте всё же добавим возможность менять и описание Личного Блога.

1. Для начала откроем файл /common/classes/actions/ActionSettings.class.php и впишем туда следующий код:
// * Обновляем описание личного блога
    $oBlog = $this->oUserCurrent->getBlog();
    if (F::GetRequestStr('blog_description') && $this->checkBlogFields($oBlog)) {
        $oBlog->setDescription(strip_tags(F::GetRequestStr('blog_description')));
        $this->Blog_UpdateBlog($oBlog);
    }

— после (примерно 677-ая строка):
// * Обновляем название личного блога
    $oBlog = $this->oUserCurrent->getBlog();
    if (F::GetRequestStr('blog_title') && $this->checkBlogFields($oBlog)) {
        $oBlog->setTitle(strip_tags(F::GetRequestStr('blog_title')));
        $this->Blog_UpdateBlog($oBlog);
    }


2. Далее, снова откроем уже упомянутый нами ранее файл /common/templates/skin/ваш_скин/tpls/actions/settings/action.settings.profile.tpl и уже здесь, в нужном месте (логичнее будет предположить, что после поля редактирования названия Блога) вставляем следующий код:
<div class="input-group fill-width">
    <textarea name="blog_description"
       placeholder="{$oUserCurrent->getBlog()->getBlogDescription()}"
       id="blog_description" rows="3"
       class="form-control">{$_aRequest.blog_description}
    </textarea>
</div>
<small class="control-notice">Подсказка, если нужно...</small>
+1
Огорчению моему не было придела, когда я не нашел её в последующих релизах движка.
То, что проблема решается только небольшой правкой шаблона — это явный признак того, что лишь баг верстки, который благополучно перетекал из релиза в релиз. Ведь сам функционал остался!

Ну а вообще, персональные блоги — это, конечно, скорее, просто дань «предку», чем насущная необходимость :) Потому что сейчас есть возможность создавать любые типы блогов, в т.ч. и с такими параметрами, что они будут «авторскими», т.е. писать туда сможет только автор, а другие — только комментировать.
Отредактирован:
+1
Ведь сам функционал остался!
Да, разумеется — не так выразился… :)
сейчас есть возможность...
Уже изучаю.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.