Вы не зашли.
Trashcka, я о css стилях, которые были прописаны, трудно разгребать всю css в поисках всех стилей для конкретного плагина, приходится использовать Firebug )
На мой взгляд пакет "по-умолчанию" нужно сделать предельно понятным (добавлением комментариев к группам css стилей для сайта, плагинов, ошибок.), а в описание плагинов кидать исходники темплейтов и css этих плагинов. ) + ту самую одну переменную. Вот и всё )
Но это всё фигня, меня больше интересует генератор карты сайта, битые ссылки в rss и то, что я отписал в другой теме
Опять таки, зачем?, ведь в документации получится тоже самое, что и в самом шаблоне плагина, это если делать все как ты хочешь.
На самом деле я имел ввиду не копию шаблонов со всеми их табличными заборами, а все переменные вида {tatata}, JS скрипты и css стили.
Wolverine, оох, ну и дела
Ошибка синтаксического анализа XML: элемент не найден
Адрес: http://legend.zxs.ru/news/plugin/gsmg/
Строка 1, символ 1:
^
Попробовал так зайти: http://legend.zxs.ru/news/engine/plugins/gsmg/gsmg.php та же фигня..
не понятно ))
Насчет плагинов - смысл в том, что нужна документация с подрубаемыми стилями и тегами классов всяких, которые используются для их подключения. + шаблоны должны быть как то разбиты, либо в две партии даваться - голый шаблон сайта + шаблон с поддержкой таких то плагинов.
Просто я например всё вырезал, и приходится из исходников выкавыривать куски для поддержки плагина, если мне нужно подключить его.. А очень хотелось бы исходный код плагина со стилями по-умолчанию видеть в документации по плагину..
Так же генерируется кривая ссылка: http://legend.zxs.ru/news/news/plugin/feedback/?id=1
+вопрос - можно ли в поле выбора создавать серенькие поля, которые нельзя будет выбрать?
И еще, возможно ли настроить ссылку? Вот к такому виду ее привести бы: http://site.ru/news/feedback~1/ или к такому: http://site.ru/news/feedback/1/ А лучше такому http://site.ru/feedback~1/ (при том, что двиг лежит в каталоге news)
Не хотите сделать для плагина вот такие формы?
Вопсчем, предлагаю фикс, который будет убирать значения по-умолчанию при клике по ним.
Вносится в файл шаблона site.form.row.tpl
Заменить
<input style="width:300px;" type="text" name="{name}" value="{value}"/>
На
<input style="width:300px;" type="text" onFocus="javascript:if(this.value == '{value}') this.value='';" name="{name}" value="{value}"/>
Это всё клево, но при наличии значения по умолчанию в текстовом поле проверка не работает, тк она бракует пустые валуи.. А как воткнуть туда тег, у меня пока не выходит разобраться
Обновился до Changeset [523], явных проблем нет, только rss генерирует криво ссылки.
Двиг лежит в каталоге /news/, в .htaccess каталог прописан.
http://legend.zxs.ru/news/rss.xml - вот результат генерации ссылок: http://legend.zxs.ru/news/news/2010/01/28/start_news/
В конфигурации активны следующие плагины:
auth_basic 0.17
auth_punbb 0.05
comments User 0.02
gsmg 0.05 - где ссылку на генерируемую карту сайта посмотреть можно?? )
rss_export 0.11
uprofile 0.01
wpinger 0.01
В main.tpl у меня включено следующее:
<link href="{tpl_url}/style.css" rel="stylesheet" type="text/css" media="screen" />
<link href="{home}/rss.xml" rel="alternate" type="application/rss+xml" title="RSS" />
<script type="text/javascript" src="{admin_url}/includes/js/functions.js"></script>
<script type="text/javascript" src="{admin_url}/includes/js/ajax.js"></script>
[sitelock]
<div id="loading-layer"><img src="{tpl_url}/images/loading.gif" alt="" /></div>
{personal_menu}
{search_form}
{mainblock}
[/sitelock]
Всё остальное обрезано за ненадобностью и невозможностью использования заборной верстки в моём дизайне
На мой взгляд оптимально - это прилагать к любому плагину необходимые стили и классы с документацией по установке для его подключения к шаблону, ане адаптировать шаблон под все существующие.
Вот например, если мне не нужен rss, зачем у меня в строке браузера будет гореть активная иконка rss? А если нужен - неужели я поленюсь вставить одну строчку кода в хедер? ))
Amarelius, лично я использую cms, как пока сугубо новостную ленту. Весь сайт под NG пока не могу приспособить, он у меня на хтмл написан и я подключаю динамичные моменты (например меню) из шаблонов. То же самое меню мне нужно подключать и к NG, чтобы оставалось редактировать один файл ))
А если эта система будет развита, то я смогу без труда весь сайт под cms загнать подключая свои шаблоны.
Дробить приходится, в моём случае, так как я подключаю на разных страничках разные скрипты, использую разные тайтлы итп. Вопсчем по мере необходимости, стараюсь оптимизировать сайт, урезая всё "лишнее".
В данный момент для этого приходится применять пхп инклуид, дырявя при этом систему, чтобы она могла обрабатывать пых в своих tpl шаблонах.
Смысл идеи в том, чтобы можно было вставлять свои .tpl файлы в main.tpl, или в другие места. ) Указывая при этом либо абсолютный путь к подключаемому .tpl файлу, либо пихая этот файл в папку с шаблонами.
Это будет весьма удобным и полезным расширением ядра NG cms. Как говорится, предусматривать нужно всё, а NG cms самая предусмотрительная из тех, что я когда-либо встречал. Баги - мелочи, но ядро очень гибкое. )
Баги и пожелания:
1. Если cms устанавливается не в корень сайта, а в каталог, то в настройках ЧПУ приходится вручную забивать к каждому пункту /имя_каталога/. - мелочь )
2. Форма регистрации (auth_basic) - мессаги о неправильно введенных формах не выводятся, кроме капчи. + неправильно введенная капча подсвечивается зеленой галочкой.
3. Комментарии.
3.1 Гости могут использовать логины зарегистрированных пользователей. хотя проверку одинаковых мэйлов можно включить Я вообще сделал вот так: http://legend.zxs.ru/news/ (гостям не нужно ничего вводить кроме капчи, в комментариях их единый логин "Гость", обязать вводить мэйл при-этом тоже можно, просто мне не нужно было.)
3.2 Листинг - жесть )) Предлагаю подгружать странички аяксом. Комментарии не особо важны для индексации, а тем-более пользователю cms можно предоставить право выбора листинга.
3.3 Кнопка "ответить". Предлагаю разбить на две кнопки:
а) "Редактировать" - ведет туда-же, куда в данный момент ведет кнопка "ответить".
б) "Ответить" - открывает JS форму с полем в одну строчку, куда вводим текст и жмем "Ок".
3.4 Кнопка "Удалить" - эх если-бы аяксом удаляла без переходов на страничку ID комментария, хотя это не глобальная проблема ) Но как вариант - можно сделать так, чтобы комментарий не удалялся, а весь его текст замещался фразой "Удалено модератором Вася". А удалять полностью комментарии уже через интерфейс админки.
4. Журналист не должен быть способен редактировать свои новости, которые опубликованы редактором, заливать файлы и изображения на сервер. ) Хотя 1,2,3 можно было бы включать в настройках..
Вроде пока всё из того, что заметил.. И да, за utf-8 будущее!!
Реализовал.. Если кому интересно, прилагаю инструкцию (Администраторы cms, поправьте меня, если я где накосячил):
1. добавляем в файл
...engine/lang/russian/site/comments.ini
guest = "Гость"
...engine/lang/english/site/comments.ini
guest = "Guest"
2. редактируем файл ...engine/plugins/comments/inc/comments.add.php
Комментируем следующие отрезки кода:
if ($_POST['name'] && $_POST['password']) {
$auth = $AUTH_METHOD[$config['auth_module']];
$user = $auth->login(0, $_POST['name'], $_POST['password']);
if (!is_array($user)) {
msg(array("type" => "error", "text" => $lang['comments:err.password']));
return;
}
}
$SQL['mail'] = secure_html(trim($_POST['mail']));
if (!$SQL['author']) {
msg(array("type" => "error", "text" => $lang['comments:err.name']));
return;
}
if (!$SQL['mail']) {
msg(array("type" => "error", "text" => $lang['comments:err.mail']));
return;
}
// Check if author name use incorrect symbols. Check should be done only for unregs
if ((!$SQL['author_id']) && (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $SQL['author']) || strlen($SQL['author']) > 60)) {
msg(array("type" => "error", "text" => $lang['comments:err.badname']));
return;
}
if (strlen($SQL['mail']) > 70 || !preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $SQL['mail'])) {
msg(array("type" => "error", "text" => $lang['comments:err.badmail']));
return;
}
// Check if guest wants to use email of already registered user
if (pluginGetVariable('comments', 'guest_edup_lock')) {
if (is_array($mysql->record("select * from ".uprefix."_users where mail = ".db_squote($SQL['mail'])." limit 1"))) {
msg(array("type" => "error", "text" => $lang['comments:err.edupmail']));
return;
}
}
Закомментировать - значит поставить перед каждой строчкой кода //.
Заменяем
$SQL['author'] = secure_html(convert(trim($_POST['name'])));
на
$SQL['author'] = $lang['guest'];
Затем из шаблона формы можно смело убирать поля для введения мейла, логина и пароля.
Смысл саюжа: Если вашим гостям разрешено оставлять комментарии, то ничего кроме капчи им вводить не нужно. + поскольку они все будут с именем "Гость", то логины зарегистрированных юзеров использовать не смогут.
paradoxx, я дизайн формы регистрации не переделывал еще пока с новостями ковыряюсь, там почти всё доделал. )
Разобрался..
@require_once('core.php');
@include_once ('trash/securimage.php');
if(isset($_REQUEST[session_name()])){
session_start();
}
$captcha = new securimage();
$captcha->show();
if($_REQUEST[session_name()]){
$_SESSION['captcha'] = $captcha->getCode();
}
ROZARD, а можно сделать плагин, который будет импортировать сторонние .tpl файл(ы) в тело main.tpl?
Если да, то расскажите пожалуйста
замени в index.php
echo $tpl -> show($mainTemplateName);
на
eval (' ?' . '>' . $tpl -> show($mainTemplateName) . '<' . '?php ');
перепробовал уже все, что можно. и всеравно проверка не работает
@require_once('core.php');
@include_once ('securimage.php');
if(isset($_REQUEST[session_name()])){
session_start();
}
$cnumber = isset($_SESSION['captcha'])?$_SESSION['captcha']:1234;
$captcha = new securimage();
if($_REQUEST[session_name()]){
$_SESSION['captcha'] = $captcha->show($cnumber);
}
http://legend.zxs.ru/news/register/
Не работает проверка капчи..
Содержимое captcha.php
include 'securimage.php';
usleep(300000);
$img = new securimage();
$img->show();
Помогите пожалуйста разобраться с проверкой )
Тaк удобнe зaто, но дaную форму можно просто удaлить с дизaйнa.
Сабж вопроса уже находится во 2-м моем сообщении..
Косяк
Гости могут использовать логины зарегистрированных пользователей.
Вопрос меняет поворот:
Как убрать вообще формы логина, пароля, мейла для гостей и тех, кто добавляет комменты без регистрации помечать, как "гость" в авторстве комментария?
Зарегистрированный пользователь всегда сможет воспользоваться формой логина вверху сайта на мой взгляд...
Баг, или фича.
В комментариях не зарегистрированный пользователь может оставлять сообщения от имени зарегистрированных пользователей. Сделали возможность запрета использования одинаковых мейлов, но с логинами упустили момент
Подскажите пожалуйста, как отключить проверку?
т.е. из формы комментариев вообще хочу удалить блок, где нужно ввести E-mail
Сделай на JS проверку
<div id="more_comments" style="display:none;....">[more_comments]Перейти на страницу: {more_comments}[/more_comments]</div>
Если в блоке с id "more_comments" нихрена нет, то ничего не меняем, а если там что-то есть, то отображаем:
document.getElementById('more_comments').style.display='block';
В жс сейчас углубиться не могу, тк не помню как точно нужно реализовывать, но суть идеи надеюсь ясна
А что дает автоурезание слов? Оно кукисы на выходе порежет? Просто в CMS есть баг из-за которого длинные ссылки дать нельзя -они урезаются "урезателем длинных слов", так что приходится ставить максимальную длинну слова в несколько сотен символов.
Лучше на 20 поставить, ссылочки в комментариях не так важны, как безопасность. При желании можно и поудалять пробельчики, если нужно перейти по ссылке
+1
http://legend.zxs.ru/news
Почти весь функционал обрезал, многое подработал под себя, тк Вашу cms использую в качестве новостной. )
Выражаю благодарность за ваше детище, NG практически полностью соответствует моим запросам, а всё - что не соответствует, настраивается не без помощи поддержки на форуме, но в сравни с другими cms с лёгкостью, т.к. в движке всё предусмотрено.
Очень долго искал подходящую cms под новостную ленту, перепробовал более десятка различных сms, NG лучшая!
Wolverine, точно, странно только то, что это было в tpl по-умолчанию. Я менял только окружающую оболочку, а в сердцевине новости оставлял исходный код:
[icon]<img src="{icon}" alt="" border="0" />[/icon][update]<br />{l_updated}{update}<br /><br />[/update]{short-story} [more]Раздел..[/more] {full-story}<div style="padding: 10px; text-align:center;">{pagination}</div><br />[isplugin finance][finance]<br />Стоимость доступа составляет: ${fin_price} [fin_on] <b>(оплачено)</b>[/fin_on][fin_off](не оплачено)[/fin_off][/finance][/isplugin]<br />{plugin_similar_tags}[isplugin rating]{plugin_rating}[/isplugin][isplugin tags][tags]<div align="right"><img src="{tpl_url}/images/tag.png" width="13" height="13" alt="Мета-теги" /> {tags}</div>[/tags][/isplugin]
Удалил содержимое между тегами [more][/more] и всё встало на свои места. Еще раз спасибо
Присоединюсь к сабжу, комментарии в движке можно заключть в <noindex> например, для SEO
Считать первую страницу более короткой чем остальные? ... хм, а это идея! - А вот это логичная, разумная мысль и вполне себе реализуется. (http://7clan.ru/news/2009/03/26/n256e11/ вот пример подобной реализации, единственное различие от NG - там комментарии полностью на аяксе, т.е. нет ссылок на странички)
Виталий, отписал вам в асю по-поводу комментариев.
Wolverine, Насчет тега <!--more-->, создал тестовую новость: http://legend.zxs.ru/news/2010/01/26/prevyu/
Ее код таков:
превью
<!--more-->
полная новость
:angry:
А на деле получается следующее:
превью
Раздел..
полная новость
По остальным вопросом большое спасибо за развёрнутую информацию, все необходимые фиксы внёс Кроме спойлера. С ним отдельно додумывать буду.
Никак не могу найти файлы, которые отвечают за следующие вещи:
1. {ip} в комментариях "кто это?" хочу поменять на вывод самого IP ввиде ссылки той же.
2. "Цитата" фраза заключается в теги <b>, мне нужно заменить на <strong>
3. тег [spoiler], хочу попытаться переделать заданное "Раскрыть" на "Показать", "Спрятать" в зависимости от состояния, show/hide.
В идеале конечно тег должен быть приблизительно таким: "[hide="спрятать" show="показать"]...[/hide]", где можно редактировать текст исходного и конечного состояния ссылки хайда.
Еще кажется тег <!--nextpage--> не работает (либо я не понял, как его правильно использовать)
И при использовании тега <!--more--> добавляется нежелательное "Раздел..."
+ в добавлении новости не хватает тега (или я накосячил, хотя исходники админки не ковырял вообще, только темплейты сайта редактировал)
Кстати, мало-ли кому пригодится, шаблон формы комментариев с div версткой.
<script type="text/javascript">
var cajax = new sack();
function reload_captcha() {
var captc = document.getElementById('img_captcha');
if (captc != null) {
captc.src = "{captcha_url}?rand="+Math.random();
}
}
function add_comment(){
// First - delete previous error message
var perr;
if (perr=document.getElementById('error_message')) {
perr.parentNode.removeChild(perr);
}
// Now let's call AJAX comments add
var form = document.getElementById('comment');
//cajax.whattodo = 'append';
cajax.onShow("");[not-logged]
cajax.setVar("name", form.name.value);
cajax.setVar("password", form.password.value);
cajax.setVar("mail", form.mail.value);[captcha]
cajax.setVar("vcode", form.vcode.value); [/captcha][/not-logged]
cajax.setVar("content", form.content.value);
cajax.setVar("newsid", form.newsid.value);
cajax.setVar("ajax", "1");
cajax.setVar("json", "1");
cajax.requestFile = "{post_url}"; //+Math.random();
cajax.method = 'POST';
//cajax.element = 'new_comments';
cajax.onComplete = function() {
if (cajax.responseStatus[0] == 200) {
try {
resRX = eval('('+cajax.response+')');
var nc = document.getElementById('new_comments');
nc.innerHTML += resRX['data'];
if (resRX['status']) {
// Added successfully!
form.content.value = '';
}
} catch (err) {
alert('Error parsing JSON output. Result: '+cajax.response);
}
} else {
alert('TX.fail: HTTP code '+cajax.responseStatus[0]);
}
[captcha]
reload_captcha();[/captcha]
}
cajax.runAJAX();
}
</script>
<div id="new_comments"></div>
<div style="margin:20px auto; width:400px;">
<form id="comment" method="post" action="{post_url}" name="form" [ajax]onsubmit="add_comment(); return false;"[/ajax]>
<input type="hidden" name="newsid" value="{newsid}" />
<input type="hidden" name="referer" value="{request_uri}" />
<div style="font-size:80%; color:#666;">
{l_addcomment}<br>
[not-logged]
<div style=" text-align:right; border:1px dotted #BBBBBB; color:#FF3300; font-size:120%">
<label for="name">{l_name} </label><input type="text" size="30" name="name" value="{savedname}" /><br />
<label for="password">{l_password} <small>{l_ifreg}</small> </label><input class="password" type="password" maxlength="16" size="30" name="password" value="" /><br />
<label for="mail">*{l_email} </label><input class="email" type="text" size="30" maxlength="70" name="mail" value="{savedmail}" /><br />
<label for="vcode">[captcha]
*<img id="img_captcha" onclick="reload_captcha();" src="{captcha_url}/captcha.php?rand={rand}" alt="captcha" />
[/captcha] </label><input class="important" type="text" name="vcode" maxlength="5" size="30" />
</div>
[/not-logged]
<div style="width:150px; float:left; clear:left;">
<a href="javascript:ShowOrHide('bbcodes');"><img src="{tpl_url}/images/arr_bot.gif" border="0" />{l_bbcodes}</a><br />
<div id="bbcodes" style="display : none;"><br />{bbcodes}</div>
</div>
<div style="width:250px; float:right; clear:right;">
<a href="javascript:ShowOrHide('smilies');"><img src="{tpl_url}/images/arr_bot.gif" border="0" />{l_smilies}</a><br />
<div id="smilies" style="display : none;"><br />{smilies}</div>
</div>
</div>
<textarea name="content" id="content" style="width:400px;" rows="8"></textarea>
<input type="submit" class="button" value="{l_add}"/> <input type="reset" class="button" value="{l_clear}" />
</form>
</div>
Подгонял под сайт по ширине в 400px, выравнивается по середине. результат можете посмотреть тут: http://legend.zxs.ru/news/2010/01/25/testovaya_novost/
пысы, если у кого вопросы по дизайну - пишите, постараюсь помочь
mitusx@bk.ru