Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Установка Модулей (http://forum.mynuke.ru/forumdisplay.php?f=10)
-   -   Категории в модуле Pages (http://forum.mynuke.ru/showthread.php?t=85)

Brigadir 27.03.2005 20:08

Категории в модуле Pages
 
Модуль Pages предоставляет возможность неограниченной вложенности категорий, однако вариант показа всех категорий (а тем более в форме выпадающего списка) является достаточно неудобным при большом количестве категорий и подкатегорий.
Вопрос:
Как можно сделать, чтобы при входе в подкатегорию уровня №1 вместо выпадающего списка появлялась строка: "Список категорий >> Подкатегория №1" (с соответствующими ссылками),
а при входе в подкатегорию №2 - строка: "Список категорий >> Подкатегория №1 >> Подкатегория №2" и т.д.?
Соответственно на "главной" должно быть просто "Список категорий"..

Soniks 27.03.2005 22:10

Brigadir это осуществимо, но для этого потребуется большее количество запросов к базе данных, что будет перегружать системму

Brigadir 27.03.2005 22:40

Всегда чем-то приходится жертвовать... :sad:
В данном случае я выбираю удобство модуля!
Soniks, подскажите пожалуйста как сделать... :smile:

Soniks 29.03.2005 19:25

Brigadir Вот сделал хак:
http://mynuke.ru/modules.php?name=D...op=getit&lid=51
:cool:

Brigadir 29.03.2005 21:03

Цитата: Сообщение от Soniks
Brigadir Вот сделал хак:
http://mynuke.ru/modules.php?name=D...op=getit&lid=51
:cool:


Вижу, вижу!!! :wink:
Soniks! Огромное спасибо! Полетел устанавливать!

Brigadir 29.03.2005 22:49

Всё установил! :smile:
Хак - класс!

Soniks 29.03.2005 22:57

Brigadir я рад :smile:

Brigadir 30.03.2005 01:48

Soniks, одна вот только маленькая проблемка...
Предположим есть 2 главных раздела: "Спорт" и "Юмор"
В разделе "Спорт" есть:
- Формула 1
- Мото GP

При выборе раздела "Спорт" линейное меню остается прежним "Pages" и в дальнейшем при выборе подраздела "Формула 1" меню показывает:
Pages > Формула 1
Т.е. как бы "Спорт" теряется... :oooo:

Доступно объяснил проблему? :oops:
Как это можно исправить?

А в остальном всё отлично работает!

Soniks 30.03.2005 02:20

нет, ничего не понял :oooo:
и что за "Pages" в меню?
Я все протестировал, все работает ок!

Brigadir а не понял о чем ты =)
хак переправил, качай заново!

Brigadir 30.03.2005 02:31

Тьфу... не "Pages", а "Главная" :oops:
Постараюсь ещё разок объяснить....
Soniks, постарайся воссоздать следующее...

Заходим в Pages:
сверху "Произвольный вступительный текст...", ниже - две категории (для примера) "Первый раздел" и "Второй раздел"...
"Первый раздел" имеет 2 подкатегории "Подраздел 1", "Подраздел 2".

Нажимаю на "Первый раздел":
В линейном меню остается "Главная", пониже появляется "Подраздел 1"

Нажимаю на "Подраздел 1":
В линейном меню - "Главная > Подраздел 1", а вот промежуточного "Первый раздел" нету :oooo:
Если ползти "глубже", то всё нормально, т.е. проблемка возникает с неотображением главных категорий...

А сейчас нормально объяснил? :jumplol:

Как то уже стыдно спрашивать... :oops:
Умел бы - сам подправил бы.

Главная >> Страница первая >> Страница вторая

А можно сделать так, чтобы "Страница первая" не просто в форме текста шла, а в виде ссылки, как и все остальные подкатегории?

Soniks 30.03.2005 02:43

Brigadir смотри выше!
Цитата А можно сделать так, чтобы "Страница первая" не просто в форме текста шла, а в виде ссылки, как и все остальные подкатегории?

та так оно и есть!

я этот хак перезалил еще раз, подправил кое что

Brigadir 30.03.2005 02:52

:jumplol:
Всё заработало! Спасибо!

Brigadir 31.03.2005 22:09

Soniks, добрый вечер!
"Небольшая" проблемка вылезла наружу...
Дело в том, что при добавлении статьи в модуле Pages всё проходит на ура.
Но когда эту уже размещенную статью желаешь отредактировать, то текст в режиме предпросмотра присутствует, а ниже, во встроенном редакторе его просто нет :oooo: Там вообще пустой редактор...

Вот такая вот беда... Частенько приходится редактировать... А так хочется "добить" это дело до предидеального состояния! Опять же не знаю как... :oops:

Soniks 31.03.2005 22:42

Brigadir да, одну строчку забыл добавить
Открой фаил admin/modules/pages.php
Найди в функции function pages_edit_pr_page приблизительно 617 строку:
PHP код:
 $oFCKeditor->InstanceName "bodytext" 
и ниже добавь:
PHP код:
 $oFCKeditor->Value "$bodytext"


Архив перелил!

Brigadir 14.04.2005 23:42

А вот еще хотелось бы узнать:
как сделать так, чтобы последние публикации отображались не только на главной странице, но и на каждой последующей подкатегории (т.е. последние публикации, соответствующие этой категории) ?
Буду признателен если кто подскажет... :wink:

Soniks 15.04.2005 00:59

Brigadir надо все проделать по аналогии как и при выводе первой страницы в этом модуле, за это отвечает функция main()
Вот этот код там какраз отвечает, за вывод новинок (~152):
PHP код:
 if ($newhome == 1) {
    
$sql3 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_smallpages WHERE cid !='0' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum";
    
$result3 $db->sql_query($sql3);
    if (
$numrows $db->sql_numrows($result3) > 0) {
    echo 
"<b>"._NEWPAGES."</b><hr>";
    while (
$row $db->sql_fetchrow($result3)) {
    
$p_pid $row[pid];
    
$p_title $row[title];
    
$p_hometext $row[hometext];
    
$p_hometext stripslashes(check_html($p_hometextnohtml));
    
$p_date date("d/m/Y"$row["postdate"]);
    echo 
"<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\"><b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>";
    }
    }
    } 

добавить его можно в функциии cat($cid) и showcat($cid). Эти две функции отличаются тем, что одна отображеет в себе категории и под-категории, а вторая только содержимая категории, т.е. если в категории нет под-категорий, то используется ф-ция showcat, а если есть подкатегории, то cat. Поэтому выбирайте сами где вы хотите видеть эту информацию об обновлении туда и добавляйте или же сразу в обе
в cat($cid):
найдите:
PHP код:
 $sql4 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_smallpages WHERE cid ='$cid' AND active = '1' ORDER BY pid DESC"

Выше добавьте:
PHP код:
 if ($newhome == 1) {
    
$sql3 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_smallpages WHERE cid ='$cid' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum";
    
$result3 $db->sql_query($sql3);
    if (
$numrows $db->sql_numrows($result3) > 0) {
    echo 
"<b>"._NEWPAGES."</b><hr>";
    while (
$row $db->sql_fetchrow($result3)) {
    
$p_pid $row[pid];
    
$p_title $row[title];
    
$p_hometext $row[hometext];
    
$p_hometext stripslashes(check_html($p_hometextnohtml));
    
$p_date date("d/m/Y"$row["postdate"]);
    echo 
"<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\"><b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>";
    }
    }
    } 

в showcat($cid):
найдите:
PHP код:
 $sql "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate, counter FROM ".$prefix."_smallpages WHERE cid ='$cid' AND active = '1' ORDER BY pid DESC limit $offset$numpage"

Выше добавьте:
PHP код:
 if ($newhome == 1) {
    
$sql3 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_smallpages WHERE cid ='$cid' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum";
    
$result3 $db->sql_query($sql3);
    if (
$numrows $db->sql_numrows($result3) > 0) {
    echo 
"<b>"._NEWPAGES."</b><hr>";
    while (
$row $db->sql_fetchrow($result3)) {
    
$p_pid $row[pid];
    
$p_title $row[title];
    
$p_hometext $row[hometext];
    
$p_hometext stripslashes(check_html($p_hometextnohtml));
    
$p_date date("d/m/Y"$row["postdate"]);
    echo 
"<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\"><b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>";
    }
    }
    } 

так же надо добавить в каждую из этих функциию следующие переменные в global (идет сразу после объявлении функции, добавлять надо через запятую, в конце точка с запятой): $newhome,$newhomenum
теперь если в конфиге будет установленно переменной $newhome=1, то помимо отображения новых на главной будет и на остальных категориях!

Brigadir 21.04.2005 21:09

Добрый вечер, Soniks!
Появился еще один вопрос... Надеюсь не надоел ещё... :oops:
Если поможешь решить его, то модуль можно быдет смело называть SoniksPages или Pages by Soniks! :wink:

Суть такова:

Есть много категорий, которые содержат не меньшее количество подкатегорий
Предположим есть категория "Спорт". В ней есть 2 подкатегории:
1. Формула 1
2. Мотоспорт

Допустим, созданию очередную страничку и называю её "Гран-При Австралии" и отношу её в подкатегорию "Формула 1".
Когда открывается модуль Pages, то на главной страничке высвечиваются "Последние публикации", одной из которых будет "Гран-При Австралии".
Пользователь не сможет сразу определить, к какой подкатегории относится данная публикация, поэтому вопрос...
Можно ли сделать вывод не просто названия Последней публикации, а в таком виде:
Спорт > Формула 1 > Гран-При Австралии ?
Но чтобы и "Спорт", и "Формула 1" являлись ссылками на соответствующие разделы/подразделы, а "Гран-При Австралии" - на саму публикацию...

Ну вот, вроде как объяснил... :jumplol:
Это реально проделать? При том, что уровеньподкатегорий может быть и 3-м и 4-м

Soniks 21.04.2005 21:32

Brigadir впринципе все это реально, но как всегда это все бцудет перегружать базу
на днях гляну, как это можно осуществить.

Brigadir 21.04.2005 23:34

Цитата: Сообщение от Soniks
Brigadir впринципе все это реально, но как всегда это все бцудет перегружать базу
на днях гляну, как это можно осуществить.


Soniks, подскажи с чего начать! Может и сам додумаюсь...

Soniks 22.04.2005 00:00

Аналогично вывода линейного меню.
Найди:
PHP код:
 function main() { 

Выше добавь:
PHP код:
 function cat_new_home($cid){
global 
$db$prefix;
$cid intval($cid);
$result $db->sql_query("SELECT title, parentid FROM ".$prefix."_smallpages_categories WHERE cid='$cid'");
list(
$title,$parentid) = $db->sql_fetchrow($result);
if(
$parentid != "0"){
cat_new_home($parentid);
links($cid);
echo 
"$title > </a>";
}
else{
links($cid);
echo
"$title > </a>";
}


Эта функция у нас отвечает за вывод списка категорий до нужной страницы.
В функции main() найди:
PHP код:
 while ($row $db->sql_fetchrow($result3)) {
    
$p_pid $row[pid]; 

Ниже добавь:
PHP код:
 $p_cid $row[cid]; 

Еще чуть ниже найди:
PHP код:
 echo "<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\"><b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>"

замени на:
PHP код:
 echo "<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\">";
cat_new_home($p_cid);
echo 
"<b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>"

Вот и все:wink:

Brigadir 22.04.2005 01:14

Soniks, ну то что ты Энштейн (как было сказано до меня) - это уже понятно :lol:
Всё заработало, но с учетом моей поправочки:
В функции:
PHP код:
 function main() { 


Найти:

PHP код:
 $sql3 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_arktikacontent WHERE cid !='0' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum"


И заменить на:

PHP код:
 $sql3 "SELECT cid, pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_arktikacontent WHERE cid !='0' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum"


Добавлено cid...
Иначе не заработает :jumplol:

Soniks 22.04.2005 01:17

Brigadir да и верно, забыл об этом упомянуть :)

Brigadir 22.04.2005 03:05

Soniks, опять я :jumplol:
Мы тут на второй страничке "беседовали" про последние публикации..
Но видимо не поняли друг друга. Я то хотел:
В главной категории отражаются все новые публикации, а в каждой подкатегории - новые публикации, принадлежащие только ей!
Это можно провернуть как-нибудь?

Soniks 22.04.2005 03:18

Brigadir так там это и осуществленно :smile:

Brigadir 22.04.2005 03:22

Цитата: Сообщение от Soniks
Brigadir так там это и осуществленно :smile:


:oooo: как так?
Вот, допустим, захожу в подкатегорию "Юмор", а у меня высвечиваются последние публикации и из "Юмора" и из "Спорта" (т.е. всё, что было на главной страничке)...
А хотелось бы, чтобы показывались последние ТОЛЬКО из "юмора"...

Soniks 22.04.2005 03:24

Brigadir мот быть ты не правильно чего сделал, там вся суть в запросе sql
Цитата WHERE cid ='$cid'
? перепроверь...

Brigadir 22.04.2005 03:57

Ну вот я совместил два последних моих вопроса...

PHP код:
 if ($newhome == 1) {
    
$sql3 "SELECT cid, pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_smallpages WHERE cid ='$cid' AND active = '1' ORDER BY pid DESC LIMIT $newhomenum";
    
$result3 $db->sql_query($sql3);
    if (
$numrows $db->sql_numrows($result3) > 0) {
    echo 
"<b>"._NEWPAGES."</b><hr>";
    while (
$row $db->sql_fetchrow($result3)) {
    
$p_pid $row[pid];
    
$p_cid $row[cid]; 
    
$p_title $row[title];
    
$p_hometext $row[hometext];
    
$p_hometext stripslashes(check_html($p_hometextnohtml));
    
$p_date date("d/m/Y"$row["postdate"]);
echo 
"<img border=\"0\" src=\"modules/$module_name/images/page_pic.gif\" width=\"10\" height=\"14\">";
cat_new_home($p_cid);
echo 
"<b><a style=\"TEXT-DECORATION: none\" href=modules.php?name=$module_name&go=page&pid=$p_pid>$p_title</a></b><br><i>$p_hometext</i><br>"._SENDDATE.": $p_date<br><br>"


Видимо напрасно?

Soniks 22.04.2005 11:06

Brigadir это можно добавить, но только не в функцию main, а в другие две и еще надо добавить в конце скобки!

Brigadir 22.04.2005 22:14

Хотелось бы узнать:

PHP код:
 $sql3 "SELECT pid, title, hometext, UNIX_TIMESTAMP(date) as postdate FROM ".$prefix."_ 


Что означает в этом выражении - UNIX_TIMESTAMP(date) as postdate ?

Soniks 23.04.2005 00:30

Brigadir грубо говоря берется из столбца postdate тамошнее записаное время и выщитывается сколько времени прошло с 1970-01-01 00:00:00 GMT до указаного времени в postdate, в секундах, в дальнейшем это уже будет преобразовано в нормальный вид даты:
$p_date = date("d/m/Y", $row["postdate"]);

Brigadir 25.04.2005 23:08

Сегодня меня заинтересовала такая мысль:
Как можно прицепить значки "New" к категориям и подкатегориям модуле?
Т.е. категории/подкатегории, содержащие:
- новые публикации, отображаются с красным значком "New;
- публикации 2-3-хдневной давности - с фиолетовым значком?

Soniks 25.04.2005 23:11

Brigadir делайте по анологии, например, с модулем Downloads

Brigadir 25.04.2005 23:16

Цитата: Сообщение от Soniks
Brigadir делайте по анологии, например, с модулем Downloads


Так ведь Downloads рядом с названием категории не выводит значок... :oooo:
Значок выводится только рядом с названием файла..

Soniks 25.04.2005 23:32

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

counter_striker 30.10.2005 03:42

поэма!
 
Почитал я тут что вы наболтали на 4-х страничка, норма. Вот только у меня с php большие проблемы, как бы этому научиться?Ну лана, телячьи нежности осьавлю :lol: .
Вопросик меня тревожит:
Установил Pages, в админпанели нажимаю "страницы" и мне выводит следующее: в "основное содержание страницы" написано : Not Found
The requested URL /modules/FCKeditor/editor/fckeditor.html was not found on this server.
Что за это за мазоль? Как от неё избавиться? :whistle:

всё вроде, я понял, а то поторопился о начал я тут орать, неразобравшись. всё ок!!!

Jay 22.11.2005 21:36

Soniks и Brigadir!
Спасибо вам за отличную доработку хорошего модуля - наконец-то определился с модулем контента. Есть маленькое пожелание - хотелось бы, чтобы в TITLE страницы выдавалось нечто такое: Сайт | Раздел | Подраздел | Название статьи
Искал решение этой проблемы для стандартного модуля Content - не нашел. В Pages - тоже самое :(

Soniks 22.11.2005 22:27

Jay http://mynuke.ru/modules.php?name=D...op=getit&lid=49

kor 23.11.2005 03:28

а как настроить dynamic_titles

Soniks 23.11.2005 12:56

kor почитайте описание, все поймете, что спрашивать раньше времени!

kor 23.11.2005 14:41

я читал и установил и ничего незаметил потому что я еще несталкивался с динамическими страницами!!! как там именно нстроить?


Часовой пояс GMT +4, время: 22:22.

Copyright © 2005 by Soniks