vet2010

Динамические поля в админке

Recommended Posts

Доброго времени суток. 

Уже несколько дней ломаю голову. 

Необходимо реализовать возможность подвязывать к объявлениям различное число площадей (для каждого объекта свое) и фото площади.

Создал таблицу.  

CREATE TABLE IF NOT EXISTS `re_square_object` (

  `id_square` int(11) NOT NULL AUTO_INCREMENT,

  `id_object` int(11) NOT NULL,

  `square` int(11) NOT NULL,

  `id_image` int(11) NOT NULL,

  PRIMARY KEY (`id_square`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

Пока планируется подвязывать изображения по номеру .

В редакторе объявлений (data_form_tpl) написал скрипт на добавления полей типа input по клику. Т.е на выходе с формы будет массив.

 

1)Где происходит обработка этих данных ? и запись в БД.

 

2)Также как мне потом наладить вывод данных в карточках объявлений? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для этого Вам нужно только таблицу data редактировать в админке в приложении-редактор форм.

В код не нужно ничего добавлять.

Инструкции смотрите у нас на канале в YouTube.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне нужна похожая структура, как на фото. 

squarejpg_5142899_14122692.jpg

 

Пересматриваю видео, не могу разобраться :( Объясните подробней пожалуйста. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если речь о том, что бы зафиксировать набор связок в виде - значение площади+ее картинка, есть, в какой-то мере, обходной вариант. Суть его состоят в следующем. Специально поле типа uploads позволяет хранить набор картинок. Кроме этого, оно позволяет хранить описание к картинкам. Если в это поле загрузить набор картинок и снабдить их, в качестве описания, значениями площадей, тогда в шаблоне можно реализовать вывод этого элемента в виде

{foreach from=$data_shared.element.value item=element}<img src="{$estate_folder}/img/data/{$element.preview}">{$element.title} м2{/foreach}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, но есть неудобство. Выбрал изображения(поле описание недоступно), нажал сохранить (кнопка применить не отрабатывает загрузку) выкинуло в список, опять выбрал объявление и добавляю описание:(

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И еще есть один критический вопрос-спасайте.  Я в поле площади (которая как я смотрю заточена под формат общая/жилая/..) записываю все площади на объекте. Например : Площадь (м.кв.)210 . 312 . 530. 870. Поиск естественно идет только по первой сейчас. Смотрю temlate_search.php. Поле в базе  выглядит так- (210 . 312 . 530. 870.) . Ее нужно бить на массив чисел и выбирать max и min. и сравнивать с диапазонами максимума и минимума заданными при поиске. Сразу подумал написать свою функцию(прцедуру) на mysql, но к сожалению нет прав у пользователя:( Посоветуйте как можно решить данную проблему.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И еще есть один критический вопрос-спасайте.  Я в поле площади (которая как я смотрю заточена под формат общая/жилая/..) записываю все площади на объекте. Например : Площадь (м.кв.)210 . 312 . 530. 870. Поиск естественно идет только по первой сейчас. Смотрю temlate_search.php. Поле в базе  выглядит так- (210 . 312 . 530. 870.) . Ее нужно бить на массив чисел и выбирать max и min. и сравнивать с диапазонами максимума и минимума заданными при поиске. Сразу подумал написать свою функцию(прцедуру) на mysql, но к сожалению нет прав у пользователя :( Посоветуйте как можно решить данную проблему.  

Слишком сложно придумали.

Вносите площади в отдельные поля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, но есть неудобство. Выбрал изображения(поле описание недоступно), нажал сохранить (кнопка применить не отрабатывает загрузку) выкинуло в список, опять выбрал объявление и добавляю описание :(

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

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

Поэтому нужно делать два шага.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне нужна похожая структура, как на фото. 

squarejpg_5142899_14122692.jpg

 

Пересматриваю видео, не могу разобраться :( Объясните подробней пожалуйста. 

По моему товарищу нужно платное приложение типовые планировки для новостроек. Реализация там такая:

-в справочник вносите  название планировки, план квартиры, общую площадь, жилую, кухня, материал стен

При добавлении объявления в таблицу дата, выбираем из справочника планировку. А в таблицу дата, автоматом вносяится информация с справочника планировок - название планировки, план квартиры, общую площадь, жилую, кухня, материал стен

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По моему товарищу нужно платное приложение типовые планировки для новостроек.

 

Вот только не надо из пушек по воробьям))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Слишком сложно придумали.

Вносите площади в отдельные поля.

В каждом офисном центре , сдается разное к-во площадей. Вы предлагаете предусмотреть в админке по максимуму 10-20  полей под площади, и в клинится в алгоритм поиска в temlate_search.php?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В каждом офисном центре , сдается разное к-во площадей. Вы предлагаете предусмотреть в админке по максимуму 10-20  полей под площади, и в клинится в алгоритм поиска в temlate_search.php?

Зачем, купи приложение Новостройка и привяжи приложение под Бизнес центры

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если мы начинаем рассматривать каждую сдаваемую площадь как отдельный объект, тогда достаточно просто вести ее как отдельную запись в data где у нее будут свое поле площадь и картинка. +указатель на бизнесцентр. Тем более, что площади будут разные, свойств у "площади" будет минимум. Да и учитывать их будет понятнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Описание возможно добавить ТОЛЬКО к уже реально загруженной картинке, которая привязалась к объекту. В моменте первичной загрузки никак.

 

Площадь (м.кв.)210 . 312 . 530. 870. Поиск естественно идет только по первой сейчас. Смотрю temlate_search.php. Поле в базе  выглядит так- (210 . 312 . 530. 870.) . Ее нужно бить на массив чисел и выбирать max и min. и сравнивать с диапазонами максимума и минимума заданными при поиске. Сразу подумал написать свою функцию(прцедуру) на mysql

 

Если вы владелец хостинга, я пойму такой вариант. В любом другом случае, при таком алгоритме, шансы быть выпинаным хостером начинают стремительно приближаться к мерзким 100%. +будут сразу сложности с постраничкой, так как если не наладить разбивку числовых рядов мускулом (гарантированные тормоза), эту разбивку придется делать в php. Но для этого придется сначала выбрать абсолютно ВСЕ записи объектов и потом ими оперировать. Т.е. если у вас и выводится на страницу 10 записей, то что бы определить эти 10-ть нужно будет вычитать все N-надцать и из них уже в оперативке отобрать 10 подходящих.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил проблему. :) Спасибо за помощь!

Делюсь своим  решением, может кому пригодиться.

Площади заполняться по нарастающей, через разделяющий символ ";"

и в template_search.php.

if(isset($params['square_all_min']) && isset($data_model_array['square_all'])){
    $where_array[]='SUBSTRING_INDEX(re_data.square_all,".",-1)>='.$params['square_all_min'];
}
if(isset($params['square_all_max']) && isset($data_model_array['square_all'])){
    $where_array[]=DB_PREFIX.'_data.square_all*1<='.$params['square_all_max'];
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Голь на выдумки хитра)))

 

Может это

SUBSTRING_INDEX(re_data.square_all,".",-1)

 тоже умножить на 1. Что бы не было неожиданностей при сравнении как строки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Как оказалось, не совсем рабочий пример. Необходимо каждую площадь сверять с минимумом и максимумом заданные при поиске. Пока сделал так, работает..  Ввел ограничение для объекта в 10 -15 площадей . Боюсь что я создаю нагрузку на сервер БД, но пока объектов немного -  все ок., посмотрим что будет дальше. Собственно вот такое решение: 

$where_array[]='(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 1 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 1 ) ,  ";" , -1 )>='.$params['square_all_min']. ') or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 2 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 2 ) ,  ";" , -1 )>='.$params['square_all_min']. ') or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 3 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 3 ) ,  ";" , -1 )>='.$params['square_all_min']. ') or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 4 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 4 ) ,  ";" , -1 )>='.$params['square_all_min']. ') or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 5 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 5 ) ,  ";" , -1 )>='.$params['square_all_min']. ') or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 6 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 6 ) ,  ";" , -1 )>='.$params['square_all_min']. ')or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 7 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 7 ) ,  ";" , -1 )>='.$params['square_all_min']. ')or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 8 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 8 ) ,  ";" , -1 )>='.$params['square_all_min']. ')or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 9 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 9 ) ,  ";" , -1 )>='.$params['square_all_min']. ')or

(SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 10 ) ,  ";" , -1 )<='.$params['square_all_max'].' and SUBSTRING_INDEX( SUBSTRING_INDEX( re_data.square_all,  ";", 10 ) ,  ";" , -1 )>='.$params['square_all_min']. ')

 

Приходится загружать большое к-во изображений к обьектам. Как мне сделать что-бы при нажатии кнопки сохранить - я оставался на этой же странице, и смог добавлять описание к фото.? (тяжело постоянно искать в списке, редактируемую запись:(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас