Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - nerv

Страницы: [1]
1
История данной доработки здесь
http://forums.webscript.ru/showthread.php?s=&threadid=13715&msgnum=3

Итог -
-------------------------------------------------
Вводится дополнительный тэг
<%submenu=[subtmp1],[subtmp2], ... [subtmpX].[menu_tmp]%>

Выводит в виде меню с шаблоном menu_row.txt указанным в [menu_tmp] категории, имеющие шаблоны [subtmp1], [subtmp2] и тд(свотря сколько указано).
-------------------------------------------------
Реализация
Редактируем файл Sanitarium_WL.pm
Находим процедурку sub parse_include
и перед последней ее строчкой($self->{"tmp_$option"}=$templ; ) вставляем следущее:

if ($templ =~/<%submenu=[\\w\\-\\.\\,]+%>/){
   while ($templ =~/(<%submenu=([\\-\\w\\.\\,]+)%>)/g){
      my $tag=$1;
                my @ts;
      my $t;
                my $t1;
                ($t,$t1) = split(/\\./,$2);
                @ts = split(/,/,$t);
                $file = "";

                foreach $t(@ts){
                  $file .= $self->generate_submenu($t,$t1);

                }
       $templ =~ s/$tag/$file/ if $tag&&$file;
   }
}   

Далее добавляем процедурку generate_submenu

sub generate_submenu {
#---------------------------------------------------
my ($html, $drop_list, $cat_id, $tmpl, $tmpl_list, @keys);
my $self=shift;
my $t=shift;
my $t1=shift;
my $cat_id=$self->{\'cat_id\'};


$tmpl=$self->load_tempfile("$self->{\'tmpl_dir\'}/$t1/menu_row.txt");

$self->{DB_File}=$self->{\'data\'}.\'/categories\';
$self->{DB_Field}=\'categories\';
#$self->_open_db(3,1);


$self->{\'index_url\'}="$self->{\'public_url\'}/$self->{\'index_page\'}";
unless($self->{\'cat_extr\'}){$self->extract_cat;}
foreach my $rec(grep {/cat_\\d+/} keys %{$self}){
    my $key = $rec;
    $key=~s/cat_//;
    push(@keys, $key);
}   
foreach my $key(sort {$a<=>$b} @keys){
   #if (defined $self->{$key}){
   $self->{\'cat_id\'}=$key;
   $self->{\'cat_url\'}="$self->{\'public_url\'}/$key/$self->{\'index_page\'}";
   $self->unpack_rec($self->{"cat_$key"});
if ($self->{\'template\'} eq $t) {
   $html .= $self->small_parsing($tmpl);
   }

}
#Memory remains!
#Load category info
#$self->{\'cat_extr\'}=1;
#&_close_db;   
$self->{\'cat_id\'}=$cat_id;
$self->unpack_rec($self->{"cat_$cat_id"}) if $cat_id ne \'index\';


#$self->{\'drop_list\'}=$drop_list;

return $html;
#end sub
}   

----------------------------

По идее было бы неплохо завести отдельный параметр, а не использовать название шаблона, но я с перлом мало знаком - заломало разбираться с БД.

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

Спасибо за внимание. :)

2
Продолжение... %))

В общем я нагнал. Все не так, как написано выше.
Этот глюк относится только к главной странице.
Т.е. создаем пару категорий с шаблоном tmp-main, потом переназначаем им шаблон и про редактирование меню на главной странице можно забить - ни добавление новых категорий, ни изменение menu_row - ничего не изменит.

Единственная проблема, которая у меня возникла - создание субкатегорий. Сайт, который я хочу перевести на этот скрипт имеет многоуровневую структуру, посему деление статей только на категории меня не устраивает. Было бы неплохо еще делать и поддиректории. Помозговав над этой проблемой родил такое решение - в параметрах тэга menu_row через запятую задавать несколько шаблонов, а скрипт подправить так, чтобы строилось меню только из тех категорий, которые базируются на шаблонах, указанных в параметрах. Тогда можно обойтись без всяких субдиректорий.
Доработкой скрипта займусь в ближайшее время.

Хочу спросить - какие есть у Вас(всех, кто прочтет это) доработки?

3
Все! Заработало!
Изрядно покопавшись в форуме и использовав ряд советов нашел один работающий.
Я поставил всем категориям основной шаблон.(до этого был другой)
А его заменил на свой.
После этого главная страница стала отображаться нормально.

Т.е. получается, что категории выводятся только в тех шаблонах, которые прописаны в них... бр бр бр .. Т.е. если в параметрах категории написано - шаблон ХХХ, то на странице отображенной по шаблону УУУ этой категории не будет. Это фишка или баг?
Если подумать - это даже удобно :))

4
Проблема немного прояснилась... Но легче от этого не стало.
Суть следущая - на главной странице index.htm не правильно отображаются категории. Т.е. они отображаются так, как я их задал в самы первый раз. Если добавить новую категорию, или изменить уже существующуюю - меню не меняется.
Хотя анонсы на статьи добавляются. Шаблон index.txt работает нормально.
Такое ощущение, что тэг <%menu-html%> выводит что то, что запомнил давно и не хочет реагировать на измененные данные.
Кто-нибудь может подсказать в чем тут дело?

5
То, что он для основной стартовой страницы в любом случае использует шаблон tmp-main я уже просек.

не могу только понять, откуда он берет остальные.
Например menu_row...
Создал свой шаблон - tmp-index
И в основном и в своем в menu_row прописал то, что мне нужно. А на основной странице все равно выводится
" +<%cat_name %> "  - как было по умолчанию...

Может я чего то не понимаю?... Объясните пожалуйста.

Заранее спасибо!

Страницы: [1]