zetwin Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 (изменено) Никак не могу добавить возможность задания имени для изображений товара. Добавил инпут для каждого изображения:если пуст, то берем имя файла,если нет, то пишем из инпута. в таблицу images в поле name. Файлы в которых копаюсь:api/Products - function update_image.simpla/ProductAdmin Примет кода в simpla/design/html/product.tpl <ul> {foreach from=$product_images item=image} <li> <a href='#' class="delete"><img src='design/images/cross-circle-frame.png'></a> <img src="{$image->filename|resize:100:100}" alt="" /> <input name='imagenames[]' value='{$image->name}'> <input type=hidden name='images[]' value='{$image->id}'> </li> {/foreach} </ul> Примет кода в api/Products public function update_image($id, $image) { $query = $this->db->placehold("UPDATE __images SET ?% WHERE id=?", $image, $id); $this->db->query($query); return($id); } help. Изменено 5 ноября, 2015 пользователем zetwin Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 1. function update_image - тут копаться совсем ни к чему. Разве что испортите...2. api/ProductAdmin - такого файла нет, есть view/ProductAdmin.php - тут должна быть основная работа Цитата Ссылка на сообщение Поделиться на другие сайты
zetwin Опубликовано 5 ноября, 2015 Автор Жалоба Поделиться Опубликовано 5 ноября, 2015 (изменено) 1. function update_image - тут копаться совсем ни к чему. Разве что испортите...2. api/ProductAdmin - такого файла нет, есть view/ProductAdmin.php - тут должна быть основная работаИзвините за невнимательность, я говорил за simpla/ProductAdmin Проблем нет с выводом имени записаного в базу вручную.У меня проблема с записью имен изображений из андим панели товара. Изменено 5 ноября, 2015 пользователем zetwin Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 Извените за невнимательность, я говорил за simpla/ProductAdminЯ тоже ошибся. Правильно надо: 2. simpla/ProductAdmin.php - тут должна быть основная работа Цитата Ссылка на сообщение Поделиться на другие сайты
zetwin Опубликовано 5 ноября, 2015 Автор Жалоба Поделиться Опубликовано 5 ноября, 2015 (изменено) Я тоже ошибся. Правильно надо: 2. simpla/ProductAdmin.php - тут должна быть основная работаОбновление изображеия вызывается в simpla/ProductAdmin единоджы в этом месте: // Порядок изображений if($images = $this->request->post('images')) { $i=0; foreach($images as $id) { $this->products->update_image($id, array('position'=>$i)); $i++; } } И я не могу понять как правильно засунуть к обновлению позиций переменную $imagenames. Изменено 5 ноября, 2015 пользователем zetwin Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 $this->products->update_image($id, array('position'=>$i, 'name'=>$myvariable)); Цитата Ссылка на сообщение Поделиться на другие сайты
zetwin Опубликовано 5 ноября, 2015 Автор Жалоба Поделиться Опубликовано 5 ноября, 2015 $this->products->update_image($id, array('position'=>$i, 'name'=>$myvariable));Да, но переменная $myvariable это массив имен, как сделать чтобы соотевтвуеше имя писалось, а то масив даже не пишет в базу. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 Видимо, выделить из массива нужное значение, относящееся к конкретному изображению... Цитата Ссылка на сообщение Поделиться на другие сайты
zetwin Опубликовано 5 ноября, 2015 Автор Жалоба Поделиться Опубликовано 5 ноября, 2015 (изменено) Видимо, выделить из массива нужное значение, относящееся к конкретному изображению...К сожалению, я не знаю как это сделать.Добавить увеличение на единицу, при обращении к елементу массива? тоесть можно исползовать i++?? Изменено 5 ноября, 2015 пользователем zetwin Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kosjak76 Опубликовано 5 ноября, 2015 Решение Жалоба Поделиться Опубликовано 5 ноября, 2015 Надо сравнить массивы, если количество и порядок элементов совпадает, то как-то так // Порядок изображений if($images = $this->request->post('images')) { $i=0; foreach($images as $id) { $this->products->update_image($id, array('position'=>$i,'name'=>$myvariable[$i])); $i++; } } Цитата Ссылка на сообщение Поделиться на другие сайты
zetwin Опубликовано 5 ноября, 2015 Автор Жалоба Поделиться Опубликовано 5 ноября, 2015 Надо сравнить массивы, если количество и порядок элементов совпадает, то как-то так // Порядок изображений if($images = $this->request->post('images')) { $i=0; foreach($images as $id) { $this->products->update_image($id, array('position'=>$i,'name'=>$myvariable[$i])); $i++; } } Спасибо! Уже решил. Точно так же как вы, Kosjak76, написали. Спасибо всем за помощь. Цитата Ссылка на сообщение Поделиться на другие сайты
arhean Опубликовано 30 апреля, 2021 Жалоба Поделиться Опубликовано 30 апреля, 2021 У меня почему то не работает. Создал в базе поле title и alt. далее в ProductAdmin foreach($images as $id) { $this->products->update_image($id, array('position'=>$i,'title'=>$imagetitle[$i], 'alt'=>$imagealt[$i])); $i++; } далее в product.tpl добавил <input type="text" value="{$image->title|escape}" name="imagetitle[]"> <input type="text" value="{$image->alt|escape}" name="imagealt[]"> <input type=hidden name="images[]" value="{$image->id}"> Из базы значение выводится, но при этом не сохраняется. и в добавок вылазит ошибка - Notice: Undefined variable: imagetitle in.... добавил new stdClass; и ошибка исчезла, но при этом все равно не сохраняет. Где тут магия? foreach($images as $id) { $imagealt[$i] = new stdClass; $imagetitle[$i]= new stdСlass; $this->articles->update_image($id, array('position'=>$i,'title'=>$imagetitle[$i], 'alt'=>$imagealt[$i])); $i++; } Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 1 мая, 2021 Жалоба Поделиться Опубликовано 1 мая, 2021 17 часов назад, arhean сказал: У меня почему то не работает. Создал в базе поле title и alt. Должно быть, потому, что работаете методом тыка и копируете как-нибудь без понимания. Например, в последнем фрагменте делается попытка записать в title пустой класс, как минимум совсем бессмысленная... Цитата Ссылка на сообщение Поделиться на другие сайты
arhean Опубликовано 1 мая, 2021 Жалоба Поделиться Опубликовано 1 мая, 2021 4 часа назад, phukortsin сказал: Должно быть, потому, что работаете методом тыка и копируете как-нибудь без понимания. Например, в последнем фрагменте делается попытка записать в title пустой класс, как минимум совсем бессмысленная... А как нужно сделать? Забыл написать, что добавил еще в api/Products.php i.title, i.alt, // images $query = $this->db->placehold("SELECT i.id, i.product_id, i.title, i.alt, i.name, i.filename, i.position FROM __images AS i WHERE 1 $product_id_filter $group_by ORDER BY i.product_id, i.position"); $this->db->query($query); return $this->db->results(); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 1 мая, 2021 Жалоба Поделиться Опубликовано 1 мая, 2021 2 часа назад, arhean сказал: А как нужно сделать? Забыл написать, что добавил еще в api/Products.php i.title, i.alt, Надо бы писать не отрывочными кусками с последующими "позабыл-добавил", а ТОЧНО и ПОЛНОСТЬЮ все делавшиеся изменения со всеми деталями... А гадать, что Вы еще забыли и что еще добавили, можно долго... Цитата Ссылка на сообщение Поделиться на другие сайты
arhean Опубликовано 1 мая, 2021 Жалоба Поделиться Опубликовано 1 мая, 2021 (изменено) 48 минут назад, phukortsin сказал: Надо бы писать не отрывочными кусками с последующими "позабыл-добавил", а ТОЧНО и ПОЛНОСТЬЮ все делавшиеся изменения со всеми деталями... А гадать, что Вы еще забыли и что еще добавили, можно долго... Извиняюсь, наверно началась деменция :) Изменено 1 мая, 2021 пользователем arhean Цитата Ссылка на сообщение Поделиться на другие сайты
arhean Опубликовано 2 мая, 2021 Жалоба Поделиться Опубликовано 2 мая, 2021 20 часов назад, phukortsin сказал: Надо бы писать не отрывочными кусками с последующими "позабыл-добавил", а ТОЧНО и ПОЛНОСТЬЮ все делавшиеся изменения со всеми деталями... А гадать, что Вы еще забыли и что еще добавили, можно долго... Так знаете в чем может быть проблема? Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 мая, 2021 Жалоба Поделиться Опубликовано 2 мая, 2021 Знаю, в чем МОЖЕТ БЫТЬ. И могу книгу написать про тысячу причин, которые МОГУТ БЫТЬ... Если Вы готовы оплачивать такие труды, могу подготовить для Вас длинный текст с фантазиями на тему. Цитата Ссылка на сообщение Поделиться на другие сайты
arhean Опубликовано 2 мая, 2021 Жалоба Поделиться Опубликовано 2 мая, 2021 1 час назад, phukortsin сказал: Знаю, в чем МОЖЕТ БЫТЬ. И могу книгу написать про тысячу причин, которые МОГУТ БЫТЬ... Если Вы готовы оплачивать такие труды, могу подготовить для Вас длинный текст с фантазиями на тему. Ой все... Не хочу вступать в полемику с троллем. Иначе просто начнется бесконечный срач. Вы либо говорите - я знаю в чем причина, но мне нужны миллионы долларов за 2 строчки кода, которые может написать практически любой знающий симплу, либо - вот тут лоховская ошибка и предлагаете ее решение, за что вам будет спасибо человеческое, плюсик и возможно донат на пиво. Форум нужен, что бы новичкам можно было разобраться в системе, а не читать бесполезные кэповские нотации. Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 2 мая, 2021 Жалоба Поделиться Опубликовано 2 мая, 2021 1 минуту назад, arhean сказал: Ой все... Не хочу вступать в полемику с троллем. Иначе просто начнется бесконечный срач. Вы либо говорите - я знаю в чем причина, но мне нужны миллионы долларов за 2 строчки кода, которые может написать практически любой знающий симплу, либо - вот тут лоховская ошибка и предлагаете ее решение, за что вам будет спасибо человеческое, плюсик и возможно донат на пиво. Форум нужен, что бы новичкам можно было разобраться в системе, а не читать бесполезные кэповские нотации. Вы наверное работает и за потраченное время получаете Спасибо или деньгами? Если бы решалось бы одной строчкой кода например $code = newStdclass(); вам бы уже ее написали но как видите таких нет, значит делайте выводы Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 3 мая, 2021 Жалоба Поделиться Опубликовано 3 мая, 2021 10 часов назад, arhean сказал: Ой все... Не хочу вступать в полемику с троллем. Полемики пока нет. Есть с Вашей стороны вопросы. Вопросы изначально глупые и бессмысленные. А какой вопрос, таков и ответ. 10 часов назад, arhean сказал: Вы либо говорите - я знаю в чем причина... Если в общем, Вам уже сказали - причина в неверном коде, который вставляется бездумным копированием. Если конкретно, то один ошибочный момент был приведен. Вы никак не среагировали. 10 часов назад, arhean сказал: за 2 строчки кода, которые может написать практически любой знающий симплу На форуме, и в этой теме в частности, можно найти много кода. Находите и используйте, если уверены, что все так просто... 10 часов назад, arhean сказал: Форум нужен, что бы новичкам можно было разобраться в системе, а не читать бесполезные кэповские нотации. Если Вы зададите осмысленный вопрос по СИСТЕМЕ, Вам, скорее всего, дадут осмысленный ответ. На форуме примеров тому много. А пока Вы задаете вопрос по своей индивидуальной ДОРАБОТКЕ к системе, сделанной по материалам темы, где НЕТ полного описания, а написано кое-как небрежно. К тому же в точности неизвестно, что Вы у себя делаете и как. Вам посоветовали дать ПОЛНОЕ описание, Вы не ответили. Видимо, лень писать все подробности. Выходит, почини мне то, не скажу что... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.