===========================
tbl_entries
===========================
id int (PK)
created_date date
created_by int (FK)
default_version int
is_deleted boolean
===========================
Forms have been an integral part of any interactive site since the dawn of time — they promote interactivity and are usually the most common way users interact with a site. It's commonplace that when a form is submitted (input), the website will take 'action' and do something with the data (processing) and then provide a user with the result (output). Symphony provides this logic layer via events.
This tutorial assumes you have a basic understanding of how events work in Symphony (if not, this may be a good introduction) and are semi-comfortable writing some PHP code. I'll be showing you some of the lesser-known features of Symphony events, including event priority, event chaining, and a brief demonstration of how to write a custom event. The difficulty level progresses as we go through, but with any luck you'll be able to learn a thing or two :)
Our client requires a form that allows a user to submit some detai
| <?php | |
| require_once('pclzip.lib.php'); | |
| $name = 'publishfiltering'; | |
| $tmp_zip_path = $name . '-' . sha1(microtime()); | |
| $tmp_zip_name = $tmp_zip_path . '.zip'; | |
| file_put_contents($tmp_zip_name, file_get_contents('https://github.com/nickdunn/publishfiltering/zipball/1.6.0')); |
| <?php | |
| require_once('pclzip.lib.php'); | |
| $name = 'publishfiltering'; | |
| $tmp_zip_path = $name . '-' . sha1(microtime()); | |
| $tmp_zip_name = $tmp_zip_path . '.zip'; | |
| file_put_contents($tmp_zip_name, file_get_contents('https://github.com/nickdunn/publishfiltering/zipball/1.6.0')); |
| <?xml version="1.0"?> | |
| <extensions> | |
| <section id="15" handle="extensions">Extensions</section> | |
| <entry id="57"> | |
| <repo name="mediathek" owner="nilshoerrmann" watchers="22" forks="10"> | |
| <description>A Mediathek Field for Symphony 2</description> | |
| <url>https://github.com/nilshoerrmann/mediathek</url> | |
| <pushed-at time="14:15" weekday="5">2011-03-25</pushed-at> | |
| <fork-of name="">https://github.com/</fork-of> | |
| <contributors> |
| <? | |
| $like = ''; | |
| $keywords = urldecode($keywords); | |
| $keywords = preg_replace("/[^a-zA-Z0-9\s]/", '', $keywords); | |
| $words = explode(' ', $keywords); | |
| foreach($words as $word) { | |
| $word = trim($word); | |
| $like .= 'index.data REGEXP "[[:<:]]'.Symphony::Database()->cleanValue($word).'[[:>:]]" AND '; | |
| } |
| <?php | |
| //Function to seperate multiple tags one line | |
| function fix_newlines_for_clean_html($fixthistext) | |
| { | |
| $fixthistext_array = explode("\n", $fixthistext); | |
| foreach ($fixthistext_array as $unfixedtextkey => $unfixedtextvalue) | |
| { | |
| //Makes sure empty lines are ignores | |
| if (!preg_match("/^(\s)*$/", $unfixedtextvalue)) |
| Cool. Lunch at 1 it is. |
| <?php | |
| // ensure output is sent as XML | |
| header('Content-Type: text/xml'); | |
| echo('<?xml version="1.0" encoding="utf-8" ?>'); | |
| include_once('markdown.php'); | |
| $handle = opendir('.'); |