PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (120): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Найдено сообщений: 1797
etoYA
Отправлено: 30 Мая, 2014 - 15:38:22 • Тема: Ребят нужна ваша помощь, как создать генератор паролей а ООП • Форум: Объектно-ориентированное программирование
Ответов: 6 Просмотров: 1935
Все ОЧЕНЬ упрощено.
Это только для ПРИМЕРНОГО показания структуры.
Баги поправите сами, выбор пароля из базы и.т.д (для проверки его уникальности) сделаете сами.
index
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
$controller = $_GET [ 'c' ] ;
$action = $_GET [ 'a' ] ;
// проверяем существует ли файл
// проверяем существует ли действие в контроллере
// если все ок, то подключаем контроллер и вызываем действие
// если действие не было указано, то вызываем действие по умолчанию.
$controller = new $controller ( ) ;
$controller -> $action ( ) ;
function __autoload( $class ) {
require_once ( $class . '.php' ) ;
}
?>
view
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<form method="POST">
<label for="passwordLength">Password length</label>
<input type="text" name="passwordLength">
<br>
<label for="passwordLength">numbers without 0 and 1</label>
<input type="checkbox" name="numbers">
<br>
<label for="big">big letters without O</label>
<input type="checkbox" name="big">
<br>
<label for="small">small letters without l</label>
<input type="checkbox" name="small">
<br>
<button type="submit" name="submit">Generate</button>
</form>
<p style="color: red"><?PHP echo $error ; ?> </p>
<h1><?PHP echo $password ; ?> </h1>
model
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
class Model{
public $type , $passwordLength ;
// генерируем пароль и возвращаем
public function generatePass( ) {
$length = $this -> passwordLength ;
$letters = $this -> chooseSymbols ( ) ;
if ( $length > $cLetters ) $length = $cLetters ;
while ( $length -- ) {
$symbol = $letters [ rand ( 0
, $cLetters ) ] ;
$length ++;
}
else $password [ ] = $symbol ;
}
if ( ! $this -> isUnique ( $password ) ) $this -> generatePass ( ) ;
}
// определяем символы по типу (0,1,2,3,4,5,6)
private function chooseSymbols( ) {
'Q' , 'W' , 'E' , 'R' , 'T' , 'Y' , 'U' , 'I' , 'P' , 'A' , 'S' , 'D' , 'F' ,
'G' , 'H' , 'J' , 'K' , 'L' , 'Z' , 'X' , 'C' , 'V' , 'B' , 'N' , 'M'
) ;
$numbers = array ( 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
) ; 'q' , 'w' , 'e' , 'r' , 't' , 'y' , 'u' , 'i' , 'o' , 'p' ,
'a' , 's' , 'd' , 'f' , 'g' , 'h' , 'j' , 'k' , 'z' , 'x' ,
'c' , 'v'
) ;
switch ( $this -> type ) {
//numbers only
case 0:
return $numbers ;
break ;
// small letters only
case 1:
return $smallLetters ;
break ;
// big letters only
case 2:
return $bigLetters ;
break ;
// numbers and small letters
case 3:
break ;
// numbers and big letters
case 4:
break ;
// small and big letters
case 5:
break ;
// all
case 6:
return array_merge ( $smallLetters , $bigLetters , $numbers ) ; break ;
}
}
// проверяем уникальность пароля в базе.
private function isUnique( $pass ) {
return true ;
}
}
?>
controller
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
class Controller{
public function index( ) {
$error = '' ;
if ( isset ( $_POST [ 'submit' ] ) ) { $passwordLength = ( int) $_POST [ 'passwordLength' ] ;
$small = $_POST [ 'small' ] ;
$big = $_POST [ 'big' ] ;
$numbers = $_POST [ 'numbers' ] ;
// ошибки
if ( empty ( $passwordLength ) ) { $error .= 'Enter Password length <br />' ;
}
$error .= 'Choose one of type<br />' ;
}
// определяем тип пароля
// только цифры
$type = 0 ;
}
// только маленькие
$type = 1 ;
}
// только большие
$type = 2 ;
}
// цифры и маленькие
$type = 3 ;
}
// цифры и большие
$type = 4 ;
}
// маленькие и большие
$type = 5 ;
}
// любые
$type = 6 ;
}
// передаем данные в модель
$model = new Model;
$model -> type = $type ;
$model -> passwordLength = $passwordLength ;
echo $type ;
$password = $model -> generatePass ( ) ;
}
}
// подключаем вьюху.
require_once ( 'view.php' ) ;
}
}
?>
UPD
Чтоб все сделать нормально, почитайте http://forum.php.su/topic.php?fo...=62&topic=98
etoYA
Отправлено: 19 Мая, 2014 - 00:23:58 • Тема: Подгрузка контента при клике ajax • Форум: CMS и фреймворки
Ответов: 2 Просмотров: 3177
Приветствую, помогите разобраться с подгрузкой постов при клике. Вместо постраничной навигации кнопка "Показать еще", которая будет подгружать N следующих записей.
Пробовал без wordpress, работает, но с wordpres сразу много проблем.
Если кто сталкивался с подобным, объясните пожалуйста каким образом это реализовать?
Пробовал так:
CODE (
javascript ):
скопировать код в буфер обмена
$( function ( ) {
var $perPage = 1 ;
$( '.read-more' ) .on ( 'click' , function ( ) {
$.ajax ( {
url: '/wp-content/themes/some_theme/content.php' ,
type : 'POST' ,
data: { "perPage" : $perPage} ,
success: function ( data) {
if ( data) {
$( '#content' ) .append ( data) ;
$perPage++;
}
}
} ) ;
return false ;
} ) ;
} ) ;
В файле content.php самый банальный вывод постов.
Но сразу же выскакивает ошибка.
Call to undefined function have_posts()
Подскажите как это реализовать (просто, чтоб объект wordpress был создан), с остальным я разберусь.
etoYA
Отправлено: 18 Мая, 2014 - 02:08:13 • Тема: Выравнивание по центру фиксированного блока • Форум: HTML, Дизайн & CSS
Ответов: 1 Просмотров: 926
CODE (
html ):
скопировать код в буфер обмена
<nav id = "main-nav" >
<ul >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
<li ><a href = "#" > Page</ a ></ li >
</ ul >
</ nav>
CODE (
html ):
скопировать код в буфер обмена
#main-nav {
text-transform: uppercase;
font-size: 18px;
font-family: 'PT Sans Narrow';
display: block;
margin: 20px 0 0 0;
width: 100%;
height: 40px;
background: #4e6385;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
border: 0;
}
#main-nav .text {
line-height: 40px;
float: left;
}
#main-nav ul {
padding: 0;
list-style: none;
}
#main-nav ul li {
padding: 0 15px;
line-height: 40px;
float: left;
border-left: 1px solid #3c4d67;
}
#main-nav ul li:first-child {
border-left: 0;
}
#main-nav ul li a {
color: #ffffff;
}
#main-nav ul .active,
#main-nav ul li:hover {
background: #455775;
}
#main-nav ul .active a,
#main-nav ul li:hover a {
color: #ffffff;
}
при прокрутке страницы добавляю класс
но выглядит это как то так... (верхний блок темно-синего цвета)
http://rghost[dot]ru/55292034/image[dot]png
Как мне выровнять этот блок по центру? Если его ширина зависит от ширины родительского блока? (.container его ширина может меняться).
etoYA
Отправлено: 16 Мая, 2014 - 10:32:50 • Тема: Скрипт не всегда срабатывает. • Форум: JavaScript & VBScript
Ответов: 0 Просмотров: 3855
Есть 4 колонки, в каждой колонке по 4 элемента. Задача скрипта выровнять ряд в колонке по наибольшему элементу.
Все работает, но почему-то не всегда. Можно несколько раз обновить страницу, мало того, что скрипт не срабатывает, дак еще и хуже становится... В чем может быть дело.
$height когда скрипт не сработал.
$height когда скрипт не сработал.
CODE (
javascript ):
скопировать код в буфер обмена
$( function ( ) {
equalItemHeights( '.items' , '.item' ) ;
function equalItemHeights( $col, $row) {
// колонка
$items = $( $col) ;
// перебираем все колонки
$items.each ( function ( ) {
var $height = 0 ;
$item = $( this ) .find ( $row) ;
// перебираем все элементы в данной колонке
$item.each ( function ( ) {
// в эту переменную записывается высота элемента (если она больше, чем прежняя).
var $cItem = $( this ) ;
if ( $height < $cItem.height ( ) ) {
$height = $cItem.height ( ) ;
}
} ) ;
$item.height ( $height) ;
} ) ;
} ;
} ) ;
CODE (
html ):
скопировать код в буфер обмена
<div class = "items row" >
<div class = "col-md-3 col-sm-6" >
<div class = "item" >
<img src = "http://placehold.it/253x142" alt = "" >
<h3 ><a href = "" > Lorem ipsum dolor sit amet consectetuer adipiscing elit.</ a ></ h3 >
<p >
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aenean commodo ligula
eget dolor. Aenean massa. Cum sociis
natoque penatibus et magnis dis.
</ p >
</ div > <!--item-->
</ div > <!-- col-md-3 col-sm-6 -->
<div class = "col-md-3 col-sm-6" >
<div class = "item" >
<img src = "http://placehold.it/253x142" alt = "" >
<h3 ><a href = "" > Lorem ipsum dolor sit amet consectetuer adipiscing elit.</ a ></ h3 >
<p >
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aenean commodo ligula
eget dolor. Aenean massa. Cum sociis
natoque penatibus et magnis dis.
</ p >
</ div > <!--item-->
</ div > <!-- col-md-3 col-sm-6 -->
<div class = "col-md-3 col-sm-6" >
<div class = "item" >
<img src = "http://placehold.it/253x142" alt = "" >
<h3 ><a href = "" > Lorem ipsum dolor sit amet consectetuer adipiscing elit.</ a ></ h3 >
<p >
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aenean commodo ligula
eget dolor. Aenean massa. Cum sociis
natoque penatibus et magnis dis.
</ p >
</ div > <!--item-->
</ div > <!-- col-md-3 col-sm-6 -->
<div class = "col-md-3 col-sm-6" >
<div class = "item" >
<img src = "http://placehold.it/253x142" alt = "" >
<h3 ><a href = "" > Lorem ipsum dolor sit amet consectetuer adipiscing elit.</ a ></ h3 >
<p >
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aenean commodo ligula
eget dolor. Aenean massa. Cum sociis
natoque penatibus et magnis dis.
</ p >
</ div > <!--item-->
</ div > <!-- col-md-3 col-sm-6 -->
</ div > <!-- items -->
http://rghost[dot]ru/55211977[dot]view
http://rghost[dot]ru/55211988[dot]view
etoYA
Отправлено: 12 Мая, 2014 - 21:41:41 • Тема: Выравнивание высоты элементов. • Форум: JavaScript & VBScript
Ответов: 0 Просмотров: 525
В общем мне нужно выровнять блоки по самому большому из них.
Нужно сделать примерно такое:
А должно быть так
111 и 222 - это разные блоки (т.е содержимое и тэг 1, а контейнеры разные, но с одним классом)
Написал такой код. Он работает, но т.к в js/jquery я новичок, то говнокода не избежать. Можно ли этот код написать более оптимальным способом?
CODE (
javascript ):
скопировать код в буфер обмена
$( function ( ) {
var $height = 0 ,
$items = $( 'p' ) ,
$item;
$items.each ( function ( ) {
$item = $( this ) ;
if ( $item.height ( ) > $height)
$height = $item.height ( ) ;
} ) ;
$items.height ( $height) ;
} ) ;
etoYA
Отправлено: 12 Мая, 2014 - 19:33:23 • Тема: Wordpress • Форум: CMS и фреймворки
Ответов: 0 Просмотров: 674
Приветствую. Помогите разобраться с выводом постов и категорий.
PHP:
скопировать код в буфер обмена
<?PHP
// список всех категорий
$category_list = get_categories( 'child_of=0' ) ;
?>
<?PHP foreach ( $category_list as $category ) : ?>
// Здесь вывод - назвния категории, slug категории
<?PHP if ( have_posts( ) ) : ?>
// определяем сколько постов и с какой категории их выводим.
<?PHP query_posts( 'category_id=' . $category -> cat_ID . '&posts_per_page=3' ) ; ?>
// Выводим содержимое поста
<?PHP while ( have_posts( ) ) : the_post( ) ; ?>
// тут the_content(), the_title() etc
<?PHP endwhile ; ?>
<?PHP wp_reset_query( ) ; ?>
<?PHP endif ; ?>
<?PHP endforeach ; ?>
Я не могу понять, почему этот код категории выводить корректно, а посты во всех категориях выводит одинаковые?. (результат на картинках).
Ведь по идее, должно быть так:
PHP:
скопировать код в буфер обмена
// первый цикл - сработает 10 раз.
for ( $i = 0 ; $i < 10 ; $i ++ ) {
// Этот цикл сработает тоже 10 раз, но так как он вложенный, то в сумме он сработает 100 раз.
for ( $x = 0 ; $x < 10 ; $x ++ ) {
// как завершается цикл, то переходим к "первому циклу"
}
}
Может я просто ошибся в функциях wp? Кто знает wp, объясните пожалуйста.
UPD
Просмотрев класс WP_Query разобрался.
Помогло это
etoYA
Отправлено: 09 Мая, 2014 - 22:07:49 • Тема: jQuery получение потомка • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 1800
armancho7777777 , и Вам спасибо
(Добавление)
Получилось вот так, возможно тут еще что-то улучшить можно?)
CODE (
javascript ):
скопировать код в буфер обмена
$( function ( ) {
// Скрываем последний (3й) элемент из блока с категориями
$( ".content-for-index .items .item:last-child" ) .addClass ( 'hidden-sm' ) ;
// свертывание и развертывание блок
$( ".content-for-index .toggle-category" ) .on ( "click" , function ( ) {
$( this ) .closest ( '.content-for-index' ) .children ( '.items' ) .slideToggle ( 'slow' ) ;
if ( $( this ) .closest ( '.content-for-index' ) .children ( '.items' ) .is ( ':visible' ) ) {
$( this ) .toggleClass ( 'glyphicon-chevron-down' ) ;
}
else {
$( this ) .toggleClass ( 'glyphicon-chevron-up' ) ;
}
return false ;
} ) ;
} ) ;
etoYA
Отправлено: 09 Мая, 2014 - 15:31:57 • Тема: jQuery получение потомка • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 1800
Есть такой код. Таких конструкций на странице может быть неограниченное кол-во. Нужно, чтоб при клике на ссылку с классом toggle-category класс items исчезал.
CODE (
html ):
скопировать код в буфер обмена
<section class = "content-for-index" >
<div class = "title" >
<a href = "#" > Рубрика</ a >
<a href = "" class = "toggle-category glyphicon glyphicon-chevron-down pull-right" ></ a >
</ div >
<div class = "row items" >
<div class = "item col-md-4 col-sm-6" >
<img src = "http://placehold.it/263.x148" alt = "" / >
<div class = "item-description" >
<h2 > Lorem ipsum dolor sit amet</ h2 >
<small >
<span class = "glyphicon glyphicon-time" > 25 апреля 2014</ span >
<span class = "glyphicon glyphicon-time" > 6312</ span >
<span class = "glyphicon glyphicon-time" > 321</ span >
</ small >
<p > Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum quas quis animi reiciendis quia dolor iusto aut error! Quas, iste delectus ducimus dolorum aliquid veritatis mollitia possimus soluta sunt culpa.</ p >
</ div >
</ div >
<div class = "item col-md-4 col-sm-6" >
<img src = "http://placehold.it/263.x148" alt = "" / >
<div class = "item-description" >
<h2 > Lorem ipsum dolor sit amet</ h2 >
<small >
<span class = "glyphicon glyphicon-time" > 25 апреля 2014</ span >
<span class = "glyphicon glyphicon-time" > 6312</ span >
<span class = "glyphicon glyphicon-time" > 321</ span >
</ small >
<p > Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum quas quis animi reiciendis quia dolor iusto aut error! Quas, iste delectus ducimus dolorum aliquid veritatis mollitia possimus soluta sunt culpa.</ p >
</ div >
</ div >
<div class = "item col-md-4 col-sm-6" >
<img src = "http://placehold.it/263.x148" alt = "" / >
<div class = "item-description" >
<h2 > Lorem ipsum dolor sit amet</ h2 >
<small >
<span class = "glyphicon glyphicon-time" > 25 апреля 2014</ span >
<span class = "glyphicon glyphicon-time" > 6312</ span >
<span class = "glyphicon glyphicon-time" > 321</ span >
</ small >
<p > Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum quas quis animi reiciendis quia dolor iusto aut error! Quas, iste delectus ducimus dolorum aliquid veritatis mollitia possimus soluta sunt culpa.</ p >
</ div >
</ div >
</ div >
</ section>
Пытался сделать таким образом, но почему-то не работает. Объясните почему?
CODE (
javascript ):
скопировать код в буфер обмена
$( function ( ) {
$( ".content-for-index .toggle-category" ) .on ( "click" , function ( ) {
$( this ) .parent ( '.content-for-index' ) .children ( '.items' ) .slideToggle ( 'slow' ) ;
} ) ;
} ) ;
etoYA
Отправлено: 01 Мая, 2014 - 15:54:10 • Тема: Сетки • Форум: HTML, Дизайн & CSS
Ответов: 4 Просмотров: 1249
Еще 1 вопрос.
К примеру:
container = 984
span8 = 66.66666666666667%
span2 = 16.666666666666668%
Если
container / 100 * span8 = 656
Выходит, что для span2 100% это уже не container, а span8 т.е 656.
Как с этим бороться? Нужно, чтоб в коде ниже 4xspan2 попрежнему были = span8, возможно ли такое?
CODE (
htmlphp ):
скопировать код в буфер обмена
< div class= "container" >
< div class= "span8" >
< div class= "span2" ></ div>
< div class= "span2" ></ div>
< div class= "span2" ></ div>
< div class= "span2" ></ div>
</ div>
</ div>
Страниц (120): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB