YurySpoloh

Сделал, как сказано, письмо приходит только админу. И... с перечислением всех мейлов. Мейлы написано только тех, у кого значение subscr=1. Ну, мейлы пока ненужны.

А вот почему идёт только одно письмо? И только админу, а не всем?

Видать проблема в:

Т.е юзер в своих "персональных настройках" может поставить галочку и на равне с админом получать свежие посты на свой email

- ?

В общем впечатление ....класс. Стильно, просто. Нравится.

53

(50 ответов, оставленных в Дополнения: готовые)

Strawberry 1.1.1
Если Вы желаете при регистрации пользователя ввести "маску" на количество и вид символов для логина, добавляете в файл  registration.php код вида:

if(!preg_match("/^[\.A-z0-9_\-]{5,15}$/i", $_POST['register']['login'])){ msg("error","Error !!!", "$regusername Ваш логин должен быть из букв и цифр латинського алфавита.<br> Длина логина должна быть не менее <b>5</b>и не более <b>15</b> знаков. <div><a href=javascript:history.back(1)><br>&lt;&lt; К регистрации</a></div> ");}

Ставите этот код после соответствующего блока  логина, вида:

if($sql -> select(array('table' => 'users', 'where' => array('username = '.mysql_escape_string($_POST['register']['login']), 'or', 'name = '.mysql_escape_string($_POST['register']['nick'])))))
                    {
                        $tpl = file_exists(rootpath.'/plugins/registration/'.$tpl.'/regError.tpl') ? GetContents(rootpath.'/plugins/registration/'.$tpl.'/regError.tpl') : GetContents(rootpath.'/plugins/registration/default/regError.tpl');
                        $replaces = array(
                            '{lang.Error}'     => $this -> lang['regError'],
                            '{lang.ErrorText}' => $this -> lang['regErrorName'],
                        );

                        break;
                    }

Код {5,15} - регулируемое количество знаков. Такой код можно сделать и для пароля, ника и т.п., только изменить login на нужное.
Вроде работает.
Ну и в файле regError.tpl после основного кода можна написать:

<div><a href="javascript:history.back(1)">&lt;&lt; К регистрации</a></div>

- ну это касается только для "чистого кода" файла registration.php smile

P.S. Осталось ещё КАПЧУ к Strawberry 1.1.1 "прикрутить" sad

1 неделя, 13 часов и 35 минут спустя:


Начал работать над переработкой КАПЧИ с Strawberry 1.2 Beta 4 под Strawberry 1.1.1. для регистрации

1. В файл form.tpl записал

{reg.pin}

2. В файл registration.ini записал

regErrorPin = "Код неверный!"

3. В файл registration.php записал:
- в $replaces = array(

'{reg.pin}' => (!empty($config['pin_auth']) ? pin_cod_auth('reg', 'reg') : ''),
                        '{lang.terms}' => (!empty($config['uterms']) ? $formterm : ''),

- в case 2: после

'{lang.ErrorText}' => $this -> lang['regErrorFlood'],

записал

'{lang.ErrorPin}' => ((pin_check('reg') and !empty($config['pin_auth'])) ? ($this -> lang['regErrorPin']) : '')

- ниже после

'{lang.ErrorText}' => $this -> lang['regErrorPasswords'],

записал

'{lang.ErrorPin}' => ((pin_check('reg') and !empty($config['pin_auth'])) ? ($this -> lang['regErrorPin']) : '')

- ниже после

'{lang.ErrorText}' => $this -> lang['regErrorMail'],

записал

'{lang.ErrorPin}' => ((pin_check('reg') and !empty($config['pin_auth'])) ? ($this -> lang['regErrorPin']) : '')


- ниже после

'{lang.ErrorText}' => $this -> lang['regErrorName'],

записал

'{lang.ErrorPin}' => ((pin_check('reg') and !empty($config['pin_auth'])) ? ($this -> lang['regErrorPin']) : '')


- ниже после

'{lang.Ok}' => $this -> lang['regOk'],

  записал

'{reg.pin}' => (!empty($config['pin_auth']) ? pin_cod_auth("login", "auth") : ''),

- ниже после

'{lang.Ok}' => $this -> lang['regOkAndLogined'],

  записал

'{reg.pin}' => (!empty($config['pin_auth']) ? pin_cod_auth("login", "auth") : ''),


- вставил

                    if(empty($_POST['register']['agree']) and !empty($config['uterms']))
                    {
                        $tpl = file_exists(stpl.'/registration/'.$tpl.'/regError.tpl') ? GetContents(stpl.'/registration/'.$tpl.'/regError.tpl') : GetContents(stpl.'/registration/default/regError.tpl');
                        $replaces = array(
                            '{lang.Error}'     => $this -> lang['regError'],
                            '{lang.ErrorText}' => $this -> lang['regErrorRule'],
                            '{lang.ErrorPin}' => ((pin_check('reg') and !empty($config['pin_auth'])) ? ($this -> lang['regErrorPin']) : '')
                        );

                        break;
                }


, этого кода с regErrorRule в Strawberry 1.1.1. небыло

4. С папки captcha записал себе в такую-же папку файлы login.tpl и reg.tpl , файлы admin.tpl и default.tpl уже есть там.

Результат 1:  КАПЧА на странице регистрации пока не выводится, но ошибок и слова {reg.pin} не выводит.

Понятно, что нужно в файл functions.inc.php  вставить функции, но из кагого файла их брать из functions.inc.php или functions_1.2.inc.php.

54

(22 ответов, оставленных в Дополнения: хотелка)

Сделал так:

Сейчас на сайте: <?=my_static();?>
<?
if ($member['id']) {
   $lv = time ();
   $ido = $member['id'];
   $sql->update(array(
      'table'  => 'users',
      'where'  => array("id = $ido"),
      'values' => array('last_visit' => $lv)
   ));
}

$deadlinetime = time() - 300;
$ii = 0;
foreach ($users as $v) {
   echo '<ul>';
   if ($v['last_visit'] >= $deadlinetime) {
            $ii++;
   }
   echo '</ul>';
}

echo 'Пользователей: '.$ii.'<br />'; //Количество зарегистрированных
$jj = my_static(); //Определяем количество посетителей всего в он-лайне
$kk = $jj - $ii; //Определяем количество гостей (всего минус зарегистрированных)
echo 'Гостей: '.$kk.'<br />';
?>

Вроде работает.
P.S. Можно было-бы использовать код счетчика из новой версии  Strawberry 1.2 Beta 4, которую создал  Miksar, но.... подробно объяснить что где и как может, наверное, только сам Miksar. Хотя, видать, скоро ПРИДЁТСЯ создавать новые сайты на основании его работы smile

55

(50 ответов, оставленных в Дополнения: готовые)

cmd, спасибо.

Что-то не получается заставить работать Ваш код, буду ждать.... сам не знаю чего.

Спасибо.

56

(50 ответов, оставленных в Дополнения: готовые)

cmd, спасибо.

Фу, сделал регистрацию пользователей, всё работает.
Осталось теперь сделать проверку.

И главное:
- вставить Капчу,
- вставить счётчик пользователей, гостей и т.п., счётчик, описывается на форуме глюкавый.

57

(50 ответов, оставленных в Дополнения: готовые)

Strawberry 1.1.1.

Нужно через форму регистрации указать обязательные данные о ПОЛЕ человека (с выбором-мужской, женский). И что-бы в персональных данных также выводились данные о Поле.
Полная версия будет как здесь - mironovka.kiev.ua/regg/.
Может кто делал такое, хочу спросить о направлении в котором нужно "двигаться".
Или изменять данные в файлах registration.php, form.tpl, registration.ini, personal.php  или создавать дополнительные поля с записью в базу.

58

(15 ответов, оставленных в Стандартные и не совсем решения)

cmd, спасибо. Работает всё прекрасно.

59

(15 ответов, оставленных в Стандартные и не совсем решения)

Не работает и так - новости вообще никакие не выводятся....

60

(15 ответов, оставленных в Стандартные и не совсем решения)

Если новость таким образом отнести к отдельной категории, то она и так выводиться не будет, ведь указан вывод из определённой категории ( 15 ).
Отнёс её  к двум категориям и написал код:

<? if ($_GET['caterogy'] != 15)
{
<a href="<?=$tpl['post']['link']['post']; ?>"><?=$tpl['post']['title']; ?></a>
}

то вообще ничего не выводится.

61

(15 ответов, оставленных в Стандартные и не совсем решения)

Strawberry_1.1.1

Нужно в меню, где выводятся заглавия новостей, пропустить определённую новость (например с id=444).

Меню вывожу так:

<?php
   $static['sort'] = array('date', 'DESC');
   $static['skip'] = 1;
   $static['template'] = 'Headline';
   $static['number'] = 20;
   $static['category'] = 15;
   include rootpath.'/show_news.php'; 
?>

Но    $static['skip'] = 1; - это не выход, приходится манипулировать с датой добавления новости.

Почему так надо - ??? Заказчик так попросил сделать (????).

62

(7 ответов, оставленных в Проблемы и их решения)

Miksar, спасибо.
Всё работает ОТЛИЧНО.
Р.S. Есть ещё вопросы, но это будет Вам уже лично... на днях.. сам не справляюсь с задачей...


Обрадовался, что заработало сначала. А когда начал создавать пользователей, регистрировать, а затем восстанавливать пароль.....
От тут и началось.

Не работает.

Отпишусь вечером, вообще заплутался, какая-то хренотень с этим восстановлением пароля....

Немного разобрался:
1. Нужно изменить login.mdu , как указано в http://strawberry.goodgirl.ru/forum/topic/630/.
2. В этом-же файле убрать код

// из punBB
function random_pass($len = 6){

    $chars    = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $password = '';

    for ($i = 0; $i < $len; ++$i){
        $password .= substr($chars, (mt_rand() % strlen($chars)), 1);
    }

return $password;
}

3. В файле вывода вместо

$activation_url = $config['http_script_dir'].'?mod=account&amp;act=forgot&amp;key='.md5x($new_password).'&amp;for='.$row['username'];

написать :

$activation_url = $config['http_script_dir'].'?mod=login&action=forgot&key='.md5x($new_password).'&for='.$row['username'];

Нужно ещё настроить вид страницы при прихождении письма о том, что пароль восстановлено....

63

(7 ответов, оставленных в Проблемы и их решения)

Miksar, спасибо.

Теперь на странице выводится форма восстановления пароля. Но после введения логина или мейла выскакивает сообщение:

Fatal error: Call to undefined function random_pass() on line .....  

Это строка:

$new_password   = random_pass();

Когда убрал эту строку письмо пришло, но без нового пароля (я его сам стёр выходит...).

Файл recovery.php находится в папке со скриптом. Вывожу его так  ../prog/recovery.php?&act=forgot и так ../prog/recovery.php?mod=login&act=forgot.

Когда хочу вывести восстановления пароля через стандарное: ../prog/index.php?mod=login&action=forgot всё работает нормально....

64

(7 ответов, оставленных в Проблемы и их решения)

Arkuenont, а как Вы настроили работу проверки кода в отдельном файле.
Я вставил этот код в отдельный файл - результат - чистая страница.
Это только после вставки чистого кода, без моих изменений....

Strawberry 1.1.1

А каким образом можно вывести кейворд в отдельный файл?

Т.е. После создания кейворда и после перехода по его ссылке происходит переход на страницу index.php. На ней и происходит вывод краткого содержания статьи.
Это нормально если index.php содержит только один код вывода в центре. Если же структура index.php сложная - вывод по несколько новостей со множества категорий, ничего не генерируется.
Пробовал создать в urls.ini запись :

[keywords.php]
keywords = "{keywords}"

и в папке со Strawberry создал файл keywords.php с кодом. При создании кейворда ссылка становится вида .../home.
Понимаю, что делаю что-то совсем не то, а как найти правильный путь - не пойму....

66

(106 ответов, оставленных в Проблемы и их решения)

Причина почти одна - хостеры КОЗЛы.
Они набирают от жадности студентов для администрирования серверов. А те грамотные очень, начинают свои гениальные эксперименты применять, можно только так сказать. Хотя им пофиг, они не раз писали - покупайте выделенный сервер...

HumanQ - однозначно: переходить с txtsql на Мускул. У меня такое было, проблема была с дополнительными полями. Помогла переконвертация. Теперь сайт работает. На форуме есть подробная инструкция для конвертации.

ANT-Soft , спасибо. Работает отлично.

Strawberry 1.1.1.

Искал на форуме - не нашёл : А как вывести общее число просмотров определенной статьи за все время в любом месте на любой странице сайта?

Chaser, спасибо.
Установил сайт с нуля с Вашими дополнениями, на php 5.3 всё работает ХОРОШО.

Спасибо за помощь.

Но... Решил перевести текстовую базу на мускул (MySQL client version: 5.0.5) и ... новое приключение (немножко не в тему, но...).

При установке выскакивает сообщение:

Deprecated: Function mysql_list_tables() is deprecated in Z:\home\osvita.net\www\prog\inc\db\mysql.class.php on line 271

Строка 271 -

$list = mysql_list_tables(($db ? $db : $this->database), $this->link);

Понятно, что проблема с "устареванием " функции mysql_list_tables() .

Написано, что можно заменить её на mysql_query(), но ...

Miksar, изменял в файлах:

inc/mod/addnews.mdu
inc/mod/editnews.mdu
inc/mod/import.mdu
inc/functions.inc.php
convert/02x/index.php
xmlrpc.php

эти файлы взял из дистрибутива Stawberry 1.1.1, думал, что в моих что-то не так.

Изменял так:

1. addnews.mdu стр.68
вместо 

'url'      => ($url ? namespace($url) : namespace(totranslit($title))),

замена

'url'      => ($url ? my_namespace($url) : my_namespace(totranslit($title))),

2. editnews.mdu стр. 502
вместо 

'url'      => ($url ? namespace($url) : namespace(totranslit($title))),

замена

'url'      => ($url ? my_namespace($url) : my_namespace(totranslit($title))),

3. import.mdu стр. 88
вместо 

'url'      => namespace(totranslit($result['title'][$i])),

замена

'url'      => my_namespace(totranslit($result['title'][$i])),

4. functions.inc.php стр. 1026
вместо

function namespace($str){

замена

function my_namespace($str){

5. convert/02x/index.php стр. 176
вместо

'url'      => ($fo_arr[7] ? namespace($fo_arr[7]) : namespace(totranslit($fo_arr[2], $that)))

замена

'url'      => ($fo_arr[7] ? my_namespace($fo_arr[7]) : my_namespace(totranslit($fo_arr[2], $that)))

6. xmlrpc.php стр.124
вместо

'url'      => ($url ? namespace($url) : namespace(totranslit($title))),

'url'      => ($url ? my_namespace($url) : my_namespace(totranslit($title))),

стр. 262
вместо

'url'      => ($url ? namespace($url) : namespace(totranslit($title))),

замена

'url'      => ($url ? my_namespace($url) : my_namespace(totranslit($title))),

Результат - белая страница.



Chaser, по Вашему варианту сайт заработал, но.... Функция eregi () является устаревшей в etc.php - Function eregi() is deprecated in plugins.default.php on line 452

Отключил плугин  CN functions - и всё работает.

ANT-Soft, сделал только замену namespace( на my_namespace( .

А код страницы можно просмотреть только в IE.
Когда в Stawberry 1.2.* сделал такую замену - система установилась и работала.

Но нужно старый сайт с тысячами новостей перевести на PHP 5.3?

P.S. Граждане, ведь всех ждёт переход хостеров на PHP 5.3 и выше. Разве никто не решил эту проблему?

Stawberry 1.1.1 , PHP 5.3 , база текстовая.

Сделал все изменения, указанные выше - проблема новая - белые страницы как на главной, так и на стартовой админки.

Код главной страницы сайта (после изменений)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

И ... всё.

75

(11 ответов, оставленных в Проблемы и их решения)

jasamja, а зачем Вам создавать меню на Java, да ещё в dhtml-menu-builder?
Лучше создать меню на СSS, будет реактивно работать и будет искаться поисковиками.