+0.65
Рейтинг
0.84
Сила

Создание на сайте страницы FAQ

Уважаемые пользователи LS! Помогите реализовать на сайте страницу FAQ на подобие ЭТОЙ страницы. Спасибо, буду рад каждому совету и даже платному предложению.

UPD: Вопрос конкретно о дизайне страницы, а не о том, где редактировать собственные страницы.

Новости от админа на главной странице

Всех с прошедшим праздником и с наступающим. Давным давно реализовал для своего сайта плагин (очень простой) выводящий стену админа на главную страницу в виде ленты новостей, а сегодня ко мне обратились с просьбой поделиться наработкой. Ну что же пожалуйста. Хотя нет, немного пожадничаю, плагин не дам, а вот как его быстро собрать самому расскажу, благо время на это есть.

Первое
Создаем основу плагина:
В каталоге «plugins» необходимо создать структуру каталогов, похужую на картинку выше. Здесь все очевидно: файл класса блока «BlockNews.class.php» будет формировать необходимые данные для вывода шаблона. Хук будет добавлять блок для вывода, а шаблон – содержать оформление блока.
Перейдем теперь к содержанию:

Читать дальше →

Делаем плагин "causeedit" более красивым.

Заходим в плагин и находим два шаблона topic.form_end.tpl и topic.show_end.tpl.

Открвываем topic.form_end.tpl и заменям весь код на:


{if $aCauses}
<div class="editdate">
    {foreach from=$aCauses item=aCause name=c key=k}
		Отредактировал {$aCause.user_login} - {date_format date=$aCause.date}
		
Причина: {$aCause.text}
	{if $oUserCurrent and $oUserCurrent->isAdministrator()}
                <a href="#" onclick="deleteCause('{$iTopicId}', '{$k}', this); return false;" class="delete">{$aLang.topic_delete}</a>
        {/if}<br /><br />
	{/foreach}
	</div>
  
{/if}
<p>
    <label for="topic_cause_edit">{$aLang.plugin.causeedit.cause_title}:</label>
    <input type="text" id="topic_cause_edit" name="topic_cause_edit" value="{$_aRequest.topic_cause_edit}" class="input-text input-width-full" />
</p>



Открвываем topic.show_end.tpl и заменям весь код на:


{assign var="aCauses" value=$oTopic->getCauseArray()}
{if $aCauses}
<br />
<div class="editdate">
    {foreach from=$aCauses item=aCause name=c key=k}
		Отредактировал {$aCause.user_login} - {date_format date=$aCause.date}
		
Причина: {$aCause.text}
	{if $oUserCurrent and $oUserCurrent->isAdministrator()}
                <a href="#" onclick="deleteCause('{$iTopicId}', '{$k}', this); return false;" class="delete">{$aLang.topic_delete}</a>
    {/if}<br /><br />
	{/foreach}
	</div>
{/if}



Дальше открываем стили, заменям весь код на:


.editdate {
color: #84AE1B;
font-style: italic;
font-size: 0.9em;
text-align: right;
padding-right: 24px;
background: url("../images/editdate.png") no-repeat 100% 0;
margin-bottom: 15px;
}
.editdate .delete { color: red; }


Создаем папку images и загружаем туда картинку:

И что у меня получилось? А вот что:



Было:


Всех с наступающим!

Категоризация блогов и еще кое что

Как то я уже писал о подобном, вот решил написать еще раз.

Блогов на сайте может быть достаточно много. Новичку, только что зарегистрировавшемуся на сайте, довольно сложно определить, куда ему писать и есть ли вообще нужный ему блог. Да, в 1.0 есть поиск блогов, но многие ли сразу идут в поиск? По-моему своевременное использование поиска есть одна из самых распространенных проблем на форумах и сообществах.

Вторая проблема — новичку трудно вообще понять, что ему сначала нужно подключится к блогу, только после этого он сможет туда написать. Частично проблему решает плагин BlogAutoconnect, но есть один минус в нем — при публикации топика в списке блогов выводятся ВСЕ блоги на сайте, а их может быть более 50 или 100… что тогда? изучать этот список на два экрана?

Поэтому есть предложение, как усложнить этот процесс в системе и упростить для пользователя.
Читать дальше →

Поиск и замена по всей базе данных MySQL

Увидел в сообществе вопросы по поводу изменения путей в базе данных при переезде. Для замены путей в дампе можно воспользоваться скриптом 1d10t : livestreet.ru/blog/tips_and_tricks/12689.html

