protected function indexAction() { $this->view->title = 'Просмотр новостей'; $this->view->headers = array(array('title' => 'Просмотр новостей'), array('title' => 'Обычная новость', 'href' => '/admin/addnew/'), array('title' => 'Мультиязычная новость', 'href' => '/admin/addmultinew')); $this->view->sections = K_TreeQuery::crt('/news/')->types('section')->go(); $this->render('news'); }
protected static function init() { if (self::$_isInit) { return; } $prices = K_TreeQuery::gOne('/payment/accountscost/', 'prices'); self::$_adminCost = $prices['admin_cost']; self::$_userCost = $prices['user_cost']; self::$_isInit = true; }
public function ask() { if (!K_Request::isPost()) { $this->putAjax('ERROR'); } // var_dump( $_POST['capcha']);var_dump(K_Auth::getUserInfo('capchaText')); if (strcasecmp(trim($_POST['capcha']), K_Auth::getUserInfo('capchaText')) != 0 || time() - 300 > K_Auth::getUserInfo('capchaTime')) { $jsonReturn['error'] = true; $jsonReturn['msg'] = array(1 => array('label' => t('Символы с картинки', 'Символи з картинки'), 'error' => t('Неправильно введён код с картинки !!!', 'Неправильно введений код з малюнка !!!'))); $capchaText = K_Secur::genCapchaText(); K_Auth::setUserKey('capchaText', $capchaText); K_Auth::setUserKey('capchaTime', time()); $jsonReturn['callback'] = 'function callback(){$("#captcha-img").attr("src","data:image/png;base64,' . K_Secur::genCapcha($capchaText) . '");$("#capcha-text").val("")}'; if (K_Request::isAjax()) { $this->putJSON($jsonReturn); } else { K_Request::redirect('/'); } } $nameAccos = array('userName' => t('Ваше имя:', "Ваше ім'я:"), 'userContact' => t('Ваш E-mail*:', 'Ваш E-mail*:'), 'userPhone' => t('Ваш Телефон*:', 'Ваш Телефон*:'), 'userMessage' => t('Ваше сообщение:', 'Ваше повідомлення:')); $data = array('userName' => trim($_POST['userName']), 'userContact' => trim($_POST['userContact']), 'userPhone' => trim($_POST['userPhone']), 'userMessage' => trim($_POST['userMessage']), 'manager_email' => trim($_POST['manager_email'])); $managers = K_TreeQuery::crt('/manager/')->types('manager')->go(); foreach ($managers as $v) { $managerMails[] = $v['email']; } $validate = array('userName' => array('maxlen' => 255), 'userContact' => array('required' => true, 'notEmpty', 'email'), 'userPhone' => array('required' => true, 'notEmpty', 'phone'), 'userMessage' => array('required' => true, 'notEmpty', 'maxlen' => 1500), 'manager_email' => array('required' => true, 'notEmpty', 'enum' => $managerMails)); $commentModel = new Admin_Model_Valid(); if ($commentModel->isValidRow($data, $validate)) { $jsonReturn['error'] = false; $jsonReturn['msg'] = t("Ваш вопрос был отправлено успешно. Спасибо.", "Ваше питання було надіслано успішно. Спасибi."); $jsonReturn['clean'] = true; //Send mail /////////////////////////////////////////////////////////////////// $toMail = strip_tags(trim($data['manager_email'])); $mailText = 'Вам на сайт добавили вопрос. /r /n'; $mailText .= 'Имя:' . strip_tags($data['userName']) . ' /r /n'; $mailText .= 'E-mail:' . strip_tags($data['userContact']) . ' /r /n'; $mailText .= 'Телефон:' . strip_tags($data['userPhone']) . ' /r /n'; $mailText .= ' Сообщение: /r /n' . strip_tags($data['userMessage']); $mailer = new K_mail(); $mailer->setBody($mailText); $mailer->addTo($toMail); $mailer->send('*****@*****.**', 'На ваш сайт добавили новый вопрос'); //////////////////////////////////////////////////////////////// } else { $jsonReturn['error'] = true; $jsonReturn['msg'] = $commentModel->getErrorsD($nameAccos); } if (K_Request::isAjax()) { $this->putJSON($jsonReturn); } else { K_Request::redirect('/'); } }
public function indexAction() { K_Crumbs::add(array('Новости', 'taxi-novosti')); // how many records per page $size = 10; $this->view->page = 1; // we get the current page from $_GET if (isset($_GET['page'])) { $this->view->page = (int) $_GET['page']; } $pag_info = K_Paginator::prepear($this->view->page, $size); list($this->view->news, $this->view->countItems) = K_TreeQuery::crt('/news/')->type(array('news'))->limit($pag_info['onPage'], $pag_info['start'])->order(array('news' => 'date'))->go(array('childs' => true, 'count' => true, 'orderby' => 'DESC')); $this->view->pages = ceil($this->view->countItems / $pag_info['onPage']); $this->render('news'); }
public function indexAction() { //кастомные страницы $staticPages = K_TreeQuery::crt("/pages/")->types('page')->go(); $noInSitemap = array('baseblocks', '404', 'sitemap'); foreach ($staticPages as $v) { if (!in_array($v['tree_name'], $noInSitemap)) { $v['tree_level'] = '1'; $sitemArr[] = $v; } } $sitemArr = array_merge($sitemArr, K_TreeQuery::crt("/news/")->types('news')->go()); $sitemArr[] = array('tree_type' => 'page', 'tree_name' => 'service', 'title' => 'Услуги', 'tree_level' => '1'); $sitemArr = array_merge($sitemArr, K_TreeQuery::crt("/service/")->types('service')->go()); $sitemArr[] = array('tree_type' => 'page', 'tree_name' => 'promo', 'title' => 'Акции', 'tree_level' => '1'); $sitemArr = array_merge($sitemArr, K_TreeQuery::crt("/promo/")->types('promo')->go()); $sitemArr[] = array('tree_type' => 'page', 'tree_name' => 'portfolio', 'title' => 'Портфолио', 'tree_level' => '1'); $sitemArr = array_merge($sitemArr, K_TreeQuery::crt("/portfolio/")->types('portfolio')->go()); $this->view->sitemap = $this->menuBuilder($sitemArr, 1); }
public function indexAction() { $this->view->news = K_TreeQuery::crt('/news/')->type(array('news'))->limit(3, 0)->order(array('news' => 'date'))->go(array('childs' => true, 'orderby' => 'DESC')); $this->render('lastnews'); }
date_default_timezone_set('UTC'); $filename = WWW_PATH . '/sitemap.xml'; $sitemap = new K_Sitemap(); //Главная $sitemap->addUrl('', 1); //Страницы статические $noInSitemap = array('404', 'baseblocks', 'index', 'one', 'sitemap'); $priority = array('taxi-about-us' => 0.9, 'taxi-price' => 0.9, 'taxi-contact-us' => 0.9, 'taxi-work' => 0.9, 'taxi-novosti' => 0.9, 'skorost-i-bezopasnost' => 0.8, 'peregon-avto' => 0.8, 'luchshie-tsenyi' => 0.8, 'perevozka-gruzov' => 0.8); $pages = K_TreeQuery::crt('/pages/')->types(array('page'))->go(); foreach ($pages as $v) { if (!in_array($v['tree_name'], $noInSitemap)) { $p = $priority[$v['tree_name']]; $sitemap->addUrl('/' . $v['tree_name'], isset($p) ? $p : 0.5); } } //Страницы новостей $pages = K_TreeQuery::crt('/news/')->types(array('news'))->go(); foreach ($pages as $v) { if (!in_array($v['tree_name'], $noInSitemap)) { $sitemap->addUrl('/' . $v['tree_name'], 0.7); } } //Страницы статтей $pages = K_TreeQuery::crt('/articles/')->types(array('articles'))->go(); foreach ($pages as $v) { if (!in_array($v['tree_name'], $noInSitemap)) { $p = $priority[$v['tree_name']]; $sitemap->addUrl('/' . $v['tree_name'], isset($p) ? $p : 0.5); } } file_put_contents($filename, $sitemap->genSitemap());
$pCount = ceil($pagesCounts[$v['tree_name']]/10); for($i=2;$i<$pCount;$i++){ // статические страницы с листалкой - сама листалка echo "<url>\n<loc>".$siteurl.'/'.$v['tree_name'].'.list.'.$i.".10</loc> <lastmod>$update</lastmod> <changefreq>daily</changefreq> <priority>0.5</priority> </url>\n"; } } }else{ */ // статические страницы без листалки $sitemap->addUrl($siteurl . '/' . $v['tree_name'], $update, 'daily', '0.5'); // } } //добавить страницу в игнор лист, что-бы небыло повторов. $noInSitemap[] = $v['tree_name']; } $articles = K_TreeQuery::crt("/articles/")->type("/articles/")->go(); foreach ($articles as $v) { $sitemap->addUrl($siteurl . '/' . $v['tree_name'] . ".html", $update, 'daily', '0.5'); } $q = new K_query(); $objects = $q->q("SELECT url FROM obj_objects WHERE url !=''", true); foreach ($objects as $v) { $sitemap->addUrl($siteurl . '/' . $v['url'], $update, 'daily', '0.5'); } echo $sitemap->genSitemap(); $this->disableLayout = true; exit;
public function indexAction() { $this->view->promo = K_TreeQuery::crt('/promo/')->type('promo')->limit(3)->go(array('childs' => true)); }
protected function tagsGUI() { $this->tabs['tags'] = 'Теги'; $tagsOptions = ''; $tagsInputs = ''; $tags = K_TreeQuery::crt('/blogtags/')->type('blogtag')->go(); $blogTagsMode = new Admin_Model_BlogTag(); $blogTags = $blogTagsMode->fetchAssoc('bt_tag_id', K_Db_Select::create()->where(array('bt_blog_id' => $this->nodeData['tree_id']))); $blogTagsIds = array_keys($blogTags); foreach ($tags as $v) { $tagsOptions .= '<option value="' . $v['tree_id'] . '" >' . ($v['name'] ? htmlspecialchars($v['name']) : 'Нет названия') . '</option>'; if (in_array($v['tree_id'], $blogTagsIds)) { $tagsInputs .= '<input style="display:none" name="tags[]" value="' . $v['tree_id'] . '">'; $tagsSelOptions .= '<option value="' . $v['tree_id'] . '" >' . ($v['name'] ? htmlspecialchars($v['name']) : 'Нет названия') . '</option>'; } } return <<<HTML <div class="b-padded mainForm"> <div id="flash-msg-nNote" class="nNote hideit" style="display: none;"><p></p></div> <form action="/admin/blogs/settags/" class="ajax-form" method="post"> <div class="rowElem noborder admin-form-row"> <label> Добавить новый тег: </label> <div class="formRight"> <input type="text" name="new-teg" id="add-new-tag-name" /> </div> <div class="fix"></div> <input type="button" value="Добавить" id="add-new-tag" class="b-button greyishBtn submitForm"> </div> <div class="fix"></div> <table class="sel-tags-table" > <tr> <td> <select class="blog-tags" id="sel-tags-start" multiple="on"> {$tagsOptions} </select> </td> <td> <select name="tags[]" id="sel-tags" class="tags-select" multiple="on"> {$tagsSelOptions} </select> </td> <tr> </table> <div id="sel-tags-int"> {$tagsInputs} </div> <input type="hidden" name="this_key" value="{$this->nodeData['tree_id']}" /> <input type="submit" value="Сохранить теги" id="save_button" class="b-button greyishBtn submitForm"> </form> </div> HTML; }
public static function addField($form, $type, $element, $elementData, $formData) { switch ($type) { case 'text': $form->{$type}($element->values->name, !empty($elementData) ? $elementData : (!empty($element->values->default) ? $element->values->default : ''), array('class' => $element->values->class, 'id' => $element->values->id, 'placeholder' => $element->values->placeholder)); break; case 'textarea': $form->{$type}($element->values->name, !empty($elementData) ? $elementData : (!empty($element->values->default) ? $element->values->default : ''), array('class' => $element->values->class, 'id' => $element->values->id, 'placeholder' => $element->values->placeholder)); break; case 'wysiwyg': $form->textarea($element->values->name, !empty($elementData) ? $elementData : (!empty($element->values->default) ? $element->values->default : ''), array('class' => $element->values->class . ' wysiwyg-redactor', 'id' => $element->values->id)); echo ' <script type="text/javascript"> $(function() { $(".wysiwyg-redactor").ckeditor({ allowedContent: true, toolbar: "Standard", removePlugins : "resize,about,save", filebrowserBrowseUrl : "/adm/plugins/ckfinder/ckfinder.html", filebrowserImageBrowseUrl : "/adm/plugins/ckfinder/ckfinder.html?Type=Images", filebrowserFlashBrowseUrl : "/adm/plugins/ckfinder/ckfinder.html?Type=Flash", filebrowserUploadUrl : "/adm/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files", filebrowserImageUploadUrl : "/adm/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images", filebrowserFlashUploadUrl : "/adm/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash", editorConfig : function( config ) { CKEDITOR.replace( "content_id", { allowedContent: true}) config.protectedSource.push(/<(style)[^>]*>.*<\\/style>/ig); return config; } }); }); </script>'; /* $(".wysiwyg-redactor").redactor({ imageUpload: "/admin/api/uploadImage", autoformat: true, cleanUp: true, convertDivs: false, removeClasses: true, removeStyles: true, convertLinks: false, buttons: ["html", "|", "formatting", "|", "bold", "italic" , "deleted","|","norderedlist", "orderedlist", "outdent", "indent", "|","image","video","table", "link", "|","fontcolor", "backcolor", "|","alignleft", "aligncenter", "alignright", "justify", "|","horizontalrule", "fullscreen"] }); */ break; case 'formbuilder': K_Loader::load('formbuilder', APP_PATH . '/plugins'); $form_builder = new Formbuilder(unserialize($elementData)); echo ' <div id="my-form-builder"></div> <input type="hidden" name="' . $element->values->name . '" id="f_' . $element->values->name . '"></div> <script type="text/javascript"> $("#my-form-builder").formbuilder({ "save_url": false, "load_url": false, "preview_url": false, "saveInDom": true, ' . (!empty($elementData) ? '"load_source": ' . $form_builder->render_json(false) . ',' : '') . ' "domElementId": "f_' . $element->values->name . '", "useJson" : true }); </script> '; break; case 'file': $form->{$type}($element->values->name, array('class' => $element->values->class, 'id' => $element->values->id)); if (self::$adminka) { echo ' <input type="checkbox" name="' . $element->values->name . '_delete">Удалить файл</input>'; } if ($elementData) { echo '<div>' . (preg_match('/^.*\\.(jpg|png|jpeg|gif|bmp)$/im', $elementData) ? '<br /><img src="/images/' . $elementData . '?h=120" style="margin-top:5px" /></div>' : '<span class="file_address_text"><a href="/upload/' . htmlentities(urlencode($elementData)) . '">' . $elementData . '</a></span></div>'); } break; case 'multifile': echo '<div id = ' . $element->values->id . ' data-filename = ' . $element->values->name . ' class = "multifile">'; $i = 0; if ($elementData) { $fileArr = unserialize($elementData); if (count($fileArr)) { foreach ($fileArr as $v) { echo '<div style="margin:15px 0" id="' . $element->values->id . '_a_' . $i . '">'; echo '<input type="text" value="' . $v['t'] . '" style="width:150px;margin-right:5px" name="' . $element->values->name . '_t_' . $i . '" id="' . $element->values->id . '_t_' . $i . '"/>'; $form->file($element->values->name . '_f_' . $i, array('class' => $element->values->class, 'id' => $element->values->id . '_f_' . $i)); if (self::$adminka) { echo '<br/> <input type="checkbox" name="' . $element->values->name . '_delete_' . $i . '">Удалить файл</input>'; } echo '<div>' . (preg_match('/^.*\\.(jpg|png|jpeg|gif|bmp)$/im', $v['f']) ? '<br /><img src="/images/' . $v['f'] . '?w=150&h=150&zc=C" style="margin-top:5px" /></div><br/>' : '<span class="file_address_text"><a href="/upload/' . htmlentities(urlencode($v['f'])) . '">' . ($v['t'] ? $v['t'] : $v['f']) . '</a></span></div><br/>'); $i++; echo '</div>'; } } } if (!$i) { echo '<div style="margin:15px 0" id="' . $element->values->id . '_a_0">'; echo '<input type="text" style="width:150px;margin-right:5px" name="' . $element->values->name . '_t_0" id="' . $element->values->id . '_t_0"/>'; $form->file($element->values->name . '_f_0', array('style' => 'width:220px', 'class' => $element->values->class, 'id' => $element->values->id . '_f_0')); echo '<a data-fileid="' . $element->values->id . '_0' . '" class="file_field_delete" href="javascript:void(0);" title="Убрать лишний"></a>'; echo '</div>'; } echo '</div>'; echo "<script type=\"text/javascript\"> \n \$(function(){\n \$('#" . $element->values->id . "').multifile(); \n });\n </script>"; break; case 'select': $listOptions = self::getListOptions($element); $listAttr = array('class' => $element->values->class, 'id' => $element->values->id); if ($element->multiple == "checked") { $listAttr['multiple'] = 'multiple'; } // var_dump($element); $treeIds = array(); if ($element->values->method) { $params = json_decode($element->values->method, true); // var_dump($params); // $params = explode(':',$element->values->method); $source = trim($params['node']); $field = 'tree_' . $params['field']; if (strpos($params['field'], 'type') !== false) { $field = str_replace('type_', '', $params['field']); } if (preg_match('/^\\/.*\\/$/', $source)) { // var_dump($params); $goParams = array_merge($params['go'], array('orderby' => $params['order'][1])); // var_dump($goParams); $nodeChilds = K_TreeQuery::crt($source)->types($params['filter'])->limit($params['limit'])->order($params['order'][0])->go($goParams); // var_dump($nodeChilds); // var_dump($nodeChilds); // $start=$nodeChilds[1]['tree_level']; // var_dump($treeBrach); // str_repeat(' ',$v['tree_level']).$v['tree_title'] $firstNode = true; foreach ($nodeChilds as $v) { if ($firstNode == true) { $startLevel = $v['tree_level']; } $firstNode = false; $title = $v[$field]; $treeIds[$title] = $v['tree_id']; // str_repeat(' ',$v['tree_level']-$start). if ($params['title'] && count($params['title'])) { $optTitle = array(); foreach ($params['title'] as $tile) { $optTitle[] = $v[$tile]; } $listOptions[0][$title] = str_repeat(' ', $v['tree_level'] - $startLevel) . implode(' - ', $optTitle); } else { $listOptions[0][$title] = str_repeat(' ', $v['tree_level'] - $startLevel) . $v['tree_title']; } } //var_dump( $listOptions[0] ); } else { $node = K_Tree::getNode($elementData); $nodesBro = K_Tree::getChilds($node['tree_pid']); foreach ($nodesBro as $v) { $title = $v[$field]; $treeIds[$title] = $v['tree_id']; $listOptions[0][$title] = $v['tree_title']; } echo "<script type=\"text/javascript\"> \n \$('#" . $source . "').off('.formsel'); \n \$('#" . $source . "').on('change.formsel',function(){selectLoad(this,'#{$listAttr['id']}','{$params['0']}','')});\n </script>"; /* if(! empty($elementData)){ $checkJs="if(v.value=='$elementData'){cheked='selected=\"selected\"}"; // $this->loadSelect[$source]=array('select'=>$listAttr['id'],'field'=>$params['0'],'opt'=>$elementData); echo "selectLoad('#".$source ."','#{$listAttr['id']}','{$params['0']}','$elementData',);"; } */ } } $form->{$type}($element->values->name . (isset($listAttr['multiple']) && $listAttr['multiple'] ? '[]' : ''), $listOptions[0], !empty($elementData) ? $elementData : $listOptions[0], $listAttr, $treeIds); break; case 'checkbox': $listOptions = self::getListOptions($element); $listAttr = array('class' => $element->values->class, 'id' => $element->values->id); if (count($listOptions[0]) > 0) { $i = 1; foreach ($listOptions[0] as $key => $value) { echo '<label>'; $form->{$type}($element->values->name . (count($listOptions[0]) > 1 ? '[]' : ''), $listOptions[1] == $i || count($listOptions[0]) == 1 && $elementData == 'on' ? true : false, $key, $listAttr); echo $key . ' ' . '</label>'; $i++; } } break; case 'radio': $listOptions = self::getListOptions($element); $listAttr = array('class' => $element->values->class, 'id' => $element->values->id); if (count($listOptions[0]) > 0) { $i = 1; foreach ($listOptions[0] as $key => $value) { echo '<label>'; $form->{$type}($element->values->name . (count($listOptions[0]) > 1 ? '[]' : ''), $listOptions[1] == $i || count($listOptions[0]) == 1 && $elementData == 'on' ? true : false, $key, $listAttr); echo $key . ' ' . '</label>'; $i++; } } // var_dump($listOptions[0]); // $form->$type($element->values->name . (''), $listOptions[0], $listOptions[1], $listAttr); break; case 'submit': $form->{$type}($element->values->label, array('class' => $element->values->class, 'id' => $element->values->id)); break; case 'reset': $form->{$type}($element->values->label, array('class' => $element->values->class, 'id' => $element->values->id)); break; case 'hidden': $form->{$type}($element->values->name, $element->values->value, array('class' => $element->values->class, 'id' => $element->values->id)); break; } }
public function indexAction() { $this->view->vacancies = K_TreeQuery::crt('/vacancies/')->type(array('vacancy'))->limit(2, 0)->go(array('childs' => true, 'orderby' => 'DESC')); $this->render('lastvacancies'); }
Returns data for client-side tree var data = [ { label: 'Тест', children: [ { label: 'child1' }, { label: 'child2' } ] }, { label: 'Тест 2', children: [ { label: 'child3' } ] } ]; */ public function getAction() { $this->disableRender = true; $query = new K_Db_Query(); $treeStructure = array(); $treeElements = array(); if ($this->getParam('pid')) { $nodeId = $this->getParam('pid'); } else { $nodeId = 0; } // Прийдётся лезть в тип списка $pidType = K_TreeQuery::gOne((int) $nodeId); //var_dump($pidType); if ($pidType['sorted'] == "По алфавиту") { $order = "`t1`.`tree_title`"; } else { $order = "`t1`.`tree_lkey`"; } $sql = 'SELECT `t1`.*, COUNT(`t2`.`tree_id`) as subElements FROM `tree` as `t1` LEFT JOIN `tree` as `t2` ON `t2`.`tree_pid` = `t1`.`tree_id` WHERE `t1`.`tree_pid`=' . (int) $nodeId . ' GROUP BY `t1`.`tree_id`, `t1`.`tree_pid`, `t1`.`tree_title` ORDER BY ' . $order; $treeElements = $query->q($sql); foreach ($treeElements as $key => $column) { $treeElements[$key] = $column->toArray(); } if ($nodeId != '0') { $nodeArr = K_tree::getParents($nodeId); // выбираем всех родителей ноды $nodeArr[] = $nodeId; // добовляем id самой ноды // проверяем на доступ ноду со всеми её родителями к которой запрашиваються потомки /* foreach ( $pid_node_perents as $v ) { if ( is_string( $v ) ) { $resourse_arr[] = $v; $resourse = 't:' . implode( '/', $resourse_arr ); // echo $resourse; try { $access = K_Access::acl()->isAllowed( K_Auth::getRoles(), $resourse, 'view' ); // var_dump($access); } catch ( exception $e ) { $access = $allow_trigger; } $allow_trigger = $access; } }*/ //строим ресур запрашиваемой ноды если нода не равна 0 $allowTrigger = false; $access = false; $_nodeArr = $nodeArr; for ($i = count($_nodeArr); $i > 0; $i--) { $resourse = implode('/', $_nodeArr); array_pop($_nodeArr); $access = K_Access::aclTree()->isAllowed(K_Auth::getRoles(), $resourse, true); if (K_Access::aclTree()->lastResource) { break; } } $allowTrigger = $access;
private function genLeftMenu() { $menu_arr = K_CupTree::rootPath(K_TreeQuery::crt('/leftmenu/')->types(array('menulink'))->go(), '/leftmenu/'); return K_Menu::buildTreeMenu($menu_arr, 0, $this->meta['link']); }
public function one() { return K_TreeQuery::gOne($this->nid); }