S

Sergey Necr

+38
Репутация
50
Рейтинг
#1 Формат поля "Строковое поле" 25 июля 2015 в 08:44


Так проще сделать копию этого поля с другим названием
п.с. В таком формате плохо выглядят номера стационарных телефонов. Как правило в областных центрах код города из 3х цифр, а во всех районах добавляется 2 цифры, и потом пойми кому звонишь то ли в своем городе то ли в областной центр

rector

Я как пример привел, так что не нужно о мелочах. Можно обдумать как это реализовать и для З-х значного кода и как в моем случае 5-и значного, За это отвечает маска. Сделайте отдельно пункт городской с маской sityphone и пользуйте маску mask("8 (99999) 999-99")
Качество вводимых символов мало изменится. а вот то, что пользователю можно ввести и +79о11_2з-88-88, +7 (9011) 23-88-88, девятьсот1 стодвадцатьтри 88-88 и много еще чего это не правильно, а Вы как считаете?
#1 Формат поля "Строковое поле" 24 июля 2015 в 14:39
Я не специалист в программировании, поэтому не пинайте сильно.
Имеем Строковое поле и у него есть форматы:
— Поле должно быть заполнено
— Только целые числа
— Только латинские буквы и цифры
— Адрес электронной почты
— Уникальное значение

Может кто то сделать чтоб был формат телефонный номер?
потому как ни один из текущих не подходит под номер, ведь это не только цифры и имеет определенное количество символов.
Сейчас у меня работает так:
Подключил сторонний скрипт в templates/TMPLName/controllers/content/item_form.tpl.php
  1.  
  2. /*
  3. jQuery Masked Input Plugin
  4. Copyright (c) 2007 - 2014 Josh Bush (digitalbush.com)
  5. Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
  6. Version: 1.4.0
  7. */
  8. !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b,c=navigator.userAgent,d=/iphone/i.test(c),e=/chrome/i.test(c),f=/android/i.test(c);a.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a,b){var c;if(0!==this.length&&!this.is(":hidden"))return"number"==typeof a?(b="number"==typeof b?b:a,this.each(function(){this.setSelectionRange?this.setSelectionRange(a,b):this.createTextRange&&(c=this.createTextRange(),c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&&document.selection.createRange&&(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a,end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h,i,j,k,l,m,n,o;if(!c&&this.length>0){h=a(this[0]);var p=h.data(a.mask.dataName);return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear,placeholder:a.mask.placeholder,completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?"==b?(n--,k=a):i[b]?(j.push(new RegExp(i[b])),null===l&&(l=j.length-1),k>a&&(m=j.length-1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if(g.completed){for(var a=l;m>=a;a++)if(j[a]&&C[a]===p(a))return;g.completed.call(B)}}function p(a){return g.placeholder.charAt(a<g.placeholder.length?a:0)}function q(a){for(;++a<n&&!j[a];);return a}function r(a){for(;--a>=0&&!j[a];);return a}function s(a,b){var c,d;if(!(0>a)){for(c=a,d=q(b);n>c;c++)if(j[c]){if(!(n>d&&j[c].test(C[d])))break;C[c]=C[d],C[d]=p(d),d=q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b,c,d,e;for(b=a,c=p(a);n>b;b++)if(j[b]){if(d=q(b),e=C[b],C[b]=c,!(n>d&&j[d].test(e)))break;c=e}}function u(){var a=B.val(),b=B.caret();if(a.length<o.length){for(A(!0);b.begin>0&&!j[b.begin-1];)b.begin--;if(0===b.begin)for(;b.begin<l&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}else{for(A(!0);b.begin<n&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}h()}function v(){A(),B.val()!=E&&B.change()}function w(a){if(!B.prop("readonly")){var b,c,e,f=a.which||a.keyCode;o=B.val(),8===f||46===f||d&&127===f?(b=B.caret(),c=b.begin,e=b.end,e-c===0&&(c=46!==f?r(c):e=q(c-1),e=46===f?q(e):e),y(c,e),s(c,e-1),a.preventDefault()):13===f?v.call(this,a):27===f&&(B.val(E),B.caret(0,A()),a.preventDefault())}}function x(b){if(!B.prop("readonly")){var c,d,e,g=b.which||b.keyCode,i=B.caret();if(!(b.ctrlKey||b.altKey||b.metaKey||32>g)&&g&&13!==g){if(i.end-i.begin!==0&&(y(i.begin,i.end),s(i.begin,i.end-1)),c=q(i.begin-1),n>c&&(d=String.fromCharCode(g),j[c].test(d))){if(t(c),C[c]=d,z(),e=q(c),f){var k=function(){a.proxy(a.fn.caret,B,e)()};setTimeout(k,0)}else B.caret(e);i.begin<=m&&h()}b.preventDefault()}}}function y(a,b){var c;for(c=a;b>c&&n>c;c++)j[c]&&(C[c]=p(c))}function z(){B.val(C.join(""))}function A(a){var b,c,d,e=B.val(),f=-1;for(b=0,d=0;n>b;b++)if(j[b]){for(C[b]=p(b);d++<e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b]=c,f=b;break}if(d>e.length){y(b+1,n);break}}else C[b]===e.charAt(d)&&d++,k>b&&(f=b);return a?z():k>f+1?g.autoclear||C.join("")===D?(B.val()&&B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?"!=a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C,function(a,b){return j[b]&&a!=p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if(!B.prop("readonly")){clearTimeout(b);var a;E=B.val(),a=A(),b=setTimeout(function(){z(),a==c.replace("?","").length?B.caret(0,a):B.caret(a)},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly")||setTimeout(function(){var a=A(!0);B.caret(a),h()},0)}),e&&f&&B.off("input.mask").on("input.mask",u),A()})}})});
  9.  
В конце этого же файла добавил активацию при определенном ID
  1.  
  2. <script type="text/javascript">
  3. jQuery(function($){
  4. $("#phone").mask("+7 (999) 999-9999");
  5. });
  6. </script>
  7.  
Получаем :


Сейчас все работает, но при обновлении может слететь раз, это не правильно так делать два. Есть кто то кто оформит модулем или чем то чтоб было правильно? Думаю не только мне станет интересно это…
#2 OneNews - обсуждение шаблона для InstantCMS2 18 мая 2015 в 21:39


Ребят, совсем скоро мы закончим работу над Шаблоном, остались лишь блоги и мелкие переделки. Сейчас мы ищем тестеров на валидность кода.
Как нужно проводить проверку, заходим на данный сайт http://validator.w3.org/ Вводим в поле Address ссылку на страницы сайта, страницы на которых были обнаружены выкладываете здесь или отправляете в личку а я в свою очередь их исправляю.

Atid — Gorec

Могу помочь. Что проверяем? Адрес, брат, дай его адрес!😊долго искать
#3 OneNews - обсуждение шаблона для InstantCMS2 8 мая 2015 в 09:37


Atid — Gorec не оправдывайтесь это же очевидно что dekartwork молодец, а Sergey Necr пустозвон
И он выбрал свой путь на этом сайте)))

Cтудия Sitestroi

Я бы попросил не опускаться до оскорблений.
Мной было предположено по причине того, что увидел название одно, дизайн очень похож, к сожалению не видел кода, а только картинку. После поста dekartwork у меня все сложилось, я согласен, что просто получилось похоже, просто удачное решение. Да пост получился с нотками обиды. Могу извиниться за то, что привел к этому.
Atid — Gorec так же указал на видимость.
От сайтостроя же только оскорбления и препирательства идут, ну и кто теперь пустозвон?
#4 OneNews - обсуждение шаблона для InstantCMS2 7 мая 2015 в 17:46
Сегодня случайно наткнулся на тему для ДЛЕ. ни чего не напоминает?
#5 Обновление InstantCMS 2.2.1 5 мая 2015 в 08:57


А как сделать, чтоб контент не копировали или при копировании всплывало окно с предупреждение об авторском праве?

Viking

Мне кажется это лишнее, так же как и отключать нажатие левой кнопки или что там еще делают.
А вот подставить в копируемый текст ссылочку на источник правильнее.

в футер вставь <script type="text/javascript" src="http://tvoi-site.ru/copyright.js"></script>

создаем скрипт с текстом внутри:
  1.  
  2. function addLink() {
  3.  
  4. var body_element = document.getElementsByTagName('body')[0];
  5.  
  6. var selection;
  7.  
  8. selection = window.getSelection();
  9.  
  10. var pagelink = "<br/>Оригинальный источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
  11.  
  12. var copytext = selection + pagelink;
  13.  
  14. var newdiv = document.createElement('div');
  15.  
  16. newdiv.style.position='absolute';
  17.  
  18. newdiv.style.left='-99999px';
  19.  
  20. body_element.appendChild(newdiv);
  21.  
  22. newdiv.innerHTML = copytext;
  23.  
  24. selection.selectAllChildren(newdiv);
  25.  
  26. window.setTimeout(function() {
  27.  
  28. body_element.removeChild(newdiv);
  29.  
  30. },0);
  31.  
  32. }
  33.  
  34. document.oncopy = addLink;
  35.  
Далее все, при копировании в тексте автоматически появляется ссылка на исходную страницу.
#6 Аватары 2.2.1. в "Люди", "Комментариях", "Ленте" 28 апреля 2015 в 21:30
Приветствую.
Смотря что Вы имеете ввиду под перекосится...
В комментариях, например, при увеличении аватара часть блока комментария наедет на аватар, но это лечится достаточно просто.
Вообще, если разработчик сделал возможность менять размеры, то означает, что все будет работать стабильно. Но окончательное оформление Вы делаете самостоятельно.
Вот у меня как сделано.

Стоит именно small.
Дальше все в CSS настроено.
#7 [ЕСТЬ РЕШЕНИЕ] Как сделать большой аватар? Версия 2.2.1 26 апреля 2015 в 20:02
Вот снова читаю и не понимаю что Вы хотите...
Вас не устраивают стандартные размеры для micro и small?
— Я так понимаю вы нашли все верно указали, меняется для всего сайта.

Нужно вывести аватар в определенном месте больше?
— ну хорошо, попробуем вывести аватар зарегистрированного пользователя немного больше.
открываем \templates\default\controllers\users\widgets\avatar\avatar.tpl.php
ищем
  1.  
  2. <?php echo html_avatar_image($user->avatar, 'micro'); ?>
  3.  
меняем micro на big, так устроит?
#8 [ЕСТЬ РЕШЕНИЕ] Как сделать большой аватар? Версия 2.2.1 24 апреля 2015 в 17:23


Здравствуйте.
Подскажите, пожалуйста, есть ли решение данного вопроса?
Собственно вопрос в теме.
Как увеличить аватар, допустим 240х240 пикселей на всех страничках сайта, который находится слева или справа (у кого как)?

skewes

Не совсем понял вопрос о том где размещать, но все размеры есть — "micro", "small", "big", "original".
Дальше, думаю, Вам легче найти будет.
#9 rel равно nofollow для сторонних ссылок 23 апреля 2015 в 14:23


Зачем? Поисковые системы этого не увидят (меняете то js кодом), а вы ведь для них этот атрибут ставите joke

Fuze

хм, как то стороне выполнения не подумал 😊благодарю.

UPD. а проверил решение на pr-cy.ru
выдало: Внешние ссылки — 4, индексируется — 3
Значит все же работает…
#1 rel равно nofollow для сторонних ссылок 23 апреля 2015 в 12:21
Не могу вести блог, но очень хотел поделиться.

Написал маленький хак, дополнение, доработку (читайте как хотите). Вставляется в вашу тему в файл main.tpl перед последним < /body >
  1.  
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4. $('a[href^="http"]:not([href*="<?php $sitename = explode('.', $_SERVER['SERVER_NAME']);
  5. $site_domain = $sitename[count($sitename)-2].'.'. $sitename[count($sitename)-1]; echo $_SERVER['SERVER_NAME']; ?>"]),a[href^="/go?"]').attr('onclick', 'return !window.open(this.href)').attr("rel","nofollow");
  6. });
  7. </script>
  8.  
Описание: В скрипте идет подстановка адреса сайта если сайт сторонний то к его атрибутам дописывается "rel=nofollow" и открывается в отдельном окне. Если ваш, даже на субдомене "subdomain.site.com" будет определять как собственный.
В случае, когда сторонняя ссылка благополучно открылась в новом окне, мы блокируем открытие ссылки в своем родном окне, т.к. return будет !true=false. И наоборот, если окно открыть не удалось, return true позволит ссылке отработать в штатном режиме. Это замена невалидного атрибута target.
Получаем:
Сторонний сайт
  1.  
  2. <a href="http://levi-site.ru" onclick="return !window.open(this.href)" rel="nofollow">спам не дай бог</a>
  3.  
там же ваш сайт
  1.  
  2. <a href="http://vash-site.ru">ссылка</a>
  3.  
Всем удачи.
#10 [ЕСТЬ РЕШЕНИЕ] Дата публикации в 2,х,х 22 апреля 2015 в 13:19
хм, благодарю. Попробую…
#11 [ЕСТЬ РЕШЕНИЕ] Дата публикации в 2,х,х 20 апреля 2015 в 18:06


Формируется непосредственно в БД при создании/редактировании контента, а выводится в шаблонах, например в ..\templates\default\content\default_item.tpl.php 123-я строка:

  1.  
  2.  
  3.  
  4.  

Val

Благодарю, но выводится я в курсе где, там не получится поменять формат вывода...
Потому и задал вопрос где формируется.
#1 [ЕСТЬ РЕШЕНИЕ] Дата публикации в 2,х,х 20 апреля 2015 в 16:55
Кто может подсказать, где формируется дата публикации контента, хотел бы поменять вывод с 01,11,2015 на 01 ноября 2015г.
#12 [ЕСТЬ РЕШЕНИЕ] Обновление InstantCMS 2.2.0 26 марта 2015 в 21:45


Есть у кого то такое или решение?

Sergey Necr
Скопируйте из обновления, со стандартного шаблона, в ваш… Папку assets...

wayfox

благодарю. то что нужно было.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.