ARGOS multigaming cms

Още 2 нови екстеншъна.

Last Twitch Streams.
Demo: https://i.ibb.co/d6K66D6/pext40.png
Описание: Работи с Twitch Helix API и изисква работа с конзолата им. (дев центъра). Трябва ви сикрет и клиент айди, за да го подкарате. Аз съм оставил в ext.php моите, които съм си генерирал колкото за тест. Може да ги ползвате и тях. В Админ панела има опция да си ги въведете, да въведете игра за която искате да извежда инфото и колко резултата да вади (100 са макс за 1 страница, ако искате още, трябва да направите странициране, но няма смисъл.. 100 са предостатъчно. Крайните са с по 100 гледания, тъй че няма смисъл)
Вади само лайв стриймовете, тези които не са на живо не ги вади.
Когато кликнете върху някой бокс (стриймър) показва с jquery ифрейм през аякс и със scrollto към плеъра. Така може да гледате в реално време всички най-важни стриймове бързо и лесно. Страницата не се презарежда, просто се ползва html() през jquery и обновява плеъра динамично, когато цъкнете върху някой стриймър.
Има и флагове, за да се ориентирате, а в скобите са хората, които гледат в момента (зрителите).
Админ частта не е превеждана, тъй като се изисква опит поне малко, за да си генерирате credential-ите... Ако знаете какво правите, ще се оправите и сами..

Last Comments
Demo: https://i.ibb.co/pz90gRN/pext41.png
Описание: Показва последните коментари към новините. Извежда бокс с информация кой къде е поствал (към коя новина). Показва се под новините.
 
Имам вече един потенциален клиент, който иска да я купи, но ми постави условия да кодирам дизайн за League of Legends и да направя 3 екстеншъна (Къстъм новинарска система за потребителите, които новини да могат да се одобряват от админите, да се дават точки и тези точки да се преобразуват в пари. Да има екстеншън за шоп с кошница, където от админ панела да могат да се добавят артикули със описание, снимка, цена и т.н. Виртуален портфейл, където да се събират кредитите и да се обръщат в пари и да се теглят, да уведомява админите и т.н.)

Дизайна вече е готов, давам снимки и днес или утре ще го интегрирам:

Горе:

Долу:

Логото е с ховър като това на SoftUni, стрелкичката се преобръща и пада падащо меню:

Какво още ?
- VGNAV - https://www.jqueryscript.net/menu/multi-level-dropdown-vegas-nav.html
- Zebra Tooltip - https://github.com/stefangabos/Zebra_Tooltips
- Bootstrap 5
- Готини ефекти за търсачката и логина
- Стики нав (горното хедър меню е стики и пада надолу при скруул) - https://rgalus.github.io/sticky-js/
- Valid HTML5 Код
- Responsive
 
Последно редактирано:
7.9:
- В страницата с екстеншъните е сложен брояч, за да се знае колко екстеншъна има
- В админ панела, когато давате достъп на някой до него и до определени страници вече самите страници до които няма достъп са оцветени в друг цвят и са с # в href-a
- Обновен е рийдми файла, добавени са новите функции send_pm и is_ext_active_in_phpbb
- Във functions.php има леки изменения по някои функции

Още 1 нов екстеншън:
One Social работещ с Oneall API (oneall.com)
Вече може да се логвате през социалните мрежи през сайта или форума. Екстеншъна за аргос комуникира с този от форума ви.
Демо: https://i.ibb.co/S613TnV/pext42.png
Екстеншъна върви с css/html файлове и е преведен текста над иконите за социалните мрежи.
Тестван е от мен и работи коректно. В папката на екстеншъна е и екстеншъна за Phpbb3, който не фигурира в phpbb.com, а е взет от github.
Качвате го във форума, инсталирате го, оправяте си всичко с кейовете и сикретите и вече работи!
Ако има някакъв проблем или нещо не може да си го настроите - питате ме!

Имайте в предвид, че Oneall имат безплатен план, ако надвишите 2500 потребителя ще трябва да ъпгрейднете към платен план!
Бокса с иконките може да си го стилизирате или преместите в друг евент! Също така той се показва само на не-логнати потребители!
 
