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 потом будет нельзя.