Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - Macsch15/SimPas: Fat-free Pastebin App · GitHub
Skip to content

Repository files navigation

SimPas PHPUnit

Fat-free Pastebin App

Image: QC3JcsybrX7v68KkVGLseO8ZqZLkxo

Image: nD6oDrNAi4YiuS8Yblfm0VUTOQaIhh

Requirements

  • PHP 7.3 and above
  • MySQL or PostgreSQL access
  • Shell access on server (CLI)

How to Install?

Run composer:

$ composer install

Edit configuration files:

config/database.php
config/app.php

After you set configuration, type in command line

$ php cli SyncDb

After installing SimPas, you should configure your web server document / web root to be the public directory.

Testing

$ ./vendor/phpunit

I have old release! How I can update SimPas?

Bad news. SimPas doesn't have an upgrader. Only way to install fresh release is to re-upload all files, configure low-level settings and enter the command:

$ php cli CacheRebuild

Some (e.g from 0.2 to 0.3) releases may need re-sync database schema, in this case command above is not enough, you must fire this as well in command-line:

$ php cli UpdateDb

Upgrader be maybe coming soon. Who knows?

Settings

IMPORTANT: Always use backslash for single and double quote, e.g you\'reyou\"re

config/app.php

KeyDescriptionValue typeDefault value
full_urlFull address of SimPas installation with ending slashStringhttp://localhost/SimPas/develop/
site_titleSite title displayed on page indexStringSimPas Application
site_description_crawlersSite description for crawlers (e.g Google)StringSimPas Application
show_index_in_urlsChange for "true" only if your server NOT have a mod_rewritetrue/falsefalse
shortcut_icon_urlFavicon path or URLStringvoid
admin_emailThis is required for "Report Abuse"Stringvoid
default_geshi_languageDefault syntax hightlighterStringText
site_offlineTurn off visibility of site for gueststrue/falsefalse
offline_allowed_ipIP address who can view site when site is "offline"String127.0.0.1
offline_messageOptional message for offline pageStringvoid
offline_message_allow_htmlAllow to use HTML entities in offline message?true/falsefalse
themeDefault theme. If you want add new one, you can copy "default" folder (in /assets/), rename, edit CSS/JS and enter in this setting new folder nameStringdefault
max_charsMaximum characters in pasteInteger50000
max_size_in_kbMaximum size of paste (in KB)Integer512
translationsSimPas translations are powered by GetText. You can translate this by using software (e.g Poedit). When translation is configured, move it to library/Application/Translations/Resourcetrue/falsefalse
translation_domainFilename of .po and .mo file in library/Application/Translation/Resource/{locale}/LC_MESSAGES/Stringmessages
localeRequired. Using for HTML documents, translation and relative date. List of all localesArray["en", "en_EN"]
accented_charactersSpecial characters for specific languageStringĘÓĄŚŁŻŹĆŃęóąśłżźćń
default_timezoneTimezone. List of all timezonesStringEurope/Warsaw
charsetCharset.StringUTF-8
gzip_compressionGZip compression. Required zlib librarytrue/falsefalse
antyflood_enabledAntyfloodtrue/falsetrue
antyflood_delay_in_secondsAntyflood delay (in seconds)Integer30
banned_ipIP addresses who can't send pastes. Wildcard is available by *Array["8.8.8.8", "8.8.8.*"]
google_analytics_ua_codeGoogle Analytics UA code is located on generated by GA javascript, e.g ga('create', 'UA-0000000-00', 'example.com');Stringvoid
latest_pastesNumber of pastes displayed on /latest pageInteger20
antispam_enabledQuestions&Answers enabled?true/falsetrue
author_website_enabledAuthor website enabled?true/falsetrue
delete_expired_pastesDelete expired pastes?true/falsetrue
cookie_pathCookies pathStringvoid
cookie_domainCookies domainStringvoid
cookie_secureUse secure cookies?true/falsefalse
hot_pasteNumber of hits needed to make "hot paste"Integer1500
show_cookies_infoDisplay information about using cookies in footer?true/falsefalse

config/database.php

KeyDescriptionValue typeDefault value
driverDatasource driver. Available: mysql or postgresqlStringmysql
serverDatabase serverStringlocalhost
portDatabase custom portInteger3306
databaseDatabase nameStringnewsimpas
usernameDatabase usernameStringroot
passwordDatabase passwordStringvoid
charsetDatabase charsetStringutf8
collateDatabase collateStringutf8_general_ci

config/mailer.php

KeyDescriptionValue typeDefault value
transportAvailable: mail (sending email by php mail()), smtp and sendmailStringmail
hostServer (for SMTP transport)Stringlocalhost
portPort (for SMTP transport)Integer25
usernameUsername (for SMTP transport)Stringvoid
passwordPassword (for SMTP transport)Stringvoid
protocolProtocol (for SMTP transport). Available: tls, sslStringtls
sendmail_commandSendmail command (for sendmail transport)String/usr/sbin/sendmail -bs

config/qa.php

KeyValue
QuestionAnswer. Can be multiple choices, e.g ["5", "Five"]

Command line interface

Create Database schema

$ php cli SyncDb

Update Database schema

$ php cli UpdateDb

Clear Database

$ php cli ClearDb

Rebuild cache

$ php cli CacheRebuild

Erasing all expired pastes

$ php cli EraseExpiredPastes

How I can translate "Rules" and "Cookies policy"?

In files:

library/Application/View/Templates/Text/Rules.html.twig

and

library/Application/View/Templates/Text/Cookies.html.twig

You can translate it or simply copy HTML template from other site.

Bug reports and feedback

If you have found bug, please report it on issue tracker.

If you discover a security vulnerability, please send an e-mail to web[at]macsch15.pl.

MIT Licence

Copyright (c) 2021 Maciej Schmidt

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

About

Fat-free Pastebin App

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages