public function loginAction() { $form = new Z_Admin_Form(); $form->setElementDecorators(array('ViewHelper')); $form->addElement('text', 'login', array('required' => true, 'class' => 'ui-state-active ui-corner-bottom z-login-input')); $form->addElement('Password', 'password', array('required' => true, 'class' => 'ui-state-active ui-corner-bottom z-login-input')); $form->addElement('Checkbox', 'remember', array()); $form->addElement('Submit', 'submit', array('label' => 'Войти', 'class' => 'ui-state-default ui-corner-bl submit', 'onMouseOver' => '$(this).addClass("ui-state-hover ui-state-active")', 'onMouseOut' => '$(this).removeClass("ui-state-hover ui-state-active")')); if ($_POST && !isset($_POST['logout'])) { if ($form->isValid($_POST)) { $data = $form->getValues(); if (Z_Auth::getInstance()->login($data['login'], $data['password'], $data['remember'] ? true : false)) { jQuery::evalScript('z_menu_show();'); $this->ajaxGo('/' . $this->getRequest()->getModuleName() . '/'); } else { Z_FlashMessenger::addMessage('Логин или пароль не верны'); } } else { Z_FlashMessenger::addMessage('Введите логин и пароль'); } } if (Z_Auth::getInstance()->getUser()->getLogin() != 'guest') { $this->_forward('logout'); return; } $this->view->form = $form; }
public function FormAutocompleteId($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable if (!isset($attribs['source'])) { throw new Exception('Не задан источник для элемента формы "autocomplete" ' . $name); } $source = $attribs['source']; $minLength = isset($attribs['minLength']) ? $attribs['minLength'] : 1; unset($attribs['source']); unset($attribs['minLength']); $script = ' $("#' . $id . '_acString").autocomplete({ source: "' . $source . '", minLength: ' . $minLength . ', select: function(event, ui) { $("#' . $id . '").attr("value",ui.item.id); } }); '; jQuery::evalScript($script); $realvalue = ''; if ($value) { jQuery::evalScript(' $.ajax({ url: "' . $source . '?id=' . $value . '", success: function(data, textStatus, XMLHttpRequest){ $("#' . $id . '_acString").attr("value",data); }}); '); } return parent::formText($name . '_acString', $realvalue, $attribs) . parent::formText($name, $value, array('style' => 'display: none;')); }
public function FormMultyPoint($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable $src = isset($attribs['src']) ? $attribs['src'] : NULL; $options = isset($attribs['multiOptions']) ? $attribs['multiOptions'] : array(); $script = ' $("#container_' . $id . ' .z_multy_point").click(function(){ $("#container_' . $id . ' .z_multy_point").css("background-color","black"); $("#container_' . $id . ' .z_multy_point").css("border","1px solid red"); $(this).css("background-color","red"); $(this).css("border","1px solid black"); $("#value_' . $id . '").attr("value",$(this).attr("rel")); }); '; $divs = ''; foreach ($options as $key => $el) { list($x, $y) = explode(';', $el); if ($value == $key) { $divs .= '<div class="z_multy_point" rel="' . $key . '" id="point_' . $key . '_' . $this->view->escape($id) . '" style="width: 7px; height: 7px; position: absolute; background-color: red; border: 1px solid black; margin-top: ' . ($y - 5) . 'px; margin-left:' . ($x - 5) . 'px; cursor:pointer;"> </div>'; } else { $divs .= '<div class="z_multy_point" rel="' . $key . '" id="point_' . $key . '_' . $this->view->escape($id) . '" style="width: 7px; height: 7px; position: absolute; background-color: black; border: 1px solid red; margin-top: ' . ($y - 5) . 'px; margin-left:' . ($x - 5) . 'px; cursor:pointer;"> </div>'; } } jQuery::evalScript($script); // build the element $xhtml = '<div id="container_' . $this->view->escape($id) . '">' . $divs . '<img src="' . $src . '"' . ' id="' . $this->view->escape($id) . '"' . $this->_htmlAttribs($attribs) . '</img></div>' . '<input id="value_' . $this->view->escape($id) . '" type="hidden" name="' . $name . '" value="' . $value . '"></input>'; return $xhtml; }
public function FormEditArea($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable $syntax = isset($attribs['syntax']) ? $attribs['syntax'] : 'php'; $height = isset($attribs['height']) ? $attribs['height'] : 300; $script = ' editAreaLoader.init({ id : "' . $id . '", syntax: "' . $syntax . '", start_highlight: true, language: "ru", allow_resize: "no", allow_toggle: false, font_size: "10", toolbar: "charmap, search, |, undo, redo, |, highlight, reset_highlight, |, syntax_selection, fullscreen, help", syntax_selection_allow: "css,html,js,php,xml", plugins: "charmap", min_height: ' . $height . ', charmap_default: "arrows", save_callback: "z_editarea_change_event", change_callback: "z_editarea_change_event", submit_callback: "z_editarea_change_event" }); '; jQuery::evalScript($script); // build the element $xhtml = '<textarea name="' . $this->view->escape($name) . '"' . ' id="' . $this->view->escape($id) . '"' . $this->_htmlAttribs($attribs) . '>' . $value . '</textarea>'; return $xhtml; }
public function render(Zend_View_Interface $view = null) { jQuery::evalScript(' $(".z-form fieldset legend").click(function(){ $(this).parent().find(">dl").toggle("blind",200); }) '); if (!$this->getAttrib('id')) { $this->setAttrib('id', 'z-admin-form-' . rand(1000000, 10000000)); } return parent::render($view); }
public function render(Zend_View_Interface $view = null) { $this->class = $this->class . " ui-widget-content ui-corner-all"; $this->id = $this->id ? $this->id : rand(1000000, 10000000); $this->format = $this->format ? $this->format : 'yy-mm-dd'; if (!$this->getValue()) { $this->setValue(date('Y-m-d')); } jQuery::evalScript('$("#' . $this->id . '").datepicker({ changeMonth: true, changeYear: true, dateFormat: "' . $this->format . '" }); '); return parent::render($view); }
public function FormAutocomplete($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable if (!isset($attribs['source'])) { throw new Exception('Не задан источник для элемента формы "autocomplete" ' . $name); } $source = $attribs['source']; $minLength = isset($attribs['minLength']) ? $attribs['minLength'] : 1; unset($attribs['source']); unset($attribs['minLength']); $script = ' $("#' . $id . '").autocomplete({ source: "' . $source . '", minLength: ' . $minLength . ' }); '; jQuery::evalScript($script); return parent::formText($name, $value, $attribs); }
public function FormPointPicker($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable $src = isset($attribs['src']) ? $attribs['src'] : NULL; @(list($x, $y) = explode(';', $value)); $x = $x ? $x : 0; $y = $y ? $y : 0; $script = ' $("#' . $id . '").click(function(e){ var x = e.pageX - $(this).offset().left; var y = e.pageY - $(this).offset().top; $("#point_' . $id . '").css("margin-left",x-4+"px"); $("#point_' . $id . '").css("margin-top",y-4+"px"); $("#coords_' . $id . '").attr("value",x+";"+y); }); '; jQuery::evalScript($script); // build the element $xhtml = '<div><div id="point_' . $this->view->escape($id) . '" style="width: 5px; height: 5px; position: absolute; background-color: red; border: 1px solid black; margin-top: ' . ($y - 4) . 'px; margin-left:' . ($x - 4) . 'px;"> </div>' . '<img src="' . $src . '"' . ' id="' . $this->view->escape($id) . '"' . $this->_htmlAttribs($attribs) . '</img></div>' . '<input id="coords_' . $this->view->escape($id) . '" type="hidden" name="' . $name . '" value="' . $value . '"></input>'; return $xhtml; }
$field3 = isset($_REQUEST['field3']) ? $_REQUEST['field3'] : ''; $response = 'Field 1 = "' . htmlentities(stripslashes($field1)) . '"<br/>' . 'Field 2 = "' . htmlentities(stripslashes($field2)) . '"<br/>' . 'Field 3 = "' . htmlentities(stripslashes($field3)) . '"<br/>'; jQuery('#testform')->html($response); break; case 'timeout': sleep(3); jQuery('#preview_content')->animate(array('opacity' => '0.5'), 1000)->animate(array('opacity' => '1'), 1000); break; case 'msg': jQuery::addMessage('Message 1...'); jQuery::addMessage('Message 2...'); break; case 'msg2': jQuery::addMessage('Message 1...', 'myCallBack'); jQuery::addMessage('Message 2...', 'myCallBack'); break; case 'err': jQuery::addError('Error 1...'); jQuery::addError('Error 2...'); break; case 'data': jQuery::addData('key1', 'value1'); jQuery::addData('key2', 'value2', 'myCallBack'); break; case 'eval': jQuery::evalScript('alert("Eval script...");'); break; default: break; } jQuery::getResponse();
protected function renderCropped($crop_options) { $this->initCropoptions(); $previews = $headers = $footer = ''; $img = $this->getValue(); //id обрезаемой картинки $layout = Zend_Layout::getMvcInstance(); $view = $layout->getView(); $sizes = $cropped_coord = null; $i = -1; $image_size = getimagesize($this->_file->getFullName()); //размер обрезаемой картинки foreach ($crop_options as $copt) { //цикл нужен для того, чтобы выдать все возможные превью генерируемые по входной картинке например 200х150 на главной странице и 300х250 на внутренней $i++; if (!isset($copt['label']) || !$copt['label']) { continue; } if (!isset($copt['width']) || (int) $copt['width'] == 0) { continue; } if (!isset($copt['height']) || (int) $copt['height'] == 0) { continue; } $headers .= '<td rel="' . $i . '" class="h">' . $copt['label'] . '</td>'; $image = $view->z_Preview($img, array('w' => $copt['width'], 'h' => $copt['height']), true); $hoverer = '<div class="hoverer" style="width:' . $copt['width'] . 'px;height:' . $copt['height'] . 'px;overflow:hidden;display:none;"><img src="' . $this->_file->getSiteName() . '"></div>'; $previews .= '<td rel="' . $i . '" valign="middle">' . '<img id="init_preview" rel="' . $i . '" src="' . $image . '"/>' . $hoverer . '</td>'; $footer .= '<td rel="' . $i . '"><a href="#" class="z-button ui-button ui-state-default ui-corner-all ui-button-text-only select_preview" rel="' . $i . '"><span class="ui-button-text">Изменить</span></a></td>'; $cropped_coord = $this->getCroppedParamsFromCroppedFile($image); //анализирует имя обрезанного вручную файла и вычленяет параметры обрезки x,y - начальные координаты верхнего левого угла обрезки, w,h - высоту и ширину вырезаемой области, if (!$cropped_coord) { //если координаты не получены значит файл не является обрезанным вручную $cropped_coord = $this->getCroppedCoordinates($copt['width'], $copt['height'], $image_size[0], $image_size[1]); } //пытаемся получить параметры обрезки которые делаются в автоматическом режиме при вызове скрипта generatepreview.php $sorted_coord['x'] = $cropped_coord['x']; //порядок параметров очень важен $sorted_coord['y'] = $cropped_coord['y']; $sorted_coord['w'] = $cropped_coord['w']; $sorted_coord['h'] = $cropped_coord['h']; $sizes[] = "[" . $copt['width'] . "," . $copt['height'] . ",[" . str_replace(',', '.', implode('|', $sorted_coord)) . "]]"; //[[100,50,[0,2.445,100.2,100.4]],[150,200,[0,3,400,500]]]; [ширина выходной картинки, высота выходной картинки [параметры обрезки в автоматическом режиме или в ручном если есть обрезанный файл с такой шириной и высотой]] замену , на . делаем потому что при конвертации в float (полученный из json серилизованного массива параметров обрезки), цифры имеют вид 100,2 а нам нужны точки } if (!$headers) { return ''; } $sizes = str_replace('|', ',', $sizes); $js_sizes = '[' . implode(',', $sizes) . ']'; //var_dump($js_sizes); $previews = '<table class="previews"><tr>' . $headers . '</tr><tr>' . $previews . '</tr><tr>' . $footer . '</tr></table>'; jQuery::evalScript("\n\t\tvar sizes = " . $js_sizes . ";\n\t\tvar k = 0;\t\n \t\t \$(function(){\n \t\t var sizes = " . $js_sizes . ";\n\t\t\t//initCropbox();\n\t\t\t\$(\".select_preview\").click(function(){\n\t\t\t\tvar rel = \$(this).attr('rel');\n\t\t\t\tvar r = parseInt(rel, 0);\n\t\t\t\tvar w =sizes[rel][0];\n\t\t\t\tvar h = sizes[rel][1]; \n\t\t\t\t\$(\"#thumb_w\").val(w);\n\t\t\t\t\$(\"#thumb_h\").val(h);\n\t\t\t\t\$(\".accordion\").attr('sel',r);\n\t\t\t\tk=r;\n\t\t\t\t\$(\".accordion\").show();\n\t\t\t\tvar selectr_img = \"img[rel!='\"+rel+\"']\";\n\t\t\t\tvar selectr_td = \"td[rel='\"+rel+\"']\";\n\t\t\t\t\$(\"table.previews\").find(\"img\").removeClass('opacity');\n\t\t\t\t\$(\"table.previews\").find(selectr_img).addClass('opacity');\n\t\t\t\t\$(\"table.previews\").find(\"td\").removeClass('selected');\n\t\t\t\tvar active_td = \$(\"table.previews\").find(selectr_td);\n\t\t\t\t\$(active_td).addClass('selected');\n\t\t\t\t\n\t\t\t\t\$(\"img#init_preview\").show();\n\t\t\t\t\$(active_td).find(\"img#init_preview\").hide();\n\t\t\t\t\$(\".hoverer\").hide();\n\t\t\t\tvar active_hoverer = \$(active_td).find(\".hoverer\");\n\t\t\t\t\$(active_hoverer).show();\n\t\t\t\t\$(active_hoverer).find(\"img\").removeClass('opacity');\n\t\t\t\t\$(\".hoverer\").find(\"img\").removeClass('preview');\n\t\t\t\t\$(active_hoverer).find(\"img\").addClass('preview');\n\t\t\t\t\n\t\t\t\t\$(this).parent().parent()\n\t\t\t\tinitCropbox();\n\t\t\t\t\$(\"#hoverer\").css({\n\t\t\t\t\twidth:w+'px',\n\t\t\t\t\theight:h+'px',\n\t\t\t\t\toverflow:'hidden'\n\t\t\t\t});\t\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t\n\t\t\t\$(\"#cancel\").click(function (){\n\t\t\t\t\$(\".accordion\").hide();\n\t\t\t\t\$(\"table.previews\").find(\"img\").removeClass('opacity');\n\t\t\t\t\$(\"table.previews\").find(\"td\").removeClass('selected');\n\t\t\t\tclearValues(true);\n\t\t\t\t\n\t\t\t})\n\t\t });\n\t\t\tfunction initCropbox(){\n\t\t\t\t\$(\"#cropbox\").Jcrop({\n\t\t\t\t\taspectRatio: sizes[k][0]/sizes[k][1],\n\t\t\t\t\tonChange: showPreview,\n\t\t\t\t\tonSelect: showPreview,\n\t\t\t\t\tonRelease: clearValues,\n\t\t\t\t\tsetSelect:sizes[k][2],\n\t\t\t\t\tboxWidth: 1000, \n\t\t\t\t\tboxHeight: 1000 ,\n\t\t\t\t\tbgOpacity: 0.4,\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t\tclearValues(false);\n\t\t\t}\t\t\nfunction clearValues(thumb_size){\n\t\$('#x').val('');\n\t\t\t\t\$('#y').val('');\n\t\t\t\t\$('#w').val('');\n\t\t\t\t\$('#h').val('');\n\tif(thumb_size){\n\t\t\$(\"#thumb_w\").val('');\n\t\t\$(\"#thumb_h\").val('');\n\t}\n\t\t\t\t\n}\t\t\t\nfunction showPreview(coords)\n{\n\tvar rx = sizes[k][0] / coords.w;\n\tvar ry = sizes[k][1] / coords.h;\n\n\t\$('.preview').css({\n\t\twidth: Math.round(rx * " . $image_size[0] . ") + 'px',\n\t\theight: Math.round(ry * " . $image_size[1] . ") + 'px',\n\t\tmarginLeft: '-' + Math.round(rx * coords.x) + 'px',\n\t\tmarginTop: '-' + Math.round(ry * coords.y) + 'px'\n\t});\n\t//updateCoords();\n\t\$('#x').val(coords.x);\n\t\t\t\t\$('#y').val(coords.y);\n\t\t\t\t\$('#w').val(coords.w);\n\t\t\t\t\$('#h').val(coords.h);\n}\n\t\t\tfunction updateCoords(c)\n\t\t\t{\n\t\t\t\t\$('#x').val(c.x);\n\t\t\t\t\$('#y').val(c.y);\n\t\t\t\t\$('#w').val(c.w);\n\t\t\t\t\$('#h').val(c.h);\n\t\t\t};\n\n "); return $this->_style . '<br/>' . $previews . '<div class="accordion"> <div class="buttons_group z_form_buttons"> <input type="submit" name="apply" id="apply" value="Вырезать" class="z-form-apply ui-button ui-state-default ui-corner-all z-button"> <a href="#" id="cancel" class="z-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"> <span class="ui-button-text">Отмена</span> </a> </div> <img src="' . $this->_file->getSiteName() . '" id="cropbox"/> <input type="hidden" id="image" name="get_cropped_options[]" value="' . $this->getValue() . '"/> <input type="hidden" id="thumb_w" name="get_cropped_options[]" /> <input type="hidden" id="thumb_h" name="get_cropped_options[]" /> <input type="hidden" id="x" name="get_cropped_options[]" /> <input type="hidden" id="y" name="get_cropped_options[]" /> <input type="hidden" id="w" name="get_cropped_options[]" /> <input type="hidden" id="h" name="get_cropped_options[]" /> </div>'; }
public function deleteAction() { $this->setViewPathes(); $this->disableRenderView(); //отключение вывода //проверка на возможность удаления if (!$this->z_can_delete) { Z_FlashMessenger::addMessage('Удаление запрещено!'); return; } //получение списка удаляемых элементов if (!$this->_getParam('id')) { $ids = $this->_getParam('ids'); } else { $ids = array($this->_getParam('id')); } //если есть подтверждение на удаление или оно не требуется, то удаляем if ($this->z_delete_confirm && $this->_getParam('confirmed') || !$this->z_delete_confirm) { //получение списка полей, с файлами на удаление $modelForm = new Z_Model_Resourceforms(); $formFileitems = $modelForm->fetchAll(array('resourceid=?' => $this->getResourceInfo()->id, 'is_file=?' => 1)); $storage = new Z_File_Storage(); $deletedItemsCount = 0; foreach ($ids as $id) { $item = $this->z_model->fetchRow(array('id=?' => $id)); $itemArray = $item->toArray(); if (!$this->deleteCheck($itemArray)) { Z_FlashMessenger::addMessage('Удаление записи "' . $itemArray[$this->z_default_field] . '" Запрещено!'); continue; } //проверка на наличие подразделов в каталоге $haveSubcat = false; if ($this->z_datatype == 'catalog') { $subCatCount = $this->z_model->select(true)->reset('columns')->columns('count(*)')->where('parentid=?', $item->id)->query()->fetchColumn(); if ($subCatCount > 0) { $haveSubcat = true; Z_FlashMessenger::addMessage('Раздел "' . $itemArray[$this->z_default_field] . '" имеет подразделы'); } } //проверка на наличие дочерних элементов $haveChild = false; if ($this->z_child_resources) { foreach ($this->z_child_resources as $resource) { $childModel = new $resource['model'](); $childItem = $childModel->fetchRow(array($resource['parent_field'] . '=?' => $item->id)); if ($childItem) { $haveChild = true; Z_FlashMessenger::addMessage('"' . $itemArray[$this->z_default_field] . '" имеет подчиненные "' . $resource['title'] . '"'); } } } //проверка на возможность удаления элемента if ((!isset($itemArray['z_can_delete']) || isset($itemArray['z_can_delete']) && $itemArray['z_can_delete']) && (!$haveChild || $this->z_delete_on_have_child) && !$haveSubcat) { //удаление связей многие ко многим if (!empty($this->z_refers)) { foreach ($this->z_refers as $referName => $refer) { $referModel = new $refer['model'](); $referModel->delete(array($refer['field1'] . '=?' => $item->id)); } } $delData = $item->toArray(); $item->delete(); if (count($formFileitems)) { foreach ($formFileitems as $formFileitem) { $storage->removeFileDir($delData[$formFileitem->field]); } } //ech('1'); $this->deleteSuccess($delData); $this->deleteFromIndex($delData['id']); $deletedItemsCount++; } else { Z_FlashMessenger::addMessage('Удаление записи "' . $itemArray[$this->z_default_field] . '" Запрещено!'); } } if ($deletedItemsCount > 0) { $this->ajaxGo($this->view->url(array('action' => $this->z_defaultAction, 'id' => NULL, 'confirmed' => NULL))); } } elseif ($this->z_delete_confirm) { //требуем подтверждения на удаление jQuery::evalScript(' if (confirm("Удалить?")) { z_ajax_go("' . $this->view->url() . '",{confirmed:1,ids:[' . implode(',', $ids) . ']}); } '); } }
public function FormMce($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable $role = Z_Auth::getInstance()->getUser()->getRole(); $acl = Z_Acl::getInstance(); $filemanager = isset($attribs['filemanager']) ? $attribs['filemanager'] : true; try { $allowFileManager = $acl->isAllowed($role, 'filemanager'); } catch (Exception $e) { $allowFileManager = false; } $filemanager = $filemanager && $allowFileManager; $filemanagerScript = ' mode : "textareas", file_browser_callback: function(field_name, url, type, win) { aFieldName = field_name, aWin = win; if($("#elfinder").length == 0) { $("body").append($("<div/>").attr("id", "elfinder")); $("#elfinder").elfinder({ url : "/sys/elfinder/connectors/php/connector.php", lang: "ru", dialog : { width: 800, modal: true, title: "Файловый менеджер", zIndex: 400001 }, // open in dialog window editorCallback: function(url) { aWin.document.forms[0].elements[aFieldName].value = url; }, closeOnEditorCallback: true }); } else { $("#elfinder").elfinder("open"); } }, '; $toolbar = isset($attribs['toolbar']) ? $attribs['toolbar'] : $this->_mce_default_toolbar; $toolbar = isset($this->_mce_toolbar[$toolbar]) ? $toolbar : $this->_mce_default_toolbar; $script = '$("#' . $id . '").tinymce({ theme : "advanced", language : "ru", ' . $this->_mce_toolbar[$toolbar] . ' ' . ($filemanager ? $filemanagerScript : '') . ' ' . (isset($attribs['content_css']) ? 'content_css : "' . $attribs['content_css'] . '",' : '') . ' theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, theme_advanced_resize_horizontal : false, extended_valid_elements : "iframe[name|src|framespacing|border|frameborder|scrolling|title|height|width|style],object[declare|classid|codebase|data|type|codetype|archive|standby|height|width|usemap|name|tabindex|align|border|hspace|vspace],div[id|style|class]", media_strict: false, // force_br_newlines : true, // force_p_newlines : false, // forced_root_block : "", width: "100%", height: "' . (isset($attribs['height']) ? $attribs['height'] : '300px') . '", onchange_callback: "z_mce_save", execcommand_callback: "z_mce_save_event", remove_script_host: true, relative_urls: false });'; jQuery::evalScript($script); unset($attribs['toolbar']); // build the element $xhtml = '<textarea name="' . $this->view->escape($name) . '"' . ' id="' . $this->view->escape($id) . '"' . $this->_htmlAttribs($attribs) . '>' . $value . '</textarea><a href="#" class="" onclick="tinymce.execCommand(\'mceToggleEditor\',false,\'' . $id . '\');">Вкл/Выкл редактор.</a>'; return $xhtml; }
public function admin_datagrid($data, $columns, $options = array()) { jQuery::evalScript('$("#z-grid tbody").selectable({ filter: "tr", cancel: "a", selected: function(event, ui) { $("#"+ui.selected.id).addClass("ui-state-highlight"); }, selecting: function(event, ui) { $("#"+ui.selecting.id).addClass("ui-state-highlight"); }, unselected: function(event, ui) { $("#"+ui.unselected.id).removeClass("ui-state-highlight"); }, unselecting: function(event, ui) { $("#"+ui.unselecting.id).removeClass("ui-state-highlight"); } });'); jQuery::evalScript('$("#z-grid").tableDnD({ onDragClass: "ui-state-highlight", dragHandle: "drad-handle", scrollAmount: "20", onDrop: function(table, row){ if ($(row).hasClass("ui-selected")) $(row).addClass("ui-state-highlight"); var urlTemplate = $(table).attr("rel"); var reorderAr = []; var rows = table.tBodies[0].rows; for (var i=0; i<rows.length; i++) { reorderAr[i] = rows[i].id; } z_ajax_go(urlTemplate,{ ids:reorderAr }); } });'); jQuery::evalScript(' $("input.z-grid-filter-input").keyup(function(event) { if (event.keyCode == "13"){ var url = $(this).attr("rel"); var name = $(this).attr("name"); var param = {}; param[name] = $(this).attr("value"); z_ajax_go(url,param); } }); $("select.z-grid-filter-input").change(function(event) { var url = $(this).attr("rel"); var name = $(this).attr("name"); var param = {}; param[name] = $(this).attr("value"); z_ajax_go(url,param); }); '); $this->view->z_grid_data = $data; $this->view->z_grid_columns = $columns; return $this->view->render('admin/datagrid.phtml'); }
public function ajaxGo($url) { jQuery::evalScript('z_ajax_go("' . $url . '")'); }
public function formMultiimage($name = null, $value = null, $attribs = null) { $module = Zend_Controller_Front::getInstance()->getRequest()->getModuleName(); $this->initSettings(); $resid = 0; if (is_array($attribs) && count($attribs)) { foreach ($attribs as $key => $attr) { if (isset($this->_options[$key])) { $this->_options[$key] = $attr; } if ($key == 'res') { $resid = $attr; } } } //file_size_limit : "'.$this->_options['file_size_limit'].' MB", jQuery::evalScript(' $(document).ready(function(){ var swfu; swfu = new SWFUpload({ upload_url: \'/' . $module . '/z_upload/index/resid/' . $attr . '\', post_params: {"u_sid" : "' . session_id() . '"}, file_size_limit : "1 MB", file_types : "*.jpg;*.jpeg;*.png;*.gif", file_types_description : "Изображения формата jpg, jpeg, bmp, png, gif", file_upload_limit : "' . $this->_options['file_upload_limit'] . '", file_queue_limit : "' . $this->_options['file_queue_limit'] . '", swfupload_loaded_handler: swfUploadLoaded, file_queue_error_handler : fileQueueError, file_queued_handler: fileQueue, file_dialog_complete_handler : fileDialogComplete, file_dialog_start_handler: fileDialogStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, upload_start_handler: uploadStart, flash_color : "#DFEFFC", button_placeholder_id : "spanButtonPlaceholder", button_width: 100, button_height: 23, button_text : "<span class=\'butt\'>Загрузить</span>", button_text_style : ".butt {color:#2E6E9E; font-weight:bold; text-align:center; font-size: 14px;}", button_text_top_padding: 3, button_text_left_padding: 0, button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT, button_cursor: SWFUpload.CURSOR.HAND, button_action: SWFUpload.BUTTON_ACTION.SELECT_FILES, flash_url : "/sys/img/swfupload.swf", custom_settings : { upload_target : "progress", error_div: "upload_error" }, debug: false }); }); '); /* *movieName=SWFUpload_0 *uploadURL=%2Fv220%2Fsimpledemo%2Fupload.php& *useQueryString=false& *requeueOnError=false& *httpSuccess=& *assumeSuccessTimeout=0& *params=PHPSESSID%3D& *filePostName=Filedata& *fileTypes=*.*& *fileTypesDescription=All%20Files& *fileSizeLimit=100%20MB& *fileUploadLimit=100& *fileQueueLimit=0& *debugEnabled=false& *buttonImageURL=%2Fv220%2Fsimpledemo%2Fimages%2FTestImageNoText_65x29.png& *buttonWidth=65& *buttonHeight=29& *buttonText=%3Cspan%20class%3D%22theFont%22%3EHello%3C%2Fspan%3E& *buttonTextTopPadding=3& *buttonTextLeftPadding=12& *buttonTextStyle=.theFont%20%7B%20font-size%3A%2016%3B%20%7D& *buttonAction=-110& *buttonDisabled=false& *buttonCursor=-1"> */ $xhtml = '<div class="mainblock"> <div id="select_button" class="select_button"> <span id="spanButtonPlaceholder"></span> </div> <a href="#" onclick="clearList(); return false;" class="z-button z-button-top z-delete ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"> <span class="ui-button-text">Очистить</span> </a> <div class="clear"> </div> <div id="progress"></div> <ul id="upload_error"></ul> </div> '; return $xhtml; }
public function FormMultielement($name, $value = null, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); extract($info); // name, value, attribs, options, listsep, disable $elements = $attribs['multioptions']; $firstkey = array_keys($elements); $firstkey = $firstkey[0]; unset($attribs['multioptions']); $header = ''; foreach ($elements as $el) { $header .= '<th colspan="2">' . $el['label'] . '</th>'; } $header = '<table><tr>' . $header . '</tr>'; $footer = '</table>'; $count = 0; if (isset($value[$firstkey])) { $count = count($value[$firstkey]); } $element = ''; $empty = true; if ($count) { $empty = false; $addedcount = 0; for ($i = 0; $i < $count; $i++) { $setted = false; foreach ($elements as $key => $el) { if (isset($value[$key][$i]) && trim($value[$key][$i])) { $setted = true; } } if ($setted) { $addedcount++; $subel = ''; foreach ($elements as $key => $val) { if ($val['_type'] == 'text') { $val['id'] = $name . '-' . $i . '-' . $key; $subel .= '<td>' . $this->view->formText($name . '[' . $key . '][]', trim($value[$key][$i]), $val) . '</td>' . "\n"; $subel .= '<td><span id="delete">Удалить</span></td>' . "\n"; } elseif ($val['_type'] == 'textarea') { $val['id'] = $name . '-' . $i . '-' . $key; $subel .= '<td>' . $this->view->formTextarea($name . '[' . $key . '][]', trim($value[$key][$i]), $val) . '</td>' . "\n"; $subel .= '<td><span id="delete">Удалить</span></td>' . "\n"; } } $subel = "<tr>\n" . $subel . "</tr>\n"; $element .= $subel; } } if (!$addedcount) { $empty = true; } } if ($empty) { foreach ($elements as $key => $val) { if ($val['_type'] == 'text') { $val['id'] = $name . '-0-' . $key; $element .= '<td>' . $this->view->formText($name . '[' . $key . '][]', '', $val) . '</td>' . "\n"; $element .= '<td><a href="#" id="delete">Удалить</a></td>' . "\n"; } elseif ($val['_type'] == 'textarea') { $val['id'] = $name . '-0-' . $key; $element .= '<td>' . $this->view->formTextarea($name . '[' . $key . '][]', '', $val) . '</td>' . "\n"; $element .= '<td><span id="delete">Удалить</span></td>' . "\n"; } } $element = "<tr>\n" . $element . "</tr>\n"; } $js = ''; $js .= '$(function() { $("a#add").click(function(){ var str = $(this).parent().parent().find("table tr").get(1); $(this).parent().parent().find("table").append("<tr>"+$(str).html()+"</tr>"); var laststr = $(this).parent().parent().find("table tr").get(-1); $(laststr).find("input").attr("value","") return false; }); $("a#delete").live("click",function(){ //alert ($(this).parent().parent().parent().parent().parent().get(0).tagName); if ($(this).parent().parent().parent().parent().parent().find("table tr").length>2){ $(this).parent().parent().remove(); } return false; }); });'; jQuery::evalScript($js); $style = ''; if (isset($attribs['style']) && trim($attribs['style'])) { $style = $attribs['style']; } $xhtml = $style . $header . $element . $footer . '<p class="add_string"><a href="#" id="add">Добавить строку</a></p>'; return $xhtml; }
public function init() { $this->_model = new Z_Model_Resources(); $this->setTarget('#z-menu'); jQuery::evalScript('z_menu_init();'); }