Скрипт автомобильной доски объявлений, бесплатный, полностью открытый

Sigizmund
На сайте с 05.09.2008
Offline
38
#21
Алексей Ганагин:
В скрипте используется utf-8 (Unicode), у вас проблема возникает при выводе в браузере или при редактировании скрипта?

Я не совсем ловок в коде! И расковыривать чужой код... тяжеловато, тем более это мое хобии больше чем основная профессия. Времени много уходит на то что бы разобраться что за что отвечает и что надо изменить, что бы вышло по другому...

Сейчас меня больше интересует возможность внедрения в скипт домолнительных модулей, а также изменение диза... так вот тяжко... ковырять, особенно когда в некотором роде лузер!

Но учусь ... :) А так все видно прекрасно и utf-8 никак не препятствует

Все полезное здесь: http://orthomedia.ru/ (http://orthomedia.ru/)
tlee
На сайте с 18.03.2007
Offline
90
#22

Поставил скрипт, но диз не отображается, чисто поля для ввода, почему?

АГ
На сайте с 22.11.2008
Offline
6
#23
tlee:
Поставил скрипт, но диз не отображается, чисто поля для ввода, почему?

Проверьте правильность настроек в файле /include_user/config/config.php , скорее всего неправильно указана "Директория где будет расположен скрипт".

D
На сайте с 23.12.2008
Offline
36
#24

скрипт хороший но подкажыте пожалуйста как его интегрировать в е107.можно ли чтоб обе системы использовали одну базу данных. извените за непрофисионализм. учусь. Спасибо

АГ
На сайте с 22.11.2008
Offline
6
#25
dimmmid:
скрипт хороший но подкажыте пожалуйста как его интегрировать в е107.можно ли чтоб обе системы использовали одну базу данных. извените за непрофисионализм. учусь. Спасибо

А есть-ли смысл в использовании одной базы данных?

-
На сайте с 07.12.2005
Offline
97
-K-
#26

Проект подойдет может быть только для какого нить небольшого сайта с посещаемостью ~100человек.

Иначе просто не удобно пользоваться и искать объявления.

При работе с сущностями - абсолютное отсутствие справочников, за исключением разве что городов, да и то мнимо...


`city_id` int(11) NOT NULL,
`city` varchar(255) NOT NULL,
...
`proizvoditel_id` int(11) NOT NULL,
`proizvoditel` varchar(255) NOT NULL,
...
`model_id` int(11) NOT NULL,
`model` varchar(255) NOT NULL,

Записывать в таблицу с объявлением название города - не продуктивная оптимизация, а накладные расходы. Все остальные же сущности пишутся в базу как есть текстом в отдельные поля или скопом (как "дополнительные опции" - видимо для облегчения вывода :) )и по ним же идет сравнение, к примеру, в форме редактирования.


`sostoyanie` varchar(9) NOT NULL,
`tip_kuzova` varchar(16) NOT NULL,
`toplivo` varchar(6) NOT NULL,
`korobka` varchar(11) NOT NULL,
`privod` varchar(8) NOT NULL,
`dopolnitelno` text NOT NULL,
`opcii` text NOT NULL,


<td class="form1">Топливо&nbsp;<b class="red">*</b><BR></td>
<td class="form2">
<SELECT name="toplivo">
<option></option>
<option value="Бензин"<?php if(!empty($_POST['toplivo'])){if($_POST['toplivo'] == 'Бензин'){echo ' selected';}} ?>>Бензин</option>
<option value="Дизель"<?php if(!empty($_POST['toplivo'])){if($_POST['toplivo'] == 'Дизель'){echo ' selected';}} ?>>Дизель</option>
<option value="Гибрид"<?php if(!empty($_POST['toplivo'])){if($_POST['toplivo'] == 'Гибрид'){echo ' selected';}} ?>>Гибрид</option>
</SELECT>

Таким образом добавить новую опцию или еще какое значение в список довольно утомительное занятие.

Про легкость смены дизайна я бы тоже так громко не заявлял. Отсутствие шаблонов и необходимости правки PHP файлов для смены внешнего вида отнюдь не самое приятное занятие.

Ну и немешалобы добавить немного интерактивности - загрузки моделей по выбранной марке аяксом. А так на странице создания объявления постоянно генерится лишний JavaScript довольно внушительного объема.

АГ
На сайте с 22.11.2008
Offline
6
#27
-K-:
При работе с сущностями - абсолютное отсутствие справочников, за исключением разве что городов, да и то мнимо....

Для объявления сохраняется излишняя информация, такая как название города — это сделано для ускорения вывода, представьте сколько времени экономится при табличном выводе.

