Меня не устроил базовый модуль с imagex и я решил его немного допилить. Для этого я сделал промежуточнуб форму, где ввожу поле с маской заголовка для закачиваемых файлов (так я решаю косяк с кириллицей + переименовываю все файлы по маске), определяю все значения CCK полей и таксономии. Так вот, результат выполнения формы я записываю в кеш -
function image_mass_upload_form_submit($form, &$form_state){
global $user;
//Транслитерированное название шаблона
$filename->transliterated = transliteration_get($form_state['values']['file_name_pattern']);
$filename->pattern = $form_state['values']['file_name_pattern'];
//Сохраняем введенные значения полей
$filename->values = $form_state['values'];
//Если есть теги, то добавляем их в объект
if('tags'){
$filename->tags = $form_state['values']['tags'];
}
//установка данных
$cache_life_time = time() + 90000; //15 минут
$cache_id = 'image_mass_upload:'.$user->uid;
cache_set($cache_id, $filename, 'cache_form',$cache_life_time);
//Переадресация на страницу мульти - загрузки файлов
$form_state['redirect'] = 'image_mass_upload/image_mass_upload';
}
Потом в форме функции image_mass_upload_upload_image() я его извлекаю и использую для переименования файлов и задания им атрибутов (ССК + таксонимия).
$cached_data = cache_get($cache_id, 'cache_form');
$content = $cached_data->data;
if(empty($content)){
$uploaded = 3;
}
Все бы ничего, но вот только кеш возврящается раз через раз... Ошибок в логах я не нашел, пробовал на трех разных машинах, везде одно и тоже... При этом на разных машинах у меня применяются хранилища с InnoDB и MyISAM. Похоже, это не влияет на ошибку...
Может кто сталкивался, подскажите плз, как решили?
Комментарии
Сделал workaround, вместе cache_get() поставил следующий код:
<?php
$cache_id = 'image_mass_upload:'.$user->uid;
$result = db_fetch_object(db_query("SELECT data FROM cache_form WHERE cid ='%s' AND expire > ".(time()-300), $cache_id));
$content = unserialize(db_decode_blob($result->data));
?>
Теперь все работает.
В чем конкретно дело, я не стал разбираться, но косяк имеет место быть...
По ходу проблема все еще актуальна...
Нет, косяк оказался связан с java скриптом и плохим коннектом (не загружались файлики), т.о. проблема с работой функции cache_get() осталась...