2011-07-18 31 views
5

Tôi đã viết một thành phần tùy chỉnh trong Joomla! kéo nội dung từ nguồn cấp dữ liệu XML và lưu trữ nó trong cơ sở dữ liệu Joomla. Tôi muốn URL quản trị (/ administrator/index? Option = com_mycomp) chạy qua cron một lần mỗi đêm để chạy thành phần. Tuy nhiên, tôi không thể tìm ra cách để thực hiện công việc này, vì thành phần là một nhiệm vụ quản trị viên và bạn phải đăng nhập để chạy nó.cách chạy tác vụ quản trị viên bằng joomla với công việc cron?

Làm cách nào để nhận được thông báo này? Tôi đã thử bao gồm cả người dùng/pw của tôi trong url (http: admin: [email protected]/joomla/administrator ....) nhưng nó không hoạt động. Có cách nào khác để gửi thông tin đăng nhập, hoặc bất kỳ cách nào khác để làm điều này?

+0

bạn cần phải viết một scfipt php để đăng nhập và thực hiện nó hoặc chỉ đơn giản là đặt thành phần giao diện người dùng với mật khẩu được mã hóa cứng hoặc kiểm tra HTTP_REFERER – jdog

+0

Bạn có tìm thấy giải pháp cho vấn đề này không? Tôi cũng đang phát triển một thành phần cần chạy ít nhất một lần một ngày để đồng bộ hóa với một db. Bạn có tìm thấy cách giải quyết không? –

Trả lời

2

Chỉ cần đặt kịch bản của bạn trong thư mục quản trị của các thành phần như

/administrator/components/com_yourcomponent/cron.yourcomponent.php 

Đây là cách FeedGator xử lý nhiệm vụ cron [Nghe có vẻ rất giống với những gì bạn đang cố gắng làm.] ... bạn cũng có thể viết một bộ điều khiển frontend trong thành phần của bạn mỗi một trong những ý kiến ​​

========== [cập nhật] ============

tôi tạo ra this ultra-simple installable component mà có thể cũng được sử dụng cho mục đích này. Nó cho phép một mục menu giao diện được gán cho một trang php (bao gồm cả các tuyến đường như gợi ý). Vì vậy, bạn:

  1. cài đặt các thành phần
  2. tạo mục trình đơn mới, (có thể muốn sử dụng một 'hidden' menu) chọn 'show' tùy chọn xem và nhập đoạn mã để chạy qua cron trong 'tập tin bao gồm' như path/yourcron.php
  3. gọi các 'trang' trong cron hoặc thử nghiệm của bạn sử dụng: yourjoomlasite.com/index.php?option=com_show hoặc yourjoomlasite.com/your-menu-alias
3

tôi biết điều này thread là rất cũ, nhưng đây là cách tôi xử lý một nhiệm vụ tương tự.

Bí quyết "" là lấy mã PHP tùy chỉnh mà bạn đã tạo và nhúng nó vào một bài viết trong trang web Joomla của bạn.

Tôi đã làm điều này bằng cách sử dụng phần mở rộng JUMI, cho phép mã PHP tùy chỉnh được lưu trữ trong kho lưu trữ Joomla và được nhúng, theo yêu cầu, trong một bài viết.

Sau đó, tạo một tác vụ CRON sẽ kích hoạt URL thích hợp cho trang chứa mã bạn muốn chạy.

+0

Đến lượt tôi hỏi về câu trả lời rất cũ này! Bạn có thể vui lòng tư vấn cho lệnh nào bạn đã sử dụng để chạy bài viết không. – Mark

+0

Xem câu trả lời cập nhật của tôi, tương tự như Jumi nhưng bạn có thể xác định chính xác url bạn muốn gọi là gì trong Joomla – idea34

1

Hầu hết các url ngô hoạt động từ giao diện người dùng ngay cả khi thành phần của bạn chỉ giao dịch với quản trị viên trong Joomla. Vì vậy, bất kỳ mã nào của bạn trong quản trị viên cron nhận được nó để front-end & để cronurl của bạn trở thành như index.php? Option = com_yourcomponent & task = cronjob. Sử dụng url này để đặt cron bằng cPanel.

Tuy nhiên giải pháp này không cần phải xem liệu quản trị viên có được đăng nhập hay không.

Các vấn đề liên quan