-
На сайте с 07.12.2005
Offline
97
-K-
#28
topy:
Предлагаю сделать в форме поиска некие изменения, которые сделают более удобный поиск:
1. Добавить в "Состояние" пункт "все кроме битых", или сделать multiple, чтобы можно было вибирать несколько вариантов.
2. Переименовать "Коробка" в трансмиссия ибо это более правильно. И тоже сделать multiple, т.к. вариатор по-сути тоже не механика, и например, если человек не хочет механику, то ему все равно что АКПП или вариатор, но если ему принципиально искать вариатор, то такая возможность у него останется. Да, кстати, коробка называется не "ручная" а механическая.
3. Сделать возможность выбирать валюту при добавлении и при поиске.
4. Добавить в "Производитель" пункт "Отечественные" и "Иномарки". Знаете, как на авто.ру - очень удобно отсеивать жигули :)
5. Развернуть году в селекте "Год до" чтобы от 2008 до 1970, а не 1970 до 2008... ИМХО более грамотно.
6. Посмотрите на авто.ру типы кузовов и добавьте себе недостающие.
7. В списке городов Москву и Спб вынести наверх, т.к. очень большой процент посещений идет оттуда (если у вас не региональная доска, конечно).
8. Сделать привод multiple, чтобы можно было выбрать передний и полный, например.
9. В идеале сделать чекбоксы для опций, как на авто.ру, чтобы можно было бы найти все машины с ГБО или с mp3-магнитолой...
Это так сказать идеальная форма поиска для меня, т.к. я ищу машины довольно часто.

С технической точки зрения в текущей версии сделать это невозможно.

Как можно и нужно сделать!

Сделать опять же справочники данных, что бы теже самые типы кузовов подставлялись не в шаблоне, а брались из справочника. Тогда в объявлении в поле с типом кузова будет хранится не слово varchar() а целое число - ссылка на справочник. Или же если подразумевается выбор нескольких пунктов как предлагается с приводом - то делать через таблицу связки. Данный подход позволяет сохранить целостность данных и легкость внесения новых данных. Но это конечно же ничтожно посравнению с производительностью при выборке по определенным условиям.

Сравните:

CarType

----------------
Id | Title
----------------
1 | Дизель
2 | Бензин
3 | Гибрид
----------------

Car
----------------
Id | CarTypeId | ...
----------------
1 | 1
2 | 1
3 | 3
........
----------------

или же как у Вас:



Car
----------------
Id | CarType | ...
----------------
1 | Дизель
2 | Дизель
3 | Бензин
........
----------------

В результате для выбора автомобилей с дизельным двигателем получаем:

1: SELECT * FROM car WHERE CarTypeId=1

2: SELECT * FROM car WHERE CarType='Дизель'

При поиске же дизельного переднеприводного автомобиля автомобиля с MP3 магнитолой, левым рулем и автоматической коробкой БД просто обалдеет.

Алексей Ганагин:
Для объявления сохраняется излишняя информация, такая как название города — это сделано для ускорения вывода, представьте сколько времени экономится при табличном выводе.

Да ровно нисколько времени не экономится на этом!

Я не предлагаю при каждом обращении к объявлению дергать целиком все его значения из справочников, а сделать это "ленивой" выборкой - по мере обращения. Таким образом запрос на выбор значения по первичному ключу (да еще и в большинстве случаев из небольшой таблички), да еще если и с кешированием не затруднит и будет совершенно не заметной!

Я бы сделал примерно так:


class Car
{
protected $id = null;
protected $type = null;
protected $typeId = null;
....

public function getId() {
return $this->id;
}

public function getType() {
if (is_null($this->type)) {
$this->type = DbSQL::getTypeById($this->typeId);
}

return $this->type;
}
}

class CarType
{
protected $id = null;
protected $title = null;
....
public function getId() {
return $this->id;
}

public function getTitle() {
return $this->title;
}
}

///Таким образом получив из базы $car мы выводим:
echo $car->Id . ": " . $car->getType()->getTitle();

Так что есть еще над чем работать и работать, а номер этой версии лучше изменить с 1.2 на 0.1.2 🚬

АГ
На сайте с 22.11.2008
Offline
6
#29
-K-:
Сделать опять же справочники данных, что бы теже самые типы кузовов подставлялись не в шаблоне, а брались из справочника. Тогда в объявлении в поле с типом кузова будет хранится не слово varchar() а целое число - ссылка на справочник. Или же если подразумевается выбор нескольких пунктов как предлагается с приводом - то делать через таблицу связки. Данный подход позволяет сохранить целостность данных и легкость внесения новых данных. Но это конечно же ничтожно посравнению с производительностью при выборке по определенным условиям.

Про справочники это понятно и они действительно будут, но не в таблицах, а в массивах, т.к. делать справочник с двумя-тремя значениями не оптимально, да и при таком большом объёме справочников — будут катастрофически медленные запросы.

D
На сайте с 23.12.2008
Offline
36
#30

давайте поддержим нашего Алексея Ганагина, и посодействуем быстрому выходу релиза 1.3.А у меня такой вопрос, когда обьявления переходят из рубрики "новые" в "объявление"и почему поиск неучитывает новых сообщений. благодарю!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий