/** * Created by PhpStorm. * User: csibi * Date: 2015.08.23. * Time: 20:59 */ function pwd($email, $pwd) { $input = $email . ";" . $pwd; $unique_salt = \runner::config("pwd_salt"); $unique_logarithm = \runner::config("pwd_logarithm"); $unique_method = \runner::config("pwd_method"); return \Routerunner\Crypt::crypter($input, null, null, 0, $unique_salt, $unique_logarithm, $unique_method); }
/** * Created by PhpStorm. * User: csibi * Date: 2015.02.18. * Time: 14:55 */ function logincrypt($email, $pwd, &$error = false) { $isOk = false; $unique_salt = \runner::config("pwd_salt"); $unique_logarithm = \runner::config("pwd_logarithm"); $unique_method = \runner::config("pwd_method"); $input = $email . ";" . $pwd; //var_dump(\Routerunner\Crypt::crypter($input, null, null, 0, $unique_salt, $unique_logarithm, $unique_method)); $SQL = "SELECT pwd, confirm_date FROM member WHERE email = :email"; if ($result = \Routerunner\Db::query($SQL, array(":email" => $email))) { $result = $result[0]; if (is_null($result["confirm_date"])) { $error = "User has not been confirmed!"; } $isOk = \Routerunner\Crypt::checker($input, $result["pwd"], $unique_salt, $unique_logarithm, $unique_method); if (!$isOk) { $error = "Incorrect password!"; } } else { $error = "User is not exists!"; } return $isOk; }
header("Location: " . $url); } elseif ($method == "open") { try { $im = @imagecreatetruecolor(1, 1); @imagealphablending($im, true); $transparent = @imagecolorallocatealpha($im, 0, 0, 0, 127); @imagefilledrectangle($im, 0, 0, 1, 1, $transparent); @header('Content-type: image/png'); @imagepng($im); @imagedestroy($im); } catch (Exception $e) { } } elseif ($method == "click") { $url = stripslashes($click_url); if (!preg_match('~^http(s)?:\\/\\/~', $url)) { $url = \runner::config("BASE") . $url; } header("Location: " . $url); } } elseif ($click_url) { $url = stripslashes($click_url); if (!preg_match('~^http(s)?:\\/\\/~', $url)) { $url = \runner::config("BASE") . $url; } header("Location: " . $url); } else { header("Location: " . \runner::config("BASE")); } } } $debug = 1;
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.07.13. * Time: 11:27 */ $debug = 1; $form = array('method' => 'post', 'xmethod' => isset($_GET["id"]) && is_numeric($_GET["id"]) && $_GET["id"] > 0 ? 'put' : 'post', 'name' => 'e_campaign', 'error_format' => '<p class="err">%s</p>' . PHP_EOL, 'from' => 'e_campaign', 'condition' => array(array('e_campaign.id = :id', array(':id' => 'id'), 'AND'))); $nonce = uniqid(rand(0, 1000000)); if (!isset($_POST["nonce"])) { $_SESSION["nonce"] = \Routerunner\Crypt::crypter($nonce); } $value = array("label" => "", "category" => "", "active" => "1", "mail_route" => "", "subject" => "", "mail_html" => ""); if (isset($_GET["id"]) && is_numeric($_GET["id"])) { $SQL = "SELECT label, category, active, mail_route, subject, mail_html, mail_text FROM `e_campaign` WHERE id = ?"; if ($result = \db::query($SQL, array($_GET["id"]))) { $value = array_merge($value, $result[0]); } } if (!$value["mail_html"] && \runner::config("newsletter_mail_html")) { $value["mail_html"] = \runner::config("newsletter_mail_html"); } $input = array('id' => array('type' => 'hidden', 'field' => 'id', 'value' => isset($_GET["id"]) ? $_GET["id"] : ""), 'nonce' => array('type' => 'hidden', 'field' => 'nonce', 'value' => $nonce), 'label' => array('type' => 'text', 'field' => 'label', 'label' => 'Label', 'input-id' => 'frm-name', 'class' => '', 'value' => $value["label"]), 'category' => array('type' => 'select', 'field' => 'category', 'label' => 'Category', 'input-id' => 'frm-category', 'class' => '', 'value' => $value["category"]), 'active' => array('type' => 'boolean', 'field' => 'active', 'label' => 'Active state', 'input-id' => 'frm-active', 'class' => '', 'value' => $value["active"]), 'subject' => array('type' => 'text', 'field' => 'subject', 'label' => 'Subject', 'input-id' => 'frm-subject', 'class' => '', 'value' => $value["subject"]), 'mail_html' => array('type' => 'ckeditor', 'field' => 'mail_html', 'label' => 'Message content', 'input-id' => 'frm-mail_html', 'class' => '', 'value' => $value["mail_html"]), 'mail_text' => array('type' => 'textarea', 'field' => 'mail_text', 'label' => 'Message text content', 'input-id' => 'frm-mail_text', 'class' => '', 'value' => $value["mail_text"]), 'submit' => array('type' => 'submit', 'input-id' => 'frm-submit', 'value' => 'Save')); $unset = array("submit");
</table> <span class="devider"> </span> <table class="row"> <tr> <td class="wrapper last"> <!-- BEGIN: Disscount Content --> <table class="twelve columns"> <tr> <td> <h4>70% Disscount!</h4> <p> Phasellus dictum sapien a neque luctus cursus. Pellentesque sem dolor, fringilla et pharetra vitae. Pellentesque sem dolor, fringilla et pharetra vitae </p> <img src="<?php echo runner::config("BASE"); ?> metronic/assets/admin/pages/media/email/article.png" class="ie10-responsive" alt=""/> </td> <td class="expander"> </td> </tr> </table> <!-- END: Disscount Content --> </td> </tr> </table> </td> </tr> </table> <!-- END: Content -->
} } if (($resource = json_decode($change["resource"], true)) && isset($resource["route"])) { $model_route = $resource["route"]; } else { $model_class = "get_the_proper_model_class"; $model_route = "/model"; } if ($model_class && substr($model_route, -1 * (strlen($model_class) + 1)) != '/' . $model_class) { $model_route .= '/' . $model_class; } $context = array("direct" => $change["reference"], "session" => \runner::stack("session_id"), "silent" => true); $router = false; $model = false; \runner::stack("model_create", array("class" => $model_class)); \runner::redirect_route($model_route, \runner::config("scaffold"), true, $context, $router, $model); \runner::stack("model_create", false); if ($model && is_array($model)) { $model = array_shift($model); } if (is_object($model) && get_parent_class($model) == "Routerunner\\BaseModel" && ($changes = json_decode($change["changes"], true))) { switch ($change["state"]) { case "property": foreach ($changes as $field => $value) { if (property_exists($model, $field) && isset($model->table_from) && isset($model->table_id)) { $model->{$field} = $value; $pk = false; if (isset($router->runner->model_context["primary_key"])) { $pk = $router->runner->model_context["primary_key"]; } else { $SQL = <<<SQL
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ $debug = 1; return array('wrapper_class' => 'rr-content', 'child_selector' => '.rr-content-model', 'fields' => array('label' => array_merge(\runner::config("property.label"), array('selector' => '.rr-content-label')), 'content' => array_merge(\runner::config("property.type.text"), array('selector' => '.rr-content-content')), 'tag' => array_merge(\runner::config("property.tag"), array('selector' => '.rr-content-tag select')), 'author' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-content-author')), 'contentimage' => array_merge(\runner::config("property.contentimage"), array('selector' => '.rr-content-contentimage', 'mediasize' => 'contentimage'))));
<div class="rr-feature-model col-md-3 col-sm-6"> <div class="panel panel-default text-center"> <div class="panel-heading"> <span class="fa-stack fa-5x"> <?php if (\model::property("icon_class") || \runner::config("mode") == "backend") { ?> <span class="fa <?php echo \model::property("icon_class"); ?> "></span> <?php } ?> </span> </div> <div class="panel-body"> <h4 class="rr-feature-label"><?php echo \model::property("label"); ?> </h4> <div class="rr-feature-lead"> <?php echo \model::property("lead"); ?> </div> <?php if (trim(\model::property("link"), " #")) { ?> <a href="<?php echo \model::property("link");
} if (is_dir($path)) { foreach ($file as $key => $current_file) { if (!$found && $path && $current_file && file_exists($path . $dirsep . $checkfiles[$key])) { $response["script"] = str_replace(\runner::config("SITEROOT"), "", $path . $dirsep . $checkfiles[$key]); $route = str_replace(\runner::config("SITEROOT"), "", $path); $response["route"] = explode($dirsep, $route); $response["content"] = file_get_contents($path . $dirsep . $checkfiles[$key]); $found = true; } } } } if (!$found) { $path = \runner::config("SITEROOT") . \runner::config("BACKEND_ROOT") . "scaffold" . $dirsep . "backend" . $dirsep . "input" . $dirsep; if (is_dir($path)) { foreach ($file as $key => $current_file) { if (!$found && $path && $current_file && file_exists($path . $dirsep . $checkfiles[$key])) { $response["script"] = str_replace(\runner::config("SITEROOT"), "", $path . $dirsep . $checkfiles[$key]); $route = str_replace(\runner::config("SITEROOT"), "", $path); $response["route"] = explode($dirsep, $route); $response["content"] = file_get_contents($path . $dirsep . $checkfiles[$key]); $found = true; } } } } } } echo json_encode($response); });
public function set_cache() { if (\runner::config('mode') != 'backend' && \Routerunner\Routerunner::$cache && \Routerunner\Routerunner::$cache_type == 'Memcached') { \Routerunner\Routerunner::$cache->set($this->cache_route . '|html', $this->runner->html, $this->runner->cache_exp); \Routerunner\Routerunner::$cache->set($this->cache_route . '|model', $this->runner->model, $this->runner->cache_exp); } elseif (\runner::config('mode') != 'backend' && \Routerunner\Routerunner::$cache && \Routerunner\Routerunner::$cache_type == 'Memcache' && strlen($this->cache_route) < 250) { \Routerunner\Routerunner::$cache->set($this->cache_route . '|html', $this->runner->html, MEMCACHE_COMPRESSED, $this->runner->cache_exp); \Routerunner\Routerunner::$cache->set($this->cache_route . '|model', $this->runner->model, MEMCACHE_COMPRESSED, $this->runner->cache_exp); } }
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ $class_options = explode(";", "bg-default;bg-primary;bg-info;bg-success;bg-warning;bg-danger"); sort($class_options); return array('wrapper_class' => 'rr-freecontent', 'child_selector' => '.rr-freecontent-model', 'fields' => array('label' => array_merge(\runner::config("property.label"), array('selector' => '.rr-freecontent-label')), 'description' => array_merge(\runner::config("property.lead"), array('selector' => '.rr-freecontent-description')), 'link' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-freecontent-link')), 'addon_class' => array_merge(\runner::config("property.type.select"), array('selector' => '.rr-freecontent-addon_class select', 'options' => $class_options, 'help' => array('panel' => ''))), 'image' => array_merge(\runner::config("property.contentimage"), array('selector' => '.rr-freecontent-image', 'default' => 'Routerunner/placeholder/600x600')), 'data_image' => array_merge(\runner::config("property.data_contentimage"), array('selector' => '.rr-freecontent-data_image', 'default' => '{"src": "Routerunner/placeholder/600x600", "x": 0, "y": 0, "width": 600, "height": 600, "rotate": 0, "canvasData": {}}', 'width' => '600px', 'height' => '600px')), 'html_code' => array_merge(\runner::config("property.type.text"), array('selector' => '.rr-freecontent-html_code'))));
private static function SQL_creator($select, $from, $primary_key, $leftJoin = array(), $where = array(), &$params = array(), $orderBy = false, $groupBy = false, $limit = false, $offset = false) { $ordering = $orderBy; $parents = \runner::stack("parents"); if (!$parents) { $parents = array(); } $prevs = \runner::stack("prevs"); if (!$prevs) { $prevs = array(); } $strict = false; $skip_state = false; $by_tree = false; $by_index = false; if ($orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC || $orderBy === \Routerunner\Routerunner::BY_INDEX || $orderBy === \Routerunner\Routerunner::BY_INDEX_DESC || isset($where["direct"]) && $where["direct"] || isset($where["parent"]) && $where["parent"] || isset($where["self"]) && $where["self"] || isset($where["lang"]) && $where["lang"]) { $tree = array(); $params = array(); if (isset($where["direct"]) && is_numeric($where["direct"])) { $SQL = 'SELECT models.reference, NULL AS parent_ref, NULL AS prev, table_from, table_id ' . PHP_EOL; $SQL .= 'FROM {PREFIX}models AS models ' . PHP_EOL; $SQL .= 'WHERE models.reference = :reference'; $params = array(":reference" => $where["direct"]); $strict = true; $skip_state = true; $by_tree = true; } elseif (isset($where["direct"]) && is_array($where["direct"])) { $SQL = 'SELECT models.reference, NULL AS parent_ref, NULL AS prev, table_from, table_id ' . PHP_EOL; $SQL .= 'FROM {PREFIX}models AS models ' . PHP_EOL; $SQL .= 'WHERE models.model_class = :class AND models.table_id = :id'; if (is_numeric(current($where["direct"]))) { $params = array(":class" => key($where["direct"]), ":id" => current($where["direct"])); } else { $params = array(":class" => current($where["direct"]), ":id" => key($where["direct"])); } $strict = true; $skip_state = true; $by_tree = true; } else { $where_reference = array(); // get self reference if ($self_reference = self::resolve_model_reference('self', $where, true)) { $where_reference['model_traverse.reference IN (' . implode(',', $self_reference) . ')'] = null; $strict = true; $skip_state = true; $by_tree = true; } // get parent reference if ($parent_reference = self::resolve_model_reference('parent', $where, true)) { $where_reference['model_traverse.parent_ref IN (' . implode(',', $parent_reference) . ')'] = null; $strict = true; $skip_state = true; $by_tree = true; } // get lang condition if ($lang = self::resolve_model_reference('lang', $where, true)) { $where_reference['model_traverse.lang IN (' . implode(',', $lang) . ')'] = null; $strict = true; $skip_state = true; } if (!$where_reference && $where) { $SQL_reference = "SELECT models.reference FROM `" . $from . "` AS model_table " . PHP_EOL . "LEFT JOIN `" . $from . "` ON `" . $from . "`.`" . $primary_key . "` = model_table.`" . $primary_key . "`" . PHP_EOL . "LEFT JOIN `{PREFIX}models` AS models ON models.table_from = '" . $from . "' AND models.table_id = model_table.`" . $primary_key . "`" . PHP_EOL . " WHERE "; $conds_reference = array(); $params_reference = array(); foreach ($where as $cond_reference => $param_reference) { $conds_reference[] = preg_replace("~(:[a-z0-9\\-_\\.]+)~i", "?", $cond_reference); if (!is_null($param_reference)) { $params_reference[] = $param_reference; } } $SQL_reference .= implode(" AND ", $conds_reference); if ($result_reference = \db::query($SQL_reference, $params_reference)) { $row_reference = array_shift($result_reference); $reference_for_parent = $row_reference["reference"]; if (($parent_obj = \Routerunner\Bootstrap::parent($reference_for_parent)) && count($parent_obj)) { $parent_obj = array_pop($parent_obj); $parent_reference = $parent_obj["reference"]; $where_reference['model_traverse.parent_ref IN (' . $parent_reference . ')'] = null; } $strict = true; $skip_state = true; } } if ($orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC) { // get previous sibling $prev_reference = self::resolve_model_reference('prev', $where, true); if ($prev_reference !== false) { $where_reference['model_traverse.prev_ref IN (' . implode(',', $prev_reference) . ')'] = null; $strict = true; $skip_state = true; } // get next sibling // todo: check --- is it ok? $next_reference = self::resolve_model_reference('next', $where, true); if ($next_reference !== false) { $where_reference['model_traverse.prev_ref IN (SELECT reference FROM {PREFIX}model_trees WHERE prev_ref IN (' . implode(',', $next_reference) . '))'] = null; $strict = true; $skip_state = true; } } if ($orderBy === \Routerunner\Routerunner::BY_INDEX) { // get order_no sibling $order_no_reference = self::resolve_model_reference('order_no', $where, true); if ($order_no_reference !== false) { $where_reference['model_traverse.order_no IN (' . implode(',', $order_no_reference) . ')'] = null; $strict = true; $skip_state = true; $by_index = true; } } if ($where_reference) { $SQL = 'SELECT models.reference, model_traverse.parent_ref' . PHP_EOL; if ($orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC || $by_tree) { $SQL .= ', prev_ref AS prev' . PHP_EOL; } elseif ($orderBy === \Routerunner\Routerunner::BY_INDEX || $orderBy === \Routerunner\Routerunner::BY_INDEX_DESC || $by_index) { $SQL .= ', order_no AS prev' . PHP_EOL; } $SQL .= 'FROM {PREFIX}models AS models ' . PHP_EOL; if ($orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC || $by_tree) { $SQL .= 'LEFT JOIN {PREFIX}model_trees AS model_traverse ON model_traverse.reference = models.reference ' . PHP_EOL; } elseif ($orderBy === \Routerunner\Routerunner::BY_INDEX || $orderBy === \Routerunner\Routerunner::BY_INDEX_DESC || $by_index) { $SQL .= 'LEFT JOIN {PREFIX}model_orders AS model_traverse ON model_traverse.reference = models.reference ' . PHP_EOL; } $SQL .= 'WHERE ' . implode(' AND ', array_keys($where_reference)) . PHP_EOL; if ($orderBy === \Routerunner\Routerunner::BY_INDEX || $by_index) { $SQL .= 'ORDER BY model_traverse.parent_ref, model_traverse.order_no, models.reference'; } } } if ($strict && !empty($SQL) && ($result = \db::query($SQL, $params))) { // modify SQL params if (!$leftJoin) { $leftJoin = array(); } if (strpos($from, '{PREFIX}models') !== false || $from == 'models') { $from = '`{PREFIX}models` AS models'; $model_class = 'models'; $primary_key = 'reference'; } else { array_unshift($leftJoin, '`' . $from . '` ON `' . $from . '`.`' . $primary_key . '` = models.table_id AND models.table_from = \'' . $from . '\''); $model_class = trim($from, '`'); $primary_key = trim($primary_key, '`'); $from = '{PREFIX}models AS models'; } if ($orderBy === \Routerunner\Routerunner::BY_INDEX || $orderBy === \Routerunner\Routerunner::BY_INDEX_DESC || $by_index) { foreach ($result as $reference_row) { $tree[] = $reference_row['reference']; $parents[$reference_row["reference"]] = $reference_row["parent_ref"]; $prevs[$reference_row["reference"]] = $reference_row["prev"]; } $orderBy = '`models`.`order_no`'; } elseif ($orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC || $by_tree) { $orderByTree = $orderBy === \Routerunner\Routerunner::BY_TREE || $orderBy === \Routerunner\Routerunner::BY_TREE_DESC ? true : false; if ($orderByTree) { $orderBy = 'CASE `models`.`reference`'; } $reorder_tree = array(); foreach ($result as $reference_row) { $reorder_tree[$reference_row['prev']] = $reference_row; $parents[$reference_row["reference"]] = $reference_row["parent_ref"]; $prevs[$reference_row["reference"]] = $reference_row["prev"]; } if (count($reorder_tree) === 1) { $prev = key($reorder_tree); $index = 0; } else { $prev = 0; $index = 0; } while (isset($reorder_tree[$prev])) { $current = $reorder_tree[$prev]['reference']; $tree[] = $current; $prev = $current; if ($orderByTree) { $orderBy .= ' WHEN ' . $current . ' THEN ' . $index; } $index++; } if ($orderByTree) { $orderBy .= ' END'; } } elseif (isset($where["direct"])) { foreach ($result as $reference_row) { $tree[] = $reference_row['reference']; } } if ($ordering === \Routerunner\Routerunner::BY_INDEX_DESC || $ordering === \Routerunner\Routerunner::BY_TREE_DESC) { $orderBy .= ' DESC'; } if (!$where) { $where = array(); } $where['models.reference IN (' . implode(',', $tree) . ')'] = null; $where['`' . $model_class . '`.`' . $primary_key . '` IS NOT NULL'] = null; } elseif ($strict) { $where['1 = 0'] = null; } if ($config_reference = \runner::config('reference')) { $where['models.reference IN (' . $config_reference . ')'] = null; } } else { // join models table and filter to reference } \runner::stack("parents", $parents); \runner::stack("prevs", $prevs); $SQL = ''; unset($where["direct"]); $visible_references = array(); $params = array(); if (\runner::config("mode") != "backend" && \runner::config("mode") != "sitemap" && !\runner::now("skip_state_check") && !$skip_state) { $_from = $from; if (strpos($_from, "AS") !== false) { $_from = substr($_from, 0, strpos($_from, "AS")); } $SQL = "SELECT models.reference FROM " . $_from; if (strpos($_from, "models") !== false) { $SQL .= " AS models"; } $SQL .= PHP_EOL; if ($leftJoin) { foreach ($leftJoin as $join) { $SQL .= 'LEFT JOIN ' . $join . PHP_EOL; } } if (strpos($_from, "models") === false) { $SQL .= "LEFT JOIN {PREFIX}models AS models ON models.table_from = '" . $_from . "' AND models.table_id = " . $_from . "." . $primary_key . PHP_EOL; } $_where = array(); if (isset($where) && is_array($where)) { $_where = $where; } $time = time(); $_where["models.reference NOT IN (SELECT model FROM {PREFIX}model_states AS states WHERE states.active = 0 OR " . $time . " NOT BETWEEN COALESCE(begin, " . $time . ") AND COALESCE(end, " . $time . "))"] = null; if (is_array($_where) && count($_where)) { $SQL .= 'WHERE '; $i = 0; foreach ($_where as $filter => $param) { if (!is_numeric($filter)) { $SQL .= $filter; } if (preg_match('/(:[a-z0-9]+)/i', $filter, $match)) { $params[$match[0]] = $param; } elseif (strpos($filter, '?') !== false) { $params[] = $param; } $i++; if (!is_numeric($filter) && $i < count($_where)) { $SQL .= ' AND '; } $SQL .= PHP_EOL; } } elseif ($_where) { $SQL .= 'WHERE ' . $_where . PHP_EOL; } if ($state_results = \db::query($SQL, $params)) { foreach ($state_results as $state_result) { if (!empty($state_result["reference"])) { $visible_references[] = $state_result["reference"]; } } } $SQL = ''; $params = array(); } if ($orderBy !== \Routerunner\Routerunner::BY_INDEX && $orderBy !== \Routerunner\Routerunner::BY_INDEX_DESC && $orderBy !== \Routerunner\Routerunner::BY_TREE && $orderBy !== \Routerunner\Routerunner::BY_TREE_DESC || $where) { $SQL = 'SELECT '; array_walk($select, function (&$value, $key) { if (is_null($value)) { $value = 'NULL AS `' . trim($key, '`') . '`'; } else { $value = $value . ' AS `' . trim($key, '`') . '`'; } }); $SQL .= implode(', ', $select); $SQL .= PHP_EOL; $SQL .= 'FROM ' . $from . PHP_EOL; if ($leftJoin) { foreach ($leftJoin as $join) { $SQL .= 'LEFT JOIN ' . $join . PHP_EOL; } } if ($visible_references) { /* $SQL .= "LEFT JOIN {PREFIX}models AS models ON models.table_from = '" . $from . "' AND models.table_id = " . $from . "." . $primary_key . PHP_EOL; */ if (!isset($where) || !is_array($where)) { $where = array(); } $where["`" . $from . "`.`" . $primary_key . "` IN (SELECT models.table_id FROM {PREFIX}models AS models\nWHERE models.reference IN (" . implode(",", $visible_references) . "))"] = null; } if (is_array($where) && count($where)) { $SQL .= 'WHERE '; $i = 0; foreach ($where as $filter => $param) { if (!is_numeric($filter)) { $SQL .= $filter; } if (preg_match('/(:[a-z0-9]+)/i', $filter, $match)) { $params[$match[0]] = $param; } elseif (strpos($filter, '?') !== false) { $params[] = $param; } $i++; if (!is_numeric($filter) && $i < count($where)) { $SQL .= ' AND '; } $SQL .= PHP_EOL; } } elseif ($where) { $SQL .= 'WHERE ' . $where . PHP_EOL; } if ($groupBy) { $SQL .= 'GROUP BY ' . $groupBy . PHP_EOL; } if ($orderBy != "BY_TREE" && $orderBy != "BY_TREE_DESC" && $orderBy != "BY_INDEX" && $orderBy != "BY_INDEX_DESC") { if ($orderBy) { $SQL .= 'ORDER BY ' . $orderBy . PHP_EOL; } elseif ($orderBy !== false) { $SQL .= 'ORDER BY ' . $primary_key . PHP_EOL; } } if ($limit !== false) { $SQL .= 'LIMIT ' . $limit . PHP_EOL; if ($offset !== false) { $SQL .= 'OFFSET ' . $offset . PHP_EOL; } } elseif ($limit === false && $offset !== false) { $SQL .= 'LIMIT 18446744073709551615' . PHP_EOL; $SQL .= 'OFFSET ' . $offset . PHP_EOL; } } return $SQL; }
<?php $debug = 1; \user::logout(); \runner::stack_js('setTimeout(function() { window.location.href = "' . \runner::config('BASE') . '"; }, 2000);'); ?> <body class="page-md page-header-top-fixed"> <div class="backend-wrapper"> <!-- BEGIN CONTAINER --> <div class="page-container row container-fluid container-margin"> <h1>You've been successfully logged out!</h1> </div> </div> </body>
<?php $size_l = \model::property("size_l"); if (!$size_l) { $size_l = \runner::config("mode") == "backend" ? "Routerunner/placeholder/800x550" : false; } ?> <li class="gl-item gl-loading media-model" data-category="<?php echo \model::property("category"); ?> "> <div class="rr-post-size_l rr-post-data_l" style="width: 100%;"> <img src="<?php echo $size_l; ?> " alt="<?php echo \model::property("label"); ?> "> </div> </li>
$unique = uniqid(); $hash = str_replace('/', ',', base64_encode(\Routerunner\Crypt::crypter($unique))); if (isset($address["id"])) { $params_deliver = array(":cron" => $cron["cron_id"], ":address" => $address["id"], ":date" => time(), ":hash" => $unique); $delivered = \db::insert($SQL_deliver, $params_deliver); } else { $delivered = 0; } /* $address["open"] = ""; $address["click"] = \runner::config("BASE"); $address["unsubscribe"] = \runner::config("BASE") . "unsubscribe/"; */ $address["open"] = "<img alt='" . \runner::config("SITE") . "' src='" . \runner::config("BASE") . "nl/open/" . dechex($delivered) . "/" . $hash . "/" . "' style='display: none; width: 0; height: 0;'/>"; $address["click"] = \runner::config("BASE") . "nl/click/" . dechex($delivered) . "/" . $hash . "/"; $address["unsubscribe"] = \runner::config("BASE") . "nl/unsubscribe/" . dechex($delivered) . "/" . $hash . "/"; $mail_content = urldecode($mail_raw); $mail_content_text = $mail_text; foreach ($address as $var => $value) { $mail_content = str_replace('[' . $var . ']', $value, $mail_content); $mail_content_text = str_replace('[' . $var . ']', $value, $mail_content_text); } // send mail \Routerunner\Mail::sender($address["email"], $header, $mail_content, null, $mail_content_text); $sent_email++; $sent_addresses[] = $address["email"]; } } elseif (!(isset($address["email"]) && preg_match("~^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\$~i", trim($address["email"])))) { $SQL_delete_address = 'UPDATE e_subscriber SET unsubscribe = 1 WHERE id = :id'; \db::query($SQL_delete_address, array(':id' => $address["id"])); }
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.10.22. * Time: 22:00 */ session_start(); require 'config.php'; require $rootpath . 'runner-config.php'; require $rootpath . \runner::config("BACKEND_DIR") . '/Routerunner/Routerunner.php'; use Routerunner\Routerunner as runner; new runner(array('mode' => 'mail', 'silent' => true, 'method' => 'any', 'resource' => '/', 'bootstrap' => false), function () { $mailboxPath = ''; $username = ''; $password = ''; $pattern = '/\\/nl\\/open\\/([a-f0-9]{4,})\\//'; $SQL_SELECT = "SELECT address_id FROM e_delivered WHERE id = :deliver"; $SQL_UPDATE = "UPDATE e_subscriber SET unsubscribe = 2, bounced = :time WHERE id = :address_id"; $imap = imap_open($mailboxPath, $username, $password); $numMessages = imap_num_msg($imap); $skip = 0; $bounced = 0; for ($i = $numMessages; $i > 0; $i--) { echo "no.{$i}<br>\n"; $header = imap_header($imap, $i); if (isset($header->subject)) { $subject = strtolower(imap_utf8($header->subject)); if ($subject == 'mail delivery failed: returning message to sender' || strpos($subject, 'delivery status') !== false || strpos($subject, 'deliver') !== false && strpos($subject, 'fail') !== false || strpos($subject, 'return') !== false && strpos($subject, 'mail') !== false || strpos($subject, 'undeliver') !== false || strpos($subject, 'non remis') !== false || strpos($subject, 'unknown address') !== false || strpos($subject, 'onbestelbaar') !== false || strpos($subject, 'unzustellbar') !== false || strpos($subject, 'nedoru=e8iteln=e9') !== false || strpos($subject, 'rejected') !== false || strpos($subject, 'failure') !== false && strpos($subject, 'notice') !== false || strpos($subject, 'k=e9zbes=edthetetlen') !== false || strpos($subject, 'kézbesíthetetlen') !== false) { $uid = imap_uid($imap, $i);
<meta name="description" content="<?php echo $bootstrap->pageproperties["description"]; ?> " /> <!-- Open Graph data --> <meta property="og:title" content="<?php echo $bootstrap->pageproperties["meta"]["og:title"] ? $bootstrap->pageproperties["meta"]["og:title"] : $bootstrap->pageproperties["title"]; ?> " /> <meta property="og:type" content="<?php echo $bootstrap->pageproperties["meta"]["og:type"]; ?> " /> <meta property="og:url" content="<?php echo \runner::config("BASE") . $bootstrap->url; ?> " /> <meta property="og:image" content="<?php echo $bootstrap->pageproperties["meta"]["og:image"]; ?> " /> <meta property="og:description" content="<?php echo $bootstrap->pageproperties["meta"]["og:description"]; ?> " /> <meta name="author" content="Retroscope Creative"> <!-- Routerunner Meta data end --> <!-- Bootstrap Core CSS -->
public static function initialize($settings, $breadcrumb = true) { if (!$breadcrumb) { self::$request = \Routerunner\Routerunner::$slim->request; self::$isAjax = self::$request->isAjax(); self::$host = self::$request->getUrl(); self::$rootUri = self::$request->getRootUri(); $get = self::$request->get(); $post = self::$request->post(); if (isset($get, $post)) { self::$params = $get + $post; } elseif (isset($get)) { self::$params = $get; } elseif (isset($post)) { self::$params = $post; } else { self::$params = array(); } if (self::$isAjax) { self::$ajaxResourceUri = self::$request->getResourceUri(); $root = self::$host . self::$rootUri; if (isset(self::$params['url'])) { $root = substr($root, 0, strrpos($root, '/')); $plainUri = str_replace($root, '', self::$params['url']); $plainUri = substr($plainUri, 0, strpos($plainUri, '?')); self::$rootUri = substr(self::$rootUri, 0, strrpos(self::$rootUri, '/')); unset(self::$params['url']); } else { if (strpos($root, $settings['BASE']) !== false) { $plainUri = '/' . trim(str_replace($settings['BASE'], '', $root), '/'); } else { $plainUri = $root; } } } else { $plainUri = self::$request->getResourceUri(); } if (preg_match('/\\.(jp(e)?g|png|gif|svg|css|js(on)?|woff(2)?|ttf|pdf|xml)$/i', $plainUri)) { self::$component = true; } $baseRoot = self::$host . self::$rootUri; if (!preg_match('/^(https?:\\/\\/)+/', $plainUri)) { $baseUri = trim($baseRoot, '/') . '/' . trim($plainUri, '/'); } else { $baseUri = $plainUri; } $fullUri = $baseUri; if (self::$params) { $fullUri .= strpos($fullUri, '?') !== false ? '&' : '?'; $fullUri .= http_build_query(self::$params); } self::$baseUri = $baseUri; self::$fullUri = $fullUri; self::$relUri = str_replace($baseRoot, '', $fullUri); $env = \Routerunner\Routerunner::$slim->environment(); $SQL = 'CALL `{PREFIX}rewrite_get`(:uri)'; if ($rewrites = \Routerunner\Db::query($SQL, array(':uri' => trim($plainUri, '/ ')))) { foreach ($rewrites as $rewrite) { self::$urls[] = $rewrite['url']; self::$url_data[$rewrite['url']] = $rewrite; if (!self::$canonical_url || filter_var($rewrite['primary'], FILTER_VALIDATE_BOOLEAN)) { self::$canonical_url = $rewrite['url']; } if (!self::$lang && !is_null($rewrite['lang'])) { self::$lang = $rewrite['lang']; } if (!self::$reference && !is_null($rewrite['reference'])) { self::$reference = $rewrite['reference']; } if (!self::$resourceUri && !is_null($rewrite['resource_uri'])) { self::$resourceUri = $rewrite['resource_uri']; } if (preg_match('/^(https?:\\/\\/)+/', self::$resourceUri)) { self::$resourceUri = '/'; } $env->offsetSet('PATH_INFO', self::$resourceUri); if (isset($rewrite['params']) && !is_null($rewrite['params'])) { $params = json_decode($rewrite['params'], true); if (is_array($params)) { $env->offsetSet('QUERY_STRING', http_build_query($params, '', '&')); } } } if (count(self::$urls) > 1 && trim($plainUri, '/ ') != self::$canonical_url) { Header("HTTP/1.1 301 Moved Permanently"); Header("Location: " . trim($baseRoot, ' /') . '/' . trim(self::$canonical_url, ' /')); exit; } } else { self::$resourceUri = trim($plainUri, '/ '); } if (!self::$resourceUri) { self::$resourceUri = '/'; } if (!self::$lang && \runner::config('language')) { self::$lang = \runner::config('language'); } elseif (self::$reference) { self::$lang = self::lang(self::$reference); } elseif ($lang_result = \db::query('SELECT id FROM {PREFIX}lang WHERE code = ?', array(trim($plainUri, '/')))) { self::$lang = $lang_result[0]['id']; } else { self::$lang = 1; } \runner::config('language', self::$lang); if (self::$reference) { $SQL = 'CALL `{PREFIX}metas_get`(:reference)'; if ($metas = \Routerunner\Db::query($SQL, array(':reference' => self::$reference))) { $metas = $metas[0]; $meta_other = $metas['meta']; unset($metas['meta']); self::$metas = array_merge(self::$metas, $metas); if (self::$metas['meta'] && ($meta = json_decode($meta_other, true))) { self::$metas['meta'] = array_merge(self::$metas['meta'], $meta); } } $SQL = 'CALL `{PREFIX}states_get`(:reference)'; if ($states = \Routerunner\Db::query($SQL, array(':reference' => self::$reference))) { self::$states = $states[0]; if (self::$states['params'] && ($state_params = json_decode(self::$states['params'], true))) { self::$states['params'] = $state_params; } } } self::$tree = self::getTree(self::$reference ? self::$reference : 0); self::$method = self::$request->getMethod(); if (isset($settings['resourceDelimiter'])) { self::$resourceDelimiter = $settings['resourceDelimiter']; } self::$resources = explode(self::$resourceDelimiter, trim(self::$resourceUri, self::$resourceDelimiter)); self::set_method(); } if ($breadcrumb) { self::load_breadcrumb(); } }
<!-- BEGIN THIRD PARTY SCRIPTS --> <!-- <script src="<?php echo \runner::config("BACKEND_ROOT"); ?> backend/thirdparty/iviewer/jquery.iviewer.js" type="text/javascript"></script> <script src="<?php echo \runner::config("BACKEND_ROOT"); ?> backend/thirdparty/cropper/dist/cropper.js" type="text/javascript"></script> --> <script src="<?php echo \runner::config("BACKEND_ROOT"); ?> backend/thirdparty/focuspoint/jquery.focuspoint.js" type="text/javascript"></script> <script src="<?php echo \runner::config("BACKEND_ROOT"); ?> backend/thirdparty/kcfinder/adapters/jquery.js" type="text/javascript"></script> <script src="<?php echo \runner::config("BACKEND_ROOT"); ?> backend/thirdparty/uploadPreview/jquery.uploadPreview.min.js" type="text/javascript"></script> <!-- END THIRD PARTY SCRIPTS --> </body>
private static function set_session_token() { if (!self::$session) { self::$session = \runner::config('User.TokenSession'); } if (self::$token && self::$token_id) { $_SESSION[self::$session] = self::$token_id . '-' . self::$token; } }
<?php /** * Created by PhpStorm. * User: csibi * Date: 2014.10.20. * Time: 10:33 */ session_start(); require $_SESSION["runner_config"]['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SESSION["runner_config"]["SITEROOT"] . $_SESSION["runner_config"]["BACKEND_ROOT"] . 'Routerunner/Routerunner.php'; use Routerunner\Routerunner as runner; $post = array_merge($_GET, $_POST); new runner(array('mode' => 'backend', 'scaffold' => 'scaffold', 'params' => $post), function () use($post) { $router = false; $route = "/backend/panel/pageproperties"; $override = null; $root = \runner::config("BACKEND_DIR") . DIRECTORY_SEPARATOR . 'scaffold'; echo \runner::route($route, $post, $router, true, $override, $root); });
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ return array('wrapper_class' => 'rr-tag', 'child_selector' => '.rr-tag-model', 'fields' => array('label' => array_merge(\runner::config("property.label"), array('selector' => '.rr-tag-label')), 'url' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-tag-url')), 'public' => array_merge(\runner::config("property.type.bool"), array('selector' => '.rr-tag-public'))));
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ $debug = 1; return array('wrapper_class' => 'rr-product', 'child_selector' => '.rr-product-model', 'fields' => array('label' => array_merge(\runner::config("property.label"), array('selector' => '.rr-product-label')), 'date' => array_merge(\runner::config("property.date"), array('selector' => '.rr-product-date', 'default' => time())), 'lead' => array_merge(\runner::config("property.lead"), array('selector' => '.rr-product-lead')), 'content' => array_merge(\runner::config("property.type.text"), array('selector' => '.rr-product-content')), 'category' => array_merge(\runner::config("property.category"), array('selector' => '.rr-product-category select')), 'leadimage' => array_merge(\runner::config("property.leadimage"), array('selector' => '.rr-product-leadimage', 'mediasize' => 'leadimage')), 'contentimage' => array_merge(\runner::config("property.contentimage"), array('selector' => '.rr-product-contentimage', 'mediasize' => 'contentimage')), 'price' => array_merge(\runner::config("property.type.int"), array('selector' => '.rr-product-price'))));
* User: csibi * Date: 2013.11.15. * Time: 11:35 */ /* // model parameters $model = "menu"; $from = "cs_menu"; $select = array("label"); $where = array("cs_menu_id > ?" => 1); $orderBy = 'cs_menu_id DESC'; $limit = 5; // SQL $SQL = "SELECT label FROM cs_menu ORDER BY cs_menu_id"; */ $from = \runner::config('PREFIX') . 'changes AS changes'; $select = array('user_email' => 'user.email', 'user_name' => 'user.name', 'user_group' => 'user.usergroup'); $leftJoin = array('`{PREFIX}sessions` AS sessions ON sessions.session_id = changes.session', '`{PREFIX}user` AS user ON user.user_id = sessions.user'); $orderBy = "change_id DESC"; $where = array(); if (isset($runner->context['reference'])) { $where['changes.reference = :reference'] = $runner->context['reference']; } if (isset($runner->context['user'])) { $where['sessions.user = :user'] = $runner->context['user']; } if (isset($runner->context['session'])) { $where['changes.session = :session'] = $runner->context['session']; } $primary_key = 'change_id'; $force_view = true;
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ $debug = 1; return array('wrapper_class' => 'rr-message', 'child_selector' => '.rr-message-model', 'fields' => array('name' => array_merge(\runner::config("property.label"), array('selector' => '.rr-message-name')), 'email' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-message-email')), 'date' => array_merge(\runner::config("property.date"), array('selector' => '.rr-message-date', 'default' => time())), 'avatar' => array_merge(\runner::config("property.leadimage"), array('selector' => '.rr-message-avatar')), 'data_avatar' => array_merge(\runner::config("property.data_leadimage"), array('selector' => '.rr-message-data_avatar')), 'subject' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-message-subject')), 'comment' => array_merge(\runner::config("property.type.textarea"), array('selector' => '.rr-message-comment')), 'model_reference' => array_merge(\runner::config("property.type.int"), array('selector' => '.rr-message-model_reference')), 'option' => array_merge(\runner::config("property.type.int"), array('selector' => '.rr-message-option')), 'nonce' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-message-nonce')), 'ip_address' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-message-ip_address')), 'user_agent' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-message-user_agent'))));
*/ $post = $_POST; $msg = ""; $SQL = "SELECT id, email, confirm_date, licence FROM member WHERE email = :email"; if ($result = \Routerunner\Db::query($SQL, array(":email" => $post["email"]))) { $user = $result[0]; if (is_null($user["confirm_date"])) { $msg = "User has not been confirmed!"; } if (!$msg) { // confirm generálás $secret = uniqid(md5(uniqid('', true))); $confirm = 'forgotten/' . implode('/', $user) . '/' . $secret; $expire = time() + 2 * 24 * 60 * 60; $confirm_hash = \Routerunner\Crypt::crypter($confirm, $expire, $user['id'], 0, $secret); $path = runner::config("BASE") . 'admin/forgotten/?' . $user['id'] . '/' . $secret . '/' . $confirm_hash; $user["confirm_code"] = $path; if ($result = \mail::mailer("/mail/forgotten", $user, null)) { $debug = 1; } else { $msg = "E-mail cannot be sent!"; } } } else { $msg = "User is not exists!"; } if ($msg) { echo '<div class="alert alert-forgotten alert-danger">' . $msg . '</div>'; } else { echo '<div class="alert alert-forgotten alert-success">New password confirmation has been sent to your e-mail address!</div>'; }
if (isset($field_data["crop"])) { $crops[$field_name] = $field_data["crop"]; } } $field_data = $fields[$field]; } $parents = \Routerunner\Bootstrap::parent($reference); if (isset($parents[0]["model_class"]) && $parents[0]["model_class"] == "lang") { $lang = array_shift($parents); } $path_route = ''; while ($parent = array_shift($parents)) { $_model_context = array("direct" => $parent["reference"], "session" => \runner::stack("session_id")); $router = false; $route = '/model/' . $parent["model_class"]; \runner::redirect_route($route, \runner::config("scaffold"), true, $_model_context, $router, $parent_model); if (is_array($parent_model) && count($parent_model) == 1) { $parent_model = array_shift($parent_model); } if (isset($parent_model) && is_object($parent_model) && get_parent_class($parent_model) == "Routerunner\\BaseModel" && isset($parent_model->label)) { $path_route .= \runner::toAscii($parent_model->label) . DIRECTORY_SEPARATOR; } $debug = 1; } if (isset($value["src"])) { // crop image $src = $_SESSION["runner_config"]['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SESSION["runner_config"]["SITEROOT"] . $value["src"]; $filename = substr($value["src"], strrpos($value["src"], DIRECTORY_SEPARATOR) + 1); $mimetype = false; $layer = ImageWorkshop::initFromPath($src, false, $mimetype); if (isset($value["rotate"])) {
<?php /** * Created by PhpStorm. * User: csibi * Date: 2015.04.07. * Time: 16:33 */ $debug = 1; $class_options = explode(";", "bg-default;bg-primary;bg-info;bg-success;bg-warning;bg-danger"); sort($class_options); $currency_options = explode(";", "Ft;€;\$"); sort($currency_options); return array('wrapper_class' => 'rr-pricing', 'child_selector' => '.rr-pricing-model', 'fields' => array('label' => array_merge(\runner::config("property.label"), array('selector' => '.rr-pricing-label')), 'description' => array_merge(\runner::config("property.lead"), array('selector' => '.rr-pricing-description')), 'addon_class' => array_merge(\runner::config("property.type.select"), array('selector' => '.rr-pricing-addon_class select', 'options' => $class_options, 'help' => array('panel' => ''))), 'content' => array_merge(\runner::config("property.type.text"), array('selector' => '.rr-pricing-content')), 'price' => array_merge(\runner::config("property.type.int"), array('selector' => '.rr-pricing-price')), 'currency' => array_merge(\runner::config("property.type.select"), array('selector' => '.rr-pricing-currency select', 'options' => $currency_options, 'help' => array('panel' => ''))), 'link' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-pricing-link')), 'button' => array_merge(\runner::config("property.type.char"), array('selector' => '.rr-pricing-button'))));
<div class="caption font-red col-md-6"> <i class="fa fa-file-text-o font-red"></i> <span class="caption-subject bold uppercase"> Properties</span> </div> <div class="col-md-6"> <?php $form_content = ''; if ($allowed) { $filters = array("hidden-on-page", "visible-on-page"); $hiddens = array(); $fields = isset($router->runner->backend_context["model"]["fields"]) ? $router->runner->backend_context["model"]["fields"] : array(); $route = isset($runner->context["route"]) ? explode("/", $runner->context["route"]) : false; $scaffold = \Routerunner\Helper::$scaffold_root . DIRECTORY_SEPARATOR . "input"; $backend_scaffold = \Routerunner\Helper::$document_root . DIRECTORY_SEPARATOR . \runner::config("BACKEND_DIR") . DIRECTORY_SEPARATOR . 'scaffold' . DIRECTORY_SEPARATOR . "input"; foreach ($fields as $field_name => $field_data) { $_route = $route; $input = false; while (!$input && count($_route)) { if (file_exists($scaffold . implode(DIRECTORY_SEPARATOR, $_route) . DIRECTORY_SEPARATOR . $field_name . ".php")) { $input = $scaffold . implode(DIRECTORY_SEPARATOR, $_route) . DIRECTORY_SEPARATOR . $field_name . ".php"; } elseif (file_exists($scaffold . implode(DIRECTORY_SEPARATOR, $_route) . DIRECTORY_SEPARATOR . $field_data["type"] . ".php")) { $input = $scaffold . implode(DIRECTORY_SEPARATOR, $_route) . DIRECTORY_SEPARATOR . $field_data["type"] . ".php"; } if (!$input && count($_route)) { array_pop($_route); } } if (!$input) { if (file_exists($backend_scaffold . DIRECTORY_SEPARATOR . $field_name . ".php")) {
$allowed = false; } if ($allowed) { $context = array("direct" => $runner->context["reference"], "session" => \runner::stack("session_id"), "silent" => true); if (!empty($runner->context["model_class"])) { $model_route = "/model/" . $runner->context["model_class"]; \runner::redirect_route($model_route, \runner::config("scaffold"), true, $context, $router, $model); if (is_array($model)) { $model = array_shift($model); } $runner->context["model"] = $model; } } } elseif (isset($runner->context["route"], $runner->context["reference"])) { $context = array("direct" => $runner->context["reference"], "silent" => true); $model = \model::load($context, $runner->context["route"], $router, false, \runner::config("scaffold")); if (is_array($model)) { $models = $model; foreach ($models as $item) { if ($item->reference == $runner->context["reference"]) { $model = $item; break; } } } if ($model && is_object($model) && $model->permission && !$model->movable()) { $allowed = false; } elseif ($model && !is_object($model)) { $allowed = false; } }