приехал с отдыха, увидел релиз — обрадовался. начал писать комментарий — нашел баг.
При вставке пустой цитаты курсор попадает не в центр тегов, а в конец.
я сделал мини-плагин для приветсочи, который запрещает чуваку голосовать за топик, если чувак его не откомментил. на саете появился срач! клёве. тебе надо такой? выдам по запосу.
Подключить редактор к комментам не долго:
Пишем сет кнопок для редактора в комментариях, для этого открываем ..\js\libs\markitup\sets\default\set.js и дописываем следующее:
public function TopicShow($aParams)
{
$oTopic=$aParams['oTopic'];
// Проверяем авторизован ли юзер, если нет - обновляем статистику
$do_count_visits=(!$this->User_IsAuthorization());
if (!$do_count_visits)
{
// Если авторизован, проверяем не он ли стартер топика
$oUser=$this->User_GetUserCurrent();
$do_count_visits=$oUser->getId()!=$oTopic->getUserId();
}
if ($do_count_visits)
{
$oTopic->setCountRead($oTopic->getCountRead()+1);
$this->Topic_UpdateTopic($oTopic);
}
}
Единственное, тут ни где не учитывается посещение сайта поисковыми машинами, но, в принципе, этим можно пренебречь при большом количестве посещений :)
с консолью хакера всё просто, если имеете представление о php вообще и о структуре livestreet
в index.php есть строчка
define ('SYS_HACKER_CONSOLE', false);
переключаете в true, перезагружаете страничку и жмете Ctrl+~
теперь в нужном экшене(в вашем случае ActionProfile) дампим нужную переменную
dump($sResult['collection']);
и в консоли смотрим вывод, на каком объекте затык.
Удобная штука для отладки, чтобы не травмировать народ var_dump. Но следует заметить, что используется она ТОЛЬКО для отладки (ибо при ее активации есть проблемы с ajax)
почему-то при написании слов в строку ничего не происходило (вываливался запрос с текстом «Hacking attempt»), с чего понял, что не передается в запрос параметр security_ls_key. Решилось так: (вместо скрипта, что перед формой)
Хех, вот создаешь файл в хуках и вешаешь перехваты на нужные акшины. Надеюсь из примера все понятно.
/classes/hooks/HookCloseSome.class.php
<?php
class HookCloseSome extends Hook {
public function RegisterHook() {
$this->AddHook('action_init_ActionBlog_before','Check',__CLASS__,0); //Закрываем блоги
$this->AddHook('action_init_ActionPeople_before','Check',__CLASS__,0); //Закрываем людей
}
public function Check() {
/**
* Проверяем авторизован ли пользователь
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddNoticeSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('attention'));
Router::Action('login');
Router::getInstance()->ExecAction();
}
}
}
?>
— в templates\language\russian.php добавить 'about_project' => 'О проекте',
—
в шаблоне /templates/skin/ВАШ_СКИН/actions/ActionTopic/add.tpl сроку
нужно заменить на
спрашивали, то публикую
При вставке пустой цитаты курсор попадает не в центр тегов, а в конец.
Пишем сет кнопок для редактора в комментариях, для этого открываем ..\js\libs\markitup\sets\default\set.js и дописываем следующее:
' },
{separator:'---------------' },
{name:'Изображение', className:'editor-picture', key:'P', beforeInsert: function(h) { $('#form_upload_img').jqmShow(); } },
{name:'Ссылка', className:'editor-link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'', placeHolder:'Your text to link...' },
{separator:'---------------' },
{name:'Предпросмотр', className:'editor-preview', call:'preview'}
]
} думаю такого набора достаточно для комментов.
Далее, открываем comment_tree.tpl и добавляем в самый низ (если нужно разрешить грузить картинки)
можно еще убрать строчку предосмотра дабы не дублировалось:
Остается только подключить редактор, в ../js/main.js находим строчку
и под ней дописываем
все, редактор подключен.
то в его инициализации в Init(){...} допишите строчку:
а в шаблоне напишите:
7 строка с:
на
Сначала думал дело в настройках кодировок или базе, оказалось совсем иначе.
В файле function.php есть функция:
В ней строчку:
Меняем на:
preg_split — некорректно отрабатывает без параметра u
После этого кракозябры исчезнут.
У себя делал на 3 версии LS, но функция в том же виде и в 4 версии, так-что может будет ещё кому полезна.
Пологаю проблема имеет определённую зависимость от хостинга, или от версии PHP и проявляться может не всегда.
Единственное, тут ни где не учитывается посещение сайта поисковыми машинами, но, в принципе, этим можно пренебречь при большом количестве посещений :)
выносим его за пределы form и все работает
1. Обработка тегов при добавлении топика-ссылки
2. Разбиение на абзацы в топике-ссылке [Решено]
Итоговый код, если кому понадобится:
#leftcolumn { width: 15%; float: left; margin-left: 1%; margin-top: -6px; }
#content { width: 58%; background: #fff; float: left; padding-top: 20px; padding-bottom: 20px; zoom: 1; }
#sidebar { width: 25%; float: left; margin-left: 1%; margin-top: -6px; }
надо просто в конфиге записать доменное имя в виде punycode
типа xn--80aaepkcu7d3a0g.xn--p1ai == живаяулица.рф
в index.php есть строчка
переключаете в true, перезагружаете страничку и жмете Ctrl+~
теперь в нужном экшене(в вашем случае ActionProfile) дампим нужную переменную
и в консоли смотрим вывод, на каком объекте затык.
Удобная штука для отладки, чтобы не травмировать народ var_dump. Но следует заметить, что используется она ТОЛЬКО для отладки (ибо при ее активации есть проблемы с ajax)
функция GetTopicsGood
видимо, заменить на
пробуйте
По сути в объект третьего параметра функции добавить
/classes/hooks/HookCloseSome.class.php