- stack.md (68 lines) - PHP/MySQL/Apache stack, vendored libraries - architecture.md (131 lines) - Custom MVC CMS, dual-layer (front/admin) - structure.md (170 lines) - Directory layout and conventions - conventions.md (98 lines) - PHP snake_case, SCSS $c/$f prefixes, jQuery patterns - testing.md (49 lines) - No automated tests detected - integrations.md (111 lines) - Google Maps, PHPMailer, Pixieset, Facebook - concerns.md (150 lines) - Critical security issues: hardcoded creds, MD5, unserialize - db_schema.md (260 lines) - ~32 tables with pp_ prefix, inferred from source - tech_changelog.md (9 lines) - Initial log entry Co-Authored-By: Claude <noreply@anthropic.com>
5.0 KiB
5.0 KiB
External Integrations
Analysis Date: 2026-05-05
APIs & External Services
Maps & Geolocation:
-
Google Maps API — interactive contact/location maps on frontend
- Integration: JavaScript API via
https://maps.googleapis.com/maps/api/js?key=<key> - Auth: API key stored in
pp_settingstable asgoogle_map_key - Toggle:
google_mapssetting in admin settings - Files:
templates/site/contact.php,admin/templates/settings/settings.php
- Integration: JavaScript API via
-
geoPlugin IP Geolocation — visitor IP-to-location lookup with currency detection
- Service URL:
http://www.geoplugin.net/php.gp?ip={IP}&base_currency={CURRENCY} - Library:
autoload/class.geoplugin.php - No API key required (free service)
- Service URL:
Fonts & CDN Resources:
- Google Fonts —
https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700- File:
admin/templates/site/main-layout.php
- File:
- Google AJAX CDN — jQuery loaded from
//ajax.googleapis.com/ajax/libs/jquery/2.1.4/- File:
admin/templates/site/unlogged-layout.php
- File:
Social Media:
- Facebook Likebox widget — fixed sidebar widget showing Facebook feed
- App ID:
194295077275888(hardcoded in iframe) - File:
templates/site/facebook.php
- App ID:
Gallery:
- Pixieset — external photo gallery service integration
- Features: ZIP download of gallery images, mark favorites
- AJAX endpoints:
ajax.php?a=pixieset_* - Files:
templates/articles/article-gallery.php,ajax.php
Data Storage
Databases:
- MySQL 5.7+ — primary data store for all CMS content
- Connection: credentials hardcoded in
config.php(host, user, password, dbname) - Client: Medoo ORM (
libraries/medoo/medoo.php) - Table prefix:
pp_(~32 tables) - Migrations: None detected — schema managed manually
- Connection: credentials hardcoded in
File Storage:
- Local filesystem — all user uploads stored on server
- Images:
images/directory - Uploads:
upload/directory - Temp files:
admin/temp/ - Cache/WebP:
cache/directory - No cloud storage (no AWS S3, no CDN)
- Images:
Caching:
- Session-based cache via
\Cacheclass (autoload/class.Cache.php)- Keys pattern:
page_details:lang:id - File-based WebP image cache:
cache/directory
- Keys pattern:
Authentication & Identity
Auth Provider:
- Custom session-based authentication — no OAuth provider
- Implementation:
admin/index.php(session check + cookie auto-login) - Password storage: MD5 hashing (insecure — see concerns.md)
- Session security: IP address validation stored in
$_SESSION - Files:
autoload/admin/factory/class.Users.php,autoload/admin/class.Site.php
- Implementation:
OAuth Integrations:
- None detected
Email & Messaging
SMTP Mail:
- PHPMailer — SMTP-based transactional email
- Library:
libraries/phpmailer/class.phpmailer.php,libraries/phpmailer/class.smtp.php - Config: host, port, login, password stored in
pp_settingstable - Settings keys:
email_host,email_port,email_login,email_password - Function:
\S::send_email()inautoload/class.S.php - Used for: contact forms, newsletter delivery
- Library:
Newsletter:
- Custom database-driven newsletter system (no Mailchimp/SendGrid)
- Templates:
pp_newsletter_templatestable - Subscribers:
pp_newslettertable - Send log:
pp_newsletter_sendtable - Files:
autoload/front/factory/class.Newsletter.php
- Templates:
Analytics & Tracking
Analytics:
- Custom code injection — third-party analytics configured via admin settings
- Setting key:
statistic_code(stored inpp_settings) - Injection point: before
</head>inindex.php - Supports: Google Analytics, Matomo, or any snippet
- Setting key:
Error Tracking:
- None detected — no Sentry, Rollbar, or similar
Security
CAPTCHA:
-
Custom JavaScript captcha for contact forms
- Library:
libraries/jquery/captcha.js,libraries/jquery/captcha.css - Toggle:
contact_form_captchasetting - File:
templates/site/contact.php
- Library:
-
Google reCAPTCHA — used in some contact form variants
- Secret key hardcoded in
plugins/special-actions-middle.php(8 locations — see concerns.md)
- Secret key hardcoded in
CI/CD & Deployment
Hosting:
- Shared hosting at
serwer1574995.home.pl- Deployment: FTP via VS Code extension (
.vscode/sftp.json,.vscode/ftp-kr.json) - No automated deployment pipeline
- Deployment: FTP via VS Code extension (
CI Pipeline:
- None detected — no GitHub Actions, no CI configuration
Environment Configuration
Development:
- Required config: Database credentials in
config.php - No
.envor.env.example— all config hardcoded - FTP settings:
.vscode/sftp.json
Production:
- Same
config.phpused for production (no environment separation) - No staging environment detected
Not Detected
- ❌ Payment gateways (Stripe, PayPal, Przelewy24)
- ❌ SMS services (Twilio, SMSAPI)
- ❌ Cloud storage (AWS S3, Google Cloud Storage)
- ❌ Error tracking (Sentry, Rollbar)
- ❌ OAuth / SSO providers
- ❌ Redis / Memcached
- ❌ CDN (no Cloudflare, no CloudFront)
- ❌ Webhooks (incoming or outgoing)
Integration audit: 2026-05-05 Update when adding/removing external services