Нов екстеншън - цялостна шоп система работещa с Stripe API/Easy Pay API и/или собствена система за суми, които могат да се дават от админ панела или стандартна доставка (плащане с куриер)
Разполага с:
Обширен админ панел в който може да:
- Създавате категории
- Добавяте продукти (заглавие, снимки, цена, промо цена, наличност)
- Следене на статус (дали е платена или не и сетване на solved статус)
- Проверка на текущите поръчки в queue лист
- Сетване на цена само в евро или само в лева
- Преведен на en/bg/ru/fr/es
- Рейтинг система
- Сортиране по категория
- Сортиране по колона в датабазата (нисходящ/възходящ ред) - цена/прегледи/купуван в пъти/рейтинг и т.н.

Всеки предмет се добавя в кошница, която работи с горните апи-та, демо:
https://i.ibb.co/2qPfcMZ/shop1.png
https://i.ibb.co/mG1Zk0h/image.png
https://i.ibb.co/Fq2Sm9Z/image.png

Вече може да си добавяте каквито и да е продукти през шопа, той разполага и с lightbox+slick slider. Снимките се въртят, а при клик се зуумват през jquery API-то lightbox към slick.
Може да си го стилизирате както прецените за добре.
Ще разработя и екстеншън който вади определени от вас продукти (техните айдита), който принтва в страничен бокс тези продукти. (Нещо като последни продукти). Ще реша дали да е със слайдър или не в последствие.
Също така разработвам и нова система за писане на къстъм новини от вашите потребители. Ще създам и екстеншън чрез който може да давате баланс на определени потребители за добри дела, който баланс могат да ползват за закупуване на продукти в по-горния шоп.
 
Последно редактирано:
Предвид другата ти тема: ако модифицирам HTML-а каква сума ще заплатя накрая?
 
Сумата се калкулира бекенд. Другото в онази тема е само за пред потребителя, там е само визуално и за да знае колко трябва да плати.. Ще дам и код на екстеншъна, ето: https://pastebin.com/zSWdZvz5
Общо съм отделял по 5-6 часа 10 дни. Има доста къстъм темплейт файлове, но тях няма да ги споделям...
 
Последно редактирано:
Накратко - кода е отвратителен. Процедурен код бутнат в клас; няма никаква логика.

  1. 100 if-а с проверки какво идва през POST и се правят неща.
  2. strpos() и str_contain() за да провериш куери параметри в REQUEST_URI?
  3. Заявките са под всякаква критика. Някои са микс, където параметри се bind-ват, но точно $id-то в WHERE клаузата не е bind-нато. Други се изпълняват по изцяло друг начин.
  4. Дуплицирана логика на няколко места
  5. $arr променлива използвана 54 пъти. Нямам и идея какво съдържа.
  6. 1000 други проблема
Очаквам unit tests на разширението.
 
Еми толкова като за самоук човек.. :) Въпреки всичко екстеншъна си работи и няма грешка..На други места съм писал logic less в заглавието на темите, това е и мотото на Mustache. Много лесно се пише код в тази система. 1200 реда, а всъщност системата е функционална и то доста.
Ще пусна видео от админ панела и ще мръдна из фронт енд-а.. Ще стане утре, че стана време за лягане..
 
Код:
                echo $this->lang['ext_shop_submit_succ'];
                return;
това няма шанс да бъде одобрено в който и да е сайт за продажба на скриптове.
 
Защо ? Това вика ланг дефиниция, ето го и превода: (Конкретно bg.php)
Код:
<?php
$ext_language = [
    'ext_shop_success'=>'Успех',
    'ext_shop_delivery_method'=>'Стандартна доставка (куриери)',
    'ext_shop_delivery_method_f2'=>'Стандартна доставка (куриери) / текущо салдо',
    'ext_shop_delivery_method_f3'=>'Стандартна доставка (куриери) / epay',
    'ext_shop_delivery_method_f4'=>'Стандартна доставка (куриери) / stripe',
    'ext_shop_you_can_pay'=>'Можете да платите сега с epay (моля, запазете този номер:',
    'ext_shop_you_can_pay2'=>'Можете да платите сега със stripe сега:',
    'ext_shop_future'=>'за бъдеща информация до нашия екип!',
    'ext_shop_you_dont_have'=>"Нямате баланс, за да завършите тази поръчка, трябва ви",
    'ext_shop_submit_succ'=>'Успех, нашите колеги ще се свържат с вас скоро, за да потвърдят поръчката!',
    'ext_shop_already_voted'=>'Вие вече гласувахте!',
    'ext_shop_please_login'=>'Моля, влезте и опитайте отново!',
    'ext_shop_not_in_stock'=>'Артикулът не е в наличност',
    'ext_shop_added_to_basket'=>'Този продукт е добавен към вашата кошница!',
    'ext_shop_deleted'=>'ИЗТРИТО!',
    'ext_shop_cannot_contain'=>'Името на файла не може да съдържа запетая',
    'ext_shop_missing_input'=>'Липсващи входни данни',
    'ext_shop_no_cats'=>"В момента няма категории",
    'ext_shop_quantity'=>'бройки',
    'ext_shop_already'=>'Този предмет е вече добавен в кошницата!',
    
    //shopping_cart.html
    'ext_shop_product_title'=>'Заглавие на продукта',
    'ext_shop_product_price'=>'Цена на продукта',
    'ext_shop_price_type'=>'Тип цена',
    'ext_shop_product_qty'=>'Количество на продукта',
    'ext_shop_remove'=>'Премахване',
    'ext_shop_total_price'=>'Обща цена',
    'ext_shop_goto'=>'Отидете до магазина',
    'ext_shop_order'=>'Поръчка',
    'ext_shop_choose_method'=>'Изберете метод за плащане',
    'ext_shop_choose_option'=>'Изберете опция за плащане',
    'ext_shop_on_delivery'=>'При доставка',
    'ext_shop_on_curr_balance'=>'На текущия баланс',
    'ext_shop_curr_balance'=>'Текущ баланс',
    'ext_shop_with'=>'С',
    'ext_shop_fullname'=>'Пълно име',
    'ext_shop_delivery_explain'=>'Адрес за доставка (държава, град, име на улица, номер на улица) и др. (пълни подробности)',
    'ext_shop_your_phone'=>'Вашият телефон',
    'ext_shop_submit'=>'Изпращане',
    'ext_shop_now'=>'Пазарувайте сега',

    //js_front2.js
    'ext_shop_js_explain1'=>'Плащате поръчката успешно, нашият екип ще се свърже с вас скоро!',
    'ext_shop_js_explain2'=>'Отменяте поръчката! Можете да изберете друга опция за плащане!',

    //product_view.html
    'ext_shop_descr'=>'Описание',
    'ext_shop_details'=>'Подробности',
    'ext_shop_buy_count'=>'Брой покупки',
    'ext_shop_view_count'=>'Брой прегледи',
    'ext_shop_availability'=>'Наличност',
    'ext_shop_rating'=>'Рейтинг',
    'ext_shop_price'=>'Цена',
    'ext_shop_add_to_cart'=>'Добавяне в количката',
    'ext_shop_view_basket'=>'Вижте кошницата',
    'ext_shop_item_not_found'=>'Този продукт вече не е в нашата база данни',

    //shop_list.html
    'ext_shop_select_option'=>'Избор на опция',
    'ext_shop_view'=>'Преглед',
    'ext_shop_no_results'=>"В момента нямаме продукти",
    'ext_shop_price_asc'=>'Цена възходящ',
    'ext_shop_price_desc'=>'Цена нисходящ',
    'ext_shop_rating_asc'=>'Рейтинг възходящ',
    'ext_shop_rating_desc'=>'Рейтингът нисходящ',
    'ext_shop_buyc_asc'=>'Покупки възходящ',
    'ext_shop_buyc_desc'=>'Покупки низходящ',
    'ext_shop_viewc_asc'=>'Брой показвания възходящ',
    'ext_shop_viewc_desc'=>'Брой показвания нисходящ',
    'ext_shop_sort_by1'=>'Сортирай по колона',
    'ext_shop_sort_by2'=>'Сортирай по категория',


    //product_list_admin.html
    'ext_shop_product_date'=>'Дата на продукта',
    'ext_shop_product_edit'=>'Редактиране на продукт',
    'ext_shop_title'=>'Заглавие',
    'ext_shop_promo_price'=>'Промоционална цена',
    'ext_shop_promo_p_price'=>'Промоционална цена на продукта',
    'ext_shop_product_images'=>'Качени изображения към този продукт',
    'ext_shop_close'=>'Затвори',
    'ext_shop_no_results_2'=>'Няма резултати в този момент',

    //add_product_admin.html
    'ext_shop_product_cat'=>'Продуктова категория',

    //add_cat_admin.html
    'ext_shop_product_cat_name'=>'Име на продуктова категория',
    'ext_shop_current_cats'=>'Текущи категории',

    //queue_list_admin.html
    'ext_shop_user'=>'Потребител',
    'ext_shop_just_date'=>'Дата',
    'ext_shop_status'=>'Статус',
    'ext_shop_set'=>'Задай',
    'ext_shop_view_details'=>'Виж подробности',
    'ext_shop_canceled'=>'Отменено.',
    'ext_shop_if_you'=>'Ако маркирате като решено, това действие не може да бъде отменено',
    'ext_shop_are_you'=>'Сигурен ли си?',
    'ext_shop_mark_as'=>'Маркиране като решено',
    'ext_shop_address'=>'Адрес',
    'ext_shop_phone'=>'Телефон',
    'ext_shop_method'=>'Начин на плащане',
    'ext_shop_just_products'=>'Продукти',
    'ext_shop_already_solved'=>'Вече е решено',

    //shop_admin.html
    'ext_shop_admin_expl'=>'Оттук можете да добавяте категории за продукти от магазина или да добавяте продукти за магазина или можете да редактирате текущи продукти',
    'ext_shop_add_category'=>'Добавяне на категория',
    'ext_shop_add_product'=>'Добавяне на продукт',
    'ext_shop_product_list'=>'Списък с продукти',
    'ext_shop_queue_list'=>'Списък с опашки',

];
Това седи в папката на екстеншъна в папка lang
 
Накратко - кода е отвратителен. Процедурен код бутнат в клас; няма никаква логика.

  1. 100 if-а с проверки какво идва през POST и се правят неща.
  2. strpos() и str_contain() за да провериш куери параметри в REQUEST_URI?
  3. Заявките са под всякаква критика. Някои са микс, където параметри се bind-ват, но точно $id-то в WHERE клаузата не е bind-нато. Други се изпълняват по изцяло друг начин.
  4. Дуплицирана логика на няколко места
  5. $arr променлива използвана 54 пъти. Нямам и идея какво съдържа.
  6. 1000 други проблема
Очаквам unit tests на разширението.
тоя код е уникат :D
$arr не е само $arr, има и $arr2 и $arr3 :D
 
Тези $arr държат масив с цените и после се сумират в $total_price = array_sum(array_map("self::compute_multi", $arr2, $arr3));
Тази функция compute_multi ги сумира (умножава). Едното е прайс-а (цената), а другото е quantity..
Нали горе ме питахте за другата тема.. Е, цената се формира бекенд..
 
Последно редактирано:
Първото $arr държи продуктовите айдита:

$string = "";//globalize
foreach($arr as $v) {
$string .= "$v,";
}
$product_ids = rtrim($string, ',');
Нарочно е в масив, защото има запетайки и после ги режа с това горе (махам последната запетайка от стринга), ето демо от админ панела как се изобразява:
 

Прикачени файлове

  • еве2.png
    еве2.png
    73.5 KB · Преглеждания: 4
Последно редактирано:
Първото $arr държи продуктовите айдита:


Нарочно е в масив, защото има запетайки и после ги режа с това горе (махам последната запетайка от стринга), ето демо от админ панела как се изобразява:
или
Код:
$product_ids = implode(',', $arr);

Вземи погледай малко видеа по темата, в момента в тубата има страшно много качествен контент.
 
