Наши скрипты > Sanitarium WebLoG
!!! FAQ по Санитариуму и недокументированные возможности
Green Kakadu:
2Гость
гляну (там вроде бы просто изменить сортировку)
но есть минус в этом.. если статей (анонсов) будет больше чем на одну страницу, то новые поступления :) будут печататься на второй странице. Или там кол-во ограничено. Лекторы все будут в... на последних страницах ;)))
Гость:
спасибо
v.solaris@inbox.lv
Green Kakadu:
2Гость насчет сортировки, вернее НЕсортировки :) для вашего случая оказалось разумнее изменить принцип формирования ID статей и сделать его такого вида:
ID_автора5-тизначное_число ну и при сортировке получится ,что у авторов, которым вы зададите более высокий ID статьи будут выше. Для того чтоб все это реализовать :) следуйте инструкциям:
-----------------------------------------------
--- Код: ---
открываем файл admin.cgi
в подпрограмме sub save_article находим строку (#629):
$id=$in{\'id\'};
меняем на:
$id=($in{\'author\'}.(10000-$in{\'id\'}));
Теперь надо сделать:
1. чтоб ID авторов выглядели как числа, а не то как было первоначально типа 1auth, 2auth
2. чтоб при создании автора вы смогли бы задавать ему ID (правда поменять его будет нельзя)
продолжаем курочить тот же файл, находим подпрограмму sub add_author, а там строку (# 2122):
print qq~~ if $in{\'author_id\'};
меняем:
if ($in{\'author_id\'}){
print qq~~;
}
else {
&table(\'ID\', &input_form(\'author_id\', 30, 30, \'\'));
}
далее ищем подпрограмму (она следующая) sub save_author и там кусок кода:
if ($in{\'save_new_author\'}){
$author_id=$obj->write_data(\'1auth\',
$in{\'name\'},
$in{\'mail\'},
$in{\'signatures\'},
$in{\'foto\'},
$in{\'www\'});
}
else {
$obj->modify_data( $in{\'author_id\'},
$in{\'name\'},
$in{\'mail\'},
$in{\'signatures\'},
$in{\'foto\'},
$in{\'www\'});
$author_id=$in{\'author_id\'};
}
меняем его на этот вариант:
if ($in{\'save_new_author\'}){
$author_id=$obj->write_data( $in{\'author_id\'},
$in{\'name\'},
$in{\'mail\'},
$in{\'signatures\'},
$in{\'foto\'},
$in{\'www\'});
}
else {
$obj->modify_data( $in{\'author_id\'},
$in{\'name\'},
$in{\'mail\'},
$in{\'signatures\'},
$in{\'foto\'},
$in{\'www\'});
$author_id=$in{\'author_id\'};
}
--- Конец кода ---
все. должно работать (не проверял). если будут ошибки:
1. убедитесь, что все правильно/аккуратно заменили
2. пишите сюда ругань которую выплюнет скрипт
ИНСТРУКЦИЯ по эксплуатации (если получится):
1. обязательно надо регистрирровать ВСЕХ авторов (до модификации можно было просто имя автора вписать при создании статьи)
2. создавая авторов присваивайте им ID с запасом (начиная например со 100) + с некоторым шагом (100, 110 и т.д.) чтоб можно между ними кого-нибудь вставитьвпоследствии
3. поменять ID потом будет нельзя.
Гость:
Скобку забыли
$id=($in{\'author\'}.(10000-$in{\'id\'}));
скрипт работает как раньше
те он не учитывает ид автора
solaris
Гость:
в дополнении к предыдущему
1/ новый идентифекатор присвивается !! к новой статье те созданной после создания автора
Как быть если уже есть статьи (штук 50) ?
2/ статью с новым автором невозможно удалить
Error: Nested quantifiers before HERE mark in regex m/g???
Навигация
Перейти к полной версии