Для тех, у кого нет доступа к консоли сервера или есть желание сделать замену на рабочей БД — есть нижеприведенный скрипт, который поможет найти и заменить пути на рабочей базе данных простым вызовом файла через браузер.
Читать дальше →

Popup окно

Друзья, подскажите пжта. Делаю такую штуку:
если пользователь авторизован, то при нажатии на добавить топик, он переадресуется на страницу добавления, если не авторизован, то выскакивает popup окно авторизации.
В nav.tpl прописал:
<nav id="nav">
<div class="sticky-nav">
<div class="pages">
<ul class="list">  
<li {if $sMenuHeadItemSelect=='blog'}{/if}><a href="{cfg name='path.root.web'}" class="headmenu"><span>{$aLang.topic_title}</span></a></li>
<li {if $sMenuHeadItemSelect=='people'}{/if}><a href="{router page='people'}" class="headmenu"><span>{$aLang.people}</span></a></li>
{if $oUserCurrent}
<li class="add"><a href="{router page='topic'}add/" class="create button-add"><span>Добавить рецепт</span></a></li>
{else}
<li class="add"><a href="{router page='login'}" class="create button-add"><span>Добавить рецепт</span></a></li>
{/if}  
{hook run='main_menu_item'}
</ul>
{hook run='main_menu'}
</div>
</div>
</nav>

В template.js вписал класс .button-add:

        $('.button-add').click(function(){
        if (ls.blocks.switchTab('login','popup-login')) {
            $('#window_login_form').jqmShow();
        } else {
            window.location=aRouter.login;
        }
        return false;
    });

Теперь, когда пользователь неатворизован, выскакивает popup окно как и положено, когда авторизован — ничего не происходит.
Где накосячил?

Модуль мини-записей

Доброго времени суток!

Хочу добавить в свой проект функциональность мини-записей.

На сайте существует обычный контент для LS блоги с топиками. Отдельно от него хотелось бы сделать отдельную ветку топиков, в моем сленге мини-записей, как на этом сайте inpearls.ru. Отдельно, это означает, что данный раздел не находится в блогах, и его топики не попадают в раздел топиков блогов. Раздел существует отдельной жизнью, объединяет их только общий дизайн и база данных пользователей.

Требования к разделу мини-записей:
— возможность создавать категории и подкатегории зиписей
— голосование
— различного рода сортировки: вывести все, из заданой категории, лучшие за определенный момент времени

Функциональность необходимо адаптировать к шаблону Social

Пишите, буду рад совместной работе

Архитектура LS:: Мапперы

Представляю первую статью цикла статей об архитектуре livestreet, я думаю будут и продолжения. Исходные коды примера, приведенные здесь доступны на github.

1. Что такое маппер
Ну-с начнем, и начнем с того, что определим, что такое маппер? Маппер, или конкретнее Data Mapper является одним из стандартных паттернов проектирования программных средств, определенный в LS как PHP-объект наследуемый от базового, для всех мапперов класса Mapper. Основным назначением маппера является отделение логики хранения данных от бизнес-логики самого приложения. Маппер содержит методы, реализующие операции CRUD (Create-Read-Update-Delete) над одной или несколькими таблицами по «просьбе» объекта. Маппер является интерфейсом между объектами и базой данных, средством, повышающим уровень абстракции в архитектуре приложения.

Читать дальше →

Комментарии, форма комментариев, порядок вывода.

Доброго времени суток всем.

Потратил много времени на поиск, перечитал ФАКу и не нашел ответов.
Нужно изменить порядок вывода комментариев.
Нужно, что бы новые комментарии отображались сверху
Форма комментариев тоже должна отображаться вверху и быть все время активна. А надпись «Добавить комментарий» вообще убрать.
Все решения данной проблемы для старых версий ЛС.
Прошу совета бывалых.

Итоги:

Новые комментарии отображаются сверху.
Форма добавления комментариев тоже находится вверху, сразу под топиком, но не активная, все равно нужно нажимать на ссылку (это не решено)
Древовидный вывод комментариев при таком выводе комментариев не используется.
Все эти приблуды доступны и гостям сайта(используется плагин OpenComments), заценить можно здесь allorg.com.ua/

Спасибо за советы и верное направление 1099511627776 и aex
С ув. O3OH