Не, аз просто за друго го ползвам, но не искам да навлизам подробности, защото в базата ги съхранявам по по-специфичен начин и заради това така. Така съм преценил, че е най-добре. Не можете да ме накарате да правя друго :D Аз както съм решил за добре, така съм го направил...
Утре ще пусна видео, за да разгледате. Трябва да интегрирам 1 темплейт и да направя още 2 екстеншъна и първия клиент вече е осигурен..
Казах му 200 лв. за системата + темплейта + 3 екстеншъна и се съгласи.
Ще купя и хост за демо скоро, там ще показвам повечко неща. Мисля да кодирам и още 1 отделен темплейт, понеже сега Counter-Strike 2 излезе и искам да е нещо по-новичко с последния bootstrap.. Ще гледам да е наистина стойностно този път.
 
Функцията ajax започва от ред 60 и приключва на ред... 727?
Не можеш да ме убедиш, че "няма грешка" и си изтествал 700 последователни реда код единствено с цъкане по сайта.
 
Утре ще гледам да ви представя екстеншъна чрез видео как работи и кое и как :)
Късно е и нямам време да пускам бандикам и да влизам по тубата..

Инак, аякс заявките са 4-те форми, stripe api-то и други тук-таме функции от админ панела. Също така и вдигането/свалянето на quantity за определен продукт. Освен това чрез аякс става и добавянето в кошницата на определен продукт. Гледал съм всичко да е с аякс направено, за да е без рефреш. Тествал съм всичко и не е имало проблеми. Утре ще пусна и клип. Има и проверки ако даден предмет е 2 бройки, да не качва повече от 2. Всичко съм гледал да е направено що годе добре..
Според мен клиента няма да е много очарован от дизайна, защото е направен малко дървено, но ако реши нещо друго - ще преправям.
Каза ми да гледам от ozone.. Влязох там и да, готино е, но чак пък толкова да се бъхтя за 200 лв.. не си струва..
Ozone също ползват slick, обаче има някакъв странен страничен слайдър, който е на slick, но е преработен здраво. Търсих в нета и в сайта на слик, но не намерих подобно нещо.. Явно някой го е въртял къстъм и е направено доста добре... Говоря най-вече за прегледа на продукт в сайта им. (Левия слайдър, който е с дроп/даун и изображенията се виждат в умален размер)
 
Тоя код може или по скоро трябва да се раздели на няколко части - потребителска/администраторска, пеймънта да се изведе отделно с цел лесно добавяне на нови начини на плащане а не да трябва да преправяш 700 реда ифове.
 
Тези $arr държат масив с цените и после се сумират в $total_price = array_sum(array_map("self::compute_multi", $arr2, $arr3));
Тази функция compute_multi ги сумира (умножава). Едното е прайс-а (цената), а другото е quantity..
Нали горе ме питахте за другата тема.. Е, цената се формира бекенд..
Идеята не е да ми обясняваш какво съдържа, а като погледна кода аз сам да разбера за какво става въпрос. Метода compute_multi не ми говори нищо. Трябва да вляза в него, за да разбера точно какво изчислява. Ти казваш първо сумира и след това в скоби, че умножава - е кое от двете? Има голяма разлика, защото при едното ще скочиш експоненциално нагоре с числата при грешни изчисления.

Така код не се пише. Ако ще пишеш ООП, поне го прави качествено, а не да наблъскаш 700 реда процедурен код в един метод. Това няма тестване. Ти като сам човек абсолютно не можеш да покриеш всичко и абсолютно не можеш постоянно да правиш сам regression testing на цялата система.

Еми толкова като за самоук човек..
В същото време отговаряш с
Така съм преценил, че е най-добре. Не можете да ме накарате да правя друго

Ако искаш да се учиш и да попиваш добри практики, то тогава се вслушвай.
Предвид, че го правиш като хоби, то това ти е най-добрия playground да се учиш как да правиш нещата по-добре.

Лошото на PHP е, че предпоставя хората да пишат лош код вместо да ги предпоставя да пишат добър код. Но предвид, че ти си правиш свое копие на vendor папката - е там няма оправия. В задклавиатурното устройство е проблема.

PHP:
$arr2 = []; //holds price
$arr3 = []; //holds quantity

защо просто не кръстиш променливите $prices и $quantities ами оставяш безсмислени коментари до тях? После, където ги използваш поне знаеш какво четеш вместо да се връщаш да четеш коментара до него, който в един момент няма да допринася с нищо смислено.

Сигурно мога да ти изпиша една книга с проблеми в кода ти.
 

Back
Горе