strukov Posted July 24, 2016 Report Share Posted July 24, 2016 (edited) У меня статьи построены также, но и инструкция что я дал изначально - работает, сделайте еще раз всё строго пошагово, 7 раз отмерь - 1 раз отрежь. У меня - работает, пример - показал. Edited July 24, 2016 by strukov Quote Link to post Share on other sites
motya88 Posted July 24, 2016 Report Share Posted July 24, 2016 У меня статьи построены также, но и инструкция что я дал изначально - работает, сделайте еще раз всё строго пошагово, 7 раз отмерь - 1 раз отрежь. У меня - работает, пример - показал. Инструкция для статьи верная?? Quote Link to post Share on other sites
strukov Posted July 24, 2016 Report Share Posted July 24, 2016 Я себе сделал и сюда сразу-же написал. Вот тут http://market.uimax.ru/articles/samodel я задал фото и описание для категории. Quote Link to post Share on other sites
motya88 Posted July 24, 2016 Report Share Posted July 24, 2016 Я себе сделал и сюда сразу-же написал. Вот тут http://market.uimax.ru/articles/samodel я задал фото и описание для категории.Вы можете глянуть мои шаги? Может быть там зарыта ошибка ? Quote Link to post Share on other sites
mishanya Posted July 24, 2016 Report Share Posted July 24, 2016 Вы можете глянуть мои шаги? Может быть там зарыта ошибка ? во-первых в ф-ю удаления изображения поста нельзя передавать айди категории. еще у вас в #3 - \api\Articles.php почему-то удаляется из таблицы блога а не из s_articles $query = $this->db->placehold("DELETE FROM __blog WHERE id=? LIMIT 1", intval($id)); Quote Link to post Share on other sites
motya88 Posted July 25, 2016 Report Share Posted July 25, 2016 (edited) во-первых в ф-ю удаления изображения поста нельзя передавать айди категории. еще у вас в #3 - \api\Articles.php почему-то удаляется из таблицы блога а не из s_articles $query = $this->db->placehold("DELETE FROM __blog WHERE id=? LIMIT 1", intval($id)); В файле у меня вроде верно, это когда инструкцию переписывал видимо вставил. Вот как у меня в файле \api\Articles.php: $query = $this->db->placehold("DELETE FROM __articles WHERE id=? LIMIT 1", intval($id)); $this->delete_image($id); if($this->db->query($query)) { $query = $this->db->placehold("DELETE FROM __comments WHERE type='article' AND object_id=? LIMIT 1", intval($id)); if($this->db->query($query)) return true; } Edited July 25, 2016 by motya88 Quote Link to post Share on other sites
motya88 Posted July 25, 2016 Report Share Posted July 25, 2016 проблема в том, что после того как я выполнил по своей инструкции и приступил к выполнению инструкции вот этой у меня удаляются изображения из статей. и перестают отображаться картинки в админке, но появляются в админке для категорий статей.Помогите плиз наконец решить данную проблему! Может быть в инструкции, которой описал strukov кое где вместо $article использовать $article_category? Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 Проблему Ваши Вы до крайности запутали многочисленными повторами похожих кодов. Вы бы выложили полностью архив всех своих переделанных файлов, относящихся к вопросу... Скорее всего, у Вас конфликт с удалением изображений для категорий и удалением изображений для статей. Возможно, вместо двух нужных функций к Вас существует всего одна. Вы ведь сделали добавление изображений и к статьям и к категориям. А в инструкции от strukov-а, этот момент явно не учтен. Он уверенно пишет, что у него все работает - полагаю, он просто не проверял удаление... И в фрагменте из предыдущего поста$query = $this->db->placehold("DELETE FROM __comments WHERE type='article' AND object_id=? LIMIT 1", intval($id));видна ошибка невооруженным глазом. Хоть и не критичная и на Ваши проблемы не влияет, но все же... Quote Link to post Share on other sites
strukov Posted July 26, 2016 Report Share Posted July 26, 2016 (edited) Проблему Ваши Вы до крайности запутали многочисленными повторами похожих кодов. Вы бы выложили полностью архив всех своих переделанных файлов, относящихся к вопросу... Скорее всего, у Вас конфликт с удалением изображений для категорий и удалением изображений для статей. Возможно, вместо двух нужных функций к Вас существует всего одна. Вы ведь сделали добавление изображений и к статьям и к категориям. А в инструкции от strukov-а, этот момент явно не учтен. Он уверенно пишет, что у него все работает - полагаю, он просто не проверял удаление... И в фрагменте из предыдущего поста$query = $this->db->placehold("DELETE FROM __comments WHERE type='article' AND object_id=? LIMIT 1", intval($id));видна ошибка невооруженным глазом. Хоть и не критичная и на Ваши проблемы не влияет, но все же... Удаление я проверял и работает все отлично.https://vid.me/wh7R А где "Он уверенно пишет" я что-то не пойму? Я сразу написал: Возможно написал что-то не верно, не супер-профессионал в php - но работает. Также буду благодарен если покажите на ошибку в моей инструкции.. Если она, конечно-же есть. Edited July 26, 2016 by strukov Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 А где "Он уверенно пишет" я что-то не пойму? Я сразу написал: Да, сначала написал в #10: "Возможно написал что-то не верно".Но позже написал в #12: "У меня всё отлично работает". Также буду благодарен если покажите на ошибку в моей инструкции.. Если она, конечно-же есть. Чтобы ТОЧНО указать на ошибку в инструкции, она (инструкция) сама должна быть достаточно точной. В Вашей инструкции, например, в начале стоит: "simpla/design/html/article_category.tpl". А в текущей версии Simpla 2.3.7 такого файла нет. Можно только догадываться, что используется какая-то сторонняя разработка. В Вашей инструкции не хватает как минимум минимального описания, к какой ситуации эта инструкция применима... Ваши слова "У меня всё отлично работает" довольно-таки бесполезны, проверить их посетителю форума невозможно без доступа хотя бы к Вашей админке. Если у Вас все хорошо работает, Вас можно поздравить. Но цель темы несколько иная... Quote Link to post Share on other sites
strukov Posted July 26, 2016 Report Share Posted July 26, 2016 Вам больше нечего написать видимо т.к. думаю вы сами понимаете, что ваши слова уж точно тут бесполезны про А в текущей версии Simpla 2.3.7 такого файла нет. Ведь я писал инструкцию не относящуюся к этой теме, а конкретно в ответ на вопрос пользователя по модулю статей. Начинает напрягать. цель темыА причем тут цель темы, когда мы обсуждаем вопрос не относящийся конкретно к теме, к блогу, и к изображению для поста блога. И если уж будете отвечать на текущее сообщение, отвечайте по делу, а если нечего ответить - лучше не отвечать вообще ничего. Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 Ведь я писал инструкцию не относящуюся к этой теме, а конкретно в ответ на вопрос пользователя по модулю статей. Начинает напрягать.Что конкретно Вы имеете в виду под "модуль статей"? В текущей версии Simpla 2.3.7 такого нет. А сторонних разработок по статьям может быть много и разных... Quote Link to post Share on other sites
strukov Posted July 26, 2016 Report Share Posted July 26, 2016 Что конкретно Вы имеете в виду под "модуль статей"? В текущей версии Simpla 2.3.7 такого нет. А сторонних разработок по статьям может быть много и разных... И снова вы о Simpla 2.3.7))) Тут вы правы по поводу сторонних доработок, нечего сказать на этот повод, но все-же я встречал только одну доработку для simpla "статьи с категориями". Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 И снова вы о Simpla 2.3.7))) Тут вы правы по поводу сторонних доработок, нечего сказать на этот повод, но все-же я встречал только одну доработку для simpla "статьи с категориями". Вот если Вы сообщите точно, какая именно доработка подразумевается в Вашей инструкции, где ее можно увидеть во всех подробностях, то тогда Ваша инструкция приобретет более-менее точный смысл. Можно будет ее и возможные ошибки обсуждать предметно, а не гаданием на кофейной гуще... Quote Link to post Share on other sites
motya88 Posted July 26, 2016 Report Share Posted July 26, 2016 Проблему Ваши Вы до крайности запутали многочисленными повторами похожих кодов. Вы бы выложили полностью архив всех своих переделанных файлов, относящихся к вопросу... Скорее всего, у Вас конфликт с удалением изображений для категорий и удалением изображений для статей. Возможно, вместо двух нужных функций к Вас существует всего одна. Вы ведь сделали добавление изображений и к статьям и к категориям. А в инструкции от strukov-а, этот момент явно не учтен. Он уверенно пишет, что у него все работает - полагаю, он просто не проверял удаление... И в фрагменте из предыдущего поста$query = $this->db->placehold("DELETE FROM __comments WHERE type='article' AND object_id=? LIMIT 1", intval($id));видна ошибка невооруженным глазом. Хоть и не критичная и на Ваши проблемы не влияет, но все же... Все файлы, которые модифицировал выложил на ядискфайл конфиг содержит строчки: ;Изображения статей articles_images_dir = files/articles/; ;Изображения категорий статей article_category_images_dir = files/artcatimg/; Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 Все оказалось именно так, как и предполагал, а именно: ...у Вас конфликт с удалением изображений для категорий и удалением изображений для статей. ...вместо двух нужных функций у Вас существует всего одна. Вы ведь сделали добавление изображений и к статьям и к категориям. А в инструкции от strukov-а, этот момент явно не учтен. На всякий случай для тех кто в танке:Согласно инструкции, в simpla/ArticleCategoryAdmin.php при удалении изображения категории статей вызывается$this->articles->delete_image($category->id);А эта функция (в api/Articles.php) предназначена для удаления картинки СТАТЬИ. А автор инструкции применяет ее для удаления картинки КАТЕГОРИИ СТАТЕЙ. Потому удаление и не работает и не должно работать - все правильно и логично... Quote Link to post Share on other sites
motya88 Posted July 26, 2016 Report Share Posted July 26, 2016 Все оказалось именно так, как и предполагал, а именно: На всякий случай для тех кто в танке:Согласно инструкции, в simpla/ArticleCategoryAdmin.php при удалении изображения категории статей вызывается$this->articles->delete_image($category->id);А эта функция (в api/Articles.php) предназначена для удаления картинки СТАТЬИ. А автор инструкции применяет ее для удаления картинки КАТЕГОРИИ СТАТЕЙ. Потому удаление и не работает и не должно работать - все правильно и логично...а ты можешь сказать как правильно сделать??? Quote Link to post Share on other sites
strukov Posted July 26, 2016 Report Share Posted July 26, 2016 Все оказалось именно так, как и предполагал, а именно: На всякий случай для тех кто в танке:Согласно инструкции, в simpla/ArticleCategoryAdmin.php при удалении изображения категории статей вызывается$this->articles->delete_image($category->id);А эта функция (в api/Articles.php) предназначена для удаления картинки СТАТЬИ. А автор инструкции применяет ее для удаления картинки КАТЕГОРИИ СТАТЕЙ. Потому удаление и не работает и не должно работать - все правильно и логично... Я-ж даже видео сделал, ну где там - не работает??? Возможно сделал что-то не так, но я об этом и указал посте с инструкцией. НО у меня работает, для тех, кто в танке - выложил видео. Quote Link to post Share on other sites
Kors Posted July 26, 2016 Report Share Posted July 26, 2016 Я-ж даже видео сделал, ну где там - не работает??? Возможно сделал что-то не так, но я об этом и указал посте с инструкцией. НО у меня работает, для тех, кто в танке - выложил видео. Вы что, издеваетесь?Если хотите что-то доказать, то выкладывать надо не видео, а URL с доступом к админке. А потом, может, и FTP доступ... а ты можешь сказать как правильно сделать??? Уже сказал:...вместо двух нужных функций к Вас существует всего одна. Стало быть, надо написать и использовать вторую функцию. На бесплатной основе я такое сделать не готов. Я и так сделал для Вас немало - раскопал ошибку, несмотря на сильное сопротивление автора инструкции... Quote Link to post Share on other sites
motya88 Posted July 27, 2016 Report Share Posted July 27, 2016 Буду ждать решения( Quote Link to post Share on other sites
mishanya Posted July 27, 2016 Report Share Posted July 27, 2016 Буду ждать решения( реально, написал вам в #30, нельзя передавать айди категории в ф-ю удаления изображений статьи. вам нужно добавить еще одну ф-ю. для удаления изображения картинок категории и ее вызывать. public function delete_category_image($id) { $id = (array) $id; $query = $this->db->placehold("SELECT image FROM __article_categories WHERE id in(?@)", $id); $this->db->query($query); $filenames = $this->db->results('image'); if(!empty($filenames)) { $query = $this->db->placehold("UPDATE __article_categories SET image=NULL WHERE id in(?@)", $id); $this->db->query($query); foreach($filenames as $filename) { $query = $this->db->placehold("SELECT count(*) as count FROM __article_categories WHERE image=?", $filename); $this->db->query($query); $count = $this->db->result('count'); if($count == 0) { @unlink($this->config->root_dir.$this->config->article_category_images_dir.$filename); } } } } Quote Link to post Share on other sites
motya88 Posted July 27, 2016 Report Share Posted July 27, 2016 реально, написал вам в #30, нельзя передавать айди категории в ф-ю удаления изображений статьи. вам нужно добавить еще одну ф-ю. для удаления изображения картинок категории и ее вызывать. public function delete_category_image($id) { $id = (array) $id; $query = $this->db->placehold("SELECT image FROM __article_categories WHERE id in(?@)", $id); $this->db->query($query); $filenames = $this->db->results('image'); if(!empty($filenames)) { $query = $this->db->placehold("UPDATE __article_categories SET image=NULL WHERE id in(?@)", $id); $this->db->query($query); foreach($filenames as $filename) { $query = $this->db->placehold("SELECT count(*) as count FROM __article_categories WHERE image=?", $filename); $this->db->query($query); $count = $this->db->result('count'); if($count == 0) { @unlink($this->config->root_dir.$this->config->article_category_images_dir.$filename); } } } }правильно я понял, что надо твой код вставить в api/articles.phpи потом подправить код в /simpla/ArticleCategoryAdmin на этот // Удаление изображения if($this->request->post('delete_category_image')) { $this->articles->delete_category_image($category->id); } // Загрузка изображения $image = $this->request->files('image'); if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions)) { $this->articles->delete_category_image($category->id); move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->article_category_images_dir.$image['name']); $this->articles->update_category($category->id, array('image'=>$image['name'])); } $category = $this->articles->get_category(intval($category->id)); Quote Link to post Share on other sites
mishanya Posted July 27, 2016 Report Share Posted July 27, 2016 правильно я понял, что надо твой код вставить в api/articles.phpи потом подправить код в /simpla/ArticleCategoryAdmin на этот да так Quote Link to post Share on other sites
motya88 Posted July 27, 2016 Report Share Posted July 27, 2016 (edited) да такСделал, но все равно не получилось. Прикладываю файлы В статьях фотки не добавляются в админке(( В категория статей фотки в админке добавляются Edited July 27, 2016 by motya88 Quote Link to post Share on other sites
mishanya Posted July 27, 2016 Report Share Posted July 27, 2016 (edited) Сделал, но все равно не получилось. Прикладываю файлы В статьях фотки не добавляются в админке(( В категория статей фотки в админке добавляются ну во-первых вы задавали вопрос о категориях. во-вторых, а вы уверены что не добавляются? почему в этом запросе у вас два одинаковых названия поля? $query = $this->db->placehold("SELECT a.*, a.image, c.url category_url, c.name category, c.image в двух местах нужно заменить на $query = $this->db->placehold("SELECT a.*, a.image, c.url category_url, c.name category, c.image category_image Edited July 27, 2016 by mishanya Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.