Автор Тема: 11/05/2002 + 13/05/2002 Small BuGFix New!  (Прочитано 15938 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
11/05/2002 + 13/05/2002 Small BuGFix New!
« : 11 Мая 2002, 16:31:10 »
Когда я 10-го выложил обновления уж очень :beer: в веселом настроении был. И закрался в то обновление глючок с форматированием комментариев (типа вместо

появляется <p> :)
Вот, исправил.
Чтоб не качать по новой весь дистрибутив, можете лишь скачать те два файла что нужно заменить (comments.cgi и com_admin.cgi), они тут:
http://webscript.ru/sanitarium/comment.zip

13/02/2002 BuGFix!
Для тех у кого не работал просмотр файлового архива и удаление файлов - это исправлено. Скачайте новый дистрибутив и замените только admin.cgi

(изменения внесены в подпрограммы: sub delete_files,sub print_file_list)

P.S. скоро меня NAS побьет за ту помойку ;) из файлов что я устроил у него. Кстати, напомню, джентельменский наборчик утилит для просмотра БД Sanitarium\'a там тоже лежит:
http://webscript.ru/sanitarium/san_utils.zip
:super: :beer:  :p

« Последнее редактирование: 13 Мая 2002, 02:58:51 от Green Kakadu »
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
13/02/2002 BuGFix!
« Ответ #1 : 13 Мая 2002, 03:02:13 »
Повторюсь еще разок (если кто-то проглядел):
Для тех у кого не работал просмотр файлового архива и удаление файлов - это исправлено. Скачайте новый дистрибутив и замените только admin.cgi

(изменения внесены в подпрограммы: sub delete_files,sub print_file_list)
 в исканиях.

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
11/05/2002 + 13/05/2002 Small BuGFix New
« Ответ #2 : 17 Июня 2002, 02:38:06 »
Так, еще один баг обнаружился надысь.

Я использовал в шаблоне "ссылку по теме" не тривиальную комбинацию "ссылка на статью + название статьи", а захотел, чтобы выводилось еще и название категории
Сделал следующее:

"><%title%>
[<%cat_name%>]



Но при "первом проходе", когда статья генерируется, внешний вид этой ссылки получается следующий: Название статьи []. По есть, в скобочках названием категории и не пахнет. Поэтому каждый раз после того, как я ставлю ссылку по теме, мне приходится запускать скрипт relink.cgi, после чего снова регенерировать директорию (или статью). Думаю, что пожелание мое понятно? :)
Что это за птица с подрезанными крыльями?

Оффлайн troll

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://spam.net.ua
11/05/2002 + 13/05/2002 Small BuGFix New
« Ответ #3 : 09 Декабря 2005, 17:40:13 »
Я разобрался с багом периодической поломки баз при сохраниении редактируемых материалов. Лечить получилось только одним путем - перезаписью баз :-(. работает немного медленнее на сервере, зато надежно!

Вот исправление:
в фале Sanitarium_WL.pm замените процедуру
sub modify_data {...}

на этот код:

#!/usr/bin/perl -w
use File::Copy; # обязательно добавить, иначе работать не будет
.......
.......
sub modify_data {
###
   my ($id, $pack_rec, $new, %data);
   my $self=shift;
   $id=shift;
   $id=~s/\\d+//go; $id=$&;
   if ($id) {
      # pack & check modify record
      if (@_) {$pack_rec=$self->pack_rec(@_);}
      else {croak "write_data: You must get data! \\@_ empty!";}
      $pack_rec=~s/\\n//go;
      $pack_rec=~s/\\r//go;

      # read old database
      #open dbm
      $self->_open_db(1, 3);
      # copy data of database
      %data=%dbm;
      #close dbm
      &_close_db;

      # modify data
      $data{$id}=$pack_rec;

      # create database-duble
      $self->{DB_File}.="new";
      if (-e "$self->{DB_File}.dat") {
         unless (unlink "$self->{DB_File}.dat") {croak "Не удалось удалить резервную базу! $self->{DB_File}!";}
      }
      $self-> _open_db(1, 1);
      %dbm=%data;
      &_close_db;
      $new=$self->{DB_File};
      $self->{DB_File}=~s/new//go;

      # replace new to old database  
      if (-e "$new.dat") {
         unlink "$self->{DB_File}.dat";
         unlink "$self->{DB_File}.lock";
         if (-e "$self->{DB_File}.dat") {croak "Не удалось удалить основную базу! $self->{DB_File}!";}
         copy ("$new.dat", "$self->{DB_File}.dat");
         unlink "$new.dat";
         unlink "$new.lock";
         if (-e "$new.dat") {croak "Не удалось удалить резервную базу! $self->{DB_File}!";}
      }
   }
   else { croak "modify_data: Отсутствующий или неправильный id записи! \\$id = $id"; }
### end sub
}


И все будер РУЛЕЗ!! :-)
« Последнее редактирование: 10 Декабря 2005, 01:02:13 от troll »
Jedem das seinem..

Оффлайн troll

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://spam.net.ua
11/05/2002 + 13/05/2002 Small BuGFix New
« Ответ #4 : 24 Декабря 2005, 04:33:13 »
после долгих разборок стала ясна причина "поломки баз". На самом деле скрипт Санитара их сам и ломает... :-) просто как грабли - вся причина в подпрограммке modify_fileds. Заплатку быстро сделать не получилось, пришлось переписать около 5 процедур, чтобы обойти все вызовы этой процедурки... :-(

Вывод - пользуйтесь TrollBase, который на http://www.spam.net.ua - он на данный момент стабильнее.
« Последнее редактирование: 05 Апреля 2006, 21:30:45 от troll »
Jedem das seinem..

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28