avatar
0.00
0.000
Спасибо, попробую привести к такому виду.
В общем вчера сидел над этим весь день. Там проблема немного глубже чем навесить валидатор. Движок сначала добавляет топик, а уже потом обрабатывает и добавляет дополнительные поля в Topic_processfields(). В итоге я разбил processfields() на две функции в первой только обработка (processfields) а во второй уже непосредственное добавление (addfields). Как прикрутить валидатор я тоже не разобрался поэтому сделал просто проверку на наличие реквеста и если его нет хотя бы по одному полю, то processfields возвращает false.если все ок то возвращает массив Data который потом передается в addfields. Получилось естественно велосипедисто, но хотя бы работает.

а проблема с проверкой загрузки фото в моем случае решилась просто.

if($this->oType->isAllow('photoset') && !$oTopic->getPhotosetMainPhotoId()) { 
			$this->Message_AddErrorSingle($this->Lang_Get('topic_create_error_no_main_photo'),$this->Lang_Get('error'));
			return false; 
		}
неужели только я столкнулся с тем что дополнительные поля нужны обязательно заполненные?
огромное спасибо, это действительно то что нужно))
хотя можно впринципе давать хуку id поля впринципе
Я как раз щас с этим маюсь. Начал только немного с другой стороны — не с вывода полей в разных местах топика, а с их вывода в разных местах при создании/редактировании. Получается что на каждый вид топика нужен свой шаблон вывода. Когда знаешь сколько и какие у тебя виды топиков проблем нет. А вот если это плагином делать, то непонятно как что делать когда заранее неизвестно количество тех самых видов топиков.
в общем рано я радовался. внешний вид кнопки я переделал, но не меняется цвет текста, размер и шрифт.
что я понял:
сама кнопка формируется динамически в ../lib/external/swfupload.js
// Private: getFlashHTML generates the object tag needed to embed the flash in to the document
SWFUpload.prototype.getFlashHTML = function () {
	// Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
	return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload"><param name="wmode" value="opaque"></param>',
				'',
				'<param name="movie" value="', this.settings.flash_url, '"></param>',
				'<param name="quality" value="high"></param>',
				'<param name="menu" value="false"></param>',
				'<param name="allowScriptAccess" value="always"></param>',
				'<param name="flashvars" value="' + this.getFlashVars() + '"></param>',
				'</object>'].join("");
};


поэтому если написать для нее class=«swfupload» в button.css то внешний вид поменяется.

текст кнопки задается в main.js вот здесь


			// Button Settings
			button_placeholder_id : "start-upload",
			button_width: 122,
			button_height: 30,
			button_text : '<span class="swfupload-text">'+ls.lang.get('topic_photoset_upload_choose')+'</span>',
			button_text_style : '.swfupload-text { color: #fff; font-size: 14px; }',
			button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
			button_text_left_padding: 6,
			button_text_top_padding: 3,
			button_cursor: SWFUpload.CURSOR.HAND,
как видно текст обернут в span, а так же есть параметр button_text_style в который нужно прописать стиль для span. однако почему то не работает. я пробовал убирать span вообще и прописывать стили текста в класс swfupload но результата тоже нет. если кто то сможет поделиться решением пробемы буду очень благодарен
спасибо за помощь, я кажется разобрался) нужно создать в css класс swfupload и прописать туда все что нужно)
да 0.9.7. менял некоторый функционал в самом движке а не через плагины, поэтому не обновляюсь
я так понимаю за оформление кнопки должен отвечать вот этот код в main.js
// Button Settings
			button_placeholder_id : "start-upload",
			button_width: 122,
			button_height: 30,
			button_text : '<span class="button">'+ls.lang.get('topic_photoset_upload_choose')+'</span>',
			button_text_style : '.button { color: #1F8AB7; font-size: 14px; }',
			button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
			button_text_left_padding: 6,
			button_text_top_padding: 3,
			button_cursor: SWFUpload.CURSOR.HAND,

но изменения, которые я сделал не применяются. чистил кэш в браузере и папки _tmp и _run — не помогло получается менять только высоту и ширину button_width и button_height
странно. загрузил картинку, нажал отметить как превью к статье но картинки не видно, если нажимаю редактировать пост то он видит загруженые файлы. в общем вот картинка www.imageup.ru/img286/1923320/knopka.png.html
andreyv, большое спасибо
Уважаемый Вадим, я вот тут поковырял альто и подумал, может пересмотреть систему создания типов контента?
мне кажется лучше было бы избавиться от оставшейся от родителя альто сущности топика и заменить ее сущностью контента. К ней бы можно было добавлять не просто поля, а полностью ее конструировать с нуля: добавлять нужные типы полей в нужном порядке.
Соответственно выглядело бы это так: через сущность контента определяется нужный тип. в зависимости от типа подгружается свой шаблон для отображения конкретного типа или списка (sometype_list.tpl) для каждого типа есть 2 таблицы — в первой хранятся все поля данного типа, а во второй все значения.
Хочу попробовать реализовать сам, поэтому надеюсь получить от вас совет как лучше это сделать.
парни, ну неужели никто не сталкивался с тем что дополнительные поля нужно выводить не попорядку?
конфиг точно не трогали?
да
да было бы клево конечно
хотелось бы допилить ЧПУ параметром %topic_type%. в связке с возможностью создавать в альто свои виды топика было бы удобно делать ссылки типа: %topic_type%%topic_id%/ в site.com/topic5/ или site.com/fotoset6/.
можно такую вещь провернуть?
хотелось бы еще вопрос задать — прикрепление файлов уже работает? на 0.9.7.1 у он у меня отказался прикрепляться