Приветствую всех, кто принял участие в обсуждении нашего продукта и отдельное большое спасибо всем, кто занимается тестированием. Ваша информация нам очень интересна, некоторые рекомендации мы приняли к расмотрению. а некоторые даже начали внедрять в ядро.
У меня сейчас возник очень интересный вопрос. Как вам удобнее предоставить документацию по API. Итак, система написана целиком на ООП, который используется как в дизайне. так и во внешних модулях. Если сейчас опубликовать даже список классов с интегрированными функциями, получиться довольно объемный материал. Основная сейчас задача - расставить приорететы.
Собственно вопрос, что важнее для большинства: вывод информации на сайте, формирование структуры хранения данных или же написание внешних модулей.
Кроме того, как вам лучше предоставить иерархию приложения, зависимость классов, порядок инициализации и прочее.
Разные хосты, постранички... есть задача сделать быстро и не менять вид. Такое кол-во картинок - столько же запросов к серверу. Разумеется тормоза, вот вам типичный пример, перетяните по фтп 300 файлов по одному килобайту и один в 300 килобайт и сравните скорость. А по сабжу можно использовать следующую технологию. Либо в атрибут тега <img> запихиваем сразу бинарный код картинки. предварительно кодируя через base64, либо используете яваскрипт. грузите данные в переменные или JSON, а на стороне клиента динамически создаете картинки :) Так решиться всё в один поток. По быстродействию - не знаю. надо смотреть. картинок много и скорость рендера браузера может подкачать, вообщем экспериментируйте.
Я вам дал информацию к размышлению. Пусть ТС сам оценит свои объемы и специфику. Скажу так - я за нестед. Простота и скорость. Но на больщих объемах меня терзают сомнения. Сам очень долго копал в сети способы хранения деревьев, везде есть свои плюсы и минусы. Если сайт маленький, то вообще - какая разница на чем делать? А если совсем маленький, то хоть сериализованный могомерный массив:))) Вообщем я засеял, а вам пожинать :)
Вот. кстати, неплохая статейка http://www.opennet.ru/docs/RUS/hierarchical_data/
Почему нестед сетс? Изначально надо понимать, использовать нестед или адженсенси. А может вообще материализовынные пути :)
Какое кол-во комментов планируется? Насколько частыми будут вставки, относительно чтения? Если поднимете инфу о нестеде, то увидите, как он себя отвратительно себя ведет на большом кол-ве записи. ведь вставка приводит к модификации ключей почти всего дерева.
У ТС уже есть формы и переколбашивать он их желанием не горит, посему предложил jquery. Насчет имен - как насчет того, чтобы сделать массив сопоставления индекс => название колонки? ;)
А кусок формы можно увидеть. ХТМЛ в частности. просто если элементы формы имеют специфические атрибуты, то можно взять jquery, пробежаться по DOM модели(выбрав элементы формы в качестве селектора), задать имена используя уникальность этих аттрибутов и бросить запрос на сервер. А там уже разобрать и пульнуть в бд. Ну если уже совсем лениво, то можно имена присвоить в зависимости от индекса в DOM модели. Получиться аттрибут типа name="ToDB[(номер элемента)]". На сервер прилетит массивчик, который и собственно пишем в бд, создавая при этом имена полей, содержащих индекс элемента формы. Жесть получиться, зато в бд залетит :)
Как не страно, мне с шашлыка пелвиса один кусок перепал :))) А насчет жарки шашлыка, то тоже уметь надо, за мангалом не стоял, но ощущение такое, что угли еле тлели, а соль добавляют, когда шашлык уже на шампуре. Любое блюдо можно убить на последней стадии приготовления :)
Советую тоже самое сделать с твоим постом, и ты сам знаешь почему :)
<? function makehtaccess() { global $Cfg; connect(); $users = mysql_query("select username,pass from users where access > '0'") or die ("Can't get users (makehtaccess)"); $num = mysql_numrows($users); $t = 0; if ($num != 0) { $f = fopen(".htpasswd", "w+"); while ($num>$t) { unset($seed); # generate random seed $all = explode( " ", "a b c d e f g h i j k l m n o p q r s t u v w x y z " . "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z " . "0 1 2 3 4 5 6 7 8 9"); for($i=0;$i<9;$i++) { srand((double)microtime()*1000000); $randy = rand(0, 61); $seed .= $all[$randy]; } $username = mysql_result($users,$t,"username"); $password = mysql_result($users,$t,"pass"); $crypt = crypt($password, "\$1$$seed"); fputs($f,"$username:$crypt\n"); $t++; } } } ?>
Без всяких вызовов внешних прог. Можете сделать отдельную функцию, без БД.
Читайте весь топик, ответ на этот вопрос уже дан.
При возникновении проблем, прошу обращаться в саппорт вебзавода, предварительно прислав нам логи ошибок, а так же информацию о конфигурации пхп. Что касается firstvds.ru, то у нас там уже несколько проектов работает, опубликую чуть позже, с разрешения владельца рессурсов.