Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-05-18 17:21:40

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

общее построение системы

поползав по форуму понял, что у всех сходные проблемы:
оформление главной страницы, публикация материалов в разной форме на разных страницах...
предлагаемые решения - не более, чем затычки.

текущие проблемы, как мне кажется, связаны с тем, что в системе понятия "шаблон main" и категория "главная" связаны жестко. и шаблон "main" является не общим шаблоном оформления страниц, а еще и оформлением главной категории. + понятие "главная" вынесена в отдельный контекст, что сильно мешает

предлагаю следующее решение по модификации системы, решающее сразу много проблем:
- есть шаблон "main"  в нем есть специальная область {mainblock}
- есть категории, создаваемые пользователем. даже "главная" создается пользователем (ну или по умолчанию уже есть при инсталяции)
- далее, для каждой категории пользователь указывает шаблон, который будет использован  в области {mainblock} при выборе пункта меню, связанного с этой категории.
(сейчас так работают статичные страницы - надо просто распространить это на категории)
- при публикации новости человек просто задает набор категорий, к которым относится новость (где она будет отображаться)
- для каждой категории создаются шаблоны публикации новостей в них. таких образом, одна и та же новость при публикации в разные категории может выглядеть по разному (пример: новость "встреча" выглядит либо как таблица с указанием где и когда, либо просто как короткое объявление)
- когда надо применить плагин, он просто прописывается в шаблон категории или статик страницы (например, {lastnews_discount})
- в настройке плагина добавляется поле "категории", куда пользователь набирает, в какой категории (каких категориях) он будет активен (надо, если общий шаблон для разных категорий). (это вместо текущих "морда" и т.д.)
- в плагинах, допускающих множественное использование, типа ads, lastnews вводится поле "имя" для вызовов типа {ads_banners}, {lastnews_discount} вместо теперяшнего {ads1}
- в lastnews делается возможность создавать с панели управления несколько лент, указать имя экземпляра и включенные в публикацию категории

ну и убираются текущие понятия "морда", "публиковать на главной" за ненадобностью

дальнейшие трудности в использовании связаны с тем, что
категория = меню = страница = вид

если разделить понятия "данные" и "вид", получится более удобная схема
данные - категория - модуль - страница и отдельно "меню", которых может быть несколько

"данные" - материалы, статические, либо новостные
"категория" - атрибут данных для обработки, поиска, публикации, и др.
"модуль" - вид представления материала на странице
"страница" - набор "модулей"
"меню" - набор ссылок. в идеале как минимум двухуровневая.

ну и плагины, которые подразделяются на обработчики и визуализаторы

Изменено Dmil (2009-05-21 10:48:43)

Не в сети

#2 2009-05-18 18:05:42

RocketBoy
Участник
Откуда Калининград
Зарегистрирован: 2008-10-14
Сообщений: 552
Рейтинг :   27 
Сайт

Re: общее построение системы

Вся твоя куча букв, делается, В ЛЕГКУЮ. 10-15 строчек, только надо написать.
Ты лучше напиши (или ссылку на сайт для примера), что ты хочешь получить и тебе быстренько напишут, как это сделать. И на этом примере все поймешь, как тут все супер работает.

ЗЫ.Научи как ты так много слов генерируешь за короткое время.

Не в сети

#3 2009-05-18 18:17:23

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

я уже вижу как тут все супер работает...
в шаблоне блоки {ads1}, {ads2}, {ads3} которые непонятно, что значат.
в самих блоках вместо текста html коды и скрипты
+ ручками код править в 10-местах (и ещё не забыть, где правил, если переустановить надо)
+ писать запросы sql
+ не работающее меню (попробуйте-ка подсветить пункт меню "главная"!)
+ вместо стройной концепции - заплатки в плагинах в виде "морда" - "не морда"

а вопросы я свои публиковал в "как сделать..." на 9 из 10 ответов нет.
на еще пару - мне прислали патчи
это разве супер-система?

Изменено Dmil (2009-05-18 18:21:01)

Не в сети

#4 2009-05-18 20:03:33

RocketBoy
Участник
Откуда Калининград
Зарегистрирован: 2008-10-14
Сообщений: 552
Рейтинг :   27 
Сайт

Re: общее построение системы

Это именно - Супер система.
Про {ads} писать бессмысленно, ибо если ты до сих пор не понял, что они значат, то ...
-не в 10 местах, а в 2 (index.php и lastnews.php (как правило этого достаточно))
-зачем тебе надо писать sql запросы?
+согласен, меню не фонтан

Ты просто так задаешь вопросы в "как сделать...", что ни Х не понятно, что ты хочешь.

Ты лучше напиши (или ссылку на сайт для примера), что ты хочешь получить и тебе быстренько напишут, как это сделать. И на этом примере все поймешь.

Не в сети

#5 2009-05-19 14:26:00

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

я и написал уже раз 5:
- мне надо оформить главную страницу. не получается! причина - невозможность создания своего шаблона для этой страницы.
при попытках выкрутится, описанных на форуме, перестают работать подсветки меню и галки "опубликовать на главной" теряют свой смысл.
- использование блоков ads с параметром "морда" не работает, если элементом дизайна старниц являются бордерные таблицы. границы пустых ячеек видны на других страницах
- стоит в настройках категории прописать alt url - и пункт меню перестает подсвечиваться
- создание мультимедиа галереи непонятно
- выдача новостей через lastnews из заданных категорий требует работы с ID категорий, а не с именами, что затрудняет понимание и создание сайта, а в некоторых случах это требует еще и выписывание sql запросов.

где ответы по существу?

пример оформления главной страницы:
модуль "скидка месяца" - показ ближайшей к дате просмотра сайта новости категории "скидка"
модуль "занятия сегодня" - показ новости категории "занятия" для текущей даты посмотра
модуль "о сайте" - короткая версия текста с переходом на полный текст статик страницы
модуль дизайна с картинками и текстом
модуль ленты новостей, где новости из разных категорий показываются единым шаблоном

ну и ес-но дложны подсвечиваться все пункты меню при переходе на все категории, включая "главную" и статик страницы.

ну и? предложения как это сделать?

Изменено Dmil (2009-05-19 14:31:54)

Не в сети

#6 2009-05-19 15:19:26

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

мне надо оформить главную страницу. не получается! причина - невозможность создания своего шаблона для этой страницы.
при попытках выкрутится, описанных на форуме, перестают работать подсветки меню и галки "опубликовать на главной" теряют свой смысл.

возможность есть как в виде хака, так и с помощью ads. при обоих способах подсветка меню работать не перестает.
что значит "галки "опубликовать на главной" теряют свой смысл"?

использование блоков ads с параметром "морда" не работает, если элементом дизайна старниц являются бордерные таблицы. границы пустых ячеек видны на других страницах

отписал в другой теме

стоит в настройках категории прописать alt url - и пункт меню перестает подсвечиваться

я давал фикс, чтобы они подсвечивались, он чем-то не устроил?

создание мультимедиа галереи непонятно

что есть "мультимедиа галерея" в твоем понимании, и причем тут CMS? для галерей есть соответствующие скрипты -- Gallery2, к примеру

выдача новостей через lastnews из заданных категорий требует работы с ID категорий, а не с именами, что затрудняет понимание и создание сайта, а в некоторых случах это требует еще и выписывание sql запросов.

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

Не в сети

#7 2009-05-19 15:53:53

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

- покажите, плиз, где описан фикс с url-ами - не нашел, попробую
- по поводу своего шаблона для каждой категории. делал так:
  вставил патч в index.php где для каждой категории пописал вызов своего шаблона
  прописал DirectoryIndex index.php?category=main
  перестали подсвечиваться активные пункты меню
  и при этом "опубликовать на главной" приводит к публикации материала в никуда.
- цитата из ридми ластньюс:
"> function plugin_lastnewsGenerator($orderby = '', $categories = array(), $overrideParams = array());

Данная функция принимает следующие параметры:
$orderby - порядок сортировки новостей в БД (напрямую передаётся в SQL запросе).
    Используйте с осторожностью, т.е. неправильное указание вызовет ошибку исполнения."
я, конечно, утрировал про прямой запрос, но тем не менее...
суть  замечания следующая - формы запросов дожны быть не в коде программы, а юзер-меню в виде галочек и стрелочек и с проверками ввода, чтоб не накосячить.
- по поводу ласт ньюс и ID. ей-богу не понимаю, почему надо заставлять пользовать ID. в чем сложность в программе по имени категории узнать её ID для формирования запроса? и не заставлять человека опрерировать машинноподобными терминами. комп для человека, а не человек для компа!
- тоже самое по поводу формирования имен блоков. ads1. ads2. lastnews1, lastnews2...
что мешает распарсить имя, выделить из него текст и вызвать нужный блок? чтобы было написано {ads_banners}, {lastnews_discount}
все равно сейчас оттуда цифра выделяется....

сорри за резкости:
система нравится, хочется лучшего!

Изменено Dmil (2009-05-19 15:56:10)

Не в сети

#8 2009-05-19 16:09:31

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

прописал DirectoryIndex index.php?category=main

не уловил сути, зачем?

перестали подсвечиваться активные пункты меню

они не перестали, просто когда скрипт встречает "index.php?category=main?category=тут_альт_имя_любой_категории" он не знает что ему подсвечивать, что вполне логично

и при этом "опубликовать на главной" приводит к публикации материала в никуда.

как это никуда? оно и приводит на главную, там их и надо искать, а категория main главной не является, как бы ты этого не захотел

покажите, плиз, где описан фикс с url-ами - не нашел, попробую

http://ngcms.ru/forum/viewtopic.php?id=437

по поводу ласт ньюс и ID. ей-богу не понимаю, почему надо заставлять пользовать ID. в чем сложность в программе по имени категории узнать её ID для формирования запроса? и не заставлять человека опрерировать машинноподобными терминами. комп для человека, а не человек для компа!

а если есть две категории с одинаковым названием? вот-вот, а id уникален

Не в сети

#9 2009-05-19 16:33:00

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

- DirectoryIndex index.php?category=main прописан, чтобы при открытии сайта открылась моя задизайненная главная страница.
- ес-но, что моя главная при этом не является главной для программы! так ведь это сделано, чтобы решить проблему дизайна поля главной страницы. других-то внятных решений пока не видно!
- по поводу уникальности имен категорий:
а это всего-навсего проблема юзер интерфейса ввода alt name и не более того. запретите иметь одинаковые alt name и все!

Не в сети

#10 2009-05-19 16:38:35

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

так ведь это сделано, чтобы решить проблему дизайна поля главной страницы. других-то внятных решений пока не видно!

о боги...
вот топик: http://ngcms.ru/forum/viewtopic.php?id=29
применяешь второй хак, используешь для главной mainroot, для всех остальных main
никакого ?category=main там ни разу не нужно

запретите иметь одинаковые alt name и все

название категории != альт. имя. или тебе теперь нужно по альт. имени, а не по названию? определись уж wink

Не в сети

#11 2009-05-19 16:48:32

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

просмотрел еще раз ветку.
там много чего написано.
вы об этом коде?

if ((!$action)&&(!$category)&&(!$cstart)&&(!$year)&&(!$month)&&(!$id)) {
$masterTemplateName = 'mainroot';
}

я его, видимо, пропустил когда смотрел до этого.
это он позволяет иметь свой шаблон поля главной страницы?

и тут не решен еще один вопрос:
- с помощью xfileds созданы доп. поля для новостей. создан шаблон для отбражения новости данной категории (например, таблица)
теперь, если надо показать новность на главной, она отображается в виде таблицы, а не главным шаблоном

- при генерации запросов в lastnews ес-но использовать не имя, а alt name

Изменено Dmil (2009-05-19 16:54:54)

Не в сети

#12 2009-05-19 16:57:32

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

с помощью xfileds созданы доп. поля для новостей. создан шаблон для отбражения новости данной категории (например, таблица)
теперь, если надо показать новность на главной, она отображается в виде таблицы, а не главным шаблоном

при отображении новости используется шаблон, указанный в настройках категории. если надо отобразить новость на главной с другим шаблоном, можно использовать lastnews. если я правильно вопрос понял.

Не в сети

#13 2009-05-19 17:22:33

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

да, в lasеnews все отображается как надо, единым шаблоном.
но опять же косяк - использование галки "опубликовать на главной" в этом случае невозможно.
и она полностью теряет свой смысл.
приходится все задачи по селекту категорий для отображения переложить на lastnews.
и прописывать все нужные категории для отбражения через ID.
и если потом добавил/удалил категорию - не забыть залезть в код плагина, и, проверив ID категории, добавить/удалить ее из запроса.

есть более человеколюбивые варианты?

Изменено Dmil (2009-05-19 17:23:46)

Не в сети

#14 2009-05-19 17:28:53

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: общее построение системы

Скока букф )) Вставлю свои две копейки )) Dmil, сама не очень давно работаю с NG однако никаких проблем с "преобразованием/воплощением" чего-либо из полета своих мыслей не возникало, и это при том, что я не программер, а дизайнер/верстальщик.

По теме - думаю стоит сразу сказать, что NG пишут не для тебя, а под "обобщающий функционал" в целом, а не как тебе хочется или как удобно, по гибкости NG превосходит многие платные системы, это если учесть, что работала не с одним десятком. Второй момент - это еще молодая система, и третий момент - пишут ее не сто и даже не десять человек, посему "скорость" внесения/добавления/..... чего-либо в функциональность системы не может опережать скорость идей.

Свои конструктивные идеи или пожелания можно и спокойней выражать, а не из серии, что за нах такой, тем более за это по голове никто не настучит, а стараются помочь.

Не в сети

#15 2009-05-19 17:35:38

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

и прописывать все нужные категории для отбражения через ID.

а зачем? просто не указывай категории, тогда будут отображаться новости из всех сразу

при генерации запросов в lastnews ес-но использовать не имя, а alt name

