PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 192
imedia Отправлено: 20 Сентября, 2017 - 23:33:53 • Тема: Подскажите как сделать примитивный шаблонизатор • Форум: Вопросы новичков

Ответов: 6
Просмотров: 408
Вот есть строка - шаблон и есть переменные которые нужно подставить вместо названий в шаблоне между фигурными скобками
PHP:
скопировать код в буфер обмена
  1.  
  2. public $array=[
  3. ['sts']=>'Standford',
  4. ['dvd']=>'Video',
  5. ['title']=>'My_title'
  6. ];
  7. public $message="<!DOCTYPE html>
  8. <html lang='en'>
  9. <head>
  10.    <meta charset='UTF-8'>
  11.    <title>{title}</title>
  12.    <div class='message' style='color:#6b0392;'>
  13.        {sts}
  14. </div>
  15. <div class='footer' style='color:#6b0392;'>
  16.        {dvd}
  17. </div>
  18. </head>
  19. <body>
  20.  
  21. </body>
  22. </html>";
  23.  
  24.  


По сути надо составить вот такой масив $matches чтобы потом можно было приминить к нему функцию указанную ниже
PHP:
скопировать код в буфер обмена
  1.  
  2. $matches = array (
  3. "{переменная}" => "значение",
  4. );
  5. //function
  6. $result = str_replace (array_keys($matches), array_values($matches), $message);
  7.  
imedia Отправлено: 12 Сентября, 2017 - 19:28:15 • Тема: Как обратиться к свойству модели из класа который ее использует? • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 558
Здравствуйте Есть класс
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. namespace App\Http\Controllers\Privat;
  5.  
  6.  
  7. use App\CabinetMenu;
  8.  
  9. class Privat3Controller extends \App\Http\Controllers\Controller
  10. {
  11.    
  12.  
  13.     public function ShowGoodsAddItem()
  14.     {
  15.         $data_nav['menu']=CabinetMenu::data_nav_menu;
  16.    }
  17.  
  18.  
  19.  
  20.  
  21. }
  22.  
  23.  

И есть модель которая в этом классе вызывается со свойством
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. namespace App;
  5.  
  6. use Illuminate\Database\Eloquent\Model;
  7.  
  8. class CabinetMenu extends Model
  9. {
  10.     //
  11.     public $data_nav_menu=[
  12.  
  13.     0=>['href'=>'#demo-lft-tab-1','data_href'=>'/cabinet','btn_title'=>'Мой кабинет'],
  14.     1=>['href'=>'#demo-lft-tab-2','data_href'=>'/goods_and_groups','btn_title'=>'Товары и услуги'],
  15.     2=> ['href'=>'#demo-lft-tab-3','data_href'=>'/','btn_title'=>'Заказы'],
  16.     3=> ['href'=>'#demo-lft-tab-4','data_href'=>'/','btn_title'=>'Управление сайтом'],
  17.     4=> ['href'=>'#demo-lft-tab-5','data_href'=>'/','btn_title'=>'Продвижение сайта'],
  18.     5=> ['href'=>'#demo-lft-tab-5','data_href'=>'/','btn_title'=>'Тарифы'],
  19.     6=> ['href'=>'#demo-lft-tab-5','data_href'=>'/','btn_title'=>'Настройки'],
  20.     7=> ['href'=>'#demo-lft-tab-5','data_href'=>'/','btn_title'=>'Справка'],
  21.  
  22.  
  23.  
  24.     ];
  25. }
  26.  
  27.  

Как достучаться? сейчас Undefined class constant 'data_nav_menu'
imedia Отправлено: 01 Сентября, 2017 - 12:41:30 • Тема: apache сделать алиас на другую директорию • Форум: Вопросы новичков

Ответов: 2
Просмотров: 148
Добрый день надо чтобы в одном виртуальном хосте при ссылке на imedia.in.ua была директория "/var/www/imedia.in.ua/web/max/frontend/web"
А при ссылке на алиас backend.imedia.in.ua открывался индекс из дирректории "/var/www/imedia.in.ua/web/max/backend/web"

