Virgülle ayrılmış birden fazla etiket, aralarında mantıksal VE (AND) olarak değerlendirilir. Noktalı virgül, mantıksal VEYA (OR) olarak kabul edilir. AND, OR üzerinde önceliğe sahiptir ve mantıksal gruplama için parantez kullanılamaz. Bir etiketteki yıldız (*) işareti, "herhangi bir dize" anlamında bir joker karakterdir.
Bölümler: Döküman / Geliştirici Klavuzu
Çoğumuz için hata ayıklama biraz korkutucu veya yapmak istemediğimiz bir şey gibi geliyor. Ama aslında bunu kolayca bir av oyununa dönüştürebilirsiniz, bu sadece seçtiğiniz bir silah meselesidir. Tüm kodlarınıza mikroskopla bakabilirsiniz, gözünüzü bağlayarak bir sopayla vurmayı deneyebilirsiniz ama XXI. yüzyılda bunu yapmak için başka bir şey var.
En iyi çözüm, özel bir PHP hata ayıklayıcısı kullanmak olacaktır. Örneğin, XDebug. İşte güçlü IDE'ler ile XDebug...
Bölümler: Döküman / Geliştirici Klavuzu
Bu belge Cotonti geliştiricileri için temel öneri ve gereksinimleri içermektedir. Farklı alışkanlıklara ve anlayışlara sahip farklı kişilerin işbirliğinin sonucu olarak kaliteli ve sağlam bir ürün geliştirmelerine yardımcı olur.
Cotonti şu anda PHP 5.6 ve üstü ile çalışmasına rağmen, PHP 7.4 / 8.1 / 8.2'yi daha sağlam, katı ve modern olarak kullanmanızı öneririz. MySQL sürümleri için temel olarak 8.x'e güveniyoruz.
Not defteri yerine bazı IDE'leri veya özel Düzenlemeleri...
Bölümler: Documentation / Developer Guide
For most of us debugging sounds somewhat scary or whatsoever we wouldn't like to do. But in fact you could easily turn it into a hunt game, it's just a matter of a weapon you choose. You could look through all your code with a microscope, you could try hitting it with a stick blindfold but in XXI century they have something else to do that.
An ultimate solution would be using a special PHP debugger like XDebug. Here some tutorials for using XDebug with powerful IDEs:
Bölümler: Documentation / Extending Cotonti / Extensions
Cotonti allows for plugins to set certain configuration options for the administrator. These options are displayed in the Administration Panel under Configuration. This enables you to create flexible plugins with customisable values instead of hard-coded values.
The configuration options for your plugin are loaded from the plugin setup file (pluginname.setup.php) when it is installed through the Administration Panel. One consequence is that you will need to update the plugin...
Bölümler: Documentation / Extending Cotonti / Extensions
A hook is an entry point within a script where plugins can be executed to modify script's behavior. You can also treat it as an event which can be handled by third-party code. Cotonti literally includes PHP files registered as handlers for a specific hook. Imagine a script that has a hook in it:
$foo = 'The Lord of Foo'; $bar = 'hit the bar!'; // ... // A HOOK is here // ... echo "$foo $bar";
Then consider there is a handler for that hook which can access any variables...
Bölümler: Extensions
Plugin for CMF Cotonti. Provide smooth integration with packages installed to project with Composer (Dependency Manager for PHP).
First of all Package Connector allow to use autoloader for all Composer installed packages. That is practical way to use installed PHP package without a headache with manual adding require
/include
directive with proper library paths.
Beside this it has interface to installed package info. Using it you can get info about package version,...
Bölümler: Extensions / Development & Maintenance
This module implements a very simple unit testing framework for Cotonti. You can write tests for your functions and classes and put them in .test.php files in 'test' subfolders of your extensions. This module automates test execution and provide testing logs.
Instructions on testing and writing...
Bölümler: Documentation / Extending Cotonti / Extensions
This tutorial covers the following topics on Cotonti extension development:
Creating a plugin.
Using the database in your plugin.
Using CoTemplate to provide administration interface.
Localization of the interface.
Tools for administrators in plugins.
Modification of system behavior.
Using AJAX to implement auto-complete.
The plugin we are going to make in this article is the long requested tool that would let site administrators assign custom...
I'm glad to inform you that Cotonti Team has just moved the Development area of the project to GitHub, the next generation project hosting and social coding platform.
What benefits does it give to the Cotonti community? Here they are:
Bölümler: Articles / Organization
If you are new to SVN, these are the links that should help you:
Bölümler: Articles / Organization
Bölümler: Documentation (Genoa and older) / English / Developer Guide
Bölümler: Documentation / Extending Cotonti / Extensions
Those familiar with building or modifying Cotonti templates will have seen and used template tags. Tags are short bits of code which, when parsed by XTemplate, are replaced by a block of HTML code. This ensures your template file exists only of HTML code. Any PHP generated code is handled by the plugin and parsed using a tag.
When developing a plugin, it’s important to know how to define tags and conditional blocks with the XTemplate system. Before, most plugins used the legacy way of getting...
Bölümler: Documentation (Genoa and older) / English / Plugins
$extp = sed_getextplugins('index.main');
if (is_array($extp))
{ foreach($extp as $k => $pl) { include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
Bölümler: Documentation (Genoa and older) / English / Plugins
Bölümler: Forumlar / National / Russian
Bölümler: Forumlar / Cotonti / Development