можешь использовать вместо id вот такую громоздкую конструкцию:

$GLOBALS['catz']['тут_альт_имя']['id']

если оно и правда легче, то на здоровье

Не в сети

#16 2009-05-19 17:56:21

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

по поводу наездов - это не наезды, а деловой разговор.
и от большой любви smile
=============

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

- а может быть, есть возможность пропатчить код, чтобы при отображении на главной брались шаблоны news.short и news.full из корня папки шаблона для всех новостей?
--------------
- и все-таки, убрать само понятие "главная" - и нет проблем... в каких категориях разрешил отображение новости при создании - там и вывелась, и шаблоном той категории...

Изменено Dmil (2009-05-19 18:40:12)

Не в сети

#17 2009-05-19 18:51:15

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: общее построение системы

Dmil пишет:

- а может быть, есть возможность пропатчить код, чтобы при отображении на главной брались шаблоны news.short и news.full из корня папки шаблона для всех новостей?

Так оно так же и есть, или я о другом думаю?


Dmil пишет:

- и все-таки, убрать само понятие "главная" - и нет проблем... в каких категориях разрешил отображение новости при создании - там и вывелась, и шаблоном той категории...

Оно тоже так и есть, или опять я о другом думаю, если же о самой галке, то убрать в шаблоне checked="checked" и все.

Не в сети

#18 2009-05-20 11:54:36

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

есть категория1, у нее шаблон1
есть категория2, у нее шаблон2

теперь при публикации новости я ставлю галку "публиковать на главной".
определяю, что новость должна быть опубликована в категории1.
открываю главную страницу.
вижу свою новость опубликованную в виде шаблон1.

теперь сделаем другое действие:
при публикации новости я ставлю галку "публиковать на главной".
определяю, что новость должна быть опубликована в категории1 и категории2.
открываю главную страницу.
в каком виде будет опубликована новость?

Не в сети

#19 2009-05-20 12:47:58

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: общее построение системы

Dmil пишет:

теперь сделаем другое действие:
при публикации новости я ставлю галку "публиковать на главной".
определяю, что новость должна быть опубликована в категории1 и категории2.
открываю главную страницу.
в каком виде будет опубликована новость?

При выборе шаблона публикации всегда используется шаблон первой по счёту категории.
Ответ: в шаблоне категории1.

Не в сети

#20 2009-05-20 13:06:54

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

первой по счету сортировки?
первой по номеру ID?
первой по порядку выбора для публикации?

Не в сети

#21 2009-05-20 13:23:14

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: общее построение системы

Третий вариант

Не в сети

#22 2009-05-20 13:46:26

graf
Участник
Откуда Днепр
Зарегистрирован: 2008-10-13
Сообщений: 394
Рейтинг :   

Re: общее построение системы

ну что, какой счет?

Не в сети

#23 2009-05-20 14:05:39

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

ага, то есть возможен хак:
- делаем категорию "вид для публикации" со своим шаблоном.
- при публикации материала первой указываем эту категорию.
криво, но, видимо, работать будет.

нет! не работает как надо - теперь при публикации на странице категории2 тоже все печатается шаблоном категории1

есть другое решение?

мне надо следующее:
есть категория1, категория2
есть шаблоны шаблонкатегории1, шаблонкатегории2
новость публикуется: на главную, в категорию1, в категорию2
если я открываю главную страницу, мне все видеть шаблоном главной страницы
если захожу на страницу категории 1 - шаблоном "шаблонкатегории1"
если захожу на страницу категории 2 - шаблоном "шаблонкатегории2"

Изменено Dmil (2009-05-20 14:58:50)

Не в сети

#24 2009-05-20 18:46:06

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: общее построение системы

Dmil:

Файл: engine/includes/news.php
За выбор шаблона при показе короткой новости отвечают строки 524-532:

// Find first category
$fcat = array_shift(explode(",", $row['catid']));
if ($fcat && $catmap[$fcat] && ($ctname = $catz[$catmap[$fcat]]['tpl'])) {
	// Check if directory exists
	if (is_dir($templatePath.'/ncustom/'.$ctname))
		$callingCommentsParams['overrideTemplatePath'] = $templatePath.'/ncustom/'.$ctname;
}

Тебе достаточно строку:

$fcat = array_shift(explode(",", $row['catid']));

заменить на:

$fcat = trim(array_shift(explode("-", $_REQUEST['category'])));

Не в сети

#25 2009-05-21 11:01:38

Dmil
Участник
Зарегистрирован: 2009-05-15
Сообщений: 34
Рейтинг :   

Re: общее построение системы

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

Изменено Dmil (2009-05-21 11:17:54)

Не в сети

Подвал раздела

Работает на FluxBB