Jump to content
Sign in to follow this  
Freestyler

[Решено] Создание новой функции в админке

Recommended Posts

Доброго дня. Собственно навеяла необходимость слегка расширить функционал админки, а именно добавить функцию вывода товарного чека, который очень схож со счетом. Но поскольку нужны оба, то я понял что нужна другая функция.

 

Сперва я сделал это с помощью VQMOD и вроде бы работало, но файл мода стал очень большим, и я решил его перевести в отдельную работающкю функцию.

 

Ну и собственно как я сделал:

1. Создал файл /admin/controller/sale/blank.php. Туда внес две функции: index() и tovarnyicheck() - вторую функцию получил путем переименования и копирования функции invoice() из файла order.php, из того же каталога. Ссылки на модели оставил те же, так как моя функция просто выводит тоже самое, только немного в другом виде и с другими словами.

2. Через vqmod_blank.xml вношу поправки в language файлы. Там же функции определения ссылок. Он же добавляет кнопки в админки. Эти функции оставил пока в контроллер не переносил

3. Создал файл admin/view/template/sale/order_tovarnyicheck.tpl (опять же путем копирования и небольшой правки order_invoice.tpl)

 

Но при нажатии кнопки "товарный чек" мне выводит, что страница не найдена. В разделе Группы пользователей наличие галочек проверено - стоят везде.

До этого содержимое файла blank.php тоже  вносилось через VQMOD и работало.

 

Подскажите, что где не так? 

blank.php

vqmod_blank.xml

order_tovarnyicheck.tpl.php

Share this post


Link to post
Share on other sites

А может проще было продублировать и изменить только файл шаблона и ВКУмодом вывести кнопку... Просто не понял для чего контроллеры менять, ведь используются теже самые, что и в стандартном счете... 

 

Да и языковые файлы можно не менять - просто заменить переменные в шаблоне на нужные слова.

 

PS Я не программист и поэтому могу ошибаться по-незнанке.

Share this post


Link to post
Share on other sites

Хочу сделать отдельно, что бы это стало действительно дополнительной функцией, а не нарезкой кода. Я сам особо не тоже не программист, но навыки оставшиеся после BASIC-а с 90-х годов помогают хотя бы понять логику кода, и что откуда берется.

 

Там контроллер создается дополнительный + ещё нюанс с врезкой их в функционал. Это в ВКУмоде видно. Причем без этих вставок не работает. Поскольку там идет передача содержимого в ссылку, а потом уже в tpl-файл.

 

А языковые вставки я там добавляю свои.

 

Скажу для чего я это делаю. Когда в ВКУмоде у меня это было - вроде все хорошо. НО! Если я не пользуюсь данной функцией скажем день, кэш почищен - при нажатии на кнопку "товарного чека" - я наблюдаю только тьму строк с ошибками. Спустя 5 секунд, обновив страницу, я уже получаю нормальный результат. Я так понимаю, что это дело исключительно ВКУмода, хотя возможно, что я неправильно заводил функции в файлы. Но ничего нового я не изобрел, а только добавил пару аналогичных строк и подправил файл инвойса.

Share this post


Link to post
Share on other sites

выложи пожалуйста свой новый tpl файл

Share this post


Link to post
Share on other sites

Вставил в первое сообщение. Только расширение поправьте.

Share this post


Link to post
Share on other sites

А первоначальный большой ВКмод, который работал остался? Можешь его выложить? Я имеющиеся файлы подправил под 1.5.4.1 и получаю тотже самый результат с ненайденной страницей.... 

  • +1 1

Share this post


Link to post
Share on other sites

1. blank.php

class ControllerSaleOrderBlank extends Controller {...
class ControllerSaleBlank extends Controller {...
/* {admin/}Controller/Folder/File */
2. xml

$this->url->link('sale/order/tovarnyicheck'...
$this->url->link('sale/blank/tovarnyicheck'...
/* folder/file/function */
  • +1 2

Share this post


Link to post
Share on other sites

Супер!!! Спасибо! Я так понимаю это типовая ошибка невкуривших в MVC?

 

А такой ещё вопрос. Можно ли как-нибудь содержимое одного tpl-файла подключить в соседний tpl файл? Что-то интернет вообще молчком об этом.

 

 

 

Спасибо за помощь и участие +1

Share this post


Link to post
Share on other sites

Итак. Вроде бы сделал.

Но возник вопрос в следующем. 

 

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

А вот если выбираю мой "товарный чек", он выводит данные по первому клиенту в количестве поставленных галочек. Как поправить этот недочёт?

Share this post


Link to post
Share on other sites

С этим разобрался, функцию $order не учел.

 

Может кто подскажет, как сделать, что бы новый "товарный чек" был на новой странице?

Share this post


Link to post
Share on other sites

С этим разобрался, функцию $order не учел.

 

Может кто подскажет, как сделать, что бы новый "товарный чек" был на новой странице?

 

решил, оказалось всё намного проще.

page-break-after: always;

теперь другой вопрос.

как ограничить вывод повторяющихся элементов (таблиц) на одной странице, к примеру трёх.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.