Как это осуществить? пытаюсь так не получается

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. DocumentRoot "/var/www/clients/client1/web10/web/max/frontend/web/"
  3. ServerAlias backend.imedia.in.ua
  4. Alias /backend/  /var/www/clients/client1/web10/web/max/backend/web/
  5.  
imedia Отправлено: 26 Августа, 2017 - 20:24:10 • Тема: Курьез - почему в ретурне функции есть строка а в функции которая вызывает нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 438
Я написал, возвращает имя домена
imedia Отправлено: 26 Августа, 2017 - 19:13:27 • Тема: Курьез - почему в ретурне функции есть строка а в функции которая вызывает нет • Форум: Вопросы новичков

Ответов: 6
Просмотров: 438
Обращаемся так createMongoInfo($user);
PHP:
скопировать код в буфер обмена
  1.  
  2. protected function generateDomain($domain,$length = 1){
  3.         //Смотрим в базу нет ли там такогоже домена
  4.         $site = Site::where('domain_name',$domain)->get();
  5.         if(isset($site[0])){
  6.             $chars = 'abdefhiknrstyz';
  7.             $numChars = strlen($chars);
  8.             $string = '';
  9.             for ($i = 0; $i < $length; $i++) {
  10.                 $string .= substr($chars, rand(1, $numChars) - 1, 1);
  11.             }
  12.             $domain=$domain.'_'.$string;
  13.  
  14.             $this->generateDomain($domain,$length+1);
  15.  
  16.         }
  17.         else{
  18.         //No such site
  19.         dump('return',$domain);//Здесь после одного прохода imediasun_z
  20.         return $domain;
  21.         }
  22.    }
  23.     protected function createMongoInfo($user){
  24.  
  25.        $domain_name=stristr($user->email, '@', true);
  26.        dd($this->generateDomain($domain_name,1));//Null
  27.        
  28.  
  29.     }
  30.  

Почему в dd createMongoInfo NULL когда в ретурне generateDomain imediasun_z smile
imedia Отправлено: 15 Августа, 2017 - 20:41:55 • Тема: Как прокинуть данные из контроллера в темплейт • Форум: Вопросы новичков

Ответов: 0
Просмотров: 104
Я пользуюсь Ларавель

Хочу в вид динамически подгружать данные с темплейтом
Как осуществить
В основном шаблоне у меня аяксом забираются данные и темплейт для них
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  $.ajax({
  3.             type: 'POST',
  4.             dataType: 'json',
  5.             url: '/privat/showCompanyMenu',
  6.             success: function(jsondata){
  7.               $('#result').html(jsondata)
  8.            }
  9.         });
  10.  

А вот файл в котором происходит выбор подгружаемого темплейта и данных к нему
PHP:
скопировать код в буфер обмена
  1.  
  2. public function showCompanyMenu()
  3.     {
  4.         //Возвращает данные меню по конкретному юзеру
  5.         //И возвращает HTML шаблон для отображения представления меню
  6.         $html = view('privat/retail/templates/menu_present')->render();
  7.         $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'html'=>$html);
  8.         $json_string=json_encode($arr);
  9.         echo $json_string;
  10.  
  11.  
  12.     }
  13.  

Как данные (a,b,c,d) прокинуть в шаблон чтобы в json получить html с данными
imedia Отправлено: 14 Августа, 2017 - 13:53:27 • Тема: Вопрос по хостам на локалке • Форум: Вопросы новичков

Ответов: 3
Просмотров: 261
У меня тут проблема с поддоменами
Смотри если я в /etc/hosts/ указываю
127.0.0.1 magelan.loc sun.magelan.loc
я попадаю на свой индекс это отлично так и надоно если я указываю
127.0.0.1 magelan.loc *.magelan.loc

такого сайта не видит апач

Можешь помочь?
imedia Отправлено: 13 Августа, 2017 - 19:37:59 • Тема: Как средствами PHP создать поддомен • Форум: Вопросы новичков

