შექმენი DIVI-სთან ერთად
გაზიარება, HTML5 თამაშები და მოდულების შექმნის გზამკვლევი
DIVI-ზე გაზიარების ღილაკი
იმუშავებს ჩვეულებრივი ბმულითაც — გარე SDK და მომხმარებლის გასაღები საჭირო არ არის. მომხმარებელი თავად ადასტურებს გამოქვეყნებას.
<a data-divi-share href="https://divi.ge/?action=share&url=https%3A%2F%2Fexample.com%2Farticle&title=Hello" target="_blank" rel="noopener noreferrer">Share on DIVI</a>JavaScript
document.querySelector('[data-divi-share]').addEventListener('click', function (event) {
event.preventDefault();
var share = new URL("https://divi.ge/");
share.search = new URLSearchParams({action:'share', url:location.href, title:document.title});
window.open(share.href, '_blank', 'noopener,noreferrer');
});url: HTTP/HTTPS · max 2000 bytes. title: max 300 characters. პარამეტრები URL-კოდირებით გადაეცით. შესვლის შემდეგ გაზიარება გაგრძელდება იმავე ბრაუზერში 15 წუთის განმავლობაში.
HTML5 Games
გარე თამაშის სერვერმა უნდა დაუშვას iframe-ში ჩასმა. პროვაიდერის დომენის შეზღუდვებს DIVI ვერ აუქმებს.
ადმინისტრაცია ამატებს გარე HTTPS თამაშს ან ამოწმებს და ატვირთავს თქვენს HTML5 ZIP-ს. დეველოპერს ადმინისტრატორის უფლება არ სჭირდება.
game.zip
index.html
assets/
game.js
style.css
sprites.png- შესასვლელი ფაილი: index.html; გამოიყენეთ ფარდობითი ბმულები და ეკრანზე მორგებული დიზაინი.
- ZIP ≤100 MB · extracted ≤300 MB · ≤3000 entries · asset ≤150 MB.
- მხოლოდ სტატიკური ფაილები: PHP, სერვერის კოდი, საიდუმლო გასაღებები, node_modules და შეკუმშული სერვერული ექსპორტები არ მოათავსოთ.
- თამაშები მუშაობს sandbox-ში: DIVI-ს მომხმარებლის მონაცემებზე, მშობელ გვერდზე და საერთო localStorage-ზე წვდომა არ აქვთ. ანგარიშთან ქულების სინქრონიზაციის API ამ ვერსიაში არ არის.
const lang = new URLSearchParams(location.search).get('lang') || 'ka';
// Support touch controls, portrait/landscape and muted startup.
// Start sound after a user tap.სანიმუშო თამაშის ZIPმოდულების შექმნა
მოდულის კოდი სერვერზე უშვებს დეველოპერის PHP-ს: მას მხოლოდ საიტის ნდობით აღჭურვილი ადმინისტრაცია ათავსებს. მომხმარებლის მიერ მოდულის ZIP-ის თვითნებური გაშვება არ არის დაშვებული.
app/modules/example/
module.json
backend.php
assets/example.js
database/install.sql{
"key": "example",
"name": "Example",
"family": "example",
"version": "1.0.0",
"core": false,
"toggleable": true,
"default_enabled": false,
"api": {
"backend": "backend.php"
},
"frontend": {
"authenticated_only": true,
"defer": true,
"assets": [
"assets/example.js"
]
}
}app/core/api_router.php?module=example&action=status
- backend.php-მ თავად უნდა შეამოწმოს სესია, უფლებები და POST-ის CSRF. JSON პასუხის Content-Type აუცილებლად მიუთითეთ.
- გამოიყენეთ PDO პარამეტრები, HTML escaping და ატვირთვების არსებული მოდული. მიგრაციები გაუშვით ცალკე, სარეზერვო ასლის შემდეგ.
- თარგმანები დაამატეთ საერთო catalog.json-ში უნიკალური პრეფიქსით და ka/en/ru მნიშვნელობებით. მენიუს გვერდსა და SEO მისამართს სჭირდება ცალკე მარშრუტისა და ხილვადობის შემოწმება — მხოლოდ manifest ყველა ინტეგრაციას არ ქმნის.
- სამიზნეა iOS 10.3+ JavaScript; ახალი სინტაქსი წინასწარ გარდაქმენით. გადაამოწმეთ თანამედროვე ბრაუზერებიც.

🚩 გასაჩივრება
აირჩიე მიზეზი და საჭიროების შემთხვევაში დაწერე დამატებითი ინფორმაცია.