Автор: SipsbNote: Version 1.1.0 of Dev Toolbox will require PHP 7.0 (minimum) to operate, as several of the libraries it uses were written for 7.0 and this has prompted us to update the app with php 7.0 features as well. This version was also designed with IPS 4.3 in mind, so it might not fully work in IPS 4.2.8 and below.
The Dev Toolbox is a group of applications, designed with making working with IPS easier, and to reduce overall production time. There are a total of 6 apps (well a total of 7, but the 7th one is required to be installed with any of the others, as it contains data and code the rest of the apps use to function).
These applications are being provided free of charge to the IPS developer community, but I ask if you find them useful or lifesaving, consider making a donation of any amount, to help ensure the future development of these fantastic tools.
if you would like to access the git repo:
there will be two branches, master and develop. master will be what is found here in the download and develop will be any fixes, features, etc, that are in the works, so it might not be ready for general use. if you want access to be able to push, send me a PM with your bitbucket name/email and i will consider adding you.
Here is a list of the apps and what they do (how they can benefit you).
This application will be most useful for those who use IDE's, especially if you use PHPStorm with the PHP-Toolbox plugin. Once you run it, it will create proxy class for IPS classes (most IDE's are unable to correlate an IPS class, to a class used in the code, due to the use of the _ in the class name). it will also attempt to create property tags for Database columns and the setters and getters found in your code. This is useful for autocomplete and code inspection in your IDE (will make it possible for the IDE to map the class's and their method usage).
PHP-Toolbox is a plugin for phpstorm, that makes it possible to add autocompletes for methods, and alter the return type as well.
Template Return Type: on Theme::getTemplate($group), this will trigger a return type that matches the $group param of the method. this will then provide possible templates that the group can provide. this is limited due to only $group being required, so it might not return the "right" template (as groups and template names aren't regulated like class names are). In my testing and use, this feature is about 95% accurate most of the time. It drastically goes up, the more unique the template name is compared to others. say you have a group called "forms" with a template in it called 'text.phtml', since IPS also has this, it could potentially return the wrong one (depends really on which order the template was processed in). Application Hinting: there are several methods in IPS that require an "app" name in their parameter, this builds a list of app names from the apps installed to "show up" when those methods are called. Table name Hinting: this is for any method that calls a Database table name, dt proxy will generate a list of table names based on the tables present at execution time. Language String Hinting: will provide a list of available language strings that can be used. Template Group Hinting: provides a list of available template groups to most methods that use them as a param. ModPermission Hinting: provides a list of available modpermissions to the methods that use them as a param. Url Hinting: provides a list of available Query Strings that can be used. Furl Hinting: provides a list of available FURL definitions. PHP Core Hinting: adds in additional hinting's and return types for PHP methods. DT Proxy Extension:
The dtproxy extension, you can add property types for Request and Data\Store. It already includes some of the most common property's found in both, but you can add to this with the extension in your applications.
DT Dev Center Plus:
This application extends the features of the developer center for applications in IPS. this will add 3 new tabs to the dev center, along with other improvments.
Sources: this allows you to create "sources" classes for your application. there are several predefined class types you can choose from. There are also options to handle some of the "mundane" things that are involved in creating several classes. most notably are the AR\Node\Items\Comments\Review classes. with each you have the option of creating the databases at creation with a basic layout (mainly the ID column) and with the prefix used if defined (for nodes/items/comments/review, this will also add too the class and to the table it creates, any required/optional fields for IPS traits or interfaces used). For nodes and items, it will also create the corresponding module and controller. (this feature can be turned off by turning of "create scaffolding"). Dev Folder: this tab allows you to create "Dev Folder" components, such as Templates and the JS skeletons. it is not as complex as Sources, but it saves time from hunting down and cloning an existing JS/template and removing the bits you don't need. Languages: This tab shows you all the defined language strings for your app, in both jslang and lang.php. this allows you to add/remove/alter while on the tab. Features:
Extension Generator: instead of just generating a blank skeleton for extensions, this feature aims to provide a working out of the box extensions. this feature atm only supports FileStorage, ContentRouter and CreateMenu. Adding/Removing Column in Versioning: this feature will allow to easily add in a query to add/remove columns for versions. Extension:
Dev Center Plus has an extension called "Headerdoc". it is a bit misleading name, but it gives you the ability to do several useful things when building an app.
Enabled() (bool) : if this is set to true, it will add the classes "doc block" to the file if it doesn't already exist, and if it does, it will only alter it for the files include in the tar (so the file wont be marked as changed by your repo software if you use it).
IndexEnabled() (bool): if this is set to true, it will add a blank index.html to all the folders and subfolders in your application. to prevent viewing of the directory contents on servers that do not have the directory listing turned off.
fileSkip() (array): allows you to add a list of files to skip during the build process of the tar. there is also a "global" skip list in the settings of DT Base for this.
dirSkip(array): allow you to skip entire folds during the build process of the tar. there is also a "global" dir skip list in the settings of DT Base.
exclude() (array) : allows you add a file or folder here to skip having a "header doc" added to it. useful if you use third party libraries. will automatically exclude the following directories and files: 'hooks', 'dev', 'data', '3rdparty', '3rd_party', 'vendor', '.git' and '.idea'.
DT Dev Folder:
ever misplaced thos pesky dev folders for your app or don't feel like alter table entries to rebuild your "plugin" dev folder manually, or simply doing work for a client and having a conflict with another app/plugin but can't debug it in in_dev due to missing dev folders, well look no further Dev Folder is the app for you. this will generate dev folders for both apps and plugins (will also allow you to install plugins while in_dev is enabled). if you have the app installed and enabled, it will automagically add the dev folders if they don't already exists .
I'm not sure where i will be going with this application exactly, right now it will search thru your code looking for lang keys and settings, it will check and verify they are both in use and defined. it can return false positives as these might not always be "defined" in a way it can read it, but can give you the ability to see which language strings are in use and get rid of the "dead" ones and same with settings. if you have any suggestions for things you would want to check in your code, let me know and i will see about implementing this feature.
Creates "dummy" content for testing purposes.
members - generates random members. can select to add members randomly to a random group. forums - generates forums. topics - generates topics. will create between 1 to 30 replies per topic created. posts - randomly adds replies to topic. clubs - creates clubs with random owners and various "types" *note: unlike the "storm" version, when forums are generated they will not create topics (there was a bit of problems with this in storm, so you should create forums first, then create the topics).
Replaces the IPS "query log" with a more compreshensive "profiler'. to enable you must have the define('QUERY_LOG', true) in your constants.php (if you want the cache log as well, you will need to have define('CACHING_LOG', true); as well).
Execution: will display the total time a page took to process from start to finish (this isn't the load time, so don't confuse the two :)). if you click on this tab, it will display how long the framework took and the profiler to execute, so you can rule out the profiler for slowdowns). memory used: The memory used by the page when it was being executed. This feature can be expanded upon by using the Memory class in Profiler. Included Files: shows how many files are included on the page, and if you click on it will show the a list of these files.* Query Log: displays the queries being executed for the page, along with their execution time and memory load. Caching Log: displayes the stores and caches being set or got during execution. Templates: a list of all the templates in use. * CSS: a list of all the CSS files loaded.* JS: a list of all the JS files loaded.* JSVars: a list of the JS Vars defined for use. Logs: shows the most recent logs that were generated (the amount it shows can be changed in the DT Base settings). Debug: if you use the Debug class, you can add debug statements inside your app's methods. this feature uses a long polling script to query the DB for new log entries and adds them here if they are found (useful for debuging Ajax request). if you use DT Dev Center Plus, you can add a permanent Profiler/Debug class to your app, this way you can add the \IPS\myapp\Profiler\Debug::add('key', 'message') to your methods and leave them there safely for future use (as the Profiler\Debug added by Dev Center Plus will create a class that uses __callStatic and checks to see if the parent class exists, other wise it will just be ignored) InfoBar: Gives basic information about the environment, IPS version, PHP version, and Contoller being executed, along with the Method and line number that method begins on.* *: if you have define('DEV_WHOOPS_EDITOR', 'phpstorm'); (or a supported editors) in your constants.php, it will generate a link that will open the file in editor if you have the phpstorm/supported editor protocol configured ( how to's for phpstorm (how to do this in windows) (how to in linux) (how to on mac not sure how well it works as i don't have a mac 😉 ) );
This is a command line application, that you can use to add backslashes to php internal functions and constants. This has been shown to improve performance on php 7+, due to opcode enhancements. this will also improved execution times as php doesn't have to look in the local space and then globalspace for defined functions. instructions in install.txt.
This app doesn't do much on its own. it mainly exist as a "core" app, to share usefule features and code among the rest of Dev Toolbox (so we aren't spending a great deal of time reinventing the wheel for common features). It also contains the Settings and DevBar menu. This app is REQUIRED to run any of the other apps, as they heavily depend on its libraries to function correctly.
There are a ton of features and abilitis i'm probably forgetting to mention here, so why don't you try it yourself, it is free after all. Hope everyone enjoys this! send me any bugs or feedback to my PM's. i wont be supporting this application in my app topic. thanks to everyone who has made this app possible!
License Note: The Dev Toolbox, where applicable, is released under the 2-Clause BSD License
Автор: SipsbЭти файлы необходимы для использования режима разработчика в IPS Community Suite.
Автор: SipsbЭтот скрипт проверяет готов ли ваш сервер или хостинг к использованию IPS Community Suite 4.x
Загрузите скрипт в каталог, где установлен IP.Board 3.x. и перейдите по ссылке в браузере https://domain/ips4.php или https://domain/ips4.3.3php Можете разместить этот скрипт в любом месте на вашем сервере или хостинге, для того что бы проверить, возможна ли установка IPS 4.x.
Автор: ๖ۣۣۜDesperate™Страницы Pages SuperGrid представляет собой набор шаблонов страниц и полное решение, чтобы сделать ваши базы данных страниц (статей, каталогов и т.д.) привлекательным и интересным.
Автор: SipsbSo many questions:
Why did I make this instead of doing more productive things? Why is this not baked into the software to begin with? Why did it take me (anyone?) over two years to get around to making this? Does there exist in the world a better gif to use as a primary screenshot?
Here is a list of things. You should read them.
1) If you install this on a live site to toggle dev mode on and off you ain't real smarts. If I've done my url check right, this cannot be used on live sites.
Another 1) CIC user? Why are you here? You can't run developers mode on CIC. Also, I check for CIC installation and then stop you from doing something stupid like using this.
2) You must already have a constants.php file; this won't make one for you. Oh, I could, maybe later... I could even just add a full on "edit your constants file from the ACP" thing. Maybe. Buy me beer. Seems like an "I'm drinking so lets do this" coding thing. Oh yeah, this constants file should have the define( 'IN_DEV', TRUE ); line already in there. True or false; either one.
Also 2) If you don't have a constants.php file and try to turn dev mode on/off the plugin will insult you, or just tell you it can't be found. Not entirely sure as I have a constants.php file and am far too attached to it to even move it for the briefest period of time, let alone rename it. This shall remain a mystery until @AndyF is forced to test it. And he has! No insult alas...
2 the Third) Another good thing to have is a dev folder. I check for that. Just the folder. If you want to enable developers mode with an empty dev folder that's up to you.
3) This grabs the constants.php content, case insensitive regex for the in_dev true or false, switches yonder true/false, then redirects. Where you ask? Journey to yonder plugin settings and chooseth your post-toggle target: the applications page or ye'olde plugins page.
4) I'm targeting single quotes for 'IN_DEV', so don't use "IN_DEV" in your constants.php. Yes I could deal with that. I could.
5) The toggle you seek is on your ACP usermenu.
6) You're stuck with fa-flask for an icon. I'll let you run wild and free with the next version whenever that is...
7) dmt_on and dmt_off are the language bits you seek if the existing words are not to your tastes.
8) IPS 4.2 or better. The usermenu hook might still be fine on 4.19.4 or lower but that's untested.
Автор: SipsbИконки званий в виде звёзд, для вашего форума.
Автор: SipsbЭто обычай .htaccess для использования на форумах IPS Community Suite. Это помогает улучшить ваши форумы Google pagespeed и yslow оценки.
Верхний сегмент такой же .htaccess, который генерируется с помощью программного обеспечения IPS Forum. Этот сегмент является кодом Invision Power Services, и я не утверждаю, что это мой собственный.
Нижний сегмент основан на исследовании нескольких веб-сайтов и ссылок, перечисленных ниже. Будьте осторожны при использовании этого файла, так как его содержимое может быть несовместимо с настройкой сервера.
Автор: SipsbПримечание: Для того чтобы использовать этот пакет расширения на вашем сайте, вы должны сначала установить Automation Rules
Automation Rules - FULL или Automation Rules - LITE
События: автоматизация функций сайта на основе событий форума
Сохраненное действие, используемое на форумах (правила могут запускаться с помощью сохраненных действий) Лучший ответ на форуме вопросов Лучший ответ не задан на форуме вопросов Условия: легко проверить условия форума QA
Тема находится в форуме вопросов / ответов Вопрос имеет наилучший ответ Действия: Принять меры на форумах QA
Установите лучший ответ на вопрос Отменить лучший ответ на вопрос
Автор: SipsbОб этом файле
Примечание - Всегда делайте резервную копию базы данных перед выполнением какого - либо обновления или конвертации!
UTF8 Database конвертер
Этот инструмент преобразует базы данных 3.x IP.Board в UTF8 (utf8_unicode_ci). Пожалуйста , обратите внимание , что UTF8 конвертер имеет следующие требования:
Минимум PHP 5.3 Минимум MySQL 5.0.3
Автор: SipsbЭтот «Rule pack» состоит из (примеров) правил, которые можно импортировать в приложение Rules, и настроить в соответствии с вашими потребностями. Для того, чтобы использовать любое из этих правил на вашем сайте, вы должны сначала установить приложение Rules:
Automation Rules - LITE или Automation Rules - FULL
Автор: SipsbНабор смайликов размером 35x35. Хорошо выглядет на темных темах.
Автор: SipsbРеакции от Facebook.
Автор: WickferШлюз Яндекс.Деньги для Invision Power Suite 4
Автор: SipsbПлагин позволяет скачать языковый пакет отдельно для каждого приложения.
Автор: SipsbГотовый список на 150 слов ненармативной лексики.
Для установки извлеките badwords.xml и добавте его в Система --> Настройки публикации --> Фильтры слов
Автор: SipsbОтличный набор emoticons для вашего форума. НЕ gif/
Автор: ๖ۣۣۜDesperate™Иконки групп, PSD макет присутствует.