Ответов: 1
Просмотров: 222
Я использую Ларавель, мне необходимо скриптом создать настройки домена третьего уровня и чтобы при обращении к нему клиент заходил в Ларавелевский просто определенный контроллер проекта расположенного на основном домене и в экшене контроллера входным параметром будет имя этого поддомена, К тому же есть ньюанс роутов, они как то должны содержать имя поддомена или это можно обойти, Растолкуйте как это делается, Помогите пожалуйста
imedia Отправлено: 18 Марта, 2017 - 15:40:19 • Тема: Как отрегулировать множественную загрузку АЯКС • Форум: Вопросы новичков

Ответов: 0
Просмотров: 96
Вот этот скрипт осуществляет множественную загрузку, обращение к серверу POST осуществляется асинхронно, скажите пожалуйста как отрегулировать скрипт так чтобы по complete каждого имиджа создавалась пауза пока я не отвечу на вопрос продолжить ли загрузку, а потом только следующий POST улетал на сервер - дело в том что на сервере по каждому имеджу происходит запись в сессию.
Скрипт немного сокращен отсутствуют инит моменты но сама суть понятна должна быть

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. (function($) {
  4.  
  5.             self._damnUploaderUploadItem = function(url, item) {
  6.                 if (!checkIsFile(item.file)) {
  7.                     return false;
  8.                 }
  9.                 var xhr = new XMLHttpRequest();
  10.                 var progress = 0;
  11.                 var uploaded = false;
  12.  
  13.                 if (xhr.upload) {
  14.                     xhr.upload.addEventListener("progress", function(e) {
  15.                         if (e.lengthComputable) {
  16.                             progress = (e.loaded * 100) / e.total;
  17.                             if ($.isFunction(item.onProgress)) {
  18.                                 item.onProgress.call(item, Math.round(progress));
  19.                             }
  20.                         }
  21.                     }, false);
  22.  
  23.                     xhr.upload.addEventListener("load", function(e){
  24.                         progress = 100;
  25.                         uploaded = true;
  26.                     }, false);
  27.  
  28.                 } else {
  29.                     uploaded = true;
  30.                 }
  31.  
  32.                 xhr.onreadystatechange = function () {
  33.                     var callbackDefined = $.isFunction(item.onComplete);
  34.                     if (this.readyState == 4) {
  35.                         item.cancelled = item.cancelled || false;
  36.                         if (this.status < 400) {
  37.                             if (!uploaded) {
  38.                                 if (callbackDefined) {
  39.                                     item.onComplete.call(item, false, null, 0);
  40.                                 }
  41.                             } else {
  42.                                
  43.                                 if ($.isFunction(item.onProgress)) {
  44.                                     item.onProgress.call(item, 100);
  45.                                 }
  46.                                 if (callbackDefined) {
  47.                                     item.onComplete.call(item, true, this.responseText);
  48.                                 }
  49.                             }
  50.                         } else {
  51.                             if (callbackDefined) {
  52.                                 item.onComplete.call(item, false, null, this.status);
  53.                             }
  54.                         }
  55.                     }
  56.                 };
  57.  
  58.                 var filename = item.replaceName || item.file.name;
  59.                 xhr.open("POST", url);
  60.                 if ($.support.fileSending) {
  61.                  var cnt=count(queue);
  62.                      var formData = new FormData();
  63.                     formData.append((item.fieldName || 'file'), item.file);
  64.                      xhr.send(formData);
  65.                 } else if ($.support.fileReading && xhr.sendAsBinary) {
  66.                     var boundary = "xxxxxxxxx";
  67.                     var body = "--" + boundary + "\r\n";
  68.                     filename = unescape(encodeURIComponent(filename));
  69.                     body += "Content-Disposition: form-data; name='"+(item.fieldName || 'file')+"'; filename='" + filename + "'\r\n";
  70.                     body += "Content-Type: application/octet-stream\r\n\r\n";
  71.                     body += (item.file.getAsBinary ? item.file.getAsBinary() : item.file.readAsBinary()) + "\r\n";
  72.                     body += "--" + boundary + "--";
  73.                     xhr.sendAsBinary(body);
  74.                 } else {
  75.                     xhr.setRequestHeader('Upload-Filename', item.file.name);
  76.                     xhr.setRequestHeader('Upload-Size', item.file.size);
  77.                     xhr.setRequestHeader('Upload-Type', item.file.type);
  78.                     xhr.send(item.file);
  79.                 }
  80.                 item.xhr = xhr;
  81.             }
  82.             var isFileField = ((self.get(0).tagName == 'INPUT') && (this.attr('type') == 'file'));
  83.  
  84.             if (isFileField) {
  85.                 var myName = self.eq(0).attr('name');
  86.                 if (!$.support.fileSelecting) {
  87.                     if (myName.charAt(myName.length-1) != ']') {
  88.                         myName += '[]';
  89.                     }
  90.                     self.attr('name', myName);
  91.                     self.attr('multiple', false);
  92.                     var action = self.parents('form').attr('action');
  93.                     self._damnUploaderFakeForm = $('<form/>').attr({
  94.                         method: 'post',
  95.                         enctype: 'multipart/form-data',
  96.                         action: action
  97.                     }).hide().appendTo('body');
  98.                 } else {
  99.                     self.attr('multiple', true);
  100.                 }
  101.  
  102.                 self._damnUploaderChangeCallback = function() {
  103.                     self._damnUploaderFilesAddMap($.support.fileSelecting ? this.files : this, set.onSelect);
  104.                 };
  105.  
  106.                 self.on({
  107.                     change: self._damnUploaderChangeCallback
  108.                 });
  109.             }
  110.  
  111.             if (set.dropping) {
  112.                 self.on({
  113.                     drop: function(e) {
  114.                         self._damnUploaderFilesAddMap(e.originalEvent.dataTransfer.files, set.onSelect);
  115.                         return false;
  116.                     }
  117.                 });
  118.                 if (set.dropBox) {
  119.                     $(set.dropBox).on({
  120.                         drop: function(e) {
  121.                             self._damnUploaderFilesAddMap(e.originalEvent.dataTransfer.files, set.onSelect);
  122.                             return false;
  123.                         }
  124.                     });
  125.                 }
  126.             }
  127.             return self;
  128.         }
  129.         switch(params) {
  130.  
  131.             case 'addItem':
  132.                 if (!data) {
  133.                     return false;
  134.                 }
  135.                 var queueId = uniq(5);
  136.                 if (data.file.fake) {
  137.                     var input = $(data.file.inputElement);
  138.                     var cloned = $(input).clone();
  139.                     $(input).before(cloned);
  140.                     $(input).attr('id', queueId);
  141.                     $(input).appendTo(self._damnUploaderFakeForm);
  142.                     cloned.on({
  143.                         change: self._damnUploaderChangeCallback
  144.                     });
  145.                     self._damnUploaderItemsCount++;
  146.                     return queueId;
  147.                 }
  148.                 if (!checkIsFile(data.file)) {
  149.                     return false;
  150.                 }
  151.                 queue[queueId] = data;
  152.                 self._damnUploaderItemsCount++;
  153.                 return queueId;
  154.                 break;
  155.  
  156.  
  157.             case 'startUpload':
  158.                 if (!set.url) {
  159.                     return self;
  160.                 }
  161.                 if (!$.support.fileSelecting) {
  162.                     self._damnUploaderFakeForm.submit();
  163.                     return self;
  164.                 }
  165.                 var i =0;
  166.                 var complete_one = false;
  167.                 $.each(queue, function(queueId, item) {
  168.  
  169.                    var compl = item.onComplete;
  170.  
  171.                         item.fieldName = item.fieldName || set.fieldName;
  172.                         item.onComplete = function (successful, data, error) {
  173.  
  174.  
  175.                             if (!this.cancelled) {
  176.                                 delete queue[queueId];
  177.                                 self._damnUploaderItemsCount--;
  178.                             }
  179.                             if ($.isFunction(compl)) {
  180.                                 compl.call(this, successful, data, error);
  181.                             }
  182.                             if ((self._damnUploaderItemsCount == 0) && ($.isFunction(set.onAllComplete))) {
  183.                                 set.onAllComplete.call(self, data);
  184.                             }
  185.   };
  186. self._damnUploaderUploadItem(set.url, item);
  187. });
  188.  break;
  189.  
  190. }
  191.  
imedia Отправлено: 28 Февраля, 2017 - 19:19:19 • Тема: Почему при повторном вызове функции обнуляется свойство объекта • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1449
Строитель
Сессии не желательно, дело в том что класс загружается каждый раз когда принимается запись о фотографии а это многократно - аяксом и этот класс обработчик, будет разве не обнавляется статистическая переменная при новой загрузке класса обработчика?
imedia Отправлено: 28 Февраля, 2017 - 18:58:57 • Тема: Почему при повторном вызове функции обнуляется свойство объекта • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1449
Строитель
Не работает, думаю сессии надо использовать при старте класса статическое свойство тоже обнуляется
imedia Отправлено: 28 Февраля, 2017 - 17:02:27 • Тема: Почему при повторном вызове функции обнуляется свойство объекта • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1449
Вот у меня вызов приватной функции он многократен в зависимости от действий пользователя

PHP:
скопировать код в буфер обмена
  1.  
  2. class A{
  3. privat $num;
  4.  
  5. public function index(){
  6. move_uploaded_file($tmp_name,$upload );
  7. $this->resize_($upload,$uploads_dir,$file_name,'file_name');
  8. }
  9. public function resize_(){
  10. //здесь в цикле ресайз затем запись в сессию $this->kind
  11. $this->kind($process,$imag=$up['name'].$file_name);
  12. }
  13. privat function kind(){
  14. for($i=0;$i<1;$i++) {
  15. dump('ENTER FOR');
  16. dump($this->num);/////////////////////////////////////////////////////////////
  17. dump(session()->all());
  18. if (session()->has($process . '.' . $this->num . '.image_medium')) {
  19.  session()->put($process . '.' . $this->num . '.image_large', $imag);
  20. //когда уже должен быть 1 в $this->num то large переписывается потому что в $this->num null
  21. //before = null
  22. $this->num++;
  23. //after =1
  24. break;
  25. }
  26. if (session()->has($process . '.' . $this->num . '.image_small')) {
  27. session()->put($process . '.' . $this->num . '.image_medium', $imag);
  28.  break;
  29. } else {
  30.  session([$process . '.' . $this->num . '.image_small' => $imag]);
  31. break;
  32. }
  33. }
  34. dump('EXIT FOR');
  35. dump($this->num);//здесь $this->num 1///////////////////////////////////////////////
  36. dump(session()->all());
  37. }
  38. }
  39.  
  40.  
  41.  

почему при повторном входе в privat kind() $this->num снова null ?? когда в строке 22 он приращается, это же свойство почему оно обнуляется? Может потому что к класу обращение заново происходит, что же делать? каким образом установить этот глобальный итератор
imedia Отправлено: 25 Февраля, 2017 - 21:49:27 • Тема: Почему не отображается картинка если путь правильный • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1140
И как же вы говорите что корень не public
Вот у меня стили написаны так
<link href="/css/bootstrap-social.css" rel="stylesheet">
и папка css именно в public лежит значит слеш это именно public,
как же мне все таки на уровень выше папку указать
/../photos/kartinka.jpg - картинка не отображается
imedia Отправлено: 24 Февраля, 2017 - 22:25:46 • Тема: Почему не отображается картинка если путь правильный • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1140
вот мой html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <img style="width:95%;margin:0 auto;" src="/photos/image2_large(0ba361af3779a5299ce4fb3d9f3704ec).jpg">
  3.  


вот фотоотчет из папки
http://prntscr[dot]com/ecyuy7

Так что может быть с правами, или если тольео для чтения стоит метка может это как то влияет? первый раз на виндоусе работаю
imedia Отправлено: 24 Февраля, 2017 - 19:11:44 • Тема: Почему не отображается картинка если путь правильный • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1140
так что это к document root не имеет отношения, ? кстати если пишу
как вы сказали тоже не может загрузить фотографию
/photos/kartinka.jpg

Может там с правами какая то заморочка еще?

Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB